/*
* Copyright (c) 2016 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.volumecontroller.impl.vnxunity.job;
import java.net.URI;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.emc.storageos.db.client.DbClient;
import com.emc.storageos.db.client.model.FileShare;
import com.emc.storageos.db.client.model.Operation;
import com.emc.storageos.db.client.model.QuotaDirectory;
import com.emc.storageos.exceptions.DeviceControllerException;
import com.emc.storageos.svcs.errorhandling.model.ServiceCoded;
import com.emc.storageos.volumecontroller.TaskCompleter;
public class VNXUnityQuotaDirectoryTaskCompleter extends TaskCompleter {
/**
*
*/
private static final long serialVersionUID = -824046280916742975L;
private static final Logger _logger = LoggerFactory.getLogger(VNXUnityQuotaDirectoryTaskCompleter.class);
public VNXUnityQuotaDirectoryTaskCompleter(Class clazz, URI quotaId, String opId) {
super(clazz, quotaId, opId);
}
@Override
protected void complete(DbClient dbClient, Operation.Status status, ServiceCoded coded) throws DeviceControllerException {
QuotaDirectory quota = dbClient.queryObject(QuotaDirectory.class, getId());
FileShare fsObj = dbClient.queryObject(FileShare.class, quota.getParent());
switch (status) {
case error:
dbClient.error(QuotaDirectory.class, getId(), getOpId(), coded);
if (fsObj != null) {
dbClient.error(FileShare.class, fsObj.getId(), getOpId(), coded);
}
break;
default:
dbClient.ready(QuotaDirectory.class, getId(), getOpId());
if (fsObj != null) {
dbClient.ready(FileShare.class, fsObj.getId(), getOpId());
}
}
_logger.info("Done Quota operation {}, with Status: {}", getOpId(), status.name());
}
}