rundeck-plugins / rundeck-ec2-nodes-plugin

Get resource node data from Amazon EC2
86 stars 45 forks source link

Update README and upgrade path instructions #97

Open isuftin opened 5 years ago

isuftin commented 5 years ago

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
maunzCache commented 4 years ago

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

stearz commented 4 years ago

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

resources.source.1.config.pageResults=100