/*
* Copyright (c) 2008-2011 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.volumecontroller.impl.block.taskcompleter;
import com.emc.storageos.db.client.model.Volume;
import com.emc.storageos.svcs.errorhandling.model.ServiceCoded;
import com.emc.storageos.svcs.errorhandling.model.ServiceError;
import com.emc.storageos.workflow.Workflow;
import com.emc.storageos.workflow.WorkflowException;
import com.emc.storageos.workflow.WorkflowStepCompleter;
import java.net.URI;
public class CleanupMetaVolumeMembersCompleter extends VolumeTaskCompleter {
private static final long serialVersionUID = 1L;
URI volumeURI;
boolean isWFStep;
String opId;
String sourceStepId;
boolean isSuccess = true;
private ServiceError error;
public CleanupMetaVolumeMembersCompleter(URI volumeURI, boolean WFStep, String sourceStepId, String opId) {
super(Volume.class, volumeURI, opId);
this.volumeURI = volumeURI;
isWFStep = WFStep;
this.opId = opId;
this.sourceStepId = sourceStepId;
}
public URI getVolumeURI() {
return volumeURI;
}
public boolean isWFStep() {
return isWFStep;
}
public String getOpId() {
return opId;
}
public boolean isSuccess() {
return isSuccess;
}
public String getSourceStepId() {
return sourceStepId;
}
public void setSuccess(boolean success) {
isSuccess = success;
}
public void complete(Workflow.StepState state, ServiceCoded serviceCoded) throws WorkflowException {
switch (state) {
case ERROR:
// update only if this is workflow step
if (isWFStep()) {
WorkflowStepCompleter.stepFailed(opId, serviceCoded);
}
break;
case SUCCESS:
default:
// update only if this is workflow step
if (isWFStep()) {
WorkflowStepCompleter.stepSucceded(getOpId());
}
}
}
public ServiceError getError() {
return error;
}
public void setError(ServiceError error) {
this.error = error;
}
}