The groovysh command seems broken with the jenkins-cli.jar.
if you use a "recent" version of Jenkins you should use the Jenkins SSH 
server to invoke the groovysh command. 

https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+SSH
http://kohsuke.org/2011/12/27/jenkins-now-acts-as-an-ssh-daemon/

Cheers
Daniel

Le jeudi 26 avril 2012 17:23:50 UTC+2, Carlton Brown a écrit :
>
> I wish to use groovysh to interact directly with Jenkins.   Does it work?
>
> On Wed, Apr 25, 2012 at 4:58 PM, Daniel PETISME 
> <daniel.peti...@gmail.com>wrote:
>
>> 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