Create Server Web Service

This web service creates a RapidDeploy server on the framework server.

Example request

PUT http://localhost:8090/MidVision/ws/server/create HTTP/1.1
Accept-Encoding: gzip,deflate
Authorization: ********************
Content-Type: application/xml
Content-Length: 16001
Host: localhost:8090
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

<Server>
        <buildStore>/tmp</buildStore>
        <displayname>localhost_linux</displayname>
        <hostname>localhost</hostname>
        <hostnames>localhost</hostnames>
   <pluginDataSet>
      <id>175</id>
      <pluginData><![CDATA[<?xml version="1.0" encoding="UTF-8"?><projectPlugins><projectPlugins><active>true</active><data><name>JschTransport</name><displayName>Ssh - Jsch Transport</displayName><version>4.1.0</version><description/><fields><headerTitle>Connection Settings</headerTitle><fieldKey>port</fieldKey><fieldValue>22</fieldValue><label>Ssh Port</label><type>TEXT</type><mandatory>true</mandatory><helpText>The Ssh port on the target server. This is typically port 22.</helpText><toolTipText>The Ssh port on the target server.</toolTipText><style>width: 50em;</style><classType>java.lang.Integer</classType></fields><fields><headerTitle>Connection Settings</headerTitle><fieldKey>connectionTimeout</fieldKey><fieldValue>2400000</fieldValue><label>Connection timeout (ms)</label><type>TEXT</type><mandatory>true</mandatory><helpText>The Ssh connection timeout in milliseconds.</helpText><toolTipText>The Ssh connection timeout in milliseconds.</toolTipText><style>width: 50em;</style><classType>java.lang.Integer</classType></fields><fields><headerTitle>Connection Settings</headerTitle><fieldKey>retrySshConnection</fieldKey><fieldValue>true</fieldValue><label>Retry failed connection</label><type>CHECKONE</type><mandatory>false</mandatory><helpText>This field defines the behavior in case of failed ssh connection during command execution or uploading/downloading file. If set to true, RapidDeploy will retry connection as many times as it is specified in Number of retries field. If set to false - in case of failed connection the process will fail immediately.</helpText><toolTipText>Defines the behavior in case of failed ssh connection during command execution or uploading/downloading file.</toolTipText><style>text-align: left;</style><classType>java.lang.Boolean</classType></fields><fields><headerTitle>Connection Settings</headerTitle><fieldKey>retriesNumber</fieldKey><fieldValue>6</fieldValue><label>Number of retries</label><type>TEXT</type><mandatory>true</mandatory><helpText>The Number of retries to establish new ssh connection in case of failed connection during uploading/downloading file. Note that this parameter is used only if Retry failed connection checkbox is selected</helpText><toolTipText>The Number of retries to establish new ssh connection in case of failed connection during uploading/downloading file.</toolTipText><style>width: 50em;</style><classType>java.lang.Integer</classType></fields><fields><headerTitle>Connection Settings</headerTitle><fieldKey>timeBetweenRetries</fieldKey><fieldValue>5</fieldValue><label>Time between retries in seconds</label><type>TEXT</type><mandatory>true</mandatory><helpText>The time between retries of establishing ssh connection in case of failed connection during uploading/downloading file. Note that this parameter is used only if Retry failed connection checkbox is selected</helpText><toolTipText>The time between retries of establishing ssh connection in case of failed connection during uploading/downloading file.</toolTipText><style>width: 50em;</style><classType>java.lang.Integer</classType></fields><fields><headerTitle>Authentication Settings</headerTitle><fieldKey>username</fieldKey><fieldValue>root</fieldValue><label>Username</label><type>TEXT</type><mandatory>true</mandatory><helpText>The username to use for authenticating against Ssh server. This user must exist and be configured for Ssh
                on the target server.</helpText><toolTipText>The username to use for authenticating against Ssh server.
                </toolTipText><style>width: 50em;</style><classType>java.lang.String</classType></fields><fields><headerTitle>Authentication Settings</headerTitle><fieldKey>password</fieldKey><fieldValue>{_MV@ENC#_}i1f/JmCZydw=</fieldValue><label>Password</label><type>SECRET</type><mandatory>false</mandatory><helpText>The password to use for authenticating against the Ssh server (if using password authentication).</helpText><toolTipText>The user password.</toolTipText><style>width: 50em;</style><classType>java.lang.String</classType></fields><fields><headerTitle>Authentication Settings</headerTitle><fieldKey>confirmPassword</fieldKey><fieldValue>{_MV@ENC#_}8S+jvTj0Yj8=</fieldValue><label>Confirm Password</label><type>SECRET</type><mandatory>false</mandatory><helpText>The password to use for authenticating against the Ssh server (if using password authentication).</helpText><toolTipText>The user password.</toolTipText><style>width: 50em;</style><classType>java.lang.String</classType></fields><fields><headerTitle>Authentication Settings</headerTitle><fieldKey>sshKeyFilePath</fieldKey><fieldValue/><label>Ssh Key File Path</label><type>TEXT</type><mandatory>false</mandatory><helpText>The path to the Ssh key file on the RapidDeploy server. Required only if using key file authentication. Example: ~/.ssh/id_rsa_1024_b</helpText><toolTipText>The path to the Ssh key file.
                </toolTipText><style>width: 50em;</style><classType>java.lang.String</classType></fields><fields><headerTitle>Authentication Settings</headerTitle><fieldKey>sshKeyFilePassphrase</fieldKey><fieldValue/><label>Passphrase</label><type>SECRET</type><mandatory>false</mandatory><helpText>The passphrase for the Ssh Key File. Only required if using key file authentication with a passphrase secured key.</helpText><toolTipText>The key file passphrase.</toolTipText><style>width: 50em;</style><classType>java.lang.String</classType></fields><fields><headerTitle>Authentication Settings</headerTitle><fieldKey>confirmSshKeyFilePassphrase</fieldKey><fieldValue/><label>Confirm Passphrase</label><type>SECRET</type><mandatory>false</mandatory><helpText>The passphrase for the Ssh Key File. Only required if using key file authentication with a passphrase secured key.</helpText><toolTipText>The key file passphrase.</toolTipText><style>width: 50em;</style><classType>java.lang.String</classType></fields><fields><headerTitle>Java Settings</headerTitle><fieldKey>manageJava</fieldKey><fieldValue>false</fieldValue><label>Java Managed by RapidDeploy</label><type>CHECKONE</type><mandatory>false</mandatory><helpText>This defines which version of Java to use on the target machine.  Java push requires SSH to connect to the target server, therefore SSH must be enabled and configured to manage java.  If it is set to false, then the SSH environment will be used to select the version of Java to use on deployments.</helpText><toolTipText>This defines which version of Java to use on the target machine.</toolTipText><style>text-align: left;</style><classType>java.lang.Boolean</classType></fields><fields><headerTitle>Java Settings</headerTitle><fieldKey>localJavaPath</fieldKey><fieldValue/><label>Local JAVA_HOME Path</label><type>TEXT</type><mandatory>false</mandatory><helpText>The path to Java 1.8 home on the RapidDeploy server.  This is the version of Java that is copied over to the target server if the 'Java Managed by RapidDeploy' is set to true.</helpText><toolTipText>Location of Java files on the RapidDeploy server that will be deployed to the target server. If the path to the Java files on the RapidDeploy server is not set, java will not be deployed onto the target server.</toolTipText><style>width: 50em;</style><classType>java.lang.String</classType></fields><fields><headerTitle>Java Settings</headerTitle><fieldKey>remoteJavaPath</fieldKey><fieldValue/><label>Remote JAVA_HOME Path</label><type>TEXT</type><mandatory>false</mandatory><helpText>The path to Java 1.8 home on the target server.  Location of the Java files on the target server. If this value is not set, Java will be sourced from the target users path variable. If this is set and RapidDeploy is used to manage Java, RapidDeploy will deploy the Java files to this location.</helpText><toolTipText>The path to Java 1.8 home on the target server.  Location of the Java files on the target server. If this value is not set, Java will be sourced from the target users path variable. If this is set and RapidDeploy is used to manage Java, RapidDeploy will deploy the Java files to this location.</toolTipText><style>width: 50em;</style><classType>java.lang.String</classType></fields><fields><headerTitle>Download Settings</headerTitle><fieldKey>checkDownloadSize</fieldKey><fieldValue>true</fieldValue><label>Check download file size</label><type>CHECKONE</type><mandatory>false</mandatory><helpText>Check that the downloaded file is not still downloading and, once complete, the size matches the size of the (remote) source file. 
                If waitForDownload is checked, repeat this check every 5 seconds until the file size is no longer changing. Perform a final check to ensure the file size matches that of the source. If it doesn't, re-download the file.
                If waitForDownload is unchecked, repeat this check once, and if the file size is changing, throw an exception and notify the user that the file is still downloading and to come back later.</helpText><toolTipText>Check that the downloaded file is not still downloading and, once complete, the size matches the size of the (remote) source file.</toolTipText><style>text-align: left;</style><classType>java.lang.Boolean</classType></fields><fields><headerTitle>Download Settings</headerTitle><fieldKey>waitForDownload</fieldKey><fieldValue>true</fieldValue><label>Wait for download</label><type>CHECKONE</type><mandatory>false</mandatory><helpText>This field defines the behavior of the second and subsequent download requests of a file for which a download is in progress. If set to true, they will wait on completion of the download. If set to false they will be issued with a message to come back later. Set this value to false if files from this server are unusually large or the network connection is unusually slow.</helpText><toolTipText>Defines the behavior of the second and subsequent downloader's of a file for which a download is in progress.</toolTipText><style>text-align: left;</style><classType>java.lang.Boolean</classType></fields><fields><headerTitle>Download Settings</headerTitle><fieldKey>fileTransferMode</fieldKey><fieldValue>OVERRIDE</fieldValue><label>File transfer mode</label><listOfChoices>OVERRIDE,RESUME</listOfChoices><type>SELECTONE</type><mandatory>false</mandatory><helpText>The file transfer mode defines the behavior of RD in case of failed connection during uploading file. If is set to OVERRIDE RapidDeploy will always upload new file. If is set to RESUME it will check if the specified file already exists and if yes it will continue uploading this file</helpText><toolTipText>Choose an alternative execution mode for your server.</toolTipText><style>width: 50em;</style><classType>java.lang.String</classType></fields><fields><headerTitle>Agent Settings</headerTitle><fieldKey>remoteAgentPath</fieldKey><fieldValue/><label>Remote Agent Path</label><type>TEXT</type><mandatory>false</mandatory><helpText>The path of the remote agent directory on the target server. If this is set, RapidDeploy will deploy the agent files to this location.</helpText><toolTipText>The path of the remote agent directory on the target server. If this is set, RapidDeploy will deploy the agent files to this location.</toolTipText><style>width: 50em;</style><classType>java.lang.String</classType></fields><fields><headerTitle>Agent Settings</headerTitle><fieldKey>remoteTempPackage</fieldKey><fieldValue>false</fieldValue><label>Temporal Remote Package</label><type>CHECKONE</type><mandatory>false</mandatory><helpText>Enable or disable temporal remote package on the target server. If this is set, RapidDeploy will deploy the deployment package with a temporal name in the remote build store.</helpText><toolTipText>Enable or disable temporal remote package on the target server. If this is set, RapidDeploy will deploy the deployment package with a temporal name in the remote build store.</toolTipText><style>text-align: left;</style><classType>java.lang.Boolean</classType></fields><fields><headerTitle>File permissions</headerTitle><fieldKey>chmodRdFiles</fieldKey><fieldValue/><label>Change permissions of RD files</label><type>TEXT</type><mandatory>false</mandatory><helpText>Change the permissions of the RD files on the target. Use the three digit (octal) permission code (e.g.: 777 means rwxrwxrwx).</helpText><toolTipText>Change the permissions of the RD files on the target. Use the three digit (octal) permission code (e.g.: 777 means rwxrwxrwx).</toolTipText><style>width: 50em;</style><classType>java.lang.Integer</classType></fields><fields><headerTitle>Alternative execution mode</headerTitle><fieldKey>altRunnerType</fieldKey><fieldValue>NONE</fieldValue><label>Alternative execution type</label><listOfChoices>NONE,SU,SUDO,PBRUN</listOfChoices><type>SELECTONE</type><mandatory>false</mandatory><helpText>Choose an alternative execution mode for your server.</helpText><toolTipText>Choose an alternative execution mode for your server.</toolTipText><style>width: 50em;</style><classType>java.lang.String</classType></fields><fields><headerTitle>Alternative execution mode</headerTitle><fieldKey>altRunnerPreFixParameters</fieldKey><fieldValue/><label>Starting execution parameters</label><type>TEXT</type><mandatory>false</mandatory><helpText>Set the altRunnerPreFixParameters for the execution. The execution type will suffixed with the parameters, which together prefixed to the java command. The command will be built as the following: AltrunnerType + [altRunnerPreFixParameters] + Java command + [altRunnerSuffixParameters]</helpText><toolTipText>Set the altRunnerPreFixParameters for the execution. The execution type will suffixed with the parameters, which together prefixed to the java command. The command will be built as the following: AltrunnerType + [altRunnerPreFixParameters] + Java command + [altRunnerSuffixParameters]</toolTipText><style>width: 50em;</style><classType>java.lang.String</classType></fields><fields><headerTitle>Alternative execution mode</headerTitle><fieldKey>altRunnerSuffixParameters</fieldKey><fieldValue/><label>Ending execution parameters</label><type>TEXT</type><mandatory>false</mandatory><helpText>Set the altRunnerSuffixParameters for the execution. The java command will suffixed with the altRunnerSuffixParameters. The command will be built as the following: AltrunnerType + [altRunnerPreFixParameters] + Java command + [altRunnerSuffixParameters]</helpText><toolTipText>Set the altRunnerSuffixParameters for the execution. The java command will suffixed with the altRunnerSuffixParameters. The command will be built as the following: AltrunnerType + [altRunnerPreFixParameters] + Java command + [altRunnerSuffixParameters]</toolTipText><style>width: 50em;</style><classType>java.lang.String</classType></fields><panelTitle>Ssh Configuration</panelTitle></data><pluginName>Ssh - Jsch Transport (v4.2.0)</pluginName><pluginType>transport</pluginType><pluginVersion>4.2.0</pluginVersion></projectPlugins></projectPlugins>]]></pluginData>
   </pluginDataSet>
        <product>UNIX</product>
        <serverEnabled>true</serverEnabled>
        <version />
</Server>

Example Response

<html>
   <head>
      <meta content="HTML Tidy for Java (vers. 26 Sep 2004), see www.w3.org" name="generator"/>
      <title>createServer</title>
      <link type="text/css" rel="stylesheet" href="http://localhost:8090/MidVision/ui/javax.faces.resource/components.css?ln=primefaces"/>
   </head>
   <body>
      <div>
         <div style="border-bottom: 0.1em solid black; display: block; height: 30px; margin-bottom: 1em; margin-top: 0.5em; position: relative; width: 100%;">
            <h2>createServer</h2>
         </div>
         <div aria-live="polite" class="ui-messages ui-widget">
            <div class="ui-messages-info ui-corner-all">
               <ul>
                  <li>
                     <span class="ui-messages-info-summary">Create Server</span>
                     <br/>
                     <span class="ui-messages-info-detail">SUCCESS: The target server [localhost_linux] was created.</span>
                  </li>
               </ul>
            </div>
         </div>
      </div>
   </body>
</html>