Am 22.02.2014 06:33, schrieb Ravid Te:
Hey Everyone,

I am new to plugin creation, and have a need to create a plugin that generates a specific file based on user-input to a remote node containing large strings of data.

*I am aware of the current "Execute Shell" build step option and "Execute remote commands via SSH" plugin, but do not want users to have to input this large string of data themselves into the job config shell execute text field.*

https://wiki.jenkins-ci.org/display/JENKINS/Managed+Script+Plugin
https://wiki.jenkins-ci.org/display/JENKINS/SharedObjects+Plugin

For now, I would like to create a plugin that can execute shell commands on a remote node, once I have this, I should be able to figure out the rest myself.

I found this code snippet (below) which works fine for executing simple shell commands on local jenkins system. What I want to do is modify this code snippet to also work when the job is configured to execute on a remote node. When I configured the job to execute on a remote node, I received the following error (below below)

If executing the commands on the remote node is too hard, is there a way to auto-input that large string of data into the execute shell text box in the jenkins job configuration, as this would work too?

Can anyone assist?

Thanks very much in advance,
~Ravid


[CODE SNIPPET]

List<Cause>  buildStepCause=  new  ArrayList();
  buildStepCause.add(new  Cause()  {
    public  String  getShortDescription()  {
      return  "Build Step started by Hello Builder";
    }
  });
  listener.started(buildStepCause);
ArgumentListBuilder args= new ArgumentListBuilder();
  if  (launcher.isUnix())  {
    args.add("/bin/ls");
    args.add("-la");
  }  else  {
    args.add("dir");  //Windows
  }
  String  homeDir=  System.getProperty("user.home");
  args.add(homeDir);
  try  {
    int  r;
    r=  launcher.launch().cmds(args).stdout(listener).join();
    if  (r!=  0)  {
      listener.finished(Result.FAILURE);
      return  false;
    }
  }  catch  (IOException  ioe)  {
    ioe.printStackTrace(listener.fatalError("Execution"  +  args+  "failed"));
    listener.finished(Result.FAILURE);
    return  false;
  }  catch  (InterruptedException  ie)  {
    ie.printStackTrace(listener.fatalError("Execution"  +  args+  "failed"));
    listener.finished(Result.FAILURE);
    return  false;
  }
listener.finished(Result.SUCCESS);


[ERROR LOG]

Building remotely onLocalVM  <http://localhost:8080/jenkins/computer/LocalVM>  
in workspace /opt/jenkins/workspace/Test
Build Step started by Hello Builder
FATAL: Execution/bin/ls -la /Users/vid401tfailed
java.io.IOException  
<http://stacktrace.jenkins-ci.org/search?query=java.io.IOException>: Remote 
call on LocalVM failed
        athudson.remoting.Channel.call(Channel.java:723)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.remoting.Channel.call&entity=method>
        athudson.Launcher$RemoteLauncher.launch(Launcher.java:862)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.Launcher$RemoteLauncher.launch&entity=method>
        athudson.Launcher$ProcStarter.start(Launcher.java:353)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.Launcher$ProcStarter.start&entity=method>
        athudson.Launcher$ProcStarter.join(Launcher.java:360)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.Launcher$ProcStarter.join&entity=method>
        atcom.owmessaging.testplugin.HelloWorldBuilder.perform(HelloWorldBuilder.java:90) 
 
<http://stacktrace.jenkins-ci.org/search/?query=com.owmessaging.testplugin.HelloWorldBuilder.perform&entity=method>
        athudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.tasks.BuildStepMonitor$1.perform&entity=method>
        
athudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:780)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.model.AbstractBuild$AbstractBuildExecution.perform&entity=method>
        athudson.model.Build$BuildExecution.build(Build.java:199)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.model.Build$BuildExecution.build&entity=method>
        athudson.model.Build$BuildExecution.doRun(Build.java:160)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.model.Build$BuildExecution.doRun&entity=method>
        athudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:565)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.model.AbstractBuild$AbstractBuildExecution.run&entity=method>
        athudson.model.Run.execute(Run.java:1592)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.model.Run.execute&entity=method>
        athudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.model.FreeStyleBuild.run&entity=method>
        athudson.model.ResourceController.execute(ResourceController.java:88)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.model.ResourceController.execute&entity=method>
        athudson.model.Executor.run(Executor.java:237)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.model.Executor.run&entity=method>
Caused by:java.lang.NoClassDefFoundError  
<http://stacktrace.jenkins-ci.org/search?query=java.lang.NoClassDefFoundError>: 
javax/servlet/ServletException
        athudson.Launcher$LocalLauncher.<init>(Launcher.java:755)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.Launcher$LocalLauncher.%3Cinit%3E&entity=method>
        athudson.Launcher$RemoteLaunchCallable.call(Launcher.java:991)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.Launcher$RemoteLaunchCallable.call&entity=method>
        athudson.Launcher$RemoteLaunchCallable.call(Launcher.java:965)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.Launcher$RemoteLaunchCallable.call&entity=method>
        athudson.remoting.UserRequest.perform(UserRequest.java:118)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.remoting.UserRequest.perform&entity=method>
        athudson.remoting.UserRequest.perform(UserRequest.java:48)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.remoting.UserRequest.perform&entity=method>
        athudson.remoting.Request$2.run(Request.java:326)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.remoting.Request$2.run&entity=method>
        
athudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) 
 
<http://stacktrace.jenkins-ci.org/search/?query=hudson.remoting.InterceptingExecutorService$1.call&entity=method>
        atjava.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)  
<http://stacktrace.jenkins-ci.org/search/?query=java.util.concurrent.FutureTask$Sync.innerRun&entity=method>
        atjava.util.concurrent.FutureTask.run(FutureTask.java:166)  
<http://stacktrace.jenkins-ci.org/search/?query=java.util.concurrent.FutureTask.run&entity=method>
        atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) 
 
<http://stacktrace.jenkins-ci.org/search/?query=java.util.concurrent.ThreadPoolExecutor.runWorker&entity=method>
        atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
 
<http://stacktrace.jenkins-ci.org/search/?query=java.util.concurrent.ThreadPoolExecutor$Worker.run&entity=method>
        atjava.lang.Thread.run(Thread.java:679)  
<http://stacktrace.jenkins-ci.org/search/?query=java.lang.Thread.run&entity=method>
Caused by:java.lang.ClassNotFoundException  
<http://stacktrace.jenkins-ci.org/search?query=java.lang.ClassNotFoundException>:
 javax.servlet.ServletException
        
athudson.remoting.RemoteClassLoader$ClassLoaderProxy.fetch(RemoteClassLoader.java:684)  
<http://stacktrace.jenkins-ci.org/search/?query=hudson.remoting.RemoteClassLoader$ClassLoaderProxy.fetch&entity=method>
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at 
hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:299)
        at hudson.remoting.Request$2.run(Request.java:326)
        at 
hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)







--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

--
You received this message because you are subscribed to the Google Groups "Jenkins 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to