Ravi Nori has uploaded a new change for review.

Change subject: restapi : malformated guid's cause http 500 (#902073)
......................................................................

restapi : malformated guid's cause http 500 (#902073)

When malformed Guids are passed in post data for action
the backend throws an internal error.

This patch moves MalformedIdException to restapi-types and
throws the exception if any invalid guids are passed.

Change-Id: Iebce833327654e1635632fb4a00ca8a3cf14fab5
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=902073
Signed-off-by: Ravi Nori <rn...@redhat.com>
---
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BaseBackendResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/validation/MalformedIdExceptionMapper.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendResourceTest.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/ClusterMapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DataCenterMapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DiskMapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostMapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostNicMapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/MappingLocator.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkMapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NicMapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/PermissionMapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/QuotaMapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/ReportedDeviceMapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/RoleMapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/StorageDomainMapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TagMapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TemplateMapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmPoolMapper.java
A 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/GuidUtils.java
A 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/MalformedIdException.java
M 
backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/MappingTestHelper.java
23 files changed, 95 insertions(+), 70 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/58/11758/1

diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BaseBackendResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BaseBackendResource.java
index ee32a07..cf37705 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BaseBackendResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BaseBackendResource.java
@@ -21,6 +21,7 @@
 import org.ovirt.engine.api.restapi.logging.Messages;
 import org.ovirt.engine.api.restapi.resource.validation.ValidatorLocator;
 import org.ovirt.engine.api.restapi.util.SessionHelper;
+import org.ovirt.engine.api.restapi.utils.MalformedIdException;
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.interfaces.BackendLocal;
 import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
@@ -239,15 +240,6 @@
         ArrayList<T> list = new ArrayList<T>();
         list.add(t);
         return list;
