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

Version 7.0.0-19044777 (built 2021-12-10)

  • Patched for CVE-2021-44228

Version 7.0.0-19067302 (built 2021-12-14)

  • Patched for CVE-2021-45046

Version 7.0.0-19256332 (built 2022-01-24)

  • Fixed issue related to value picker in input form. Couldn't find possible values when first letters are typed (e.g when querying resource pool).

Version 7.0.0-19544138 (built 2022-03-23)

  • Fix NullPointerException when calling parseDescriptor() method
  • Update CIS, VIM and VLSI vmodl APIs to version 7.0.3.2
  • Expose CryptoManager in scripting API
  • Ignore faulty connections and return only those that are fine

Version 7.0.0-19570021 (built 2022-03-29)

  • Fix cloneVM action - if destination ESXi host is selected, use its datastore, otherwise use the one from the source VM
  • Fix getRelocateSpec action - if destination ESXi host is selected, use its resource pool, otherwise use the one from the source VM

Version 7.0.0-19845829 (built 2022-05-23)

  • Bump Spring and Spring Security

Version 7.0.0-20092116(built 2022-07-11)

  • Bump Spring Core to 5.3.20
  • Bump Spring Security to 5.6.5
  • Show DistributedVirtualPortgroup as a child of VmwareDistributedVirtualSwitch in vCenter inventory
  • Fix "com.vmware.vim.vmomi.core.exception.UnexpectedTypeException"
Attachments
Comments

Hi ivand

Thanks for your reply. As you mentioned 2 times "this", let me rephrase to make sure I understand it correctly.

Here we get only technical previews: https://communities.vmware.com/t5/vRealize-Orchestrator-Documents/vRO-vCenter-Server-plug-in-for-vSp...

Here are the production ready binaries:
https://marketplace.cloud.vmware.com/services/details/vsphere-vcenter-server-plug-in-for-vrealize-or...

Now on the second link (production ready) there is no mentioning of vSphere 7 and the plugin name is also named 6.5. Neither is there a proper version history.

Does the 6.5 production ready plugin support vSphere 7? I have a customer which will upgrade  to vSphere 7 and I want to update the (vRO 7.6) vSphere Plugin.

Thanks

 

Any feedback on this?

@Zueritram 

I apologize for late response 😞

Marketplace is the official placeholder for plugin updates. We are using this page to provide hot patches of the plugin for a faster spread of it. And to preview a new versions. Every preview of the plugin we support as an official build. You can use it in prod and raise support request on issues found.

Hi ivand

No worries, thanks for your reply! Can you confirm the plugin works with vSphere 7.0+? Only vSphere 6.7 is mentioned in the marketplace offering.

Cheers

I cannot confirm that. The plugin in marketplace supports vSphere 6.7 and vSphere 7.0.1 but not other versions. and API level is 6.5 (these numbers in the version of the plugin show what is supported version of vSphere API).
For any newer version of vSphere if you are not on latest vRO you should use the plugin from  this page.

We are using the following Product Version: vRealize Orchestrator (vRO) v7.6

Current Builds:

External: 19258423

Embedded: 19220215

 

When I try to parse an OVF Descriptor using the following code:

 

  1. var objMimeAttachment = objResourceElement.getContentAsMimeAttachment();
  2.  
  3. var strOVFDescriptor = objMimeAttachment.content;
  4.  
  5. var arrVcSdkConnection = VcPlugin.allSdkConnections;
  6.  
  7. var objVcOvfManager = null;
  8.  
  9. for each ( var objVcSdkConnection in arrVcSdkConnection )
  10. {
  11.     objVcOvfManager = objVcSdkConnection.ovfManager;
  12.  
  13.     if ( objVcOvfManager != null )
  14.     {
  15.         break;
  16.     }
  17. }
  18.  
  19. var objVcOvfParseDescriptorParams = new VcOvfParseDescriptorParams();
  20.     objVcOvfParseDescriptorParams.locale = '';
  21.     objVcOvfParseDescriptorParams.deploymentOption = '';
  22.  
  23. var objVcOvfParseDescriptorResult = objVcOvfManager.parseDescriptor(strOVFDescriptor, objVcOvfParseDescriptorParams);      <-- Error Occurs when running this line of code.

 

