vRO vCenter Server plug-in for vSphere 7.0 service releases - Technical preview

vRO vCenter Server plug-in for vSphere 7.0 service releases - Technical preview

Summary

This is a drop-in replacement of the implementation of the vCenter Server plug-in for vRealize Orchestrator

This technical preview plugin implementation is designed to be compatible with vCenter Server 7.0 API

Plugin versioning and interoperability with vSphere vCenter servers

  • The plugin core functionality (connectivity, inventory) is compatible with vSphere with version 5.5 and above.
  • vSphere API version exposed in the scripting API is 7.0
    • That means that all API methods, properties and types introduced in vSphere 7.0 are made available to vRO scripting content developers and will work if supported by the vSphere server product. For convenience in this new version of the plugin all the methods and properties are annotated in their description (visible in vso.xml and API explorer ) with version tag, e.g '@since vSphere API 5.5'


Interoperability with vRO

The plugin is compatible with vRO version 7.3 and newer.

Install procedure

Few of the workflows are changed to reflect the minor incompatible changes in the API, so these will be overwritten during install.
The plugin can be installed in the standard way

Previously released versions (newest at the bottom)

Version 6.5.0.5817435

  • Fixing in bulk fetching of objects based on queries - plugin factory 'findAll' method now uses default set of properties to be pre-loaded
  • Fixes in 'Convert independent disks' workflow

Version 6.5.0.6216831

  • Fixes in construction of instances of scripting types based on VLSI basic types , e.g - VcKeyAnyValue'
  • Fixes in 'data' objects serialization process

Version 6.5.0.6374976

  • Fixes in vlsi client resources finalization to prevent leaking of vlsi monitoring threads

Version 6.5.0.6471915

  • Fixes in deserialization of 'Any' attributes, causing failures in "Clone, Windows with single NIC and Credentials" and dependent workflows

Version 6.5.0.7037717

  • Rest API query specifications implementation moved to plugin, resulting in performance improvements in case such a query is used (XaaS Blueprint forms etc.)

Version 6.5.0.7208762

  • Additional fixes to plugin's Rest API query specifications implementation

Version 6.5.0.7720419

  • Fixes in the Object fetching functionality
  • Update VMODL definitions for the plugin with a newer version
  • Fixing compatibility issues with vRO 7.3
  • Fixing Malformed URI exception when executing the workflow "Get virtual machines by name with PC"

Version 6.5.0.9407750

  • VcKeyAnyValue issue with values of type array of string

Version 6.5.0.10376265 (VMC fix - KB 59459)

  • Fixes in cache update logic
  • Fixes in connection validation against newer versions of vSphere servers
  • Enable explicit preloading of properties for set of managed objects

Version 6.5.0.11809518

  • Fixes in  reconnection logic to vSphere servers in case of restart

Version 6.5.0-12316907 (built 2019-02-14)

  • Adds CertificateManager to the management objects available in the plug-in. You can access it through:
    var certManager = sdkConnection.certificateManager;

Version 6.5.0.

  • Extending logging in 'Copy file to Guest' functionality

Version 6.5.0-13863019 (built 2019-05-29)

  • Maintenance thread causes memory leak
  • Performance improvements - plugin finders now load all the needed properties. This improves the loading of multiple object used as output parameters

Version 6.5.0-14070255 (built 2019-07-02)

  • Fixes in the 'Copy file from/to Guest' connection establishment (PKIX failures)

Version 6.5.0-14137330 (built 2019-07-11)

  • Fixed serialization of non-findable plugin objects (e.g. VcAlarmState, SnapshotInfo, etc) into workflow attributes
  • Fixed a possible NullPointerException when old vm snapshots are removed along with child snapshots

Version 6.5.0-14534446 (built 2019-08-30)

  • Skipping non-existing values when converting Method name values received from the Property Collector
  • Fixing problems with maintaining sessions when the number of vCenter servers is greater than 25
  • Fixing memory leaks

