/*
* Copyright (c) 2008-2012 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.volumecontroller;
import com.emc.storageos.db.client.model.*;
import java.net.URI;
import java.util.List;
/**
* Class defining input/output from Block storage device interface
* to expose only the fields that are needed/can be modified by storage device implementations
*/
public class BlockDeviceInputOutput {
private StoragePool pool;
private Volume volume;
private BlockSnapshot snapshot;
private String storageGroupName;
private String _opId;
private List<StoragePort> _storagePorts;
/**
*
* @return
*/
public String getStorageGroupName() {
return (storageGroupName != null) ? storageGroupName : "";
}
/**
* The StorageGroup name to be used
*
* @param storageGroupName
*/
public void setStorageGroupName(String storageGroupName) {
this.storageGroupName = storageGroupName;
}
/**
* add storage pool
*
* @param pool StoragePool object
*/
public void addStoragePool(StoragePool pool) {
this.pool = pool;
}
/**
* add volume
*
* @param volume FileShare object
*/
public void addVolume(Volume volume) {
this.volume = volume;
}
public URI getVolumeURI() {
return volume.getId();
}
/**
* Get volume capacity
*
* @return Long
*/
public Long getVolumeCapacity() {
return volume.getCapacity();
}
/**
* Get volume label
*
* @return
*/
public String getVolumeLabel() {
return volume.getLabel();
}
/**
* Get volume nativeId
*
* @return
*/
public String getVolumeNativeId() {
return volume.getNativeId();
}
/**
* Get volume extensions
*
* @return
*/
public StringMap getVolumeExtensions() {
return volume.getExtensions();
}
/**
* Set volume nativeId
*
* @param id
*/
public void setVolumeNativeId(String id) {
volume.setNativeId(id);
}
/**
* Set volume nativeGuid
*
* @param id
*/
public void setVolumeNativeGuid(String id) {
volume.setNativeGuid(id);
}
/**
* Initialize volume extensions map
*/
public void initVolumeExtensions() {
volume.setExtensions(new StringMap());
}
/**
* Set the snapshot
*
* @param snap
*/
public void addSnapshot(BlockSnapshot snap) {
snapshot = snap;
}
/**
* Get the Snapshot Native Id
*
* @return
*/
public String getSnapshotNativeId() {
return snapshot.getNativeId();
}
/**
* Set the Snapshot Native Id
*
* @return
*/
public void setSnapshotNativeId(String newId) {
snapshot.setNativeId(newId);
}
/**
* Get the SnapSet label
*/
public String getSnapsetLabel() {
return "";
}
public void setOpId(String opId) {
_opId = opId;
}
public String getOpId() {
return _opId;
}
/**
* Get the Consistency Group Label
*/
public URI getSnapConsistencyGroup() {
URI value = snapshot.getConsistencyGroup();
return value;
}
public void setStoragePorts(List<StoragePort> ports) {
_storagePorts = ports;
}
public List<StoragePort> getStoragePorts() {
return _storagePorts;
}
/**
* Get snapshot extensions
*
*/
public StringMap getSnapshotExtensions() {
return volume.getExtensions();
}
/**
* Get snapshot's volume Id
*
*/
public String getSnapshotVolumeId() {
return snapshot.getNewVolumeNativeId();
}
}