@Component
public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
- private static final String CLOUDIFY_ERROR = "CloudifyError";
private static final String CLOUDIFY = "Cloudify";
private static final String CREATE_DEPLOYMENT = "CreateDeployment";
private static final String DELETE_DEPLOYMENT = "DeleteDeployment";
if (installWorkflow.getStatus().equals(TERMINATED)) {
// Success!
// Create and return a DeploymentInfo structure. Include the Runtime outputs
- DeploymentOutputs outputs = getDeploymentOutputs (cloudify, deploymentId);
return new DeploymentInfoBuilder()
.withId(deployment.getId())
.withDeploymentInputs(deployment.getInputs())
- .withDeploymentOutputs(outputs.getOutputs())
+ .withDeploymentOutputs(getDeploymentOutputs(cloudify, deploymentId).get())
.fromExecution(installWorkflow)
.build();
}
* Get the runtime Outputs of a deployment.
* Return the Map of tag/value outputs.
*/
- private DeploymentOutputs getDeploymentOutputs (Cloudify cloudify, String deploymentId)
+ private Optional<Map<String, Object>> getDeploymentOutputs (Cloudify cloudify, String deploymentId)
throws MsoException
{
// Build and send the Cloudify request
- DeploymentOutputs deploymentOutputs = null;
+ DeploymentOutputs deploymentOutputs;
try {
GetDeploymentOutputs queryDeploymentOutputs = cloudify.deployments().outputsById(deploymentId);
logger.debug(queryDeploymentOutputs.toString());
deploymentOutputs = executeAndRecordCloudifyRequest(queryDeploymentOutputs);
+ if (deploymentOutputs != null) {
+ return Optional.ofNullable(deploymentOutputs.getOutputs());
+ } else {
+ return Optional.empty();
+ }
}
catch (CloudifyConnectException ce) {
// Couldn't connect to Cloudify
catch (CloudifyResponseException re) {
if (re.getStatus () == 404) {
// No Outputs
- return null;
+ return Optional.empty();
}
throw new MsoCloudifyException (re.getStatus(), re.getMessage(), re.getLocalizedMessage(), re);
}
// Catch-all
throw new MsoAdapterException (e.getMessage(), e);
}
-
- return deploymentOutputs;
}
/*
// Build and send the Cloudify request
Deployment deployment = new Deployment();
- DeploymentOutputs outputs = null;
try {
GetDeployment queryDeployment = cloudify.deployments().byId(deploymentId);
logger.debug(queryDeployment.toString());
-
-// deployment = queryDeployment.execute();
deployment = executeAndRecordCloudifyRequest(queryDeployment);
- outputs = getDeploymentOutputs (cloudify, deploymentId);
-
// Next look for the latest execution
ListExecutions listExecutions = cloudify.executions().listFiltered ("deployment_id=" + deploymentId, "-created_at");
Executions executions = listExecutions.execute();
return new DeploymentInfoBuilder()
.withId(deployment.getId())
.withDeploymentInputs(deployment.getInputs())
- .withDeploymentOutputs(outputs.getOutputs())
+ .withDeploymentOutputs(getDeploymentOutputs(cloudify, deploymentId).get())
.fromExecution(executions.getItems().get(0))
.build();
}
return new DeploymentInfoBuilder()
.withId(deployment.getId())
.withDeploymentInputs(deployment.getInputs())
- .withDeploymentOutputs(outputs.getOutputs())
+ .withDeploymentOutputs(getDeploymentOutputs(cloudify, deploymentId).get())
.build();
} else {
// Deployment not found. Default status of a DeploymentInfo object is NOTFOUND
logger.debug ("Ready to Uninstall/Delete Deployment ({})", deploymentId);
// Query first to save the trouble if deployment not found
- Deployment deployment = null;
- try {
+ try {
GetDeployment queryDeploymentRequest = cloudify.deployments().byId(deploymentId);
logger.debug(queryDeploymentRequest.toString());
- deployment = executeAndRecordCloudifyRequest (queryDeploymentRequest);
+ // deployment = executeAndRecordCloudifyRequest (queryDeploymentRequest);
}
catch (CloudifyResponseException e) {
// Since this came on the 'Create Deployment' command, nothing was changed
/*
* Query the outputs before deleting so they can be returned as well
*/
- DeploymentOutputs outputs = getDeploymentOutputs (cloudify, deploymentId);
+ //DeploymentOutputs outputs = getDeploymentOutputs (cloudify, deploymentId);
/*
* Next execute the "uninstall" workflow.
// At this point, the deployment has been successfully uninstalled.
// Next step is to delete the deployment itself
+ Deployment deployment;
try {
DeleteDeployment deleteRequest = cloudify.deployments().deleteByName(deploymentId);
logger.debug(deleteRequest.toString());
return new DeploymentInfoBuilder()
.withId(deployment.getId())
.withDeploymentInputs(deployment.getInputs())
- .withDeploymentOutputs(outputs.getOutputs())
+ .withDeploymentOutputs(getDeploymentOutputs(cloudify, deploymentId).get())
.fromExecution(uninstallWorkflow)
.build();
}