ansible-plugin icon indicating copy to clipboard operation
ansible-plugin copied to clipboard

Ansible Resource Model Source failed, new nodes are not updated

Open marinhio75 opened this issue 1 year ago • 2 comments

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

marinhio75 avatar Oct 08 '24 05:10 marinhio75

i had a similar issue but fixed with https://github.com/rundeck-plugins/ansible-plugin/pull/388

madsi1m avatar Oct 09 '24 03:10 madsi1m

Hi @madsi1m we built the Plugin with your changes, unfortunately we still have the cache / refresh nodes problem.

Any other idea?

marinhio75 avatar Oct 11 '24 06:10 marinhio75