/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.volumecontroller.impl.file;
import java.net.URI;
import java.util.List;
import com.emc.storageos.db.client.DbClient;
import com.emc.storageos.db.client.model.FileShare;
import com.emc.storageos.db.client.model.FileShare.MirrorStatus;
import com.emc.storageos.db.client.model.FileShare.PersonalityTypes;
import com.emc.storageos.db.client.model.Operation;
import com.emc.storageos.db.client.model.Operation.Status;
import com.emc.storageos.db.client.model.StringSet;
import com.emc.storageos.svcs.errorhandling.model.ServiceCoded;
public class FileDeleteWorkflowCompleter extends FileWorkflowCompleter {
public FileDeleteWorkflowCompleter(URI fsUri, String task) {
super(fsUri, task);
}
@Override
protected void complete(DbClient dbClient, Status status,
ServiceCoded serviceCoded) {
super.complete(dbClient, status, serviceCoded);
if (status == Operation.Status.ready) {
// Remove target attributes from souce file system!!
for (URI id : getIds()) {
FileShare fileSystem = dbClient.queryObject(FileShare.class, id);
if (fileSystem != null && !fileSystem.getInactive()) {
if (fileSystem.getPersonality() != null &&
PersonalityTypes.SOURCE.name().equalsIgnoreCase(fileSystem.getPersonality())) {
// Reset the mirror attributes!!
StringSet targets = fileSystem.getMirrorfsTargets();
if (targets != null && !targets.isEmpty()) {
targets.clear();
}
fileSystem.setMirrorfsTargets(targets);
fileSystem.setMirrorStatus(MirrorStatus.DETACHED.name());
fileSystem.setPersonality("");
dbClient.updateObject(fileSystem);
_log.info("FileDeleteWorkflowCompleter::reset the mirror attribute of source file system {}",
fileSystem.getId());
}
}
dbClient.ready(FileShare.class, id, getOpId());
}
}
}
public FileDeleteWorkflowCompleter(List<URI> fsUris, String task) {
super(fsUris, task);
}
}