Version 6.5.0-15013492 (built 2019-11-04)

  • Fixed "cert parameter is required" error in "Register vCenter Orchestrator as a vCenter Server extension" workflow for vRO 8.0

Version 6.5.0-15225986 (built 2019-12-03)

  • Compatibility with vSphere 6.7u3 API

Version 6.5.0-15464295 (built 2020-01-15)

  • Fixed problem with caching of hosts in ESXi cluster

Version 6.5.0-16613969 (built 2020-07-21)

  • Fixed compatibility with VMC M11 release (June 2020 release)

Version 6.5.0-16904859 (built 2020-09-16)

  • Fixed issue loading endpoint configurations when there is issue in one of them
  • Fixed workflow Remove old snapshots to ignore erroneous ESX hosts

Technical preview version with 7.0

Version 7.0.0-18048864 (built 2021-05-19)

  • Added support for vSphere 7.0 API. Now plugin exposes scripting SDK with vSphere 7.0 API. Support for vSphere 6.7 API is included.

Version 7.0.0-18331293 (built 2021-07-16)

  • List NSX networks in plugin's inventory

Version 7.0.0-18362600 (built 2021-07-22)

  • Fix regression in getRelocateSpec action (minor)

Version 7.0.0-18421354 (built 2021-08-03)

  • Fix regression in workflow "Clone, Windows with single NIC" which failed against vSphere 7.0

Version 7.0.0-18687140 (build 2021-09-26) 
SHA256 sum: 021a2590e735ee09d038922f7331a3ec3ae78519ed2cadbcc1e9e2261b5d3d6f

  • Fixed issue "Error occurred when constructing host session for: internal@[domain]"
  • Fixed possible StackOverflowError error
  • Fixed issue related with properly aligning plug-in sessions to vCenter instance version.

Version 7.0.0-18878455 (built 2021-10-05)

  • Bump version of getCustomizationSpec action

Version 7.0.0-18906032 (built 2021-11-11)

  • Support for vCenter 7.0.3u1+. Older versions of the plugin will fail to establish connection with '(unusable: (vmodl.fault.InvalidType) { faultCause = null, faultMessage = null, argument = ServiceDirectory })'
  • Fixed compatibility issues with SMS and PBM APIs
    The error observed was "Invalid managed method 'QueryStorageContainer' requested for Managed Object Type 'SmsStorageManager' version 'sms/4.0'" when querying a vCenter 6.7 instance

 

Attachments
Comments

Whats new with this update today?

Never mind I see your message in this thread now Re: Orchestrator 7.2 to 7.3 upgrade breaks some scripting

I updated my VC plugin to the latest version o11nplugin-vsphere-6.5.0-7646854.vmoapp.zip and it breaks the VC plugin. My vCenter inventory is gone and if I try to add it back I get:

