package com.bocloud.cmp.model;

import com.bocloud.cmp.model.storage.StorageMdiskModel;

import java.util.List;

/**
 * powervc对接存储器的信息
 */
public class VolumePoolModel {
    private String name; // 名称
    private String status; // 状态
    private String operationalStatus; // 运行状态
    private String uuid; // 唯一标识
    private String poolUuid; // 唯一标识
    private String identifier; // 标识
    private Double warning; // 告警阈值
    private Double overallocation; // 过载大小
    private Double extentSize; // 扩展大小
    private Double capacity; // 容量
    private Double realCapacity; // 真实容量
    private Double usedCapacity; // 已用容量
    private Double virtualCapacity; // 虚拟容量
    private Double freeCapacity; // 可用容量
    private Long freeCapacityByte; // 可用容量
    private Boolean compressionActive; // 开启压缩
    private Double compressionVirtualCapacity; // 压缩卷的虚拟容量
    private Double compressionCompressedCapacity; // 压缩卷的压缩容量
    private Double compressionUncompressedCapacity; // 压缩卷的未压缩容量
    private String easytier; // 开启easytier
    private String easytierStatus; // easytier状态
    private Integer mdiskCount; // mdisk数量
    private Integer vdiskCount; // vdisk数量
    private String storageUuid; // 所属存储uuid
    private String storageKeyPath; // 所属存储keyPath
    private String domainKeyPath; //所属硬盘域keyPath
    private String keyPath; // smis用来传参
    private String mdiskUuid; // 所属硬盘域uuid
    private String raidUuid; //池使用的raid策略uuid
    private String raidName; //池使用的raid策略
    private String raidKeyPath; //raid 策略keyPath
    private String role; // 角色
    private String dataStatus; // 数据状态(Json)：{healthyPercent:1,degradedPercent:0,recoveryPercent:0,unavailablePercent:0},分别为：健康的、降级的、待恢复、不可用
    private String deviceType; // 存储介质
    private String poolType; // 存储池类型
    private Long replicateCnt; // 副本数量
    private Long minReplicateCnt; // 最小副本数量
    private Long ecDataBolckCnt; // ec纠删码 数据块个数
    private Long ecCodeBolckCnt; // ec纠删码 校验块个数
    private boolean forceDelete = false; // 删除的时候是否强删
    private String props;
    private Long placementGroupCnt; // 放置组数量
    private String newName; // 重命名时的新名字
    private List<VolumeModel> volumes;
    private List<StorageMdiskModel> mdisks;
    private List<OsdModel> osds;

    public String getStorageKeyPath() {
        return storageKeyPath;
    }

    public void setStorageKeyPath(String storageKeyPath) {
        this.storageKeyPath = storageKeyPath;
    }

    public String getKeyPath() {
        return keyPath;
    }

