use of org.ow2.proactive.resourcemanager.common.NSState in project scheduling by ow2-proactive.
the class RMRest method undeployNodeSource.
/**
* Remove the nodes of the node source and keep the node source undeployed
*
* @param sessionId a valid session id
* @param nodeSourceName the name of the node source to undeploy
* @return the result of the action, possibly containing the error message
* @throws NotConnectedException
*/
@Override
@PUT
@Path("nodesource/undeploy")
@Produces("application/json")
public NSState undeployNodeSource(@HeaderParam("sessionid") String sessionId, @FormParam("nodeSourceName") String nodeSourceName, @FormParam("preempt") boolean preempt) throws NotConnectedException {
ResourceManager rm = checkAccess(sessionId);
NSState nsState = new NSState();
try {
nsState.setResult(rm.undeployNodeSource(nodeSourceName, preempt).getBooleanValue());
} catch (RuntimeException ex) {
nsState.setResult(false);
nsState.setErrorMessage(cleanDisplayedErrorMessage(ex.getMessage()));
nsState.setStackTrace(StringEscapeUtils.escapeJson(getStackTrace(ex)));
}
return nsState;
}
use of org.ow2.proactive.resourcemanager.common.NSState in project scheduling by ow2-proactive.
the class DefineNodeSourceCommand method execute.
@Override
public void execute(ApplicationContext currentContext) throws CLIException {
QueryStringBuilder infrastructure = currentContext.getProperty(SET_INFRASTRUCTURE, QueryStringBuilder.class);
QueryStringBuilder policy = currentContext.getProperty(SET_POLICY, QueryStringBuilder.class);
if (infrastructure == null) {
throw new CLIException(REASON_INVALID_ARGUMENTS, "Infrastructure not specified");
}
if (policy == null) {
throw new CLIException(REASON_INVALID_ARGUMENTS, "Policy not specified");
}
if (currentContext.getProperty(SET_NODE_SOURCE, String.class) != null) {
nodeSource = currentContext.getProperty(SET_NODE_SOURCE, String.class);
}
HttpPost request = new HttpPost(currentContext.getResourceUrl(RM_REST_ENDPOINT));
QueryStringBuilder queryStringBuilder = new QueryStringBuilder();
queryStringBuilder.add("nodeSourceName", nodeSource).addAll(infrastructure).addAll(policy).add("nodesRecoverable", nodesRecoverable);
request.setEntity(queryStringBuilder.buildEntity(APPLICATION_FORM_URLENCODED));
HttpResponseWrapper response = execute(request, currentContext);
if (statusCode(OK) == statusCode(response)) {
NSStateView nsState = readValue(response, NSStateView.class, currentContext);
boolean success = nsState.isResult();
resultStack(currentContext).push(success);
if (success) {
writeLine(currentContext, "Node source successfully defined.");
} else {
writeLine(currentContext, "%s %s", "Cannot define node source:", nodeSource);
}
} else {
handleError("An error occurred while defining node source:", response, currentContext);
}
}
use of org.ow2.proactive.resourcemanager.common.NSState in project scheduling by ow2-proactive.
the class UndeployNodeSourceCommand method execute.
@Override
public void execute(ApplicationContext currentContext) throws CLIException {
HttpPut request = new HttpPut(currentContext.getResourceUrl(RM_REST_ENDPOINT));
QueryStringBuilder queryStringBuilder = new QueryStringBuilder();
queryStringBuilder.add("nodeSourceName", this.nodeSourceName).add("preempt", Boolean.toString(this.preempt));
request.setEntity(queryStringBuilder.buildEntity(APPLICATION_FORM_URLENCODED));
HttpResponseWrapper response = this.execute(request, currentContext);
if (this.statusCode(OK) == this.statusCode(response)) {
NSStateView nsState = this.readValue(response, NSStateView.class, currentContext);
boolean success = nsState.isResult();
this.resultStack(currentContext).push(success);
if (success) {
writeLine(currentContext, "Node source successfully undeployed.");
} else {
writeLine(currentContext, "%s %s", "Cannot undeploy node source:", this.nodeSourceName);
}
} else {
this.handleError("An error occurred while undeploying node source:", response, currentContext);
}
}
Aggregations