Hi all,
I am using vRealize Orchestrator Plug-In for Amazon Web Services (AWS) v. 1.1 and trying to query an EC2Instance by its ID using the following script:
var region = "eu-central-1"
var InstanceId = "i-123123123"
var clients = Server.findAllForType("AWS:AWSClient");
for each (var client in clients) {
if (region != null && client.region.name != region) {
System.debug("Skipping region '"+client.region.name+"'");
continue;
} else {
System.debug("Searching region '"+client.region.name+"'");
}
var ec2Client = client.getAmazonEC2Client();
var myEC2Filter = new EC2Filter().withName("instance-id").withValues([InstanceId]) ;
var myEC2DescribeInstancesRequest = new EC2DescribeInstancesRequest().withFilters([myEC2Filter]) ;
try {
var result = ec2Client.describeInstances(myEC2DescribeInstancesRequest);
var reservations = result.getReservations();
for each (var reservation in reservations) {
System.log("Reservation: " + reservation);
System.log("Reservation ID: " + reservation.getReservationId());
System.log("Owner ID: " + reservation.getOwnerId());
System.log("Instances: " + reservation.getInstances());
}
} catch (e) {
System.error(e);
}
}
However, everything looks quite good until I try to run (line #29 above):
System.log("Instances: " + reservation.getInstances());
Resulting in a NullPointerException:
InternalError: Cannot create EC2Instance object : java.lang.NullPointerException
It looks like a bug since the data is available and get printed with (line #25):
System.log("Reservation: " + reservation);
Any ideas how to fix the behavior?
Thanks and best regards,
Paul
As addendum, the same exception is thrown when I try to directly query the vRO server for the type EC2Instance:
System.log(Server.findForType("AWS:EC2Instance",InstanceId));
Error Message:
Unable to find for type, reason : Cannot create EC2Instance object : java.lang.NullPointerException
Hi,
Could you check if there is more info (like exception stack trace showing the line number where the exception occurred in Java code) in vRO server log file(s)? The main log file is /var/log/vco/app-server/server.log
Also, it might worth it to increase the plug-in log level to DEBUG using vRO Control Center UI and then try to reproduce the same error; this could dump some more info in the log files.
Hi Ilian,
thanks for the hint. Set log level to DEBUG and found a Java stack trace:
2018-11-09 13:40:04.115+0100 [WorkflowExecutorPool-Thread-21] DEBUG {|__SYSTEM|vra7@domain.local:Find EC2Instance by ID:0a5a6c2c-b061-4283-9bb8-4288b4becb89:token=d1f782e2-2c3e-4ca4-af8f-8a2697a7e09c} [ModulesFactory] Object EC2Instance creation error
java.lang.NullPointerException
at ch.dunes.vso.sdk.ModulesFactory.createInstance(ModulesFactory.java:876)
at ch.dunes.vso.sdk.ModulesFactory.wrapObjectInScope(ModulesFactory.java:857)
at ch.dunes.scripting.jsmodel.DunesWrapFactory.wrapAsJavaObject(DunesWrapFactory.java:143)
at ch.dunes.scripting.jsmodel.DunesWrapFactory.wrap(DunesWrapFactory.java:84)
at ch.dunes.scripting.jsmodel.DunesWrapFactory.wrapAsJavaObject(DunesWrapFactory.java:119)
at ch.dunes.scripting.jsmodel.DunesWrapFactory.wrap(DunesWrapFactory.java:84)
at org.mozilla.javascript.Context.javaToJS(Context.java:1679)
at ch.dunes.vso.sdk.DynamicWrapperHelper.javaToJS(DynamicWrapperHelper.java:67)
at ch.dunes.vso.sdk.WrappedJavaMethod.call(WrappedJavaMethod.java:178)
at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1473)
at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:815)
at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:109)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
at org.mozilla.javascript.InterpretedFunction.exec(InterpretedFunction.java:120)
at ch.dunes.scripting.server.script.MainScriptingObject.executeScript(MainScriptingObject.java:259)
at ch.dunes.scripting.server.script.MainScriptingObject.executeScript(MainScriptingObject.java:245)
at ch.dunes.workflow.engine.mbean.WorkflowScriptRunner.execute(WorkflowScriptRunner.java:187)
at ch.dunes.workflow.engine.mbean.runner.WorkflowItemTaskRunner.execute(WorkflowItemTaskRunner.java:45)
at ch.dunes.workflow.engine.mbean.runner.WorkflowItemTaskRunner.execute(WorkflowItemTaskRunner.java:26)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.executeItem(WorkflowHandler.java:1264)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.requestElementExecution(WorkflowHandler.java:1221)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.handleWorkflowTokenNextStep(WorkflowHandler.java:884)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.executeToken(WorkflowHandler.java:769)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.handleTokenExecution(WorkflowHandler.java:695)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.access$100(WorkflowHandler.java:116)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler$1.execute(WorkflowHandler.java:471)
at ch.dunes.model.ar.AccessRightsTemplate.executeWithAccessRights(AccessRightsTemplate.java:16)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.doExecute(WorkflowHandler.java:467)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.run(WorkflowHandler.java:282)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
2018-11-09 13:40:04.117+0100 [WorkflowExecutorPool-Thread-21] ERROR {|__SYSTEM|vra7@domain.local:Find EC2Instance by ID:0a5a6c2c-b061-4283-9bb8-4288b4becb89:token=d1f782e2-2c3e-4ca4-af8f-8a2697a7e09c} [SCRIPTING_LOG] [Find EC2Instance by ID (11/9/18 13:40:03)] Cannot create EC2Instance object : java.lang.NullPointerException
2018-11-09 13:40:04.117+0100 [WorkflowExecutorPool-Thread-21] DEBUG {|__SYSTEM|vra7@domain.local:Find EC2Instance by ID:0a5a6c2c-b061-4283-9bb8-4288b4becb89:token=d1f782e2-2c3e-4ca4-af8f-8a2697a7e09c} [WorkflowScriptRunner] Execute exception
org.mozilla.javascript.EvaluatorException: Cannot create EC2Instance object : java.lang.NullPointerException
at ch.dunes.vso.sdk.ModulesFactory.createInstance(ModulesFactory.java:880)
at ch.dunes.vso.sdk.ModulesFactory.wrapObjectInScope(ModulesFactory.java:857)
at ch.dunes.scripting.jsmodel.DunesWrapFactory.wrapAsJavaObject(DunesWrapFactory.java:143)
at ch.dunes.scripting.jsmodel.DunesWrapFactory.wrap(DunesWrapFactory.java:84)
at ch.dunes.scripting.jsmodel.DunesWrapFactory.wrapAsJavaObject(DunesWrapFactory.java:119)
at ch.dunes.scripting.jsmodel.DunesWrapFactory.wrap(DunesWrapFactory.java:84)
at org.mozilla.javascript.Context.javaToJS(Context.java:1679)
at ch.dunes.vso.sdk.DynamicWrapperHelper.javaToJS(DynamicWrapperHelper.java:67)
at ch.dunes.vso.sdk.WrappedJavaMethod.call(WrappedJavaMethod.java:178)
at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1473)
at script(Workflow:Find EC2Instance by ID / Scriptable task (item1):25)
at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:815)
at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:109)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
at org.mozilla.javascript.InterpretedFunction.exec(InterpretedFunction.java:120)
at ch.dunes.scripting.server.script.MainScriptingObject.executeScript(MainScriptingObject.java:259)
at ch.dunes.scripting.server.script.MainScriptingObject.executeScript(MainScriptingObject.java:245)
at ch.dunes.workflow.engine.mbean.WorkflowScriptRunner.execute(WorkflowScriptRunner.java:187)
at ch.dunes.workflow.engine.mbean.runner.WorkflowItemTaskRunner.execute(WorkflowItemTaskRunner.java:45)
at ch.dunes.workflow.engine.mbean.runner.WorkflowItemTaskRunner.execute(WorkflowItemTaskRunner.java:26)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.executeItem(WorkflowHandler.java:1264)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.requestElementExecution(WorkflowHandler.java:1221)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.handleWorkflowTokenNextStep(WorkflowHandler.java:884)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.executeToken(WorkflowHandler.java:769)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.handleTokenExecution(WorkflowHandler.java:695)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.access$100(WorkflowHandler.java:116)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler$1.execute(WorkflowHandler.java:471)
at ch.dunes.model.ar.AccessRightsTemplate.executeWithAccessRights(AccessRightsTemplate.java:16)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.doExecute(WorkflowHandler.java:467)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.run(WorkflowHandler.java:282)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
2018-11-09 13:40:04.118+0100 [WorkflowExecutorPool-Thread-21] WARN {|__SYSTEM|vra7@domain.local:Find EC2Instance by ID:0a5a6c2c-b061-4283-9bb8-4288b4becb89:token=d1f782e2-2c3e-4ca4-af8f-8a2697a7e09c} [WorkflowItemTaskRunner] Script execution error on workflow : Find EC2Instance by ID / 'Scriptable task'(item1) : Cannot create EC2Instance object : java.lang.NullPointerException
2018-11-09 13:40:04.118+0100 [WorkflowExecutorPool-Thread-21] DEBUG {|__SYSTEM|vra7@domain.local:Find EC2Instance by ID:0a5a6c2c-b061-4283-9bb8-4288b4becb89:token=d1f782e2-2c3e-4ca4-af8f-8a2697a7e09c} [WorkflowItemTaskRunner] Script execution error stack
ch.dunes.workflow.engine.mbean.ScriptExecutionException: Cannot create EC2Instance object : java.lang.NullPointerException
at ch.dunes.workflow.engine.mbean.WorkflowScriptRunner.execute(WorkflowScriptRunner.java:199)
at ch.dunes.workflow.engine.mbean.runner.WorkflowItemTaskRunner.execute(WorkflowItemTaskRunner.java:45)
at ch.dunes.workflow.engine.mbean.runner.WorkflowItemTaskRunner.execute(WorkflowItemTaskRunner.java:26)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.executeItem(WorkflowHandler.java:1264)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.requestElementExecution(WorkflowHandler.java:1221)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.handleWorkflowTokenNextStep(WorkflowHandler.java:884)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.executeToken(WorkflowHandler.java:769)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.handleTokenExecution(WorkflowHandler.java:695)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.access$100(WorkflowHandler.java:116)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler$1.execute(WorkflowHandler.java:471)
at ch.dunes.model.ar.AccessRightsTemplate.executeWithAccessRights(AccessRightsTemplate.java:16)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.doExecute(WorkflowHandler.java:467)
at ch.dunes.workflow.engine.mbean.helper.WorkflowHandler.run(WorkflowHandler.java:282)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Is this meaningful?
Thanks Paul
Yes, thanks Paul.
For some reason, the code fails to create a Javascript wrapper for the EC2Instance object. Unfortunately, it doesn't (and cannot) tell us why
This type of error is not something that can be easily resolved at your side; we need to try to reproduce it in our environment to figure out what is going on. At the end, to fix it will probably require a patch for the plug-in. So, if not a problem for you, I would suggest to contact your VMware support representative to open an official support request.
BTW, forgot to ask which vRO version is this?
Hi Ilian,
thanks for the feedback. So I will create a new case referring to this threat.
My vRO version is 7.5.0
BR
Paul