/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.volumecontroller.impl.file;
import java.net.URI;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.emc.storageos.db.client.DbClient;
import com.emc.storageos.db.client.model.Operation;
import com.emc.storageos.db.client.model.FileShare;
import com.emc.storageos.volumecontroller.impl.block.taskcompleter.TaskLockingCompleter;
import com.emc.storageos.services.OperationTypeEnum;
public abstract class FileTaskCompleter extends TaskLockingCompleter {
private static final String FILE_TASK_MSG_SUCCESS = "File operation completed successfully for filesystem %s";
private static final String FILE_TASK_MSG_FAILURE = "File operation failed for filesystem %s";
/**
* Reference to logger
*/
private static final Logger _logger = LoggerFactory.getLogger(FileTaskCompleter.class);
/**
* @param clazz
* @param id
* @param opId
*/
public FileTaskCompleter(Class clazz, URI id, String opId) {
super(clazz, id, opId);
}
/**
* @param clazz
* @param fileUris
* @param task
*/
public FileTaskCompleter(Class<FileShare> clazz, List<URI> fileUris, String task) {
super(clazz, fileUris, task);
}
/**
* Generate and Record a file specific event
*
* @param dbClient
* @param id
* @param evtType
* @param status
* @param desc
* @throws Exception
*/
public static void recordBourneFileEvent(DbClient dbClient,
URI id, String evtType, Operation.Status status, String desc)
throws Exception {
}
/**
* Record file related event and audit
*
* @param dbClient db client
* @param opType operation type
* @param status operation status
* @param evDesc event description
* @param extParam parameters array from which we could generate detail audit message
*/
public void recordFileSystemOperation(DbClient dbClient, OperationTypeEnum opType,
Operation.Status status, Object... extParam) {
}
protected String eventMessage(Operation.Status status, FileShare fileShare) {
return (status == Operation.Status.ready) ?
String.format(FILE_TASK_MSG_SUCCESS, fileShare.getLabel()) :
String.format(FILE_TASK_MSG_FAILURE, fileShare.getLabel());
}
}