/******************************************************************************* * Copyright (c) Jan 28, 2011 Zend Technologies Ltd. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html *******************************************************************************/ package org.zend.webapi.internal.core.connection.request; import java.util.Date; import org.restlet.data.Method; import org.zend.webapi.core.connection.data.IResponseData; import org.zend.webapi.core.connection.data.IResponseData.ResponseType; import org.zend.webapi.core.connection.data.values.ServerType; import org.zend.webapi.core.connection.data.values.WebApiVersion; import org.zend.webapi.core.connection.response.ResponseCode; /** * Add a new server to the cluster. On a ZSCM with no valid license, this * operation will fail. * <p> * * Method Parameters: * <table border="1"> * <tr> * <th>Parameter</th> * <th>Type</th> * <th>Required</th> * <th>Description</th> * </tr> * <tr> * <td>serverName</td> * <td>String</td> * <td>Yes</td> * <td>Server Name</td> * </tr> * </tr> * <tr> * <td>serverUrl</td> * <td>String</td> * <td>Yes</td> * <td>Server address, as a full HTTP / HTTPS URL</td> * </tr> * <tr> * <td>guiPassword</td> * <td>String</td> * <td>Yes</td> * <td>Server GUI password</td> * </tr> * <tr> * <td>propagateSettings</td> * <td>Boolean</td> * <td>No</td> * <td>Propagate this server’s current settings to the rest of the cluster. * Default is FALSE</td> * </tr> * <tr> * <td>doRestart</td> * <td>Boolean</td> * <td>No</td> * <td>Initiate a PHP restart on the cluster after adding the server; Default is * FALSE. <i>Deprecated as of 1.1 in order to support automatic deployment. The * system will restart the added server automatically and will ignore this * parameter if passed.</i></td> * </tr> * </table> * * @author Roy, 2011 */ public class ClusterAddServerRequest extends AbstractRequest { private static final ResponseCode[] RESPONSE_CODES = new ResponseCode[] { ResponseCode.OK, ResponseCode.ACCEPTED }; public ClusterAddServerRequest(WebApiVersion version, Date date, String keyName, String userAgent, String host, String secretKey, ServerType type) { super(version, date, keyName, userAgent, host, secretKey, type); } /* * (non-Javadoc) * * @see org.zend.webapi.core.connection.request.IRequest#getMethod() */ public Method getMethod() { return Method.POST; } /** * set Server Name * * @param serverName */ public ClusterAddServerRequest setServerName(String serverName) { addParameter("serverName", serverName); return this; } /** * set Server address, as a full HTTP / HTTPS URL * * @param serverName */ public ClusterAddServerRequest setServerUrl(String serverUrl) { addParameter("serverUrl", serverUrl); return this; } /** * set Server GUI password * * @param serverName */ public ClusterAddServerRequest setGuiPassword(String guiPassword) { addParameter("guiPassword", guiPassword); return this; } /** * set propagateSettings - Propagate this server’s current settings to the * rest of the cluster. Default is FALSE * * @param serverName */ public ClusterAddServerRequest setPropagateSettings(boolean propagateSettings) { addParameter("propagateSettings", propagateSettings); return this; } /** * set doRestart Initiate a PHP restart on the cluster after adding the * server; Default is FALSE * * @param serverName * * @deprecated Deprecated as of 1.1 in order to support automatic * deployment. The system will restart the added server * automatically and will ignore this parameter if passed. */ public ClusterAddServerRequest setDoStart(boolean doRestart) { addParameter("doRestart", doRestart); return this; } /* * (non-Javadoc) * * @see org.zend.webapi.internal.core.connection.request.AbstractRequest# * getResponseCodeList() */ @Override protected ResponseCode[] getValidResponseCode() { return RESPONSE_CODES; } /* (non-Javadoc) * @see org.zend.webapi.core.connection.request.IRequest#getExpectedResponseDataType() */ public ResponseType getExpectedResponseDataType() { return IResponseData.ResponseType.SERVER_INFO; } /* * (non-Javadoc) * * @see org.zend.webapi.internal.core.connection.request.AbstractRequest# * getMethodName() */ protected String getRequestName() { return "clusterAddServer"; } }