rundeck-ec2-nodes-plugin icon indicating copy to clipboard operation
rundeck-ec2-nodes-plugin copied to clipboard

Update README and upgrade path instructions

Open isuftin opened this issue 6 years ago • 2 comments

Today I upgraded from 1.5.6 to 1.5.9 version of this plugin. After that I was unable to find any nodes in my projects. This was because of this update: https://github.com/rundeck-plugins/rundeck-ec2-nodes-plugin/commit/f69c46ac2021975328181868057b7b89b535eba5

In order to make this work, I had to go to node configuration screen for each of my projects, edit and re-save each node. In doing so, it re-wrote the node configuration properly to jive with the updated version of this plugin.

Apparently the plugin was having an issue with no having the MAX_RESULTS property defined due to a previous version of this plugin being used and upgrading to the latest.

This new property is not documented anywhere and it is also not documented that upgrading to the latest version of this plugin will break node searching without intervention.

An example of the stack trace when searching for nodes:

2019-01-29 23:47:19,966 [NodeService-SourceLoader95] ERROR com.dtolabs.rundeck.core.common.ProjectNodeSupport - Failed loading resource model source #3 in project Helpers, skipping: java.lang.NumberFormat
Exception: null
com.dtolabs.rundeck.core.resources.ResourceModelSourceServiceException: java.lang.NumberFormatException: null
        at com.dtolabs.rundeck.core.resources.ResourceModelSourceService.getCloseableSourceForConfiguration(ResourceModelSourceService.java:124)
        at com.dtolabs.rundeck.core.common.ProjectNodeSupport.loadResourceModelSource(ProjectNodeSupport.java:445)
        at com.dtolabs.rundeck.core.common.ProjectNodeSupport.loadResourceModelSources(ProjectNodeSupport.java:266)
        at com.dtolabs.rundeck.core.common.ProjectNodeSupport.getResourceModelSourcesInternal(ProjectNodeSupport.java:207)
        at com.dtolabs.rundeck.core.common.ProjectNodeSupport.getNodeSet(ProjectNodeSupport.java:110)
        at com.dtolabs.rundeck.core.common.ProjectNodeSupport$ProjectNodesSource.getNodes(ProjectNodeSupport.java:339)
        at com.dtolabs.rundeck.core.resources.ExceptionCatchingResourceModelSource.getNodes(ExceptionCatchingResourceModelSource.java:57)
        at com.dtolabs.rundeck.core.resources.ResourceModelSource$getNodes.call(Unknown Source)
        at rundeck.services.nodes.CachedProjectNodes.reloadNodeSet(CachedProjectNodes.groovy:44)
        at rundeck.services.nodes.CachedProjectNodes$reloadNodeSet.call(Unknown Source)
        at rundeck.services.NodeService$_loadNodes_closure3.doCall(NodeService.groovy:265)
        at rundeck.services.NodeService$_loadNodes_closure3.doCall(NodeService.groovy)
        at sun.reflect.GeneratedMethodAccessor2166.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1218)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1125)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
        at groovy.lang.Closure.call(Closure.java:414)
        at groovy.lang.Closure.call(Closure.java:408)
        at com.codahale.metrics.Timer.time(Timer.java:99)
        at com.codahale.metrics.Timer$time$2.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
        at com.codahale.metrics.Timer$time$2.call(Unknown Source)
        at MetricswebGrailsPlugin$_addDynamicMetricMethods_closure26.doCall(MetricswebGrailsPlugin.groovy:190)
        at sun.reflect.GeneratedMethodAccessor531.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1218)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1125)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)                                                                                                                        [24/20380]
        at groovy.lang.Closure.call(Closure.java:414)
        at org.codehaus.groovy.runtime.metaclass.ClosureStaticMetaMethod.invoke(ClosureStaticMetaMethod.java:62)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoMetaMethodSiteNoUnwrap.invoke(PogoMetaMethodSite.java:233)
        at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:71)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:141)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callSafe(AbstractCallSite.java:101)
        at rundeck.services.NodeService.loadNodes(NodeService.groovy:277)
        at sun.reflect.GeneratedMethodAccessor2159.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1218)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1125)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:82)
        at rundeck.services.NodeService.this$dist$invoke$1(NodeService.groovy)
        at rundeck.services.NodeService$3.methodMissing(NodeService.groovy)
        at sun.reflect.GeneratedMethodAccessor2038.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
        at groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:944)
        at groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1267)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1220)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1125)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:815)
        at rundeck.services.NodeService$3.invokeMethod(NodeService.groovy)
        at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1283)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1177)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1125)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:174)
        at rundeck.services.NodeService$3$_reload_closure1.doCall(NodeService.groovy:129)
        at rundeck.services.NodeService$3$_reload_closure1.doCall(NodeService.groovy)
        at sun.reflect.GeneratedMethodAccessor2250.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1218)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1125)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
        at groovy.lang.Closure.call(Closure.java:414)
        at groovy.lang.Closure.call(Closure.java:408)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.springframework.core.task.SimpleAsyncTaskExecutor$ConcurrencyThrottlingRunnable.run(SimpleAsyncTaskExecutor.java:251)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NumberFormatException: null
        at java.lang.Integer.parseInt(Integer.java:542)
        at java.lang.Integer.parseInt(Integer.java:615)
        at com.dtolabs.rundeck.plugin.resources.ec2.EC2ResourceModelSource.<init>(EC2ResourceModelSource.java:146)
        at com.dtolabs.rundeck.plugin.resources.ec2.EC2ResourceModelSourceFactory.createResourceModelSource(EC2ResourceModelSourceFactory.java:78)
        at com.dtolabs.rundeck.core.resources.ResourceModelSourceService.getCloseableSourceForConfiguration(ResourceModelSourceService.java:112)
        ... 84 more

isuftin avatar Jan 29 '19 23:01 isuftin

Can confirm that the issue is still present when upgrading to the latest version 1.5.16

maunzCache avatar Apr 07 '20 07:04 maunzCache

After adding the missing parameter in the project settings of all EC2 node sources the error is gone:

resources.source.1.config.pageResults=100

stearz avatar Apr 07 '20 08:04 stearz