I get the following error:

 

Error in (Workflow:Test OVF / OIVF Issue (item1)#22) java.lang.NullPointerException

 

Workflow execution stack:

***

item: 'Test OVF/item1', state: 'failed', business state: 'null', exception: 'java.lang.NullPointerException (Workflow:Test OVF / OIVF Issue (item1)#22)'

workflow: 'Test OVF' (18d228da-1bd8-4753-8994-bc2a688ac22a)

|  'attribute': name=objResourceElement type=ResourceElement value=dunes://service.dunes.ch/ResourceElement?id='2ad741d7-7f54-4ee5-ac8d-57ce188d6a4a'&dunesName='ResourceElement'

|  'no inputs'

|  'no outputs'

*** End of execution stack.

 

Hi o2teamnrb,

we have uploaded a new release of the plugin that resolves this issue. Please update the plugin, try it out and let us know in the comments if this resolved the issue.

KR,

Stefan G.

Hi,

Is the userDirectory object updated in this version more specifically the retrieveUserGroups method.

For the moment the documented parameters in the API Explorer are listed as follow :

Name Type Description

arg0 
arg1 
arg2 
arg3 
arg4 
arg5 
arg6

 

I still can't figure how to use it (and if it's possible to retrieve all the users of the SSO Domain).

Thanks in advance !

Hi j_brison,

the UserDirectory object has not been changed. The documentation for the retrieveUserGroups() method is as follows:

public UserSearchResult[] retrieveUserGroups(
@optional
String domain,
String searchStr,
@optional
String belongsToGroup,
@optional
String belongsToUser,
boolean exactMatch,
boolean findUsers,
boolean findGroups)
throws com.vmware.vim.binding.vim.fault.NotFound;

 

Hi Stefan,

Thanks a lot for your reply.

In the meantime, I also found this site for more explanation 🙂

https://vdc-repo.vmware.com/vmwb-repository/dcr-public/fe08899f-1eec-4d8d-b3bc-a6664c168c2c/7fdf97a1...

Again thanks !

 

Hello,

There are available any system properties to control lifetimes / caches in the latest v7 vCenter plug-in like it was in 6.5?

Like 'com.vmware.vmo.plugin.vi4.cache.main.max.size.mb' ?

 

We have to vRO 8.8.1 installed and connected to 4 vCenters with almost 10.000 VMs. We have some performance issues and we want to "play" with these cache properties for improve the performance.

 

Thanks.

 

Hi ririmia,

we have these properties for fine tuning:

  • com.vmware.vmo.plugin.vi4.cache.main.expirationSeconds - default value: 14400 seconds
  • com.vmware.vmo.plugin.vi4.cache.live.objects.expirationSeconds - default value: 14400 seconds
  • com.vmware.vmo.plugin.vi4.cache.clearOnSessionRefresh - default value: false
  • com.vmware.vmo.plugin.vi4.cache.main.max.size.mb - default value: 100
  • com.vmware.vmo.plugin.vi4.list.unusable.sdkConnections - default value: true

Thanks,

Stefan G.

Hi Stefan,

Thanks for your feedback! I have two more questions:

We set the '2000' value for 'com.vmware.vmo.plugin.vi4.cache.main.max.size.mb' properties. How can we check the current cache status (size\in use)?
How can we check the plugin cache eviction in vRO v8.8.1?

Thanks!

Hi ririmia,

unfortunately there is no way to check on that.

KR,

Stefan G.

Is there any way to create a temporary vcplugin instance? What I mean is that we use configuration data to do IaC and we do not want to add items to the plugin inventory. The only thing I can find is to VCPlugin.registerVCenterServerInstance and unregisterVCenterServerInstance. This still creates a plugin inventory object and is slow. 

Hi SteskaljGE,

the only way to do that is with "Add a vCenter Server instance" / "Remove a vCenter Server instance". This will create/remove a new object

Thanks,

Stefan G.

Version history
Revision #:
21 of 21
Last update:
‎07-12-2022 02:29 AM
Updated by: