Hi Carlton, 

Jenkins-cli seems to have some issues concerning authentication. Groovysh 
allows you to interact directly with the Jenkins JVM using the goovy 
language.

If you don't need this "interaction" prefer the groovy command as a 
possible workaround


For instance.

$ java -jar jenkins-cli.jar -s http://localhost:8080/jenkins/ -i 
<myKeyFile> groovy test_script.gsh
Enter passphrase for <myKeyFile>:
ant - 1.1
javadoc - 1.0
Jenkins CVS Plug-in - 1.6
Maven Integration plugin - 1.460
Jenkins SSH Slaves plugin - 0.21
Jenkins Subversion Plug-in - 1.34
Jenkins Translation Assistance plugin - 1.8

and the test_script.gsh is reusing your command 
"jenkins.model.Jenkins.instance.pluginManager.plugins.each { 
println("${it.longName} - ${it.version}") }"

I try to add more details concerning jenkins-cli.jar tool: Jenkins CLI in 
Dev 
ML<https://groups.google.com/forum/?fromgroups#%21topic/jenkinsci-dev/Es4nvtZVyj0>

To skip the step of the creation of a groovy script file for each command, 
the usage talks about a pramater "=" to write the command in stdin.

Cheers

Daniel

On Wednesday, April 25, 2012 4:27:14 PM UTC+2, Carlton Brown wrote:
>
> Steps to reproduce:
> 1:  set up an SSH key under my username 
> 2:  verified that I am authenticated:  java -jar jenkins-cli.jar -s 
> http://myserver/jenkins  who-am-i
>      Authenticated as: myuser
>     Authorities:
>         authenticated
> 3:  tried to run a trivial script via groovysh and got an error
>   java -jar jenkins-cli.jar -s 
> http://myserver/jenkins<http://vbuild06.atld1:8080/jenkins> groovysh 
> 'jenkins.model.Jenkins.instance.pluginManager.plugins.each { 
> println("${it.longName} - ${it.version}") };'
> Exception in thread "main" java.lang.reflect.UndeclaredThrowableException
> at $Proxy2.main(Unknown Source)
> at hudson.cli.CLI.execute(CLI.java:271)
>  at hudson.cli.CLI._main(CLI.java:417)
> at hudson.cli.CLI.main(CLI.java:322)
> Caused by: hudson.remoting.ProxyException: 
> hudson.security.AccessDeniedException2: anonymous is missing the Administer 
> permission
>  at hudson.security.ACL.checkPermission(ACL.java:53)
> at hudson.model.Node.checkPermission(Node.java:381)
> at hudson.cli.GroovyshCommand.main(GroovyshCommand.java:61)
>  at hudson.cli.CliManagerImpl.main(CliManagerImpl.java:92)
> at sun.reflect.GeneratedMethodAccessor5352.invoke(Unknown Source)
>  at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
>  at 
> hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:274)
> at 
> hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:255)
>  at 
> hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:215)
> at hudson.remoting.UserRequest.perform(UserRequest.java:118)
>  at hudson.remoting.UserRequest.perform(UserRequest.java:48)
> at hudson.remoting.Request$2.run(Request.java:287)
>  at 
> hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
> at hudson.cli.CliManagerImpl$1.call(CliManagerImpl.java:63)
>  at 
> hudson.remoting.InterceptingExecutorService$2.call(InterceptingExecutorService.java:95)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>  at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>

Reply via email to