I am using Cisco Process Orchestrator(CPO) (Formerly Tidal) to orchestrate the deployment of a vApp in vCloud Director from a catalog item.
I get the following error however when doing this...
The VCD entity network "Network Name" specified for VM "VMName" does not exist.
I believe this is a known error that provisioning a vApp that has Virtual machines connected to a network other than "None" Fails. I have seen a couple of posts that mention to use ComposeVApp from virtual machines API call, however this would not work for me.
I purposely added my vApps to the catalog with both vApp networks and firewall rules, so that they could be deployed with the network connectivity and firewall rueles/nats all in place to save me doing this using extra API calls (not built into CPO, so would mean extra development time). The vApps were added to the catalog with the checkbox for "Identical Copy" selected to enable me to do exactly this.
It is possible to deploy from the vCloud Director GUI in the way that I would like however it seems it is not possible via the API without programatically recomposing the whole vApp, its network, nat rules and firewall rules, which I would love to avoid if possible.
Does anybody have a solutions to this?
Can you post the request/response logs.
Hi, thanks for the response.
Unfortunately as I am using an Orchesration tool the HTTP Request is hidden in a vCloud Director adapter. I have copied the error message and the exception over below however.
I cant help but think this is going to lead to me POSTing some XML using the HTTP Rest Adapter in my orchestration tool, rather than using the "out of the box" activities that are provided by the vendor.
Reading from the error..
Looks like the vAppTemplate contains a IOMeter(VM) with network IOMeter-vAppNet.
But you do not have that network as part of the vdc.
When you do this through the vCD UI. You should have remapped the VM's network to the available ones in the vdc.
The same stuff should be done using the API. During the process of instantiation/composition(creating new vapp from template) you should map the networks (vapptemplate networks to available vdc networks).
Actually when doing this through the UI I do not need to map the networks. This is because I have chosen the "Identical Copy" Option when importing the vApp into the catalog. When deploying from the catalog item that has this option selected the only options available through the UI is to set the vApp Name, runtime and storage leases on the Vapp.
I am not sure how the UI handles this but it looks like through the API I am going to have to dismantle this vApp and recreate the vApp, vApp Network, add VMs to network, route the network and finally add the firewall rules.
Unfortunately I cannot create the vApp Network until the vApp is deployed, so it looks like my Catalog Item will have to have its VM networks set to None.
Unless you know of a way to do this otherwise?
When you make an identical copy of the vApp. The vAppTemplate should contain all the networking information retained as is.
Instantiating the vAppTemplate onto the same vdc should be successfull.
It would be nice to see the request XML you send as part of the instantiation. Any way to get the logs out of your orchestration tool.
Do you know a way to have VCD respond on HTTP as well as HTTPS? This would allow putting some logging software in place to catch XML messages, currently all that is hidden due to the HTTPS.
(Or a way to get VCD to log the XML blocks sent over?)
with which API are you developing? The Java API? Taking a look at your stacktrace it seems to be like this. You should be able to set via
the Level to Debug. Having set the level, you should be able to see all XML-Output exchanged between your client and the server.