-    }
-
-    public static class MalformedIdException extends IllegalArgumentException {
-
-        private static final long serialVersionUID = 1L;
-
-        public MalformedIdException(IllegalArgumentException e) {
-            super(e);
-        }
     }
 
     protected Guid asGuid(String id) {
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/validation/MalformedIdExceptionMapper.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/validation/MalformedIdExceptionMapper.java
index 8df2b8b..86be95e 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/validation/MalformedIdExceptionMapper.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/validation/MalformedIdExceptionMapper.java
@@ -6,7 +6,7 @@
 import javax.ws.rs.ext.Provider;
 
 import org.jboss.resteasy.annotations.interception.ServerInterceptor;
-import 
org.ovirt.engine.api.restapi.resource.BaseBackendResource.MalformedIdException;
+import org.ovirt.engine.api.restapi.utils.MalformedIdException;
 
 @Provider
 @ServerInterceptor
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendResourceTest.java
index 1400213..ca5c63b 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendResourceTest.java
@@ -11,7 +11,7 @@
 import org.ovirt.engine.api.model.Action;
 import org.ovirt.engine.api.model.Cluster;
 import org.ovirt.engine.api.model.Host;
-import 
org.ovirt.engine.api.restapi.resource.BaseBackendResource.MalformedIdException;
+import org.ovirt.engine.api.restapi.utils.MalformedIdException;
 import org.ovirt.engine.core.common.action.UpdateVdsActionParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.VDS;
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/ClusterMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/ClusterMapper.java
index 9ad8f11..c960cbb 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/ClusterMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/ClusterMapper.java
@@ -14,11 +14,11 @@
 import org.ovirt.engine.api.model.SchedulingPolicyType;
 import org.ovirt.engine.api.model.TransparentHugePages;
 import org.ovirt.engine.api.model.Version;
+import org.ovirt.engine.api.restapi.utils.GuidUtils;
 import org.ovirt.engine.core.common.businessentities.MigrateOnErrorOptions;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
 import org.ovirt.engine.core.common.businessentities.VdsSelectionAlgorithm;
 import org.ovirt.engine.core.common.businessentities.storage_pool;
-import org.ovirt.engine.core.compat.Guid;
 
 public class ClusterMapper {
 
@@ -28,7 +28,7 @@
     public static VDSGroup map(Cluster model, VDSGroup template) {
         VDSGroup entity = template != null ? template : new VDSGroup();
         if (model.isSetId()) {
-            entity.setId(new Guid(model.getId()));
+            entity.setId(GuidUtils.asGuid(model.getId()));
         }
         if (model.isSetName()) {
             entity.setname(model.getName());
@@ -40,7 +40,7 @@
             entity.setcpu_name(model.getCpu().getId());
         }
         if (model.isSetDataCenter() && model.getDataCenter().isSetId()) {
-            entity.setStoragePoolId(new Guid(model.getDataCenter().getId()));
+            
entity.setStoragePoolId(GuidUtils.asGuid(model.getDataCenter().getId()));
         }
         if (model.isSetVersion() && model.getVersion().getMajor()!=null && 
model.getVersion().getMinor()!=null) {
             entity.setcompatibility_version(new 
org.ovirt.engine.core.compat.Version(model.getVersion().getMajor(),
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DataCenterMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DataCenterMapper.java
index 4ded3cf..844ba79 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DataCenterMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DataCenterMapper.java
@@ -7,9 +7,9 @@
 import org.ovirt.engine.api.restapi.model.StorageFormat;
 import org.ovirt.engine.api.model.StorageType;
 import org.ovirt.engine.api.model.Version;
+import org.ovirt.engine.api.restapi.utils.GuidUtils;
 import org.ovirt.engine.core.common.businessentities.StoragePoolStatus;
 import org.ovirt.engine.core.common.businessentities.storage_pool;
-import org.ovirt.engine.core.compat.Guid;
 
 public class DataCenterMapper {
 
@@ -17,7 +17,7 @@
     public static storage_pool map(DataCenter model, storage_pool template) {
         storage_pool entity = template != null ? template : new storage_pool();
         if (model.isSetId()) {
-            entity.setId(new Guid(model.getId()));
+            entity.setId(GuidUtils.asGuid(model.getId()));
         }
         if (model.isSetName()) {
             entity.setname(model.getName());
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DiskMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DiskMapper.java
index 158ea91..e3841fd 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DiskMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DiskMapper.java
@@ -11,6 +11,7 @@
 import org.ovirt.engine.api.model.Storage;
 import org.ovirt.engine.api.model.StorageDomain;
 import org.ovirt.engine.api.model.StorageDomains;
+import org.ovirt.engine.api.restapi.utils.GuidUtils;
 import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.ImageStatus;
@@ -40,7 +41,7 @@
             engineDisk.setDiskAlias(disk.getAlias());
         }
         if (disk.isSetId()) {
-            engineDisk.setId(new Guid(disk.getId()));
+            engineDisk.setId(GuidUtils.asGuid(disk.getId()));
         }
         if (disk.isSetBootable()) {
             engineDisk.setBoot(disk.isBootable());
@@ -75,7 +76,7 @@
     private static void mapDiskToDiskImageProperties(Disk disk,
             DiskImage diskImage) {
         if (disk.isSetImageId()) {
-            diskImage.setImageId(new Guid(disk.getImageId()));
+            diskImage.setImageId(GuidUtils.asGuid(disk.getImageId()));
         }
         //Notice below:
         //Both <size> and <provisioned_size> are mapped to the same field: 
'size' in the
@@ -113,7 +114,7 @@
             
diskImage.getstorage_ids().add(Guid.createGuidFromString(storageDomain.getId()));
         }
         if (disk.isSetQuota() && disk.getQuota().isSetId()) {
-            diskImage.setQuotaId(new Guid(disk.getQuota().getId()));
+            diskImage.setQuotaId(GuidUtils.asGuid(disk.getQuota().getId()));
         }
     }
 
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostMapper.java
index 5a0c5d4..e0d1649 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostMapper.java
@@ -32,6 +32,7 @@
 import org.ovirt.engine.api.model.TransparentHugePages;
 import org.ovirt.engine.api.model.Version;
 import org.ovirt.engine.api.model.VmSummary;
+import org.ovirt.engine.api.restapi.utils.GuidUtils;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSStatus;
 import org.ovirt.engine.core.common.businessentities.VDSType;
@@ -40,7 +41,6 @@
 import 
org.ovirt.engine.core.common.businessentities.VdsTransparentHugePagesState;
 import org.ovirt.engine.core.common.queries.ValueObjectMap;
 import org.ovirt.engine.core.common.queries.ValueObjectPair;
-import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.NGuid;
 
 public class HostMapper {
@@ -57,13 +57,13 @@
     public static VdsStatic map(Host model, VdsStatic template) {
         VdsStatic entity = template != null ? template : new VdsStatic();
         if (model.isSetId()) {
-            entity.setId(new Guid(model.getId()));
+            entity.setId(GuidUtils.asGuid(model.getId()));
         }
         if (model.isSetName()) {
             entity.setvds_name(model.getName());
         }
         if (model.isSetCluster() && model.getCluster().isSetId()) {
-            entity.setvds_group_id(new Guid(model.getCluster().getId()));
+            
entity.setvds_group_id(GuidUtils.asGuid(model.getCluster().getId()));
         }
         if (model.isSetAddress()) {
             entity.sethost_name(model.getAddress());
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostNicMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostNicMapper.java
index 0df4226..952daa4 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostNicMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostNicMapper.java
@@ -10,10 +10,10 @@
 import org.ovirt.engine.api.model.NicStatus;
 import org.ovirt.engine.api.model.Option;
 import org.ovirt.engine.api.model.Options;
+import org.ovirt.engine.api.restapi.utils.GuidUtils;
 import org.ovirt.engine.core.common.businessentities.network.InterfaceStatus;
 import 
org.ovirt.engine.core.common.businessentities.network.NetworkBootProtocol;
 import 
org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface;
-import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.StringHelper;
 
 public class HostNicMapper {
@@ -29,7 +29,7 @@
     public static VdsNetworkInterface map(HostNIC model, VdsNetworkInterface 
template) {
         VdsNetworkInterface entity = template != null ? template : new 
VdsNetworkInterface();
         if (model.isSetId()) {
-            entity.setId(new Guid(model.getId()));
+            entity.setId(GuidUtils.asGuid(model.getId()));
         }
         if (model.isSetNetwork() && model.getNetwork().isSetName()) {
             entity.setNetworkName(model.getNetwork().getName());
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/MappingLocator.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/MappingLocator.java
index 5eb5618..14f7acd 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/MappingLocator.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/MappingLocator.java
@@ -1,11 +1,13 @@
 package org.ovirt.engine.api.restapi.types;
 
+import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import org.ovirt.engine.api.common.util.PackageExplorer;
+import org.ovirt.engine.api.restapi.utils.MalformedIdException;
 
 /**
  * Discovers and manages type mappers.
@@ -113,6 +115,10 @@
             try {
                 // REVISIT support non-static mapping methods also
                 ret = method.invoke(null, from, template);
+            } catch (InvocationTargetException ite) {
+              if (ite.getTargetException() instanceof MalformedIdException) {
+                   throw (MalformedIdException) ite.getTargetException();
+              }
             } catch (Exception e) {
                 // REVISIT logging, fallback null-mapping
                 e.printStackTrace();
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkMapper.java
index 1657575..a0b716f 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkMapper.java
@@ -10,8 +10,8 @@
 import org.ovirt.engine.api.model.NetworkStatus;
 import org.ovirt.engine.api.model.Usages;
 import org.ovirt.engine.api.model.VLAN;
+import org.ovirt.engine.api.restapi.utils.GuidUtils;
 import org.ovirt.engine.core.common.businessentities.network.NetworkCluster;
-import org.ovirt.engine.core.compat.Guid;
 
 public class NetworkMapper {
 
@@ -20,7 +20,7 @@
         org.ovirt.engine.core.common.businessentities.network.Network entity = 
template != null ? template : new 
org.ovirt.engine.core.common.businessentities.network.Network();
         entity.setCluster(template != null && template.getCluster() != null ? 
template.getCluster() : new NetworkCluster());
         if (model.isSetId()) {
-            entity.setId(new Guid(model.getId()));
+            entity.setId(GuidUtils.asGuid(model.getId()));
         }
         if (model.isSetName()) {
             entity.setName(model.getName());
@@ -29,7 +29,7 @@
             entity.setDescription(model.getDescription());
         }
         if (model.isSetDataCenter() && model.getDataCenter().isSetId()) {
-            entity.setDataCenterId(new Guid(model.getDataCenter().getId()));
+            
entity.setDataCenterId(GuidUtils.asGuid(model.getDataCenter().getId()));
         }
         if (model.isSetIp()) {
             if (model.getIp().isSetAddress()) {
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NicMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NicMapper.java
index 4b951e4..326e2d1 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NicMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NicMapper.java
@@ -5,18 +5,18 @@
 import org.ovirt.engine.api.model.Network;
 import org.ovirt.engine.api.model.NicInterface;
 import org.ovirt.engine.api.model.VM;
+import org.ovirt.engine.api.restapi.utils.GuidUtils;
 import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
-import org.ovirt.engine.core.compat.Guid;
 
 public class NicMapper {
     @Mapping(from = NIC.class, to = VmNetworkInterface.class)
     public static VmNetworkInterface map(NIC model, VmNetworkInterface 
template) {
         VmNetworkInterface entity = template != null ? template : new 
VmNetworkInterface();
         if (model.isSetVm() && model.getVm().isSetId()) {
-            entity.setVmId(new Guid(model.getVm().getId()));
+            entity.setVmId(GuidUtils.asGuid(model.getVm().getId()));
         }
         if (model.isSetId()) {
-            entity.setId(new Guid(model.getId()));
+            entity.setId(GuidUtils.asGuid(model.getId()));
         }
         if (model.isSetName()) {
             entity.setName(model.getName());
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/PermissionMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/PermissionMapper.java
index d4eeaee..b3b54ae 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/PermissionMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/PermissionMapper.java
@@ -11,6 +11,7 @@
 import org.ovirt.engine.api.model.User;
 import org.ovirt.engine.api.model.VM;
 import org.ovirt.engine.api.model.VmPool;
+import org.ovirt.engine.api.restapi.utils.GuidUtils;
 import org.ovirt.engine.core.common.VdcObjectType;
 import org.ovirt.engine.core.common.businessentities.permissions;
 import org.ovirt.engine.core.compat.Guid;
@@ -21,15 +22,15 @@
     public static permissions map(Permission model, permissions template) {
         permissions entity = template != null ? template : new permissions();
         if (model.isSetId()) {
-            entity.setId(new Guid(model.getId()));
+            entity.setId(GuidUtils.asGuid(model.getId()));
         }
         if (model.isSetRole() && model.getRole().isSetId()) {
-            entity.setrole_id(new Guid(model.getRole().getId()));
+            entity.setrole_id(GuidUtils.asGuid(model.getRole().getId()));
         }
         if (model.isSetUser() && model.getUser().isSetId()) {
-            entity.setad_element_id(new Guid(model.getUser().getId()));
+            entity.setad_element_id(GuidUtils.asGuid(model.getUser().getId()));
         } else if (model.isSetGroup() && model.getGroup().isSetId()) {
-            entity.setad_element_id(new Guid(model.getGroup().getId()));
+            
entity.setad_element_id(GuidUtils.asGuid(model.getGroup().getId()));
         }
         entity.setObjectId(map(model, template != null ? 
template.getObjectId() : null));
         entity.setObjectType(map(model, template != null ? 
template.getObjectType() : null));
@@ -65,19 +66,19 @@
     @Mapping(from = Permission.class, to = Guid.class)
     public static Guid map(Permission p, Guid template) {
         return p.isSetDataCenter() && p.getDataCenter().isSetId()
-               ? new Guid(p.getDataCenter().getId())
+               ? GuidUtils.asGuid(p.getDataCenter().getId())
                : p.isSetCluster() && p.getCluster().isSetId()
-                 ? new Guid(p.getCluster().getId())
+                 ? GuidUtils.asGuid(p.getCluster().getId())
                  : p.isSetHost() && p.getHost().isSetId()
-                   ? new Guid(p.getHost().getId())
+                   ? GuidUtils.asGuid(p.getHost().getId())
                    : p.isSetStorageDomain() && p.getStorageDomain().isSetId()
-                     ? new Guid(p.getStorageDomain().getId())
+                     ? GuidUtils.asGuid(p.getStorageDomain().getId())
                      : p.isSetVm() && p.getVm().isSetId()
-                       ? new Guid(p.getVm().getId())
+                       ? GuidUtils.asGuid(p.getVm().getId())
                        : p.isSetVmpool() && p.getVmpool().isSetId()
-                         ? new Guid(p.getVmpool().getId())
+                         ? GuidUtils.asGuid(p.getVmpool().getId())
                          : p.isSetTemplate() && p.getTemplate().isSetId()
-                           ? new Guid(p.getTemplate().getId())
+                           ? GuidUtils.asGuid(p.getTemplate().getId())
                            : template;
     }
 
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/QuotaMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/QuotaMapper.java
index f75bde7..0d077d5 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/QuotaMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/QuotaMapper.java
@@ -2,7 +2,7 @@
 
 import org.ovirt.engine.api.model.DataCenter;
 import org.ovirt.engine.api.model.Quota;
-import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.api.restapi.utils.GuidUtils;
 
 
 public class QuotaMapper {
@@ -11,7 +11,7 @@
     public static org.ovirt.engine.core.common.businessentities.Quota 
map(Quota model, org.ovirt.engine.core.common.businessentities.Quota template) {
         org.ovirt.engine.core.common.businessentities.Quota entity = 
(template==null) ? new org.ovirt.engine.core.common.businessentities.Quota() : 
template;
         if (model.isSetId()) {
-            entity.setId(new Guid(model.getId()));
+            entity.setId(GuidUtils.asGuid(model.getId()));
         }
         if (model.isSetName()) {
             entity.setQuotaName(model.getName());
@@ -20,7 +20,7 @@
             entity.setDescription(model.getDescription());
         }
         if (model.isSetDataCenter()) {
-            entity.setStoragePoolId(new Guid(model.getDataCenter().getId()));
+            
entity.setStoragePoolId(GuidUtils.asGuid(model.getDataCenter().getId()));
         }
         return entity;
     }
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/ReportedDeviceMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/ReportedDeviceMapper.java
index 6fa475e..0732306 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/ReportedDeviceMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/ReportedDeviceMapper.java
@@ -9,8 +9,8 @@
 import org.ovirt.engine.api.model.MAC;
 import org.ovirt.engine.api.model.ReportedDeviceType;
 import org.ovirt.engine.api.model.VM;
+import org.ovirt.engine.api.restapi.utils.GuidUtils;
 import org.ovirt.engine.core.common.businessentities.VmGuestAgentInterface;
-import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.NGuid;
 
 public class ReportedDeviceMapper {
@@ -40,7 +40,7 @@
     public static VmGuestAgentInterface map(ReportedDevice model, 
VmGuestAgentInterface template) {
         VmGuestAgentInterface entity = template != null ? template : new 
VmGuestAgentInterface();
         if (model.isSetVm() && model.getVm().isSetId()) {
-            entity.setVmId(new Guid(model.getVm().getId()));
+            entity.setVmId(GuidUtils.asGuid(model.getVm().getId()));
         }
         if (model.isSetName()) {
             entity.setInterfaceName(model.getName());
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/RoleMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/RoleMapper.java
index 15f0822..48034c3 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/RoleMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/RoleMapper.java
@@ -1,8 +1,8 @@
 package org.ovirt.engine.api.restapi.types;
 
 import org.ovirt.engine.api.model.Role;
+import org.ovirt.engine.api.restapi.utils.GuidUtils;
 import org.ovirt.engine.core.common.businessentities.RoleType;
-import org.ovirt.engine.core.compat.Guid;
 
 public class RoleMapper {
 
@@ -21,7 +21,7 @@
     public static org.ovirt.engine.core.common.businessentities.Role map(Role 
model, org.ovirt.engine.core.common.businessentities.Role template) {
         org.ovirt.engine.core.common.businessentities.Role entity = template 
!= null ? template : new org.ovirt.engine.core.common.businessentities.Role();
         if (model.isSetId()) {
-            entity.setId(new Guid(model.getId()));
+            entity.setId(GuidUtils.asGuid(model.getId()));
         }
         if (model.isSetName()) {
             entity.setname(model.getName());
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/StorageDomainMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/StorageDomainMapper.java
index 2a29a0a..be94d39 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/StorageDomainMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/StorageDomainMapper.java
@@ -13,8 +13,8 @@
 import org.ovirt.engine.core.common.businessentities.storage_domains;
 import org.ovirt.engine.core.common.businessentities.StorageDomainStatic;
 import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
-import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.api.restapi.model.StorageFormat;
+import org.ovirt.engine.api.restapi.utils.GuidUtils;
 
 public class StorageDomainMapper {
 
@@ -22,7 +22,7 @@
     public static StorageDomainStatic map(StorageDomain model, 
StorageDomainStatic template) {
         StorageDomainStatic entity = template != null ? template : new 
StorageDomainStatic();
         if (model.isSetId()) {
-            entity.setId(new Guid(model.getId()));
+            entity.setId(GuidUtils.asGuid(model.getId()));
         }
         if (model.isSetName()) {
             entity.setstorage_name(model.getName());
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TagMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TagMapper.java
index 66dbf9a..5b05828 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TagMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TagMapper.java
@@ -2,8 +2,8 @@
 
 import org.ovirt.engine.api.model.Tag;
 import org.ovirt.engine.api.model.TagParent;
+import org.ovirt.engine.api.restapi.utils.GuidUtils;
 import org.ovirt.engine.core.common.businessentities.tags;
-import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.NGuid;
 
 public class TagMapper {
@@ -13,7 +13,7 @@
         tags entity = template != null ? template : new tags();
         entity.setparent_id(parent(model, entity.getparent_id()));
         if (model.isSetId()) {
-            entity.settag_id(new Guid(model.getId()));
+            entity.settag_id(GuidUtils.asGuid(model.getId()));
         }
         if (model.isSetName()) {
             entity.settag_name(model.getName());
@@ -38,7 +38,7 @@
         if (model.isSetParent() &&
             model.getParent().isSetTag() &&
             model.getParent().getTag().isSetId()) {
-            return new Guid(model.getParent().getTag().getId());
+            return GuidUtils.asGuid(model.getParent().getTag().getId());
         } else {
             return current == null ? NGuid.Empty : current;
         }
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TemplateMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TemplateMapper.java
index a873007..576965f 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TemplateMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TemplateMapper.java
@@ -17,12 +17,12 @@
 import org.ovirt.engine.api.model.Usb;
 import org.ovirt.engine.api.model.UsbType;
 import org.ovirt.engine.api.model.VmType;
+import org.ovirt.engine.api.restapi.utils.GuidUtils;
 import org.ovirt.engine.api.restapi.utils.UsbMapperUtils;
 import org.ovirt.engine.core.common.businessentities.OriginType;
 import org.ovirt.engine.core.common.businessentities.VmStatic;
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.businessentities.VmTemplateStatus;
-import org.ovirt.engine.core.compat.Guid;
 
 public class TemplateMapper {
 
@@ -35,13 +35,13 @@
             entity.setname(model.getName());
         }
         if (model.isSetId()) {
-            entity.setId(new Guid(model.getId()));
+            entity.setId(GuidUtils.asGuid(model.getId()));
         }
         if (model.isSetDescription()) {
             entity.setDescription(model.getDescription());
         }
         if (model.isSetCluster() && model.getCluster().getId() != null) {
-            entity.setVdsGroupId(new Guid(model.getCluster().getId()));
+            entity.setVdsGroupId(GuidUtils.asGuid(model.getCluster().getId()));
         }
         if (model.isSetHighAvailability()) {
             if (model.getHighAvailability().isSetEnabled()) {
@@ -133,13 +133,13 @@
             staticVm.setVmName(model.getName());
         }
         if (model.isSetId()) {
-            staticVm.setId(new Guid(model.getId()));
+            staticVm.setId(GuidUtils.asGuid(model.getId()));
         }
         if (model.isSetDescription()) {
             staticVm.setDescription(model.getDescription());
         }
         if (model.isSetCluster() && model.getCluster().getId() != null) {
-            staticVm.setVdsGroupId(new Guid(model.getCluster().getId()));
+            
staticVm.setVdsGroupId(GuidUtils.asGuid(model.getCluster().getId()));
         }
         if (model.isSetHighAvailability()) {
             if (model.getHighAvailability().isSetEnabled()) {
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java
index e2a477f..51d752a 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java
@@ -43,6 +43,7 @@
 import org.ovirt.engine.api.model.VmStatus;
 import org.ovirt.engine.api.model.VmType;
 import org.ovirt.engine.api.restapi.utils.CustomPropertiesParser;
+import org.ovirt.engine.api.restapi.utils.GuidUtils;
 import org.ovirt.engine.api.restapi.utils.UsbMapperUtils;
 import org.ovirt.engine.core.common.action.RunVmOnceParams;
 import org.ovirt.engine.core.common.businessentities.BootSequence;
@@ -56,7 +57,6 @@
 import org.ovirt.engine.core.common.businessentities.VmStatic;
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.utils.VmDeviceType;
-import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.NGuid;
 import org.ovirt.engine.core.compat.StringHelper;
 import org.ovirt.engine.core.compat.Version;
@@ -109,7 +109,7 @@
             staticVm.setVmName(vm.getName());
         }
         if (vm.isSetId()) {
-            staticVm.setId(new Guid(vm.getId()));
+            staticVm.setId(GuidUtils.asGuid(vm.getId()));
         }
         if (vm.isSetDescription()) {
             staticVm.setDescription(vm.getDescription());
@@ -121,10 +121,10 @@
             staticVm.setMemSizeMb(DEFAULT_MEMORY_SIZE);
         }
         if (vm.isSetTemplate() && vm.getTemplate().getId() != null) {
-            staticVm.setVmtGuid(new Guid(vm.getTemplate().getId()));
+            staticVm.setVmtGuid(GuidUtils.asGuid(vm.getTemplate().getId()));
         }
         if (vm.isSetCluster() && vm.getCluster().getId() != null) {
-            staticVm.setVdsGroupId(new Guid(vm.getCluster().getId()));
+            staticVm.setVdsGroupId(GuidUtils.asGuid(vm.getCluster().getId()));
         }
         if (vm.isSetCpu()) {
             if (vm.getCpu().isSetMode()) {
@@ -226,7 +226,7 @@
             
staticVm.setCustomProperties(CustomPropertiesParser.parse(vm.getCustomProperties().getCustomProperty()));
         }
         if (vm.isSetQuota() && vm.getQuota().isSetId()) {
-            staticVm.setQuotaId(new Guid(vm.getQuota().getId()));
+            staticVm.setQuotaId(GuidUtils.asGuid(vm.getQuota().getId()));
         }
         if (vm.isSetTunnelMigration()) {
             staticVm.setTunnelMigration(vm.isTunnelMigration());
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmPoolMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmPoolMapper.java
index 08dc98b..a643d04 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmPoolMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmPoolMapper.java
@@ -2,9 +2,9 @@
 
 import org.ovirt.engine.api.model.Cluster;
 import org.ovirt.engine.api.model.VmPool;
+import org.ovirt.engine.api.restapi.utils.GuidUtils;
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.vm_pools;
-import org.ovirt.engine.core.compat.Guid;
 
 public class VmPoolMapper {
 
@@ -12,7 +12,7 @@
     public static vm_pools map(VmPool model, vm_pools template) {
         vm_pools entity = template != null ? template : new vm_pools();
         if (model.isSetId()) {
-            entity.setvm_pool_id(new Guid(model.getId()));
+            entity.setvm_pool_id(GuidUtils.asGuid(model.getId()));
         }
         if (model.isSetName()) {
             entity.setvm_pool_name(model.getName());
@@ -25,7 +25,7 @@
         }
         if (model.isSetCluster()) {
             if (model.getCluster().isSetId()) {
-                entity.setvds_group_id(new Guid(model.getCluster().getId()));
+                
entity.setvds_group_id(GuidUtils.asGuid(model.getCluster().getId()));
             } else if (model.getCluster().isSetName()) {
                 entity.setvds_group_name(model.getCluster().getName());
             }
@@ -43,11 +43,11 @@
         entity.setVmDescription(model.getDescription());
         if (model.isSetTemplate() &&
             model.getTemplate().isSetId()) {
-            entity.setVmtGuid(new Guid(model.getTemplate().getId()));
+            entity.setVmtGuid(GuidUtils.asGuid(model.getTemplate().getId()));
         }
         if (model.isSetCluster() &&
             model.getCluster().isSetId()) {
-            entity.setVdsGroupId(new Guid(model.getCluster().getId()));
+            entity.setVdsGroupId(GuidUtils.asGuid(model.getCluster().getId()));
         }
         return entity;
     }
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/GuidUtils.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/GuidUtils.java
new file mode 100644
index 0000000..8ea6525
--- /dev/null
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/GuidUtils.java
@@ -0,0 +1,15 @@
+package org.ovirt.engine.api.restapi.utils;
+
+import org.ovirt.engine.core.compat.Guid;
+
+public class GuidUtils {
+
+    public static Guid asGuid(String id) {
+        try {
+            return new Guid(id);
+        }catch (IllegalArgumentException e) {
+            throw new MalformedIdException(e);
+        }
+    }
+
+}
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/MalformedIdException.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/MalformedIdException.java
new file mode 100644
index 0000000..3e8e3d6
--- /dev/null
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/MalformedIdException.java
@@ -0,0 +1,10 @@
+package org.ovirt.engine.api.restapi.utils;
+
+public class MalformedIdException extends IllegalArgumentException {
+
+    private static final long serialVersionUID = 1L;
+
+    public MalformedIdException(IllegalArgumentException e) {
+        super(e);
+    }
+}
diff --git 
a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/MappingTestHelper.java
 
b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/MappingTestHelper.java
index 34fa2fc..aac5d98 100644
--- 
a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/MappingTestHelper.java
+++ 
b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/MappingTestHelper.java
@@ -4,8 +4,8 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
+import org.ovirt.engine.api.restapi.utils.GuidUtils;
 
-import org.ovirt.engine.core.compat.Guid;
 
 public class MappingTestHelper {
 
@@ -218,7 +218,7 @@
     }
 
     private static Object garble(Method m) {
-        return m.getName().endsWith("Id") ? new 
Guid(UUID.randomUUID()).toString()
+        return m.getName().endsWith("Id") ? 
GuidUtils.asGuid(UUID.randomUUID().toString()).toString()
                 : new String(new byte[] { (byte) (65 + rand(26)), (byte) (65 + 
rand(26)),
                         (byte) (65 + rand(26)) });
     }


--
To view, visit http://gerrit.ovirt.org/11758
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iebce833327654e1635632fb4a00ca8a3cf14fab5
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ravi Nori <rn...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to