    public void setKeyPath(String keyPath) {
        this.keyPath = keyPath;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getUuid() {
        return uuid;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }

    public String getIdentifier() {
        return identifier;
    }

    public void setIdentifier(String identifier) {
        this.identifier = identifier;
    }

    public Double getWarning() {
        return warning;
    }

    public void setWarning(Double warning) {
        this.warning = warning;
    }

    public Double getOverallocation() {
        return overallocation;
    }

    public void setOverallocation(Double overallocation) {
        this.overallocation = overallocation;
    }

    public Double getExtentSize() {
        return extentSize;
    }

    public void setExtentSize(Double extentSize) {
        this.extentSize = extentSize;
    }

    public Double getCapacity() {
        return capacity;
    }

    public void setCapacity(Double capacity) {
        this.capacity = capacity;
    }

    public Double getRealCapacity() {
        return realCapacity;
    }

    public void setRealCapacity(Double realCapacity) {
        this.realCapacity = realCapacity;
    }

    public Double getUsedCapacity() {
        return usedCapacity;
    }

    public void setUsedCapacity(Double usedCapacity) {
        this.usedCapacity = usedCapacity;
    }

    public Double getVirtualCapacity() {
        return virtualCapacity;
    }

    public void setVirtualCapacity(Double virtualCapacity) {
        this.virtualCapacity = virtualCapacity;
    }

    public Double getFreeCapacity() {
        return freeCapacity;
    }

    public void setFreeCapacity(Double freeCapacity) {
        this.freeCapacity = freeCapacity;
    }

    public Boolean getCompressionActive() {
        return compressionActive;
    }

    public void setCompressionActive(Boolean compressionActive) {
        this.compressionActive = compressionActive;
    }

    public Double getCompressionVirtualCapacity() {
        return compressionVirtualCapacity;
    }

    public void setCompressionVirtualCapacity(Double compressionVirtualCapacity) {
        this.compressionVirtualCapacity = compressionVirtualCapacity;
    }

    public Double getCompressionCompressedCapacity() {
        return compressionCompressedCapacity;
    }

    public void setCompressionCompressedCapacity(Double compressionCompressedCapacity) {
        this.compressionCompressedCapacity = compressionCompressedCapacity;
    }

    public Double getCompressionUncompressedCapacity() {
        return compressionUncompressedCapacity;
    }

    public void setCompressionUncompressedCapacity(Double compressionUncompressedCapacity) {
        this.compressionUncompressedCapacity = compressionUncompressedCapacity;
    }

    public String getEasytier() {
        return easytier;
    }

    public void setEasytier(String easytier) {
        this.easytier = easytier;
    }

    public String getEasytierStatus() {
        return easytierStatus;
    }

    public void setEasytierStatus(String easytierStatus) {
        this.easytierStatus = easytierStatus;
    }

    public Integer getMdiskCount() {
        return mdiskCount;
    }

    public void setMdiskCount(Integer mdiskCount) {
        this.mdiskCount = mdiskCount;
    }

    public Integer getVdiskCount() {
        return vdiskCount;
    }

    public void setVdiskCount(Integer vdiskCount) {
        this.vdiskCount = vdiskCount;
    }

    public String getStorageUuid() {
        return storageUuid;
    }

    public void setStorageUuid(String storageUuid) {
        this.storageUuid = storageUuid;
    }

    public String getPoolUuid() {
        return poolUuid;
    }

    public void setPoolUuid(String poolUuid) {
        this.poolUuid = poolUuid;
    }

    public List<VolumeModel> getVolumes() {
        return volumes;
    }

    public void setVolumes(List<VolumeModel> volumes) {
        this.volumes = volumes;
    }

    public List<StorageMdiskModel> getMdisks() {
        return mdisks;
    }

    public void setMdisks(List<StorageMdiskModel> mdisks) {
        this.mdisks = mdisks;
    }

    public Long getFreeCapacityByte() {
        return freeCapacityByte;
    }

    public void setFreeCapacityByte(Long freeCapacityByte) {
        this.freeCapacityByte = freeCapacityByte;
    }

    public String getOperationalStatus() {
        return operationalStatus;
    }

    public void setOperationalStatus(String operationalStatus) {
        this.operationalStatus = operationalStatus;
    }

    public String getDomainKeyPath() {
        return domainKeyPath;
    }

    public void setDomainKeyPath(String domainKeyPath) {
        this.domainKeyPath = domainKeyPath;
    }

    public String getMdiskUuid() {
        return mdiskUuid;
    }

    public void setMdiskUuid(String mdiskUuid) {
        this.mdiskUuid = mdiskUuid;
    }

    public String getRaidName() {
        return raidName;
    }

    public void setRaidName(String raidName) {
        this.raidName = raidName;
    }

    public String getRaidKeyPath() {
        return raidKeyPath;
    }

    public void setRaidKeyPath(String raidKeyPath) {
        this.raidKeyPath = raidKeyPath;
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }

    public String getDataStatus() {
        return dataStatus;
    }

    public void setDataStatus(String dataStatus) {
        this.dataStatus = dataStatus;
    }

    public String getDeviceType() {
        return deviceType;
    }

    public void setDeviceType(String deviceType) {
        this.deviceType = deviceType;
    }

    public Long getReplicateCnt() {
        return replicateCnt;
    }

    public void setReplicateCnt(Long replicateCnt) {
        this.replicateCnt = replicateCnt;
    }

    public String getPoolType() {
        return poolType;
    }

    public void setPoolType(String poolType) {
        this.poolType = poolType;
    }

    public Long getEcDataBolckCnt() {
        return ecDataBolckCnt;
    }

    public void setEcDataBolckCnt(Long ecDataBolckCnt) {
        this.ecDataBolckCnt = ecDataBolckCnt;
    }

    public Long getEcCodeBolckCnt() {
        return ecCodeBolckCnt;
    }

    public void setEcCodeBolckCnt(Long ecCodeBolckCnt) {
        this.ecCodeBolckCnt = ecCodeBolckCnt;
    }

    public List<OsdModel> getOsds() {
        return osds;
    }

    public void setOsds(List<OsdModel> osds) {
        this.osds = osds;
    }

    public boolean isForceDelete() {
        return forceDelete;
    }

    public void setForceDelete(boolean forceDelete) {
        this.forceDelete = forceDelete;
    }

    public String getProps() {
        return props;
    }

    public void setProps(String props) {
        this.props = props;
    }

    public String getNewName() {
        return newName;
    }

    public void setNewName(String newName) {
        this.newName = newName;
    }

    public Long getMinReplicateCnt() {
        return minReplicateCnt;
    }

    public void setMinReplicateCnt(Long minReplicateCnt) {
        this.minReplicateCnt = minReplicateCnt;
    }

    public Long getPlacementGroupCnt() {
        return placementGroupCnt;
    }

    public void setPlacementGroupCnt(Long placementGroupCnt) {
        this.placementGroupCnt = placementGroupCnt;
    }

    public String getRaidUuid() {
        return raidUuid;
    }

    public void setRaidUuid(String raidUuid) {
        this.raidUuid = raidUuid;
    }
}