Add a vCenter Server instance/item3', state: 'failed', business state: 'Connection validation failed', exception: 'ReferenceError: "VcPlugin" is not defined. (Workflow:Add a vCenter Server instance / Validate (item2)#1)'

workflow: 'Add a vCenter Server instance' (f246b7b5-fe89-4da5-a640-36ffc6874069)

|  'attribute': name=hostAndPort type=string value=vcenter-1.purecloud.com:443

|  'attribute': name=errorCode type=string value=ReferenceError: "VcPlugin" is not defined. (Workflow:Add a vCenter Server instance / Validate (item2)#1)

|  'attribute': name=serviceUrls type=Array/string value=#{#string#vcenter-1.purecloud.com:443#;#string#https://vcenter-1.purecloud.com:443/pbm#;#string#https://vcenter-1.purecloud.com:443/sms/sdk#}#

|  'attribute': name=certificateImportException type=string value=

|  'input': name=enabled type=boolean value=true

|  'input': name=host type=string value=vcenter-1.purecloud.com

|  'input': name=port type=number value=443

|  'input': name=path type=string value=/sdk

|  'input': name=sessionPerUser type=boolean value=false

|  'input': name=userName type=string value=cody

|  'input': name=password type=SecureString value=__NULL__

|  'input': name=domain type=string value=

|  'input': name=ignoreCertificateWarnings type=boolean value=true

|  'input': name=httpPort type=number value=null

|  'input': name=pbmUrl type=string value=https://vcenter-1.purecloud.com:443/pbm

|  'input': name=smsUrl type=string value=https://vcenter-1.purecloud.com:443/sms/sdk

|  'output': name=newInstance type=VC:SdkConnection value=null

*** End of execution stack.

I used vRO 7.3. I tried deploying a new vRO and upgraded to this plugin and got the same result.

Is there something required beyond a simple upload and restart to get this working? Thanks!

It look like we have an issue with compatibility of new builds with  vRo 7.3 platform. I removed the problem version from this page. We are working on a fix.

Awesome, thanks!

Hi, i have vRO 7.3.1 and imported some workflows from a 7.2 installation i have. The vCenter i have is 6.5 U2 6.5.0.20000 Build 9451637  and current vCenter plugin is VC 6.5.0.7720419. I notice some odd behaviours, just not all the time or not against all VMs, for example, if i try to run action to getVmGuestFamily i get a Timeout waiting for getting VM Guest Family on a running OS for a particular VM, but not all. I thought it was a problem with the VM but it shows running VMtools and is started. Also i see odd behaviour when for example quering VMtools state.  Do you know if there is any documented issue with vRO 7.3.1 and/or vCenter plugin is VC 6.5.0.7720419?

VMC customers with vRA/vRO 7.3 - 7.5 should use plugin #10376265 or newer

We are running vRO 7.4 and connecting to vCenter 6.7 update 2, is this plugin compatible vCenter 6.7's?

Yes, just used it to connect with vCenter 6.7u2a.

Hi

I have cloud foundation which has been upgraded to 3.7.2

I have used this to deploy vRealize Automation in its load balanced manner successfully.

vRA is 7.5 and vCenter Server 6.7 Update 2a

However using the catalogue to do the initial setup to deploy the vCenter vRealize Orchestration Plugin.

I have tried replacing the vro-plugin.zip with both the o11nplugin-vsphere-6.5.0-13863019.vmoapp.zip and vco-plugin-7.4.0.13701555 in /usr/lib/vro/downloads by stopping the vro-service service replacing and renaming the zip with permission/owners and starting the vro-server.

Then tried doing the initial setup but it still fails with the error:

(unusable: com.vmware.vim.vmomi.client.exception.VmomiProtocolException: com.vmware.vim.vmomi.core.exception.UnmarshallException: Type 'ServiceContent' contains unrecognized property 'siteInfoManager')

Hi

I have cloud foundation which has been upgraded to 3.7.2

I have used this to deploy vRealize Automation in its load balanced manner successfully.

vRA is 7.5 and vCenter Server 6.7 Update 2a

However using the catalogue to do the initial setup to deploy the vCenter vRealize Orchestration Plugin.

I have tried replacing the vro-plugin.zip with both the o11nplugin-vsphere-6.5.0-13863019.vmoapp.zip and vco-plugin-7.4.0.13701555 in /usr/lib/vro/downloads by stopping the vro-service service replacing and renaming the zip with permission/owners and starting the vro-server.

Then tried doing the initial setup but it still fails with the error:

(unusable: com.vmware.vim.vmomi.client.exception.VmomiProtocolException: com.vmware.vim.vmomi.core.exception.UnmarshallException: Type 'ServiceContent' contains unrecognized property 'siteInfoManager')

I tried to configure vRA/vRO 7.5 with VCSA 6.7 U2 and I got this error "com.vmware.vim.vmomi.core.exception.UnmarshallException: Type 'ServiceContent' contains unrecognized property 'storageQueryManager'". When I updated to version 6.5.0-14070255 just worked. Thank you!

I have the same issue.  I have been trying, for the past 2 days, to find a resolution.  When you say that you upgraded to version 6.5.0-14070225, what exactly did you upgrade and how?  Thanks!!

VCSA 6.7u2
vRA/vRO 7.5

vROps 7.0.0

to upgrade the plugin

download the plugin and unzip it

you need to go to your vRealize orchestrator control center

URL is https://orchestratorservername.domain.net:8283/vco-controlcenter

login as root

click manage plugins

browse to the plugin you downloaded and unzipped

and click upload

wait for the services to restart

you should have installed a proxy agent on one of the IIS servers - Install the vSphere Agent

the endpoint name you set in procedure above need to match the endpoint name you specify if using vRA either vCenter or the vCenter hostname generally.

you can then run a orchestrator workflow to connect to vSphere

vco > workflows > library > vCenter > configuration > Add a vCenter Server Instance (generally select no for the session question).

vco > workflows > library > vCenter > configuration > Register vCenter Orchestrator as a vCenter Server extension

you should then be able to see the connection in:

vco > inventory > vSphere vCenter Plug-in

Absolutely brilliant.  It corrected the issue.  Thank you so much!!! 

Hello islavov,

Is it possible to have release dates of vCenter plug-in we can see on this page?

Thanks in advance Smiley Wink

Hey all,

anyone able to set the VBS option for VMs?

Still missing the "configSpec.flags.vbsEnabled" option.

Thanks in advance

Hi,

If I'm not mistaken, 'vbsEnabled' property was added in vSphere 6.7 API, but vRO vCenter plug-in is built against vSphere 6.5 API level, which means it doesn't support the features that came with API version 6.7. So you have to wait until there is an updated  plug-in supporting API version 6.7.

Hi Boda201110141,

Have you found a way to implement the vbs flag througth an orchestrator workflow?

The only way I found was to use powershell, I also had to create a module to execute the powershell remotely to avoid kerberos duble hop, sinceI also need to copy windows patches from our share to the vms, you can check it here: https://communities.vmware.com/thread/634794

Can you please share if you found a way of setting the option directly througth an workflow.

Thanks.

Maybe I'm missing something, but where is the actual site for Plugin-Download?

It is here. Had some issues uploading the file.

Just to verify, this is compatible with vRA 7.5 / vRO 7.5?  And how come none of the plugins show up on the compatibility matrix?

VMware Compatibility Guide - vco

Thank you, I was able to download.

for two hours I tried to register and... see this &%ç*"%*ç plugin in my vsphere client (flex) version 6.5 U2 from an vRO 8.1.... NO chance,... nothing

I downloaded/uploaded it to data/usr/lib/vco/downloads, check the chmod.... then try to register vco as extension (what is the "External address to advertise this Orchestrator." I have no F***** idea Smiley Happy) I tried with the fqdn of my vRO server, with port, without port, without putting ANY external adresses.... Try to restart the vRO appliance, my vcsa,... both,.... NOTHING HAPPEND!!!!! it didn't download this plugin to /etc/vmware/vsphere-client/vc-packages/vsphere-client-serenity .... close to uninstall it and try to find another "orchestrator software....

so if someone has a "GOOD" documentation step-by-step to register this extension and get this plugin inside flexclient work.... you will become my best friend....

I think you're confusing this plugin with another one. This plugin is only for vro and allows you to add a vcenter to vro. It does not expose vro in vcenter to run workflows within vcenter. You might be looking for one of these:

Technical Preview of Orchestrator plug-in for vSphere Web Client

or for the html5 client in 6.7:

vRealize Orchestrator Plug-in for vSphere Client - Beta

So which one of these allows VCO7.6 to support connections to vCenter 7.0? I was told that 6.5.0-16904859 does the trick, but I'm skeptical given that none of its bullet points explicitly call this out.

I think I was the one who pointed you here and I believe the fix was applied here:

 

Version 6.5.0-15225986 (built 2019-12-03)

  • Compatibility with vSphere 6.7u3 API

I can confirm it works... no need to be skeptical.  

Has there been an update to allow connection to vCenter 7.0 ? I keep getting the following error connecting to a 7.0 vCenter:

 

unusable: java.lang.RuntimeException: Incorrect type of token class com.vmware.o11n.security.auth.sso.oauth.ExtendedOAuthToken. Please ensure vRO is configured with vSphere authentication

to allow connection to vCenter 7.0 an Upgrade to vRO 8.3 worked for me. 

Plugin Version: 6.5.0.17494695

I had to re-register Vcenter as Authentication Provider

The plugin in version 6.5.0.16904859 allows vRO 7.6 to connect with vCenter 7.0, at least up until verison 7.0.1 build-16858589, which was what I could test with.

Better documentation is definetly the thing needed here, how is anyone supposed to know this can work with the inconsistent versioning and lack of documentation updates??

Could the latest 6.5 build be left attached to this page (As the 6.5 builds have worked with vRO back to 7.3 version) ?

Does Version 7.0.0-18048864 (built 2021-05-19) work on vRO 7.3?

Unfortunately it is not possible to have two binaries  attached. We are working on publishing the latest 6.5 version in marketplace. This version has been verified on vRO 7.5. vRO 7.3 is EOL.

We are running vCenter 7.0.2  (Build 17958471) with vRO 8.5.0 (before it was 8.4.0) when I register the vCenter orchestrator as a vCenter Server extension (7.0.0.18421354) in the VC plugin's we see a error for vRealize Orchestrator 8.3.0.0 incompatible (the plug-in supports only vsphere web client (flash)). 

i am lost now on how to get this working. 

 

is it possible to download older versions of this plugin? where do i find them? I'm looking for 6.5.0-16904859.

 

The link provided here doesn't work anymore 😥

https://communities.vmware.com/t5/vRealize-Orchestrator/Adding-vCenter-7-0-1-to-VRO-7-6/m-p/2822334/...

 

I was able to find 6.5.0-16904859 on a test vRO instance I had forgotten about. Seems to be working better than 7.0.0-18421354.

I ran into issues with the latter version when runnning a custom action. I'll need to dig much deeper into what this error means, but it looks to be something to do with Folder conversion to a ManagedObject or something like that. Once I reverted to the former build, then things were working fine.

Unexpected state FAILED: Unable to convert object, 'Stub: moRef = (ManagedObjectReference: type = Folder, value = group-v29, serverGuid = null), binding = https://vcenter-ruh1.mhint:443/sdk' plugin exception reason : convertToResult() --> Finder 'VC:Folder' : unexpected error 'ch.dunes.model.sdk.SDKFinderException: convertToResult() --> Finder 'VC:Folder' : unable to invoke read method : 'namespace'' (VMware::Orchestrator::WorkflowException)

FWIW, I am running Orchestrator 7.6.0.317 Build 13020602

@jauling Can you post your code or if its a canned action or workflow which are you running?  I can try to reproduce this with the latest plugin.  Also, in the past I've sometimes needed to remove / re-add a vc.  Double check account used to connect and access within the vc.

Thanks @qc4vmware ! We did restart Orchestrator a bunch of times, and I confirmed the account isn't locked out and has proper privileges. We didn't try re-adding VCs though.

I didn't write this action, so I'm not to blame if it's all kinds of screwy or doesn't make sense. I believe it takes a string representation of a VM Folder, then finds the object and assigns it out. So, this same action has existed since our Orchestrator 5.5 days, and I'm actually surprised a lot of this stuff still works today.

actionResult = System.getModule("com.blackboard.hosting").getNamedVmFolder(anyVcenterObject,folderName) ;

 

This is getNamedVmFolder:

var datacenterObj = System.getModule("com.vmware.library.vc.basic").getDatacenterForVimObject(anyVcenterObject);
var vmf = datacenterObj.vmFolder;

for (var i = 0; i < vmf.childEntity.length; i++) {
	var f = vmf.childEntity[i];
	var folder = VcPlugin.convertToVimManagedObject(datacenterObj, f);
	
	if (folder.name === folderName) {
		return folder;
	}
}

return null;

 

This does seem like it is a bug.  I go about achieving the same sort of find but use another method.  Here is some code I think you can drop into the action to test out.  I think I've seen some similar weirdness in  the past when cycling through arrays of objects.  In this case vc:vmFolder is probably an extension of vc:Folder and maybe something weird is going on when the object is being converted.  I'd report this bug as it is easily reproduced.  Here is some alternate code that doesn't seem to break:

 

var datacenter = System.getModule("com.vmware.library.vc.basic").getDatacenterForVimObject(anyVcenterObject);
var parent = datacenter.parent;
var dcPath = "";

while (parent && parent.parent) {
System.debug(parent.name + ": " + System.getObjectType(parent));
dcPath = parent.name + "/" + dcPath;
parent = parent.parent;
}

System.debug("dcPath; " + dcPath);
System.debug("Query for folder in datacenter: " + datacenter.name);
System.debug(System.getObjectType(datacenter.parent));
var index = anyVcenterObject.vimHost.searchIndex;

// Inventory path of the folder to search for (note: starts with datacenter name and folder if datacenter is in a folder)
// root folder is always named Datacenters and if included in query it will not work sor check for that too!
var invPath = dcPath + datacenter.name + "/vm/" + folderName;
System.debug("Query index for path: " + invPath);

var folder = index.findByInventoryPath(invPath);

 

 

@qc4vmware - We are also affected by this folder issue -> did you find a working workaround code? It seems that is missing from your post.

 

In general: Is there any progress being made on this topic? Any ETA on a fix? 

I was hoping this would be fixed with vRealize Orchestrator Release 8.5.1 but nothing yet 😞

 

Yes, I posted the code in my comment above... it is not the same code as @jauling has in the original post.

This problem is fixed with the build 7.0.0-18687140

I am running vro 7.6, and 2 vcenters, 1 has been upgraded to 7.0.2-17958471.  The other is still at 6.7.0.46000.  The current plug-in i have for vcenter is 6.5.0.12799420 (which works fine with my 6.7 vcenter but of course not my 7.0.2 vcenter).

Can anyone confirm if this version of the plugin Version 7.0.0-18687140 (build 2021-09-26) works with both vcenter versions 7.0.2-17958471 and 6.7.0.46000.

Thank you

Nice development

@qc4vmware Thanks for the clarification, i misunderstood your post a bit 🙂

@ivand Thanks for the update, I can confirm that it resolved all problems for me. Is this version also included in VRO 8.6 Release?

@ifxsmoser

It didn't make it 😞 It will be available in 8.6.1

You can still manually update the plugin.

@jro2000 we rely on backward compatibility of the vCenter API so the plugin itself should be as backward compatible as vCenter 6.7.0.46000 and 7.0.2-17958471 are supported by the plugin

Version 7.0.0-18362600 (built 2021-07-22)

  • Fix regression in getRelocateSpec action (minor)

Above error re-surfaced again in latest plugin (7.0.0-18421354 and 7.0.0-18687140)

I am using VRO 8.6 with vCenter 6.7, downgrade to 7.0.0-18362600 fixed the issue.

Hi @chengqiweigic. Can you try the newest version of the plug-in? (built 2021-10-05)

Is this plugin now still in review or officially released (title states technical preview)?

Why are you referring under this link to an older version of the plugin?https://marketplace.cloud.vmware.com/services/details/vsphere-vcenter-server-plug-in-for-vrealize-or...

This situation creates a lot of confusion. Thanks for a feedback.

@Zueritram This page is only for technical previews of the plugin. This binaries are ready for production and usually released through vRO releases.

Version history
Revision #:
14 of 14
Last update:
‎11-15-2021 03:47 AM
Updated by: