Ansible Resource Model Source failed, new nodes are not updated
Hi All,
we use Rundeck 5.6.0 with Ansible plugin 4.0.5-SNAPSHOT
Get known host via GitLab works Known_host_list is available at rundeck server checked with ansible-inventory -i /var/lib/rundeck/projects/test/git/ansible/hosts --list but Ansible Resource Model Source failed New nodes are not updated, only old nodes are available and there are errors in LOGs
Thank you in advance for any help!
Best regards Mari
In the Rundeck service log following error is shown:
ERROR resources.ExceptionCatchingResourceModelSource [NodeService-SourceLoader88] - [ResourceModelSource: 1.source (com.batix.rundeck.plugins.AnsibleResourceModelSourceFactory), project: SBB_Discovery]
java.lang.NullPointerException: null
at java.io.StringReader.<init>(StringReader.java:50) ~[?:?]
at org.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:57) ~[snakeyaml-2.2.jar!/:?]
at org.yaml.snakeyaml.Yaml.load(Yaml.java:422) ~[snakeyaml-2.2.jar!/:?]
at com.rundeck.plugins.ansible.plugin.AnsibleResourceModelSource.ansibleInventoryList(AnsibleResourceModelSource.java:704) ~[?:?]
at com.rundeck.plugins.ansible.plugin.AnsibleResourceModelSource.getNodes(AnsibleResourceModelSource.java:403) ~[?:?]
at com.dtolabs.rundeck.core.resources.ExceptionCatchingResourceModelSource.getNodes(ExceptionCatchingResourceModelSource.java:58) ~[rundeck-core-5.6.0-20240912.jar!/:?]
at com.dtolabs.rundeck.core.resources.DelegateResourceModelSource.getNodes(DelegateResourceModelSource.java:35) ~[rundeck-core-5.6.0-20240912.jar!/:?]
at com.dtolabs.rundeck.core.common.ProjectNodeSupport.getNodeSet(ProjectNodeSupport.java:137) ~[rundeck-core-5.6.0-20240912.jar!/:?]
at com.dtolabs.rundeck.core.common.ProjectNodeSupport$ProjectNodesSource.getNodes(ProjectNodeSupport.java:358) ~[rundeck-core-5.6.0-20240912.jar!/:?]
at com.dtolabs.rundeck.core.resources.ExceptionCatchingResourceModelSource.getNodes(ExceptionCatchingResourceModelSource.java:58) ~[rundeck-core-5.6.0-20240912.jar!/:?]
at com.dtolabs.rundeck.core.resources.ResourceModelSource$getNodes$8.call(Unknown Source) ~[?:?]
at rundeck.services.nodes.CachedProjectNodes.reloadNodeSet(CachedProjectNodes.groovy:44) ~[classes!/:?]
at rundeck.services.nodes.CachedProjectNodes$reloadNodeSet.call(Unknown Source) ~[?:?]
at rundeck.services.NodeService$_loadNodes_closure4.doCall(NodeService.groovy:295) ~[classes!/:?]
at rundeck.services.NodeService$_loadNodes_closure4.doCall(NodeService.groovy) ~[classes!/:?]
at jdk.internal.reflect.GeneratedMethodAccessor6948.invoke(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107) ~[groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323) ~[groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:274) ~[groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) ~[groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.Closure.call(Closure.java:427) ~[groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.Closure.call(Closure.java:406) ~[groovy-3.0.19.jar!/:3.0.19]
at com.codahale.metrics.Timer.time(Timer.java:118) ~[metrics-core-4.2.22.jar!/:4.2.22]
at org.grails.plugins.metricsweb.MetricService.withTimer(MetricService.groovy:61) ~[grails-metricsweb-5.6.0-20240912-plain.jar!/:?]
at jdk.internal.reflect.GeneratedMethodAccessor4756.invoke(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:48) ~[groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrap.invoke(PogoMetaMethodSite.java:178) ~[groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:69) ~[groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:157) ~[groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callSafe(AbstractCallSite.java:112) ~[groovy-3.0.19.jar!/:3.0.19]
at rundeck.services.NodeService.loadNodes(NodeService.groovy:307) ~[classes!/:?]
at jdk.internal.reflect.GeneratedMethodAccessor4747.invoke(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107) ~[groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323) ~[groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1254) ~[groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:94) ~[groovy-3.0.19.jar!/:3.0.19]
at rundeck.services.NodeService.this$dist$invoke$1(NodeService.groovy) ~[classes!/:?]
at rundeck.services.NodeService$3.methodMissing(NodeService.groovy) ~[classes!/:?]
at jdk.internal.reflect.GeneratedMethodAccessor2820.invoke(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107) ~[groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:948) ~[groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1333) ~[groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1256) ~[groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) ~[groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:814) ~[groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.GroovyObject.invokeMethod(GroovyObject.java:39) ~[groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeOnDelegationObjects(ClosureMetaClass.java:408) ~[groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:348) ~[groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:61) ~[groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:194) ~[groovy-3.0.19.jar!/:3.0.19]
at rundeck.services.NodeService$3$_reload_closure1.doCall(NodeService.groovy:152) ~[classes!/:?]
at rundeck.services.NodeService$3$_reload_closure1.doCall(NodeService.groovy) ~[classes!/:?]
at jdk.internal.reflect.GeneratedMethodAccessor6946.invoke(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107) ~[groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323) ~[groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:274) ~[groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) ~[groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.Closure.call(Closure.java:427) ~[groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.Closure.call(Closure.java:406) ~[groovy-3.0.19.jar!/:3.0.19]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
at org.springframework.core.task.SimpleAsyncTaskExecutor$ConcurrencyThrottlingRunnable.run(SimpleAsyncTaskExecutor.java:284) ~[spring-core-5.3.34.jar!/:5.3.34]
at java.lang.Thread.run(Thread.java:829) ~[?:?]
WARN resources.LoggingResourceModelSourceCache [NodeService-SourceLoader88] - [ResourceModelSource: 1.source (com.batix.rundeck.plugins.AnsibleResourceModelSourceFactory), project: SBB_Discovery] Returning cached model data
i had a similar issue but fixed with https://github.com/rundeck-plugins/ansible-plugin/pull/388
Hi @madsi1m we built the Plugin with your changes, unfortunately we still have the cache / refresh nodes problem.
Any other idea?