Roy Golan has uploaded a new change for review. Change subject: core: Fix and relax some parsing of VM structures ......................................................................
core: Fix and relax some parsing of VM structures - Create a null-safe parsing method for VM architecture - Parse int-value properties which could be int or String type so its compatible with "List" verb and "getVmFromExternalProvider" verbs responses. Change-Id: I6332226aad841502e3eb7570fcb662e18ad5b647 Bug-Url: https://bugzilla.redhat.com/?????? Signed-off-by: Roy Golan <rgo...@redhat.com> --- M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmsMonitoring.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java 2 files changed, 28 insertions(+), 15 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/97/42297/1 diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmsMonitoring.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmsMonitoring.java index 1aecd85d..d63de90 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmsMonitoring.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmsMonitoring.java @@ -331,8 +331,8 @@ vmStatic.setOrigin(OriginType.EXTERNAL); } - vmStatic.setNumOfSockets(parseIntVdsProperty(vmInfo.get(VdsProperties.num_of_cpus))); - vmStatic.setMemSizeMb(parseIntVdsProperty(vmInfo.get(VdsProperties.mem_size_mb))); + vmStatic.setNumOfSockets(VdsBrokerObjectsBuilder.parseIntVdsProperty(vmInfo.get(VdsProperties.num_of_cpus))); + vmStatic.setMemSizeMb(VdsBrokerObjectsBuilder.parseIntVdsProperty(vmInfo.get(VdsProperties.mem_size_mb))); vmStatic.setSingleQxlPci(false); externalVmsToAdd.add(vmStatic); @@ -578,16 +578,6 @@ private static Guid getDeviceId(Map device) { String deviceId = (String) device.get(VdsProperties.DeviceId); return deviceId == null ? null : new Guid(deviceId); - } - - // Some properties were changed recently from String to Integer - // This method checks what type is the property, and returns int - private int parseIntVdsProperty(Object vdsProperty) { - if (vdsProperty instanceof Integer) { - return (Integer) vdsProperty; - } else { - return Integer.parseInt((String) vdsProperty); - } } /** diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java index f953297..af06fdb 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java @@ -125,7 +125,8 @@ for (DiskImage image : vm.getImages()) { vm.getDiskMap().put(Guid.newGuid(), image); } - vm.setClusterArch(ArchitectureType.valueOf((String) xmlRpcStruct.get(VdsProperties.vm_arch))); + + vm.setClusterArch(parseArchitecture(xmlRpcStruct)); return vm; } @@ -216,8 +217,8 @@ VmStatic vmStatic = new VmStatic(); vmStatic.setId(Guid.createGuidFromString((String) xmlRpcStruct.get(VdsProperties.vm_guid))); vmStatic.setName((String) xmlRpcStruct.get(VdsProperties.vm_name)); - vmStatic.setMemSizeMb((int) xmlRpcStruct.get(VdsProperties.mem_size_mb)); - vmStatic.setNumOfSockets((int) xmlRpcStruct.get(VdsProperties.num_of_cpus)); + vmStatic.setMemSizeMb(parseIntVdsProperty(xmlRpcStruct.get(VdsProperties.mem_size_mb))); + vmStatic.setNumOfSockets(parseIntVdsProperty(xmlRpcStruct.get(VdsProperties.num_of_cpus))); if (xmlRpcStruct.containsKey(VdsProperties.vm_disks)) { for (Object disk : (Object[]) xmlRpcStruct.get(VdsProperties.vm_disks)) { @@ -648,6 +649,28 @@ } } + /** + * Some properties were changed recently from String to Integer + * This method checks what type is the property, and returns int + * @param vdsProperty + * @return + */ + public static int parseIntVdsProperty(Object vdsProperty) { + if (vdsProperty instanceof Integer) { + return (Integer) vdsProperty; + } else { + return Integer.parseInt((String) vdsProperty); + } + } + + protected static ArchitectureType parseArchitecture(Map<String, Object> xmlRpcStruct) { + try { + return ArchitectureType.valueOf((String) xmlRpcStruct.get(VdsProperties.vm_arch)); + } catch (NullPointerException e) { + return null; + } + } + public static void updateVMStatisticsData(VmStatistics vm, Map<String, Object> xmlRpcStruct) { if (xmlRpcStruct.containsKey(VdsProperties.vm_guid)) { vm.setId(new Guid((String) xmlRpcStruct.get(VdsProperties.vm_guid))); -- To view, visit https://gerrit.ovirt.org/42297 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I6332226aad841502e3eb7570fcb662e18ad5b647 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Roy Golan <rgo...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches