@Override protected void _terminate(TaskListener arg0) throws IOException, InterruptedException { //TODO: Check when this method is getting called and code accordingly LOGGER.log(Level.INFO, "AzureVMAgent: _terminate: called for agent {0}", getNodeName()); ProvisioningActivity activity = CloudStatistics.get().getActivityFor(this); if (activity != null) { activity.enterIfNotAlready(ProvisioningActivity.Phase.COMPLETED); } }
ProvisioningActivity activity = CloudStatistics.get().getActivityFor(this); if (nonNull(activity)) { activity.enterIfNotAlready(ProvisioningActivity.Phase.COMPLETED);
/** * Destroy the node. * If stopOnTerminate is {@code true}, calls {@link ComputeService#suspendNode}, * otherwise {@link ComputeService#destroyNode}. */ @Override protected void _terminate(TaskListener listener) throws IOException, InterruptedException { final ComputeService compute = JCloudsCloud.getByName(cloudName).getCompute(); if (compute.getNodeMetadata(nodeId) != null && compute.getNodeMetadata(nodeId).getStatus().equals(NodeMetadata.Status.RUNNING)) { if (stopOnTerminate) { LOGGER.info("Suspending slave : " + getNodeName()); compute.suspendNode(nodeId); } else { LOGGER.info("Terminating slave : " + getNodeName()); compute.destroyNode(nodeId); } } else { LOGGER.info("Slave " + getNodeName() + " is already not running."); } ProvisioningActivity activity = CloudStatistics.get().getActivityFor(this); if (activity != null) { activity.enterIfNotAlready(ProvisioningActivity.Phase.COMPLETED); } }
ProvisioningActivity activity = CloudStatistics.get().getActivityFor(this); if (nonNull(activity)) { activity.enterIfNotAlready(ProvisioningActivity.Phase.COMPLETED);
@Override protected void _terminate(TaskListener listener) { CloudStatistics cloudStatistics = CloudStatistics.get(); ProvisioningActivity activity = cloudStatistics.getActivityFor(this); if (activity != null) { activity.enterIfNotAlready(ProvisioningActivity.Phase.COMPLETED); // Attach what is likely a reason for the termination OfflineCause offlineCause = getFatalOfflineCause(); if (offlineCause != null) { PhaseExecutionAttachment attachment = new PhaseExecutionAttachment(ProvisioningActivity.Status.WARN, offlineCause.toString()); cloudStatistics.attach(activity, ProvisioningActivity.Phase.COMPLETED, attachment); } } // Wrap deletion disposables into statistics tracking disposables AsyncResourceDisposer.get().dispose( new RecordDisposal( new DestroyMachine(cloudName, nodeId), provisioningId ) ); }