VMware Cloud Community
jauling
Enthusiast
Enthusiast

How To Migrate REST Objects between Orchestrator Instances

Synopsis

When deploying a new Orchestrator instance for testing or for replacing an existing instance, you most likely will want to clone the existing configuration.

Orchestrator objects such as workflows and configurations can be cloned easily either by import/export of packages or direct Orchestrator synchronization. But, REST hosts can be problematic, especially when they involve authentication. The VMWare KB article 2133883 gives some idea of the problems, which is caused by passwords being encrypted using tokens unique to each Orchestrator instance. But sadly, the KB article is incomplete and does not offer a proper resolution.

Example error, typically thrown in the vCO server.log:

2016-09-13 13:49:52.412+0000 [WorkflowExecutorPool-Thread-1] WARN 

{jimbob:Reload plug-in

configuration:098080808080808080808080808080808080808001299080088268176866967b3:ff8080815723bad0015723cf9ee20008}

[WorkflowItemTaskRunner] Script execution error on workflow : Reload

plug-in configuration / 'Refresh hosts'(item1) :

org.bouncycastle.crypto.InvalidCipherTextException: pad block corrupted

This document attempts to pick up where that KB article left off. The processes documented in this article have been tested thoroughly for hours on end so that you won't need to experience the same headaches.

Warning

These processes have been tested successfully on VMWare Orchestrator 5.5.3 and 6.0.4. Your mileage may vary if you attempt these instructions with other Orchestrator versions.

Migrate REST Host and REST Operations

  1. SOURCE VCO: go to Design view, go to Resources Tab, navigate to Library -> REST -> Configuration
    1. Right click on a single UUID, or on the Configuration folder, then click on Synchronize...
    2. Select Remote VCO server, and commit (make sure commit is in direction of remote server!!!)

  2. SOURCE VCO: go to Design view, go to Resources Tab, navigate to Library -> HTTP-REST
    1. Right click on a single UUID, or on the Configuration folder, then click on Synchronize...
    2. Select Remote VCO server, and commit (make sure commit is in direction of remote server!!!)

  3. DESTINATION VCO: Run workflow: Library -> HTTP-REST -> Configuration -> Reload plug-in configuration

  4. If you see "pad block corrupted" in server.log and if no REST hosts are shown when you try to run Update a REST Host:
    1. Design -> Resources tab -> Library -> REST -> Configuration -> UUID: right-click and Save to file...
    2. edit the UUID file:
      1. Remove all lines that contain pass/password
      2. Remove all lines that contain username
      3. change any parameters for sessionMode to be 'Per User Session'
      4. change any parameters for proxyPort to be '-1'
      5. change any parameters for useProxy to be 'false'
      6. remove all other lines that match proxy
      7. save
    3. Design -> Resources tab -> Library -> REST -> Configuration -> UUID: right-click and Update resource... and use UUID file above
    4. Run workflow: Library -> HTTP-REST -> Configuration -> Reload plug-in configuration
      1. REST host and REST operations should now show up in Inventory tab -> HTTP-REST
    5. Execute workflow to change authentication back to Shared and/or to add username/password
      1. Workflows tab -> Library -> HTTP-REST -> Configuration -> Update a REST host
  5. Click on any workflows that reference this REST host and its REST operations

  6. confirm restOperation and hostResource are populated in the workflow

  7. test at least one, should be successful

  8. YOU'RE DONE
    1. Pat yourself on the back
0 Replies