Object notfound in vRO using the vCloud Director plugin
A strange behavior has happened just after vRO installation and vCloud director plugin configuration, I wasn’t able to interact with any objects managed by the vcloud director plugin.
I created a simple workflow on my lab to illustrate the issue.
The workflow cannot be more basic as it has only a single line of code to display the name of the vcloud:organization object provided on the input.
This simple workflow cannot display the organization name even if I respected the documentation. The attribut name should be present on a object of type : vcloud:organization
So I tryied to display the object vcloud:organization to be sure that the object is correctly fetched.
vRO was not even able to display the vcloud:organization object itself and I was facing the same kind of issue for the organization-vdcs and the virtual machines objects. That’s weird. Espacially when the vcloud inventory seems to work.
I struggled to fix to issue, I registered the vcloud director connector, change the API versions, reinstall the vcloud director plugin, change to version of the plugin, nothing works.
I checked the vcloud director configuration and I found on the public addresses tab that the HTTP base URL attribut was different than the HTTP Rest API base URL. It was prefixed by api-.
Remember that the HTTP Rest API base URL are used to change the base URL on the REST API (obvious) and can be different that the HTTP base URL:
I registered the vcloud director on vRO using the HTTP base URL but not with the API one.
So I reconfigured the connector, try again the workflow and magic happens. I’m now able to fetch the organization and display it’s name :
vRO was probably trying to get the organization by building it’s href (https://vcd.lab65.local/org.ea1bc7eb-d39c-48b5-acd2-2c3a78990567) using the connector URL but was not able to get it as it was registered on the inventory with the API base URL (https://api-vcd.lab65.local/org.ea1bc7eb-d39c-48b5-acd2-2c3a78990567) as displayed on the vcd plugin inventory.
I had also to troubleshoot the same kind of issue on an another platform, even if the HTTP base URL was the same that the API one. The first letter of the API base URL was in capital letter instead of the HTTP base URL that was not. A small difference probably due a wrong copy-paste that had a huge impact on the platform.
Hope it helps.