package org.ovirt.engine.core.common.businessentities; import java.util.Objects; import javax.validation.constraints.Size; import javax.validation.groups.Default; import org.ovirt.engine.core.common.businessentities.OvfExportOnlyField.ExportOption; import org.ovirt.engine.core.common.validation.annotation.ValidI18NName; import org.ovirt.engine.core.common.validation.group.CreateVm; import org.ovirt.engine.core.common.validation.group.ImportClonedEntity; import org.ovirt.engine.core.common.validation.group.UpdateVm; import org.ovirt.engine.core.compat.Guid; public class VmStatic extends VmBase { private static final long serialVersionUID = -2753306386502558044L; private Guid vmtGuid; private boolean initialized; private String originalTemplateName; private Guid originalTemplateGuid; @EditableVmField @OvfExportOnlyField(exportOption = ExportOption.EXPORT_NON_IGNORED_VALUES) @Size(max = BusinessEntitiesDefinitions.GENERAL_MAX_SIZE) private String cpuPinning; @EditableVmField(onStatuses = VMStatus.Down) private boolean useHostCpuFlags; @EditableVmField private Guid instanceTypeId; private Guid imageTypeId; @EditableVmField private boolean useLatestVersion; @EditableVmField private Guid providerId; public VmStatic() { setNumOfMonitors(1); initialized = false; setNiceLevel(0); setCpuShares(0); setDefaultBootSequence(BootSequence.C); setDefaultDisplayType(DisplayType.qxl); setVmType(VmType.Desktop); vmtGuid = Guid.Empty; } public VmStatic(VmStatic vmStatic) { this((VmBase)vmStatic); vmtGuid = vmStatic.getVmtGuid(); originalTemplateGuid = vmStatic.originalTemplateGuid; originalTemplateName = vmStatic.originalTemplateName; setInitialized(vmStatic.isInitialized()); setUseLatestVersion(vmStatic.isUseLatestVersion()); setInstanceTypeId(vmStatic.getInstanceTypeId()); } public VmStatic(VmBase vmBase) { super(vmBase); } public boolean isFirstRun() { return !isInitialized(); } @Override @Size(min = 1, max = BusinessEntitiesDefinitions.VM_NAME_SIZE, groups = { Default.class, ImportClonedEntity.class }) @ValidI18NName(message = "ACTION_TYPE_FAILED_NAME_MAY_NOT_CONTAIN_SPECIAL_CHARS", groups = { CreateVm.class, UpdateVm.class, ImportClonedEntity.class }) public String getName() { return super.getName(); } public Guid getVmtGuid() { return this.vmtGuid; } public void setVmtGuid(Guid value) { this.vmtGuid = value; } public boolean isInitialized() { return initialized; } public void setInitialized(boolean value) { initialized = value; } @Override public Object getQueryableId() { return getId(); } public String getCpuPinning() { return cpuPinning; } public void setCpuPinning(String cpuPinning) { this.cpuPinning = cpuPinning; } @Override public int hashCode() { return Objects.hash( super.hashCode(), initialized, getName(), vmtGuid, useHostCpuFlags, instanceTypeId, imageTypeId, originalTemplateGuid, originalTemplateName, useLatestVersion, providerId ); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (!(obj instanceof VmStatic)) { return false; } VmStatic other = (VmStatic) obj; return super.equals(obj) && initialized == other.initialized && Objects.equals(getName(), other.getName()) && Objects.equals(vmtGuid, other.vmtGuid) && useHostCpuFlags == other.useHostCpuFlags && Objects.equals(instanceTypeId, other.instanceTypeId) && Objects.equals(imageTypeId, other.imageTypeId) && Objects.equals(originalTemplateGuid, other.originalTemplateGuid) && Objects.equals(originalTemplateName, other.originalTemplateName) && useLatestVersion == other.useLatestVersion && Objects.equals(providerId, other.providerId); } public boolean isUseHostCpuFlags() { return useHostCpuFlags; } public void setUseHostCpuFlags(boolean useHostCpuFlags) { this.useHostCpuFlags = useHostCpuFlags; } @Override public int getMinAllocatedMem() { if (super.getMinAllocatedMem() > 0) { return super.getMinAllocatedMem(); } return getMemSizeMb(); } public Guid getInstanceTypeId() { return instanceTypeId; } public void setInstanceTypeId(Guid instanceTypeId) { this.instanceTypeId = instanceTypeId; } public Guid getImageTypeId() { return imageTypeId; } public void setImageTypeId(Guid imageTypeId) { this.imageTypeId = imageTypeId; } public String getOriginalTemplateName() { return originalTemplateName; } public void setOriginalTemplateName(String originalTemplateName) { this.originalTemplateName = originalTemplateName; } public Guid getOriginalTemplateGuid() { return originalTemplateGuid; } public void setOriginalTemplateGuid(Guid originalTemplateGuid) { this.originalTemplateGuid = originalTemplateGuid; } public boolean isUseLatestVersion() { return useLatestVersion; } public void setUseLatestVersion(boolean useLatestVersion) { this.useLatestVersion = useLatestVersion; } public Guid getProviderId() { return providerId; } public void setProviderId(Guid providerId) { this.providerId = providerId; } }