/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package com.emc.storageos.volumecontroller; import java.net.URI; import java.util.List; import com.emc.storageos.db.client.model.StorageSystem; import com.emc.storageos.exceptions.DeviceControllerException; /* * Common operations of all replica types (clone, mirror, snapshot). */ public interface ReplicaOperations { /** * Create list replica. * * @param replicaList the replicas * @param createInactive * @param taskCompleter the task completer * @param storage the storage system * * @throws DeviceControllerException */ public void createListReplica(StorageSystem storageSystem, List<URI> replicaList, Boolean createInactive, TaskCompleter taskCompleter) throws DeviceControllerException; /** * Detach list replica. * * @param replicaList the replicas * @param taskCompleter the task completer * @param storage the storage system * * @throws DeviceControllerException */ public void detachListReplica(StorageSystem storageSystem, List<URI> replicaList, TaskCompleter taskCompleter) throws DeviceControllerException; /** * Fracture list replica. * * @param replicaList the replicas * @param sync * @param taskCompleter the task completer * @param storage the storage system * * @throws DeviceControllerException */ public void fractureListReplica(StorageSystem storageSystem, List<URI> replicaList, Boolean sync, TaskCompleter taskCompleter) throws DeviceControllerException; /** * Delete list replica. * * @param replicaList the replicas * @param taskCompleter the task completer * @param storage the storage system * * @throws DeviceControllerException */ public void deleteListReplica(StorageSystem storage, List<URI> replicaList, TaskCompleter taskCompleter) throws DeviceControllerException; }