Class PluginImpl

java.lang.Object
hudson.Plugin
hudson.plugins.swarm.PluginImpl
All Implemented Interfaces:
Saveable, Loadable, org.kohsuke.stapler.StaplerProxy

public class PluginImpl extends Plugin
Exposes an entry point to add a new Swarm agent.
Author:
Kohsuke Kawaguchi
  • Constructor Details

    • PluginImpl

      public PluginImpl()
  • Method Details

    • doGetSlaveLabels

      public void doGetSlaveLabels(org.kohsuke.stapler.StaplerRequest2 req, org.kohsuke.stapler.StaplerResponse2 rsp, @QueryParameter String name) throws IOException
      Get the list of labels for an agent.
      Throws:
      IOException
    • doCheckSlaveExists

      public void doCheckSlaveExists(org.kohsuke.stapler.StaplerRequest2 req, org.kohsuke.stapler.StaplerResponse2 rsp, @QueryParameter String name) throws IOException
      Check if an agent exists. The effect is to ServletResponse.setContentType(java.lang.String)("text/plain; charset=UTF-8") into the response rsp and either write "ok" if it does, or report the error in plain text per getNodeByName(java.lang.String, org.kohsuke.stapler.StaplerResponse2) and HttpServletResponse.setStatus(int)(HttpServletResponse.SC_NOT_FOUND).
      Rationale: In practice, agents may get lost on the Jenkins controller server side due to networking issues or Jenkins controller JVM or hardware/OS lags. Then they can end up being removed from the list of agents running current builds or available for new ones. In the meanwhile, the actual agent (hudson.plugins.swarm.SwarmClient in the client part of swarm-plugin code base) may still think that it is connected and available for new builds; it may still be running child processes it was requested to before the unilateral disconnection.
      The -keepAliveInterval parameter (off by default) of the agent controls how often the running agent pings the controller to (re-)confirm its status as seen by the controller, and would try to reconnect if needed.
      Throws:
      IOException
    • doAddSlaveLabels

      @POST public void doAddSlaveLabels(org.kohsuke.stapler.StaplerRequest2 req, org.kohsuke.stapler.StaplerResponse2 rsp, @QueryParameter String name, @QueryParameter String labels) throws IOException
      Add labels to an agent.
      Throws:
      IOException
    • doRemoveSlaveLabels

      @POST public void doRemoveSlaveLabels(org.kohsuke.stapler.StaplerRequest2 req, org.kohsuke.stapler.StaplerResponse2 rsp, @QueryParameter String name, @QueryParameter String labels) throws IOException
      Remove labels from an agent.
      Throws:
      IOException
    • doCreateSlave

      @POST public void doCreateSlave(org.kohsuke.stapler.StaplerRequest2 req, org.kohsuke.stapler.StaplerResponse2 rsp, @QueryParameter String name, @QueryParameter(fixEmpty=true) String description, @QueryParameter int executors, @QueryParameter String remoteFsRoot, @QueryParameter String labels, @QueryParameter Node.Mode mode, @QueryParameter(fixEmpty=true) String hash, @QueryParameter boolean deleteExistingClients, @QueryParameter boolean keepDisconnectedClients) throws IOException
      Add a new Swarm agent.
      Throws:
      IOException