As this vRO instance was running on a vRA appliance, my first port of call was starting the vRO Control Center service and make sure that the REST host certificates had indeed been imported in to vRO and were trusted. They were. here
See full version: VRA 7 / vRO 7 REST error (ficateException)
As this vRO instance was running on a vRA appliance, my first port of call was starting the vRO Control Center service and make sure that the REST host certificates had indeed been imported in to vRO and were trusted. They were. here
Looking at the certificates themselves (as I had blindly accepted them up until that point) I noticed that they were self-signed and the cause of the error became clearer. Some software solutions generate fairly weak SSL certificates by default to maintain backwards compatibility with other legacy solutions, and in some instances because it’s easier and cheaper perhaps. Some of the algorithms used to generate and / or sign these certificates are weak or have know vulnerabilities and are increasingly untrusted by default. You only have to fire up an up-to-date version of the Chrome browser and point it at something using such a certificate to see that happen – Chrome says no! [links]
The java implementation on a vRA 7 appliance is no different, there are certain untrusted algorithms. Should you need to, you can enable them again. [links]
Adding the REST host(s) to vRO was accomplished without any issue, but when I came to use them my workflow failed with the following error: here
Whilst I was with a customer recently, I hit an SSL related issue whilst trying to put together a vRO workflow to orchestrate the creation of a load-balancer configuration on a Citrix Netscaler VPX. more
vSphereAgent.log [links]
scripting.log / server.log [links]
Here is what it looks like in action (Larger Image): more
I’m going to start by showing how to troubleshoot provisioning through log files, but I usually start viewing the provision in the vRA UI. The reason I’m doing this is that tracking a provision through the log files will give you a better understanding how the vRA stack works. I’ll save the UI for last.
echo “Waiting for provision…” && tail -F /var/log/vmware/vcac/catalina.out | grep –color=always $(tail -F /var/log/vmware/vcac/catalina.out | grep -m 1 ConsumerRequestController | cut -d ‘ ‘ -f 8 | cut -d ‘=’ -f 2 | cut -d ‘”‘ -f 2)more
This workflow can be downloaded on GitHub: [click me!] [links]
Listing all configuration files works – the next step is to retrieve a setting from a particular configuration file. The next action will do the following: [links]
I have chosen com.stdevel.generic for my module – generic because it contains very basic functions that could be used in a wide range of workflows. If you would plan to create additional actions for e.g. monitoring it would be a great idea to create another module for this – e.g. com.stdevel.monitoring. To create a module, the Design pane (gear wheel icon) needs to be selected. Clicking New module will open a window for entering the name. more
If you add also those parameters in the presentation layer of a workflow, the user experience will get confusing and also errors will be more likely if you need to enter information manually. It would be more handy to store these information in a configuration file. In this case, selecting a template will be sufficient to apply all the settings – user experience will also benefit from this:
Before the particular actions are created, a module needs to be created. There is a convention for naming modules – it looks like this: more
To test for cells that contain certain text, you can use a formula that uses the IF function together with the SEARCH and ISNUMBER functions. In the example shown, the formula in C5 is:
One solution is a formula that uses the IF function together with the SEARCH and ISNUMBER functions. In the example shown, we have a list of email addresses, and we want to extract those that contain "abc". In C5, the formula were using is this: more
This snippet will return TRUE if the the value in B5 contains "abc" and false if not. The logic of ISNUMBER + SEARCH is explained in detail here. [links]