/*
* Copyright (c) 2014 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.vnxe.models;
import java.util.List;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.map.annotate.JsonDeserialize;
/*
* represents storage pool
*/
@JsonIgnoreProperties(ignoreUnknown = true)
public class VNXePool extends VNXeBase {
private String name;
private String instanceId;
private Health health;
private List<Integer> operationalStatus;
private String description;
private PoolSystemDefinedEnum type;
private Integer raidType;
private double sizeFree = -1;
private double sizeTotal = -1;
private double sizeUsed = -1;
private double sizeSubscribed = -1;
private int alertThreshold;
private float harvestHightThreshold;
private float harvestLowThreshold;
private float snapHarvestHighThreshold;
private boolean isFASTCacheEnabled;
private List<PoolTier> tiers;
private String creationTime;
private boolean isEmpty;
private PoolFASTVP poolFastVP;
private boolean isHarvestEnabled;
private HarvestStateEnum harvestState;
private boolean isSnapHarvestEnabled;
private long metadataSizeSubscribed;
private long snapSizeSubscribed;
private long metadataSizeUsed;
private long snapSizeUsed;
private long rebalanceProgress;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInstanceId() {
return instanceId;
}
public void setInstanceId(String instanceId) {
this.instanceId = instanceId;
}
public Health getHealth() {
return health;
}
public void setHealth(Health health) {
this.health = health;
}
public List<Integer> getOperationalStatus() {
return operationalStatus;
}
public void setOperationalStatus(List<Integer> operationalStatus) {
this.operationalStatus = operationalStatus;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public PoolSystemDefinedEnum getType() {
return type;
}
public void setType(PoolSystemDefinedEnum type) {
this.type = type;
}
public Integer getRaidType() {
return raidType;
}
public RaidTypeEnum getRaidTypeEnum() {
return RaidTypeEnum.getEnumValue(raidType);
}
public void setRaidType(Integer raidGroupLevel) {
this.raidType = raidGroupLevel;
}
public double getSizeFree() {
return sizeFree;
}
public void setSizeFree(double sizeFree) {
this.sizeFree = sizeFree;
}
public double getSizeTotal() {
return sizeTotal;
}
public void setSizeTotal(double sizeTotal) {
this.sizeTotal = sizeTotal;
}
public double getSizeUsed() {
return sizeUsed;
}
public void setSizeUsed(double sizeUsed) {
this.sizeUsed = sizeUsed;
}
public double getSizeSubscribed() {
return sizeSubscribed;
}
public void setSizeSbuscribed(double sizeSubscribed) {
this.sizeSubscribed = sizeSubscribed;
}
public int getAlertThreshold() {
return alertThreshold;
}
public void setAlertThreshold(int alertThreshold) {
this.alertThreshold = alertThreshold;
}
public float getHarvestHightThreshold() {
return harvestHightThreshold;
}
public void setHarvestHightThreshold(float harvestHightThreshold) {
this.harvestHightThreshold = harvestHightThreshold;
}
public float getHarvestLowThreshold() {
return harvestLowThreshold;
}
public void setHarvestLowThreshold(float harvestLowThreshold) {
this.harvestLowThreshold = harvestLowThreshold;
}
public float getSnapHarvestHighThreshold() {
return snapHarvestHighThreshold;
}
public void setSnapHarvestHighThreshold(float snapHarvestHighThreshold) {
this.snapHarvestHighThreshold = snapHarvestHighThreshold;
}
public boolean getIsFASTCacheEnabled() {
return isFASTCacheEnabled;
}
public void setIsFASTCacheEnabled(boolean isFASTCacheEnabled) {
this.isFASTCacheEnabled = isFASTCacheEnabled;
}
public List<PoolTier> getTiers() {
return tiers;
}
public void setTiers(List<PoolTier> tiers) {
this.tiers = tiers;
}
public String getCreationTime() {
return creationTime;
}
public void setCreationTime(String creationTime) {
this.creationTime = creationTime;
}
public boolean getIsEmpty() {
return isEmpty;
}
public void setIsEmpty(boolean isEmpty) {
this.isEmpty = isEmpty;
}
public PoolFASTVP getPoolFastVP() {
return poolFastVP;
}
public void setPoolFastVP(PoolFASTVP poolFastVP) {
this.poolFastVP = poolFastVP;
}
public boolean getIsHarvestEnabled() {
return isHarvestEnabled;
}
public void setIsHarvestEnabled(boolean isHarvestEnabled) {
this.isHarvestEnabled = isHarvestEnabled;
}
public HarvestStateEnum getHarvestState() {
return harvestState;
}
public void setHarvestState(HarvestStateEnum harvestState) {
this.harvestState = harvestState;
}
public boolean getIsSnapHarvestEnabled() {
return isSnapHarvestEnabled;
}
public void setIsSnapHarvestEnabled(boolean isSnapHarvestEnabled) {
this.isSnapHarvestEnabled = isSnapHarvestEnabled;
}
public long getMetadataSizeSubscribed() {
return metadataSizeSubscribed;
}
public void setMetadataSizeSubscribed(long metadataSizeSubscribed) {
this.metadataSizeSubscribed = metadataSizeSubscribed;
}
public long getSnapSizeSubscribed() {
return snapSizeSubscribed;
}
public void setSnapSizeSubscribed(long snapSizeSubscribed) {
this.snapSizeSubscribed = snapSizeSubscribed;
}
public long getMetadataSizeUsed() {
return metadataSizeUsed;
}
public void setMetadataSizeUsed(long metadataSizeUsed) {
this.metadataSizeUsed = metadataSizeUsed;
}
public long getSnapSizeUsed() {
return snapSizeUsed;
}
public void setSnapSizeUsed(long snapSizeUsed) {
this.snapSizeUsed = snapSizeUsed;
}
public long getRebalanceProgress() {
return rebalanceProgress;
}
public void setRebalanceProgress(long rebalanceProgress) {
this.rebalanceProgress = rebalanceProgress;
}
public String getStatus() {
String statusString = null;
if (operationalStatus !=null){
for (Integer opStatus : operationalStatus) {
if (opStatus == 2) {
statusString = "READY";
break;
}
}}
if (statusString == null) {
statusString = "NOTREADY";
}
return statusString;
}
public static enum HarvestStateEnum {
IDLE,
RUNNING,
COULD_NOT_REACH_LWM,
PAUSED_COULD_NOT_REACH_HWM,
FAILED;
}
// @JsonSerialize(using = PoolSystemDefinedEnumSerializer.class)
@JsonDeserialize(using = PoolSystemDefinedEnumDeserializer.class)
public static enum PoolSystemDefinedEnum {
PERFORMANCE(1),
CAPACITY(3),
BESTPERFORMANCE(9),
CUSTOM(27);
private int value;
private PoolSystemDefinedEnum(int value) {
this.value = value;
}
@org.codehaus.jackson.annotate.JsonValue
public int getValue() {
return this.value;
}
}
}