/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.db.client.model;
import java.net.URI;
/**
* This class represents Storage Tiers of VMAX and VNX
*
*/
@Cf("StorageTier")
public class StorageTier extends DiscoveredDataObject {
private String _percentage;
private String _enabledState;
private long _totalCapacity;
private String _diskDriveTechnology;
// same tier can exist in multiple policies.
private StringSet _autoTieringPolicies;
// storage device this storage tier belongs to
private URI _storageDevice;
public static enum SupportedTiers {
SSD("3"),
FC("4"),
SATA("5"),
SAS("6"),
MIXED("7");
private String _tierTechnology;
SupportedTiers(String tierTechnology) {
_tierTechnology = tierTechnology;
}
public String getTierTechnology() {
return _tierTechnology;
}
public static String getTier(String tierTechnology) {
for (SupportedTiers tierType : values()) {
if (tierType.getTierTechnology().equalsIgnoreCase(tierTechnology)) {
return tierType.toString();
}
}
return null;
}
public static SupportedTiers getTierName(String tier) {
for (SupportedTiers tierType : values()) {
if (tierType.name().equalsIgnoreCase(tier)) {
return tierType;
}
}
return null;
}
}
@RelationIndex(cf = "TierToStorageDevice", type = StorageSystem.class)
@Name("storageDevice")
public URI getStorageDevice() {
return _storageDevice;
}
public void setStorageDevice(URI storageDevice) {
_storageDevice = storageDevice;
setChanged("storageDevice");
}
public void setPercentage(String percentage) {
_percentage = percentage;
setChanged("percentage");
}
@Name("percentage")
public String getPercentage() {
return _percentage;
}
public void setEnabledState(String enabledState) {
_enabledState = enabledState;
setChanged("enabledState");
}
@Name("enabledState")
public String getEnabledState() {
return _enabledState;
}
public void setTotalCapacity(Long totalCapacity) {
_totalCapacity = totalCapacity;
setChanged("totalCapacity");
}
@Name("totalCapacity")
public Long getTotalCapacity() {
return _totalCapacity;
}
public void setDiskDriveTechnology(String diskDriveTechnology) {
_diskDriveTechnology = diskDriveTechnology;
setChanged("diskDriveTechnology");
}
@Name("diskDriveTechnology")
public String getDiskDriveTechnology() {
return _diskDriveTechnology;
}
@AlternateId("PolicyToTierIndex")
@Name("autoTieringPolicies")
public StringSet getAutoTieringPolicies() {
return _autoTieringPolicies;
}
public void setAutoTieringPolicies(StringSet autoTieringPolicies) {
this._autoTieringPolicies = autoTieringPolicies;
}
}