package com.bocloud.ims.entity.resource;

import com.bocloud.entity.annotations.Column;
import com.bocloud.entity.annotations.IgnoreAll;
import com.bocloud.entity.annotations.PK;
import com.bocloud.entity.annotations.Table;
import com.bocloud.entity.bean.GenericEntity;
import com.bocloud.entity.meta.PKStrategy;

import java.util.List;

@Table("storage_host")
public class StorageHost extends GenericEntity {

    @PK(value = PKStrategy.AUTO)
    private Long id; //
    @Column("vendor_id")
    private Long vendorId; // 所属平台id
    @Column("storage_id")
    private Long storageId; // 所属存储id
    @Column("host_uuid")
    private String hostUuid; // 标识
    @Column("type")
    private String type; // 类型
    @Column("description")
    private String description;
    @Column("chap")
    private Boolean chap;
    @Column("chap_name")
    private String chapName;
    @Column("chap_secret")
    private String chapSecret;
    @IgnoreAll
    private Integer wwpnPortCnt;
    @IgnoreAll
    private Integer iscsiPortCnt;
    @IgnoreAll
    private Integer allPortCnt;
    @IgnoreAll
    private Integer volumeCnt;
    @IgnoreAll
    private List<String> wwpns; // wwpn列表
    @Column("key_path")
    private String keyPath; // smis传参用
    @IgnoreAll
    private StorageGroup storageGroup;
    @IgnoreAll
    private String groupNames;
    @IgnoreAll
    private String storageName;
    @IgnoreAll
    private Integer volumeViewCnt;
    @Column("host_count")
    @IgnoreAll
    private Long hostCount;
    @IgnoreAll
    private List<StorageHostPort> ports;
    @IgnoreAll
    private Integer accessPathCount;
    @IgnoreAll
    private Integer xskyVolumeCount;
    @IgnoreAll
    private String wwpn;
    @Column("iscsi_port_id")
    private Long iscsiPortId; // 所属服务器iSCSI端口id
    @Column("iscsi_port_name")
    @IgnoreAll
    private String iscsiPortName; // 所属服务器iSCSI端口名称
    @IgnoreAll
    private List<Long> VolumeIds; // 挂在的卷id列表
    @IgnoreAll
    private Long volumeGroupId; // 该主机关联的卷组名称
    @IgnoreAll
    private String volumeGroupName; // 该主机关联的卷组名称
    @IgnoreAll
    private Long hostGroupId; // 该主机所属的主机组名称
    @IgnoreAll
    private String hostGroupName; // 该主机所属的主机组名称

    public String getKeyPath() {
        return keyPath;
    }

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

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getVendorId() {
        return vendorId;
    }

    public void setVendorId(Long vendorId) {
        this.vendorId = vendorId;
    }

    public Long getStorageId() {
        return storageId;
    }

    public void setStorageId(Long storageId) {
        this.storageId = storageId;
    }

    public String getHostUuid() {
        return hostUuid;
    }

    public void setHostUuid(String hostUuid) {
        this.hostUuid = hostUuid;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public List<String> getWwpns() {
        return wwpns;
    }

    public void setWwpns(List<String> wwpns) {
        this.wwpns = wwpns;
    }

    public Integer getWwpnPortCnt() {
        return wwpnPortCnt;
    }

    public void setWwpnPortCnt(Integer wwpnPortCnt) {
        this.wwpnPortCnt = wwpnPortCnt;
    }

    public Integer getIscsiPortCnt() {
        return iscsiPortCnt;
    }

    public void setIscsiPortCnt(Integer iscsiPortCnt) {
        this.iscsiPortCnt = iscsiPortCnt;
    }

    public Integer getAllPortCnt() {
        return allPortCnt;
    }

    public void setAllPortCnt(Integer allPortCnt) {
        this.allPortCnt = allPortCnt;
    }

    public Integer getVolumeCnt() {
        return volumeCnt;
    }

    public void setVolumeCnt(Integer volumeCnt) {
        this.volumeCnt = volumeCnt;
    }

    public StorageGroup getStorageGroup() {
        return storageGroup;
    }

    public void setStorageGroup(StorageGroup storageGroup) {
        this.storageGroup = storageGroup;
    }

    public String getGroupNames() {
        return groupNames;
    }

    public void setGroupNames(String groupNames) {
        this.groupNames = groupNames;
    }

    public String getStorageName() {
        return storageName;
    }

    public void setStorageName(String storageName) {
        this.storageName = storageName;
    }

    public Integer getVolumeViewCnt() {
        return volumeViewCnt;
    }

    public void setVolumeViewCnt(Integer volumeViewCnt) {
        this.volumeViewCnt = volumeViewCnt;
    }

    public Long getHostCount() {
        return hostCount;
    }

    public void setHostCount(Long hostCount) {
        this.hostCount = hostCount;
    }

    public List<StorageHostPort> getPorts() {
        return ports;
    }

    public void setPorts(List<StorageHostPort> ports) {
        this.ports = ports;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Boolean getChap() {
        return chap;
    }

    public void setChap(Boolean chap) {
        this.chap = chap;
    }

    public String getChapName() {
        return chapName;
    }

    public void setChapName(String chapName) {
        this.chapName = chapName;
    }

    public String getChapSecret() {
        return chapSecret;
    }

    public void setChapSecret(String chapSecret) {
        this.chapSecret = chapSecret;
    }

    public Integer getAccessPathCount() {
        return accessPathCount;
    }

    public void setAccessPathCount(Integer accessPathCount) {
        this.accessPathCount = accessPathCount;
    }

    public Integer getXskyVolumeCount() {
        return xskyVolumeCount;
    }

    public void setXskyVolumeCount(Integer xskyVolumeCount) {
        this.xskyVolumeCount = xskyVolumeCount;
    }

    public String getWwpn() {
        return wwpn;
    }

    public void setWwpn(String wwpn) {
        this.wwpn = wwpn;
    }

    public Long getIscsiPortId() {
        return iscsiPortId;
    }

    public void setIscsiPortId(Long iscsiPortId) {
        this.iscsiPortId = iscsiPortId;
    }

    public String getIscsiPortName() {
        return iscsiPortName;
    }

    public void setIscsiPortName(String iscsiPortName) {
        this.iscsiPortName = iscsiPortName;
    }

    public List<Long> getVolumeIds() {
        return VolumeIds;
    }

    public void setVolumeIds(List<Long> VolumeIds) {
        this.VolumeIds = VolumeIds;
    }

    public Long getVolumeGroupId() {
        return volumeGroupId;
    }

    public void setVolumeGroupId(Long volumeGroupId) {
        this.volumeGroupId = volumeGroupId;
    }

    public String getVolumeGroupName() {
        return volumeGroupName;
    }

    public void setVolumeGroupName(String volumeGroupName) {
        this.volumeGroupName = volumeGroupName;
    }

    public Long getHostGroupId() {
        return hostGroupId;
    }

    public void setHostGroupId(Long hostGroupId) {
        this.hostGroupId = hostGroupId;
    }

    public String getHostGroupName() {
        return hostGroupName;
    }

    public void setHostGroupName(String hostGroupName) {
        this.hostGroupName = hostGroupName;
    }
}
