VMware Cloud Community
yatigammanabnd
Enthusiast
Enthusiast
Jump to solution

Installing Custom vRO Plugin does not install its bundled vRO Package

I've beed developing a vRO Plugin, which seems to work fine in vRO.

Likewise I have been creating Workflows, Actions in vRO to use the Plugin. Also these have all been put into a vRO Package.

I have also exported said vRO Package to the vRO Plugin (via the "Expand package To Folder" option), and can see it is all there.

 

However, what is really confusing me; as all other posts I find imply that installing the plugin will install anything within the -package folder (Workflows etc); is that when we install this plugin via vRO's vco-controlcenter's "Manage Plug-Ins" page. The Plugin installs, but my package is not there and so no Workflows or Actions are provided.

I know it is in the .vmoapp file, as I can browse it, extract the package and install that manually (via the vRO import package command).

 

It is very annoying to say the least!

 

Other useful information:

VMware vRealize Orchestrator
Version: 7.4.0
Build number: 8071781
Reply
0 Kudos
1 Solution

Accepted Solutions
iiliev
VMware Employee
VMware Employee
Jump to solution

OK, the problem is that the plug-in build number is not correct after the code generated by the archetype is compiled.

If you open the compiled plug-in binary file o11nplugin-test.dar with some utility that can open ZIP files (WinZIP, WinRAR, etc.), inside you'll find a file VSO-INF/vso.xml, which contains plug-in metadata. Most likely, the second line of this file will look something like:

<module name="Test" version="1.0.0-SNAPSHOT" build-number="${build.number}" image="images/default-16x16.png" display-name="Test">

Here, you can see that the build number attribute is not a valid number, and that's why the package installation fails.

To fix this, you need to replace build.number variable with some valid integer number. There are several ways to do this; the easiest probably is to pass it on the command line you use to build the plug-in.I suppose you used the command from the documentation, which is:

mvn clean install -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true

to pass build number value, you can use -D option parameter. The proper command should look something like:

mvn clean install -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dbuild.number=42

View solution in original post

Reply
0 Kudos
4 Replies
iiliev
VMware Employee
VMware Employee
Jump to solution

Could you check in vRO log files if there are messages that package installation is attempted but failed for some reason, or there are no signs that package installation is even attempted?

How did you build your plug-in? Are you sure its metadata points to the proper package name? BTW, is your plug-in available somewhere to check it?

Was there a previous version of the same plug-in installed, or the package is not installed also in a clean vRO deployment? Also, if you have an older version of vRO (let's say 7.3), could you check if the same problem happens there?

Reply
0 Kudos
yatigammanabnd
Enthusiast
Enthusiast
Jump to solution

Hello, so this might be a bit of a long gap for the next response as it is the end of the working day here in the UK, and is a bank holiday weekend. But anyway, to response to your questions:

* I'm reading through the live log stream, but am not sure what I am looking for - at least nothing stands out when searching for the package name, or the words "package" and "error"

* We've tried on a clean vRO deployment (so in that case no previous version) and that also didn't setup the packages

* Don't have a previous version, but that is something we could try next weel

* This plugin is not available anywhere yet (still developing), BUT, all is not lost as this problem even happens when starting from a fresh maven archetype - so to keep things simple (in trying to find the problem) lets use one of these. (Hope that answers the how did you build your plugin question). Although I am not entirely sure I know what you mean by metadata.

I chose type 4 (com.vmware.o11n:o11n-archetype-inventory-annotation) for my plugin. and for this example I'll define the following properties:
groupId: com.vro.test
artifactId: test
package: com.vro.test
pluginAlias: Test
pluginName: Test
rootElement: Test

(That more or less mimics what I have)

building that and installing it also fails to bring in the Workflows and Actions that come with that archetype build (nothing in Packages, but the plugin is there)

 

Anywho, sorry in advance for not replying for a couple of days, will be back Tuesday

Reply
0 Kudos
iiliev
VMware Employee
VMware Employee
Jump to solution

OK, the problem is that the plug-in build number is not correct after the code generated by the archetype is compiled.

If you open the compiled plug-in binary file o11nplugin-test.dar with some utility that can open ZIP files (WinZIP, WinRAR, etc.), inside you'll find a file VSO-INF/vso.xml, which contains plug-in metadata. Most likely, the second line of this file will look something like:

<module name="Test" version="1.0.0-SNAPSHOT" build-number="${build.number}" image="images/default-16x16.png" display-name="Test">

Here, you can see that the build number attribute is not a valid number, and that's why the package installation fails.

To fix this, you need to replace build.number variable with some valid integer number. There are several ways to do this; the easiest probably is to pass it on the command line you use to build the plug-in.I suppose you used the command from the documentation, which is:

mvn clean install -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true

to pass build number value, you can use -D option parameter. The proper command should look something like:

mvn clean install -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dbuild.number=42

Reply
0 Kudos
yatigammanabnd
Enthusiast
Enthusiast
Jump to solution

Wow. Good call. That ${build.number} was indeed not set. And setting it makes all the package object appear when installing the plugin.

Thank you.

Reply
0 Kudos