Roy Golan has uploaded a new change for review. Change subject: core: auto generate VMHandler fields from annotations ......................................................................
core: auto generate VMHandler fields from annotations Use annotated fields to generate what fields can be edited and on which status. Introduced 2 annotations; @EditableField private String name; @EditableOnVmStatus(status = Down) private Guid vdsGroupId; note: several field names have bean updated to comply to java property convention. Change-Id: I8441f030c161c99c630a945b8b0228114665aa17 Signed-off-by: Roy Golan <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsHandler.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/EditableField.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/EditableOnVmStatusField.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmBase.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmStatic.java M backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ObjectIdentityChecker.java 8 files changed, 182 insertions(+), 81 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/16/11916/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsHandler.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsHandler.java index e672703..be314c2 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsHandler.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsHandler.java @@ -1,5 +1,6 @@ package org.ovirt.engine.core.bll; +import java.util.Arrays; import java.util.List; import org.apache.commons.lang.StringUtils; @@ -8,6 +9,7 @@ import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSStatus; import org.ovirt.engine.core.common.businessentities.VDSType; +import org.ovirt.engine.core.common.businessentities.VdsDynamic; import org.ovirt.engine.core.common.businessentities.VdsStatic; import org.ovirt.engine.core.common.errors.VdcBLLException; import org.ovirt.engine.core.common.errors.VdcBllErrors; @@ -31,12 +33,10 @@ */ public static void Init() { + Class<?>[] inspectedClasses = new Class<?>[] { VDS.class, VdsStatic.class, VdsDynamic.class }; mUpdateVdsStatic = - new ObjectIdentityChecker( - VdsHandler.class, - new java.util.ArrayList<String>(java.util.Arrays.asList(new String[] { "VDS", "VdsStatic", - "VdsDynamic" })), - VDSStatus.class); + new ObjectIdentityChecker(VdsHandler.class, Arrays.asList(inspectedClasses), VDSStatus.class); + mUpdateVdsStatic.AddPermittedField("vds_name"); mUpdateVdsStatic.AddPermittedField("managmentIp"); mUpdateVdsStatic.AddPermittedField("pm_type"); @@ -62,7 +62,7 @@ mUpdateVdsStatic.AddFields( java.util.Arrays.asList(new Enum<?>[] { VDSStatus.NonResponsive, VDSStatus.Maintenance, VDSStatus.Down, VDSStatus.Unassigned, VDSStatus.InstallFailed, VDSStatus.PendingApproval }), - java.util.Arrays.asList(new String[] { "ip", "vds_unique_id", "host_name", "port", "vds_group_id" })); + new String[] { "ip", "vds_unique_id", "host_name", "port", "vds_group_id" }); } public VdsHandler() { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java index f3cbbf4..a3aacbe 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java @@ -1,5 +1,6 @@ package org.ovirt.engine.core.bll; +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -13,6 +14,8 @@ import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.DisplayType; +import org.ovirt.engine.core.common.businessentities.EditableField; +import org.ovirt.engine.core.common.businessentities.EditableOnVmStatusField; import org.ovirt.engine.core.common.businessentities.UsbPolicy; import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VM; @@ -27,6 +30,7 @@ import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.errors.VdcBLLException; import org.ovirt.engine.core.common.errors.VdcBllErrors; +import org.ovirt.engine.core.common.utils.Pair; import org.ovirt.engine.core.common.utils.VmDeviceCommonUtils; import org.ovirt.engine.core.common.utils.VmDeviceType; import org.ovirt.engine.core.common.utils.VmValidationUtils; @@ -49,11 +53,14 @@ import org.ovirt.engine.core.utils.vmproperties.VmPropertiesUtils.ValidationFailureReason; public class VmHandler { + private static final Map<VmPropertiesUtils.ValidationFailureReason, String> failureReasonsToVdcBllMessagesMap = new HashMap<VmPropertiesUtils.ValidationFailureReason, String>(); private static final Map<VmPropertiesUtils.ValidationFailureReason, String> failureReasonsToFormatMessages = new HashMap<VmPropertiesUtils.ValidationFailureReason, String>(); private static ObjectIdentityChecker mUpdateVmsStatic; + + private static final Log log = LogFactory.getLog(VmHandler.class); static { failureReasonsToVdcBllMessagesMap.put(ValidationFailureReason.DUPLICATE_KEY, @@ -75,27 +82,21 @@ * @see Backend#InitHandlers */ public static void Init() { - mUpdateVmsStatic = new ObjectIdentityChecker(VmHandler.class, - Arrays.asList(new String[] { "VM", "VmStatic", "VmDynamic" }), VMStatus.class); + Class<?>[] inspectedClassNames = new Class<?>[] { + VmBase.class, + VM.class, + VmStatic.class, + VmDynamic.class }; - mUpdateVmsStatic.AddPermittedFields(new String[] { "vmName", "description", "domain", "os", "osType", - "creationDate", "allowConsoleReconnect", "usbPolicy", "autoSuspend", - "autoStartup", - "dedicatedVmForVds", "priority", "defaultBootSequence", "initrdUrl", - "kernelUrl", "kernelParams", "migrationSupport", "minAllocatedMem", "quotaId", "quotaName", - "quotaEnforcementType", "cpuPinning", - "vmPayload", "balloonEnabled", "smartcardEnabled","deleteProtected","dbGeneration", - "images", // images list is relational entity - ignore value changes - "interfaces", // interfaces is relational entity - ignore value changes - "useHostCpuFlags", - "quotaDefault", - "tunnelMigration" - }); - mUpdateVmsStatic.AddFields( - Arrays.asList(new Enum<?>[] { VMStatus.Down }), - Arrays.asList(new String[] { "vdsGroupId", "timeZone", "stateless", "niceLevel", "memSizeMb", - "numOfSockets", "cpuPerSocket", "isoPath", "userDefinedProperties", - "predefinedProperties", "customProperties", "defaultDisplayType", "numOfMonitors" })); + mUpdateVmsStatic = + new ObjectIdentityChecker(VmHandler.class, Arrays.asList(inspectedClassNames), VMStatus.class); + + mUpdateVmsStatic.AddPermittedFields(extractEditableFields(inspectedClassNames)); + + for (Pair<VMStatus, String> pair : extractyEditableOnStatusFields()) { + mUpdateVmsStatic.AddField(pair.getFirst(), pair.getSecond()); + } + } public static boolean isUpdateValid(VmStatic source, VmStatic destination, VMStatus status) { @@ -510,6 +511,42 @@ return (cdList.size() > 1 || floppyList.size() > 1); } - private static final Log log = LogFactory.getLog(VmHandler.class); + /** + * scan classes for {@link EditableField} annotated fields. Those fields must comply to a bean property form + * + * @param clz + * @return array of field names + */ + private static String[] extractEditableFields(Class<?>... clz) { + ArrayList<String> fields = new ArrayList<String>(); + for (Class<?> clazz : clz) { + for (Field field : clazz.getDeclaredFields()) { + if (field.isAnnotationPresent(EditableField.class)) { + fields.add(field.getName()); + } + } + } + return fields.toArray(new String[] {}); + } + + /** + * scan classes for {@link EditableOnVmStatusField} annotated fields. Those fields must comply to a bean property + * form + * @param clz + * @return array of pairs of a VMStatus -> field name + */ + private static List<Pair<VMStatus, String>> extractyEditableOnStatusFields(Class<?>... clz) { + List<Pair<VMStatus, String>> pairList = new ArrayList<Pair<VMStatus, String>>(); + for (Class<?> clazz : clz) { + for (Field field : clazz.getDeclaredFields()) { + EditableOnVmStatusField annotation = field.getAnnotation(EditableOnVmStatusField.class); + if (annotation != null) { + pairList.add(new Pair<VMStatus, String>(annotation.status(), field.getName())); + } + } + } + return pairList; + } } + diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/EditableField.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/EditableField.java new file mode 100644 index 0000000..2ae1ccb --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/EditableField.java @@ -0,0 +1,12 @@ +package org.ovirt.engine.core.common.businessentities; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface EditableField { + +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/EditableOnVmStatusField.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/EditableOnVmStatusField.java new file mode 100644 index 0000000..5afcf98 --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/EditableOnVmStatusField.java @@ -0,0 +1,14 @@ +package org.ovirt.engine.core.common.businessentities; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface EditableOnVmStatusField { + + VMStatus status() default VMStatus.Down; + +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java index aa9daf7..4b25dbc 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java @@ -23,7 +23,9 @@ private VmDynamic vmDynamic; private VmStatistics vmStatistics; + @EditableField private VmPayload vmPayload; + @EditableField private boolean balloonEnabled = true; @Valid diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmBase.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmBase.java index 212df78..8e43c8b 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmBase.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmBase.java @@ -23,93 +23,124 @@ public class VmBase extends IVdcQueryable implements BusinessEntity<Guid> { private static final long serialVersionUID = 1078548170257965614L; + + @EditableField private ArrayList<DiskImage> images; - private ArrayList<DiskImage> diskList = new ArrayList<DiskImage>(); + + @EditableField private List<VmNetworkInterface> interfaces; + + private ArrayList<DiskImage> diskList = new ArrayList<DiskImage>(); private Map<Guid, VmDevice> managedDeviceMap = new HashMap<Guid, VmDevice>(); private List<VmDevice> unmanagedDeviceList = new ArrayList<VmDevice>(); private Guid id = new Guid(); + @EditableOnVmStatusField private Guid vdsGroupId; - private VmOsType mOs = VmOsType.Unassigned; + @EditableField + private VmOsType os = VmOsType.Unassigned; + @EditableField private Date creationDate = new Date(0); + @EditableField @Size(max = BusinessEntitiesDefinitions.VM_DESCRIPTION_SIZE) @ValidDescription(message = "ACTION_TYPE_FAILED_DESCRIPTION_MAY_NOT_CONTAIN_SPECIAL_CHARS", groups = { CreateEntity.class, UpdateEntity.class }) private String description; - private int memSizeMB; + @EditableOnVmStatusField + private int memSizeMb; + @EditableOnVmStatusField private int numOfSockets = 1; - private int cpusPerSocket = 1; + @EditableOnVmStatusField + private int cpuPerSocket = 1; + @EditableOnVmStatusField @IntegerContainedInConfigValueList(configValue = ConfigValues.ValidNumOfMonitors, groups = DesktopVM.class, message = "VALIDATION.VM.NUM_OF_MONITORS.EXCEEDED") private int numOfMonitors; + @EditableField @Size(max = BusinessEntitiesDefinitions.GENERAL_DOMAIN_SIZE) private String domain; + @EditableOnVmStatusField @Size(max = BusinessEntitiesDefinitions.GENERAL_TIME_ZONE_SIZE) - private String timezone; + private String timeZone; private VmType vmType = VmType.Desktop; + @EditableField private UsbPolicy usbPolicy = UsbPolicy.DISABLED; private boolean failBack; + @EditableField private BootSequence defaultBootSequence = BootSequence.C; + @EditableOnVmStatusField private int niceLevel; - private boolean autosuspend; + @EditableField + private boolean autoSuspend; + @EditableField private int priority; + @EditableField private boolean autoStartup; + @EditableOnVmStatusField private boolean stateless; + @EditableField private boolean deleteProtected; + @EditableField private long dbGeneration; + @EditableField private boolean smartcardEnabled; + @EditableOnVmStatusField @Size(max = BusinessEntitiesDefinitions.GENERAL_MAX_SIZE) private String isoPath = ""; private OriginType origin; + @EditableField @Size(max = BusinessEntitiesDefinitions.GENERAL_MAX_SIZE) @Pattern(regexp = ValidationUtils.NO_TRIMMING_WHITE_SPACES_PATTERN, message = "ACTION_TYPE_FAILED_LINUX_BOOT_PARAMS_MAY_NOT_CONTAIN_TRIMMING_WHITESPACES", groups = { CreateEntity.class, UpdateEntity.class }) private String kernelUrl; + @EditableField @Size(max = BusinessEntitiesDefinitions.GENERAL_MAX_SIZE) @Pattern(regexp = ValidationUtils.NO_TRIMMING_WHITE_SPACES_PATTERN, message = "ACTION_TYPE_FAILED_LINUX_BOOT_PARAMS_MAY_NOT_CONTAIN_TRIMMING_WHITESPACES", groups = { CreateEntity.class, UpdateEntity.class }) private String kernelParams; + @EditableField @Size(max = BusinessEntitiesDefinitions.GENERAL_MAX_SIZE) @Pattern(regexp = ValidationUtils.NO_TRIMMING_WHITE_SPACES_PATTERN, message = "ACTION_TYPE_FAILED_LINUX_BOOT_PARAMS_MAY_NOT_CONTAIN_TRIMMING_WHITESPACES", groups = { CreateEntity.class, UpdateEntity.class }) private String initrdUrl; + @EditableField private boolean allowConsoleReconnect; /** * if this field is null then value should be taken from cluster */ + @EditableField private Boolean tunnelMigration; /** @@ -125,22 +156,30 @@ public VmBase() { } + @EditableField private Guid quotaId; + /** Transient field for GUI presentation purposes. */ + @EditableField private String quotaName; + @EditableField /** Transient field for GUI presentation purposes. */ private boolean isQuotaDefault; /** Transient field for GUI presentation purposes. */ + @EditableField private QuotaEnforcementTypeEnum quotaEnforcementType; + @EditableField @OvfExportOnlyField(valueToIgnore = "MIGRATABLE", exportOption = ExportOption.EXPORT_NON_IGNORED_VALUES) private MigrationSupport migrationSupport = MigrationSupport.MIGRATABLE; + @EditableField private NGuid dedicatedVmForVds; + @EditableOnVmStatusField protected DisplayType defaultDisplayType = DisplayType.qxl; public VmBase(Guid id, @@ -175,21 +214,21 @@ super(); this.id = id; this.vdsGroupId = vdsGroupId; - this.mOs = os; + this.os = os; this.creationDate = creationDate; this.description = description; - this.memSizeMB = memSizeMB; + this.memSizeMb = memSizeMB; this.numOfSockets = numOfSockets; - this.cpusPerSocket = cpusPerSocket; + this.cpuPerSocket = cpusPerSocket; this.numOfMonitors = numOfMonitors; this.domain = domain; - this.timezone = timezone; + this.timeZone = timezone; this.vmType = vmType; this.usbPolicy = usbPolicy; this.failBack = failBack; this.defaultBootSequence = defaultBootSequence; this.niceLevel = niceLevel; - this.autosuspend = autosuspend; + this.autoSuspend = autosuspend; this.priority = priority; this.autoStartup = autoStartup; this.stateless = stateless; @@ -271,21 +310,11 @@ } public VmOsType getOs() { - return mOs; + return os; } public void setOs(VmOsType value) { - mOs = value; - } - - @Deprecated - public VmOsType getOsType() { - return getOs(); - } - - @Deprecated - public void setOsType(VmOsType value) { - setOs(value); + os = value; } public Date getCreationDate() { @@ -305,11 +334,11 @@ } public int getMemSizeMb() { - return memSizeMB; + return memSizeMb; } public void setMemSizeMb(int value) { - this.memSizeMB = value; + this.memSizeMb = value; } public int getNumOfSockets() { @@ -321,11 +350,11 @@ } public int getCpuPerSocket() { - return cpusPerSocket; + return cpuPerSocket; } public void setCpuPerSocket(int value) { - this.cpusPerSocket = value; + this.cpuPerSocket = value; } public int getNumOfMonitors() { @@ -345,11 +374,11 @@ } public String getTimeZone() { - return timezone; + return timeZone; } public void setTimeZone(String value) { - timezone = value; + timeZone = value; } public VmType getVmType() { @@ -393,11 +422,11 @@ } public boolean isAutoSuspend() { - return autosuspend; + return autoSuspend; } public void setAutoSuspend(boolean value) { - autosuspend = value; + autoSuspend = value; } public int getPriority() { @@ -501,8 +530,8 @@ final int prime = 31; int result = 1; result = prime * result + (autoStartup ? 1231 : 1237); - result = prime * result + (autosuspend ? 1231 : 1237); - result = prime * result + cpusPerSocket; + result = prime * result + (autoSuspend ? 1231 : 1237); + result = prime * result + cpuPerSocket; result = prime * result + ((creationDate == null) ? 0 : creationDate.hashCode()); result = prime * result + ((defaultBootSequence == null) ? 0 : defaultBootSequence.hashCode()); result = prime * result + ((description == null) ? 0 : description.hashCode()); @@ -513,8 +542,8 @@ result = prime * result + ((isoPath == null) ? 0 : isoPath.hashCode()); result = prime * result + ((kernelParams == null) ? 0 : kernelParams.hashCode()); result = prime * result + ((kernelUrl == null) ? 0 : kernelUrl.hashCode()); - result = prime * result + ((mOs == null) ? 0 : mOs.hashCode()); - result = prime * result + memSizeMB; + result = prime * result + ((os == null) ? 0 : os.hashCode()); + result = prime * result + memSizeMb; result = prime * result + niceLevel; result = prime * result + numOfSockets; result = prime * result + numOfMonitors; @@ -522,7 +551,7 @@ result = prime * result + priority; result = prime * result + (stateless ? 1231 : 1237); result = prime * result + (smartcardEnabled ? 1231 : 1237); - result = prime * result + ((timezone == null) ? 0 : timezone.hashCode()); + result = prime * result + ((timeZone == null) ? 0 : timeZone.hashCode()); result = prime * result + ((usbPolicy == null) ? 0 : usbPolicy.hashCode()); result = prime * result + ((vdsGroupId == null) ? 0 : vdsGroupId.hashCode()); result = prime * result + ((vmType == null) ? 0 : vmType.hashCode()); @@ -550,10 +579,10 @@ if (autoStartup != other.autoStartup) { return false; } - if (autosuspend != other.autosuspend) { + if (autoSuspend != other.autoSuspend) { return false; } - if (cpusPerSocket != other.cpusPerSocket) { + if (cpuPerSocket != other.cpuPerSocket) { return false; } if (creationDate == null) { @@ -618,10 +647,10 @@ } else if (!kernelUrl.equals(other.kernelUrl)) { return false; } - if (mOs != other.mOs) { + if (os != other.os) { return false; } - if (memSizeMB != other.memSizeMB) { + if (memSizeMb != other.memSizeMb) { return false; } if (niceLevel != other.niceLevel) { @@ -648,11 +677,11 @@ if (deleteProtected != other.deleteProtected) { return false; } - if (timezone == null) { - if (other.timezone != null) { + if (timeZone == null) { + if (other.timeZone != null) { return false; } - } else if (!timezone.equals(other.timezone)) { + } else if (!timeZone.equals(other.timeZone)) { return false; } if (usbPolicy != other.usbPolicy) { diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmStatic.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmStatic.java index caf0077..51cb919 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmStatic.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmStatic.java @@ -18,16 +18,19 @@ @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 = { CreateEntity.class, UpdateEntity.class, ImportClonedEntity.class }) + @EditableField private String name = ""; private Guid vmtGuid = new Guid(); private boolean initialized; + @EditableOnVmStatusField @OvfExportOnlyField(exportOption = ExportOption.EXPORT_NON_IGNORED_VALUES) @Size(max = BusinessEntitiesDefinitions.GENERAL_MAX_SIZE) private String userDefinedProperties; + @EditableOnVmStatusField @OvfExportOnlyField(exportOption = ExportOption.EXPORT_NON_IGNORED_VALUES) @Size(max = BusinessEntitiesDefinitions.GENERAL_MAX_SIZE) private String predefinedProperties; @@ -37,14 +40,18 @@ */ private int diskSize; - private int minAllocatedMemField; + @EditableField + private int minAllocatedMem; + @EditableOnVmStatusField private String customProperties; + @EditableField @OvfExportOnlyField(exportOption = ExportOption.EXPORT_NON_IGNORED_VALUES) @Size(max = BusinessEntitiesDefinitions.GENERAL_MAX_SIZE) private String cpuPinning; + @EditableField private boolean useHostCpuFlags = false; public VmStatic() { @@ -210,14 +217,14 @@ } public int getMinAllocatedMem() { - if (minAllocatedMemField > 0) { - return minAllocatedMemField; + if (minAllocatedMem > 0) { + return minAllocatedMem; } return getMemSizeMb(); } public void setMinAllocatedMem(int value) { - minAllocatedMemField = value; + minAllocatedMem = value; } @Override diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ObjectIdentityChecker.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ObjectIdentityChecker.java index c932170..1b20ca9 100644 --- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ObjectIdentityChecker.java +++ b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ObjectIdentityChecker.java @@ -31,14 +31,14 @@ identities.put(type, this); } - public ObjectIdentityChecker(Class<?> type, Iterable<String> aliases) { + public ObjectIdentityChecker(Class<?> type, Iterable<Class<?>> aliases) { this(type); - for (String alias : aliases) { - ObjectIdentityChecker.aliases.put(alias, type); + for (Class<?> alias : aliases) { + ObjectIdentityChecker.aliases.put(alias.getSimpleName(), type); } } - public ObjectIdentityChecker(Class<?> type, Iterable<String> aliases, Class<?> enumType) { + public ObjectIdentityChecker(Class<?> type, Iterable<Class<?>> aliases, Class<?> enumType) { this(type, aliases); statusTypes.put(type, enumType); } @@ -78,7 +78,7 @@ if (statusType != null) { Enum<?> currentStatus; try { - currentStatus = (Enum<?>) EnumUtils.valueOf(statusType, status, true); + currentStatus = EnumUtils.valueOf(statusType, status, true); } catch (IllegalArgumentException e) { throw new RuntimeException(String.format("status type %1$s not contain type %2$s", statusType, status)); @@ -107,7 +107,7 @@ } } - public final void AddFields(Iterable<Enum<?>> statuses, Iterable<String> fields) { + public final void AddFields(Iterable<Enum<?>> statuses, String... fields) { for (String field : fields) { AddField(statuses, field); } @@ -117,7 +117,7 @@ permitted.add(fieldName); } - public final void AddPermittedFields(String[] fieldNames) { + public final void AddPermittedFields(String... fieldNames) { for (String fieldName : fieldNames) { AddPermittedField(fieldName); } -- To view, visit http://gerrit.ovirt.org/11916 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I8441f030c161c99c630a945b8b0228114665aa17 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Roy Golan <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
