Closed pserranoa closed 3 years ago
added secure by storing nomad credentials at jenkins credentials database
I get stack traces when running a build from this PR on top op jenkinci/master
:
WARNING: Failed to scout org.jenkinsci.plugins.nomad.NomadSlaveTemplate$DescriptorImpl
java.lang.NoClassDefFoundError: com/cloudbees/plugins/credentials/common/AbstractIdCredentialsListBoxModel
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at hudson.ExtensionFinder$Sezpoz.scout(ExtensionFinder.java:669)
at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:487)
at hudson.ExtensionList.load(ExtensionList.java:380)
at hudson.ExtensionList.ensureLoaded(ExtensionList.java:318)
at hudson.ExtensionList.getComponents(ExtensionList.java:183)
at jenkins.model.Jenkins$6.onInitMilestoneAttained(Jenkins.java:1099)
at jenkins.InitReactorRunner$1.onAttained(InitReactorRunner.java:83)
at org.jvnet.hudson.reactor.ReactorListener$Aggregator.lambda$onAttained$3(ReactorListener.java:102)
at org.jvnet.hudson.reactor.ReactorListener$Aggregator.run(ReactorListener.java:109)
at org.jvnet.hudson.reactor.ReactorListener$Aggregator.onAttained(ReactorListener.java:102)
at org.jvnet.hudson.reactor.Reactor$1.run(Reactor.java:177)
at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
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)
Caused by: java.lang.ClassNotFoundException: com.cloudbees.plugins.credentials.common.AbstractIdCredentialsListBoxModel
at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1374)
at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1327)
at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1080)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 17 more
Later:
WARNING: Caught exception evaluating: descriptor.getPropertyType(instance,field).itemTypeDescriptorOrDie in /apps/jenkins/configure. Reason: java.lang.reflect.Inv
ocationTargetException
java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor216.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
[...]
Caused by: java.lang.AssertionError: class org.jenkinsci.plugins.nomad.NomadSlaveTemplate is missing its descriptor in public java.util.List org.jenkinsci.plugins.nomad.NomadCloud.getTemplates(). See https://jenkins.io/redirect/developer/class-is-missing-descriptor
at hudson.model.Descriptor$PropertyType.getItemTypeDescriptorOrDie(Descriptor.java:208)
... 277 more
Then:
javax.servlet.ServletException: org.apache.commons.jelly.JellyTagException: jar:file:/var/cache/jenkins/war/WEB-INF/lib/jenkins-core-2.121.2.jar!/jenkins/model/Jenkins/configure.jelly:51:84: <st:include> org.apache.commons.jelly.JellyTagException: jar:file:/var/cache/jenkins/war/WEB-INF/lib/jenkins-core-2.121.2.jar!/lib/form/section.jelly:48:21: <d:invokeBody> org.apache.commons.jelly.JellyTagException: jar:file:/var/cache/jenkins/war/WEB-INF/lib/jenkins-core-2.121.2.jar!/lib/form/block.jelly:32:22: <d:invokeBody> org.apache.commons.jelly.JellyTagException: jar:file:/opt/jenkins/plugins/nomad/WEB-INF/lib/nomad.jar!/org/jenkinsci/plugins/nomad/NomadCloud/config.jelly:25:158: <st:include> com/cloudbees/plugins/credentials/common/AbstractIdCredentialsListBoxModel
at org.kohsuke.stapler.jelly.JellyFacet$1.dispatch(JellyFacet.java:105)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:734)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:864)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:668)
at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
[...]
Caused by: org.apache.commons.jelly.JellyTagException: jar:file:/var/cache/jenkins/war/WEB-INF/lib/jenkins-core-2.121.2.jar!/jenkins/model/Jenkins/configure.jelly:51:84: <st:include> org.apache.commons.jelly.JellyTagException: jar:file:/var/cache/jenkins/war/WEB-INF/lib/jenkins-core-2.121.2.jar!/lib/form/section.jelly:48:21: <d:invokeBody> org.apache.commons.jelly.JellyTagException: jar:file:/var/cache/jenkins/war/WEB-INF/lib/jenkins-core-2.121.2.jar!/lib/form/block.jelly:32:22: <d:invokeBody> org.apache.commons.jelly.JellyTagException: jar:file:/opt/jenkins/plugins/nomad/WEB-INF/lib/nomad.jar!/org/jenkinsci/plugins/nomad/NomadCloud/config.jelly:25:158: <st:include> com/cloudbees/plugins/credentials/common/AbstractIdCredentialsListBoxModel
at org.apache.commons.jelly.impl.TagScript.handleException(TagScript.java:726)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:281)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
[...]
Caused by: java.lang.RuntimeException: org.apache.commons.jelly.JellyTagException: jar:file:/var/cache/jenkins/war/WEB-INF/lib/jenkins-core-2.121.2.jar!/lib/form/section.jelly:48:21: <d:invokeBody> org.apache.commons.jelly.JellyTagException: jar:file:/var/cache/jenkins/war/WEB-INF/lib/jenkins-core-2.121.2.jar!/lib/form/block.jelly:32:22: <d:invokeBody> org.apache.commons.jelly.JellyTagException: jar:file:/opt/jenkins/plugins/nomad/WEB-INF/lib/nomad.jar!/org/jenkinsci/plugins/nomad/NomadCloud/config.jelly:25:158: <st:include> com/cloudbees/plugins/credentials/common/AbstractIdCredentialsListBoxModel
at org.kohsuke.stapler.jelly.groovy.JellyBuilder.doInvokeMethod(JellyBuilder.java:280)
at org.kohsuke.stapler.jelly.groovy.Namespace$ProxyImpl.invoke(Namespace.java:92)
at com.sun.proxy.$Proxy78.section(Unknown Source)
at lib.FormTagLib$section$11.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
at jenkins.model.GlobalCloudConfiguration.config.run(config.groovy:10)
at org.kohsuke.stapler.jelly.groovy.GroovierJellyScript.run(GroovierJellyScript.java:74)
at org.kohsuke.stapler.jelly.groovy.GroovierJellyScript.run(GroovierJellyScript.java:62)
at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:147)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
... 143 more
Caused by: org.apache.commons.jelly.JellyTagException: jar:file:/var/cache/jenkins/war/WEB-INF/lib/jenkins-core-2.121.2.jar!/lib/form/section.jelly:48:21: <d:invokeBody> org.apache.commons.jelly.JellyTagException: jar:file:/var/cache/jenkins/war/WEB-INF/lib/jenkins-core-2.121.2.jar!/lib/form/block.jelly:32:22: <d:invokeBody> org.apache.commons.jelly.JellyTagException: jar:file:/opt/jenkins/plugins/nomad/WEB-INF/lib/nomad.jar!/org/jenkinsci/plugins/nomad/NomadCloud/config.jelly:25:158: <st:include> com/cloudbees/plugins/credentials/common/AbstractIdCredentialsListBoxModel
at org.apache.commons.jelly.impl.TagScript.handleException(TagScript.java:726)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:281)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:46)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:38)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
etc. etc.
I rolled back to my previous version; will not try a clean build from jenkinci/master
to pin down the problem.
Built the clean jenkinsci/master
, no issues now. Seems to be something missing?
did you test it? we use this version at our company and looks right
@i4s-pserrano apologies, it was my own mistake. I left the old version, so Jenkins loaded both.
Any update on this one? We are enabling ACLs and this could really help us.
@ncorrare Did you also work on a similar PR? Can you help with this one?
Now that Nomad v1.0.0 is released and namespaces are added to the OSS version. Can we also add the namespace option in the plugin?