VMware is aware of this issue.
A resolution for this issue is being evaluated for inclusion in a future release.
To work around this issue when vRO is using the embedded vRA psql database, perform the following steps:
For vRealize Automation 7.0 - 7.4:
- Revert vRealize Automation environment back to pre-upgrade snapshots including IaaS components and SQL Database.
- Ensure you have proper backups of the environment prior to proceeding!
- Download the attached zip file and extract the contents.
- Copy the vco-cfg-cli-7.4.0.23640-8992942.noarch.rpm file to a directory on your vRealize Automation appliance.
- Install the package using the command:
- Run the command:
- Copy the list of duplicate entries (focused on id and name) for reference.
- Connect to the postgres database using the command:
- su postgres
- /opt/vmware/vpostgres/current/bin/psql vcac
- Run the following command(s) by referencing the correct ID and NAME from step 7 to remove one of each of the duplicate entries (it doesn't matter which is removed):
- delete from vmo_resourceelement where categoryid = 'cbd45656-bfb7-3275-8c1c-7ab8aa6ee487' and name = 'de_DE.properties';
- delete from vmo_configelement where categoryid = 'cbd45656-bfb7-3275-8c1c-7ab8aa6ee487' and name = 'de_DE.properties';
- Exit the postgres command using: \q
- Re-run the command to ensure you have no further duplicates:
- The correct response should be:
- Create additional backups/snapshots and retry your vRealize Automation upgrade.
For vRealize Automation 7.5+:
In 7.5 and 7.6 the upgrade automatically checks for duplicates and reports on those tables that are duplicates. Once duplicates are found you need to delete the duplicates. You may run the below command to check after deletion that all tables are removed.
- Check for duplicate elements in versions 7.5+:
cd /usr/lib/vco/tools/configuration-cli/bin/
command : ./vro-configure.sh db-validate
- If there are no duplicates you should see something to the below:
Orchestrator's root folder: /var/lib/vco
Orchestrator Configuration Tool. Version: 7.6.0.12923317 Build: 12923317
ValidateDbOptions{dbUsername='vmware', dbPassword='****', jdbcUrl='jdbc:postgresql://localhost:5433/vmware?sslmode=verify-ca&sslrootcert=/var/vmware/vpostgres/current/.postgresql/root.crt'}
The command does not need database configuration update.
- If duplicates are found there should be three primary types: Plugins, Version History, and Configuration Elements. See below for instructions for each:
- Plugins are flagged as duplicate:
- Login to Orchestrator Client as Design user.
- Enter the Name output in the output in the NAME field output by upgrade.
- Open each duplicate and make note of the one with the most relevant content that you wish to keep.
- Right Click on the one you wish to remove and delete.
- Version history is flagged as duplicate:
- Login to the Orchestrator Client
- Resolve duplicates by deleting unnecessary items
Note: The auto-creation of an item means there is a running vRO process connected to your database. You must stop it and then delete the duplicate entry. The missing version history items are not critical and even they miss in different situations so it is not that important which one gets deleted.
Example:
Duplicates found in the embedded vRealize Orchestrator database:
- 1 items in table vmo_versionhistorycontent: ID= NAME=1.0.800
- 1 items in table vmo_versionhistorycontent: ID= NAME=-1.0
- Configuration elements are flagged as duplicate:
- Login to the Orchestrator Client
- Search for the GUID
- Remove the duplicate element.
Example:
Duplicates found in the embedded vRealize Orchestrator database:
- 1 items in table vmo_configelement: ID=8a81a5a35f107593015f7871f8da0431 NAME=InstanceDetails
- 1 items in table vmo_configelement: ID=8a81a5a35f107593015f7871f8da0431 NAME=General
- 1 items in table vmo_configelement: ID=8a81a5a35f107593015f7871f8da0431 NAME=Allocation
Script /etc/bootstrap/preupdate.d/00-00-02-check-vro-duplicates failed, error status 1
- Corrupted, duplicate workflow tokens:
- Download the attached workflow package: com.vmware.o11n.bug_2444547.package
- Import the package
- Setup the /storage/db/pgdata/pg_hba.conf file to allow local connections from source IP:
- Under heading: # IPv4 local connections:
- Add the IP address of the vRealize Orchestrator node that will need access to the postgres database:
Example:
host all all 192.168.110.75/24 md5
- Restart vpostgres:
service vpostgres restart
- Extract PSQL password and decrypt:
cat /etc/vcac/server.xml |grep password="*"
/usr/lib/vcac/tools/config/bin/vcac-config prop-util -d --p s2enc~646fCCJWPaSYJe91XKBpkrc1E+3N83n7ZIF3a+PGEaI= |less
Example password Output:
gRhoeG3+76n2o*nS
- Create a new SQL Plugin host connection within the vRealize Orchestrator client by running the workflow named: "Library > SQL > Configuration > Add a database"
- Name: "Local vPostgres Instance"
- Database Type: postgreSql
- Connection URL: jdbc:postgresql://vra-01.vcloud.local:5432/vcac
- Select "Next"
- Session Mode: "Shared Session"
- User name: vcac
- Provide decrypted credentials, example: gRhoeG3+76n2o*nS
- Execute the workflow: "Delete Corrupted WorkflowTokens"
Note: If the workflow fails, comment out: // System.log(token.state);
from within the Scriptable task object within the workflow "Delete Corrupted WorkflowTokens"
- Reattempt the upgrade.