package com.bocloud.ims.entity.resource.hmc;

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;

/**
 * HMC服务器
 *
 * @author sxp
 * @since May 22, 2018
 */
@Deprecated
@Table("hmc_server")
public class HmcServer extends GenericEntity {
    @PK(value = PKStrategy.AUTO)
    private Long id;

    @Column("uuid")
    private String uuid;

    @Column("reference_code")
    private String referenceCode;

    @Column("system_firmware")
    private String systemFirmware;

    @Column("activated_level")
    private String activatedLevel;

    @Column("machine_type")
    private String machineType;

    @Column("model")
    private String model;

    @Column("serial_number")
    private String serialNumber;

    @Column("maximum_partitions")
    private Integer maximumPartitions;

    @Column("physical_system_attention_led_state")
    private String physicalSystemAttentionLedState;

    @Column("primary_ip_address")
    private String primaryIpAddress;

    @Column("hostname")
    private String hostname;

    @Column("service_processor_version")
    private String serviceProcessorVersion;

    @Column("manufacturing_default_configuration_enabled")
    private String manufacturingDefaultConfigurationEnabled;

    @Column("vendor_id")
    private Long vendorId;

    @IgnoreAll
    private String machineTypeAndModel;

    @IgnoreAll
    private Double processorUnits;

    @IgnoreAll
    private Long systemMemory;

    @IgnoreAll
    private Double systemMemoryGB;

    @IgnoreAll
    private HmcSystemCapability hmcSystemCapability;

    @IgnoreAll
    private HmcSystemMemoryConfig hmcSystemMemoryConfig;

    @IgnoreAll
    private HmcSystemProcessorConfig hmcSystemProcessorConfig;

    @IgnoreAll
    private HmcPartition servicePartition;

    //用于cms监控
    @IgnoreAll
    private String thresholdGroupName;//阈值组

    @IgnoreAll
    private String policyName;//分发策略

    @IgnoreAll
    private Long ruleRelationId;//关联关系id

    @IgnoreAll
    private Long thresholdGroupId;  //阈值组ID

    @IgnoreAll
    private Long policyId; //分发策略ID


    public HmcServer() {
    }

    public Long getId() {
        return id;
    }

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

    public String getUuid() {
        return uuid;
    }

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

    public String getReferenceCode() {
        return referenceCode;
    }

    public void setReferenceCode(String referenceCode) {
        this.referenceCode = referenceCode;
    }

    public String getSystemFirmware() {
        return systemFirmware;
    }

    public void setSystemFirmware(String systemFirmware) {
        this.systemFirmware = systemFirmware;
    }

    public String getActivatedLevel() {
        return activatedLevel;
    }

    public void setActivatedLevel(String activatedLevel) {
        this.activatedLevel = activatedLevel;
    }

    public String getMachineType() {
        return machineType;
    }

    public void setMachineType(String machineType) {
        this.machineType = machineType;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public String getSerialNumber() {
        return serialNumber;
    }

    public void setSerialNumber(String serialNumber) {
        this.serialNumber = serialNumber;
    }

    public Integer getMaximumPartitions() {
        return maximumPartitions;
    }

    public void setMaximumPartitions(Integer maximumPartitions) {
        this.maximumPartitions = maximumPartitions;
    }

    public String getPhysicalSystemAttentionLedState() {
        return physicalSystemAttentionLedState;
    }

    public void setPhysicalSystemAttentionLedState(String physicalSystemAttentionLedState) {
        this.physicalSystemAttentionLedState = physicalSystemAttentionLedState;
    }

    public String getPrimaryIpAddress() {
        return primaryIpAddress;
    }

    public void setPrimaryIpAddress(String primaryIpAddress) {
        this.primaryIpAddress = primaryIpAddress;
    }

    public String getHostname() {
        return hostname;
    }

    public void setHostname(String hostname) {
        this.hostname = hostname;
    }

    public String getServiceProcessorVersion() {
        return serviceProcessorVersion;
    }

    public void setServiceProcessorVersion(String serviceProcessorVersion) {
        this.serviceProcessorVersion = serviceProcessorVersion;
    }

    public String getManufacturingDefaultConfigurationEnabled() {
        return manufacturingDefaultConfigurationEnabled;
    }

    public void setManufacturingDefaultConfigurationEnabled(String manufacturingDefaultConfigurationEnabled) {
        this.manufacturingDefaultConfigurationEnabled = manufacturingDefaultConfigurationEnabled;
    }

    public Long getVendorId() {
        return vendorId;
    }

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

    public String getMachineTypeAndModel() {
        return machineTypeAndModel;
    }

    public void setMachineTypeAndModel(String machineTypeAndModel) {
        this.machineTypeAndModel = machineTypeAndModel;
    }

    public Double getProcessorUnits() {
        return processorUnits;
    }

    public void setProcessorUnits(Double processorUnits) {
        this.processorUnits = processorUnits;
    }

    public Long getSystemMemory() {
        return systemMemory;
    }

    public void setSystemMemory(Long systemMemory) {
        this.systemMemory = systemMemory;
    }

    public Double getSystemMemoryGB() {
        return systemMemoryGB;
    }

    public void setSystemMemoryGB(Double systemMemoryGB) {
        this.systemMemoryGB = systemMemoryGB;
    }

    public HmcSystemCapability getHmcSystemCapability() {
        return hmcSystemCapability;
    }

    public void setHmcSystemCapability(HmcSystemCapability hmcSystemCapability) {
        this.hmcSystemCapability = hmcSystemCapability;
    }

    public HmcSystemMemoryConfig getHmcSystemMemoryConfig() {
        return hmcSystemMemoryConfig;
    }

    public void setHmcSystemMemoryConfig(HmcSystemMemoryConfig hmcSystemMemoryConfig) {
        this.hmcSystemMemoryConfig = hmcSystemMemoryConfig;
    }

    public HmcSystemProcessorConfig getHmcSystemProcessorConfig() {
        return hmcSystemProcessorConfig;
    }

    public void setHmcSystemProcessorConfig(HmcSystemProcessorConfig hmcSystemProcessorConfig) {
        this.hmcSystemProcessorConfig = hmcSystemProcessorConfig;
    }

    public HmcPartition getServicePartition() {
        return servicePartition;
    }

    public void setServicePartition(HmcPartition servicePartition) {
        this.servicePartition = servicePartition;
    }

    public String getThresholdGroupName() {
        return thresholdGroupName;
    }

    public void setThresholdGroupName(String thresholdGroupName) {
        this.thresholdGroupName = thresholdGroupName;
    }

    public String getPolicyName() {
        return policyName;
    }

    public void setPolicyName(String policyName) {
        this.policyName = policyName;
    }

    public Long getRuleRelationId() {
        return ruleRelationId;
    }

    public void setRuleRelationId(Long ruleRelationId) {
        this.ruleRelationId = ruleRelationId;
    }

    public Long getThresholdGroupId() {
        return thresholdGroupId;
    }

    public void setThresholdGroupId(Long thresholdGroupId) {
        this.thresholdGroupId = thresholdGroupId;
    }

    public Long getPolicyId() {
        return policyId;
    }

    public void setPolicyId(Long policyId) {
        this.policyId = policyId;
    }

    public void preSave(Long creatorId, Long menderId, Long vendorId) {
        this.setCreatorId(creatorId);
        this.setMenderId(menderId);
        this.setVendorId(vendorId);
    }
}
