/*
* Copyright (c) 2016 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.db.client.model;
/**
* Class represents Storage System Types.
*/
@SuppressWarnings("serial")
@Cf("StorageSystemType")
public class StorageSystemType extends DataObject {
// Name of Storage Type, like VMAX, VNX, Isilion
private String storageTypeName;
// Display Name of Storage Type, like VMAX, VNX, Isilion
private String storageTypeDispName;
// Storage type like Block, File or Object
private String metaType;
// Storage array is directly manage by CoprHD or thru SMI: Providers
private Boolean isSmiProvider = false;
// Storage array URI in string
private String storageTypeId;
// By default SSL port is enabled
private Boolean isDefaultSsl = false;
private Boolean isDefaultMDM = false;
private Boolean isOnlyMDM = false;
// Connect to storage array only thru element manager
private Boolean isElementMgr = false;
private Boolean isSecretKey = false;
private String sslPort;
private String nonSslPort;
private String driverClassName;
private String driverName;
private String driverVersion;
private String driverFileName;
private String driverStatus;
private Boolean isNative;
private String managedBy;
private Boolean supportAutoTierPolicy = false;
// Type of Storage System Types
public static enum META_TYPE {
BLOCK, FILE, OBJECT, BLOCK_AND_FILE, ALL,
BLOCK_PROVIDER, FILE_PROVIDER;
public boolean isProvider() {
return this == BLOCK_PROVIDER || this == FILE_PROVIDER;
}
}
public static enum STATUS {
ACTIVE {
@Override
public boolean isStorageOperationOngoing() {
return false;
}
},
INSTALLING {
@Override
public boolean isStorageOperationOngoing() {
return true;
}
},
UNISNTALLING {
@Override
public boolean isStorageOperationOngoing() {
return true;
}
},
UPGRADING {
@Override
public boolean isStorageOperationOngoing() {
return true;
}
};
public abstract boolean isStorageOperationOngoing();
}
@Name("managedBy")
public String getManagedBy() {
return managedBy;
}
public void setManagedBy(String managedBy) {
this.managedBy = managedBy;
setChanged("managedBy");
}
@Name("driverName")
public String getDriverName() {
return driverName;
}
public void setDriverName(String driverName) {
this.driverName = driverName;
setChanged("driverName");
}
@Name("driverVersion")
public String getDriverVersion() {
return driverVersion;
}
public void setDriverVersion(String driverVersion) {
this.driverVersion = driverVersion;
setChanged("driverVersion");
}
@Name("driverFileName")
public String getDriverFileName() {
return driverFileName;
}
public void setDriverFileName(String driverFileName) {
this.driverFileName = driverFileName;
setChanged("driverFileName");
}
@Name("driverStatus")
public String getDriverStatus() {
return driverStatus;
}
public void setDriverStatus(String status) {
this.driverStatus = status;
setChanged("driverStatus");
}
@Name("isNative")
public Boolean getIsNative() {
return isNative;
}
public void setIsNative(Boolean isNative) {
this.isNative = isNative;
setChanged("isNative");
}
@Name("supportAutoTierPolicy")
public Boolean getSupportAutoTierPolicy() {
return supportAutoTierPolicy;
}
public void setSupportAutoTierPolicy(Boolean supportAutoTierPolicy) {
this.supportAutoTierPolicy = supportAutoTierPolicy;
setChanged("supportAutoTierPolicy");
}
@AlternateId("AltIdIndex")
@Name("storageTypeName")
public String getStorageTypeName() {
return storageTypeName;
}
public void setStorageTypeName(String name) {
this.storageTypeName = name;
setChanged("storageTypeName");
}
@Name("storageTypeDispName")
public String getStorageTypeDispName() {
return storageTypeDispName;
}
public void setStorageTypeDispName(String name) {
this.storageTypeDispName = name;
setChanged("storageTypeDispName");
}
@Name("metaType")
public String getMetaType() {
return metaType;
}
public void setMetaType(String metaType) {
this.metaType = metaType;
setChanged("metaType");
}
@Name("isSmiProvider")
public Boolean getIsSmiProvider() {
return isSmiProvider;
}
public void setIsSmiProvider(Boolean isSmiProvider) {
this.isSmiProvider = isSmiProvider;
setChanged("isSmiProvider");
}
@Name("storageTypeId")
public String getStorageTypeId() {
return storageTypeId;
}
public void setStorageTypeId(String storageId) {
this.storageTypeId = storageId;
setChanged("storageTypeId");
}
@Name("isDefaultSsl")
public Boolean getIsDefaultSsl() {
return isDefaultSsl;
}
public void setIsDefaultSsl(Boolean isDefaultSsl) {
this.isDefaultSsl = isDefaultSsl;
setChanged("isDefaultSsl");
}
@Name("isDefaultMDM")
public Boolean getIsDefaultMDM() {
return isDefaultMDM;
}
public void setIsDefaultMDM(Boolean isDefaultMDM) {
this.isDefaultMDM = isDefaultMDM;
setChanged("isDefaultMDM");
}
@Name("isOnlyMDM")
public Boolean getIsOnlyMDM() {
return isOnlyMDM;
}
public void setIsOnlyMDM(Boolean isOnlyMDM) {
this.isOnlyMDM = isOnlyMDM;
setChanged("isOnlyMDM");
}
@Name("isElementMgr")
public Boolean getIsElementMgr() {
return isElementMgr;
}
public void setIsElementMgr(Boolean isElementMgr) {
this.isElementMgr = isElementMgr;
setChanged("isElementMgr");
}
@Name("isSecretKey")
public Boolean getIsSecretKey() {
return isSecretKey;
}
public void setIsSecretKey(Boolean isSecretKey) {
this.isSecretKey = isSecretKey;
setChanged("isSecretKey");
}
@Name("sslPort")
public String getSslPort() {
return sslPort;
}
public void setSslPort(String sslPort) {
this.sslPort = sslPort;
setChanged("sslPort");
}
@Name("nonSslPort")
public String getNonSslPort() {
return nonSslPort;
}
public void setNonSslPort(String nonSslPort) {
this.nonSslPort = nonSslPort;
setChanged("nonSslPort");
}
@Name("driverClassName")
public String getDriverClassName() {
return driverClassName;
}
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
setChanged("driverClassName");
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((storageTypeName == null) ? 0 : storageTypeName.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
StorageSystemType other = (StorageSystemType) obj;
if (storageTypeName == null) {
if (other.storageTypeName != null)
return false;
} else if (!storageTypeName.equals(other.storageTypeName))
return false;
return true;
}
}