Oved Ourfali has uploaded a new change for review.

Change subject: api: ovirt-engine-restapi : two permissions has the same permit 
ID (#859233)
......................................................................

api: ovirt-engine-restapi : two permissions has the same permit ID (#859233)

https://bugzilla.redhat.com/show_bug.cgi?id=859233

This patch removes the id and the role from the PermitType enum, adding
suitable mappers, and changing all dependant code accordingly.

Change-Id: I578e227b6e4600715e0ca7a8dfb4dbad79df15b4
Signed-off-by: Oved Ourfali <oourf...@redhat.com>
---
M 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/model/PermitType.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/validation/PermitValidator.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/PermitMapper.java
M 
backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/PermitMapperTest.java
4 files changed, 183 insertions(+), 79 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/28/8128/1

diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/model/PermitType.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/model/PermitType.java
index 0356aae..9031ed9 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/model/PermitType.java
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/model/PermitType.java
@@ -18,98 +18,83 @@
 
 
 public enum PermitType {
-    CREATE_VM(1, RoleType.USER),
-    DELETE_VM(2, RoleType.USER),
-    EDIT_VM_PROPERTIES(3, RoleType.USER),
-    VM_BASIC_OPERATIONS(4, RoleType.USER),
-    CHANGE_VM_CD(5, RoleType.USER),
-    MIGRATE_VM(6, RoleType.USER),
-    CONNECT_TO_VM(7, RoleType.USER),
-    IMPORT_EXPORT_VM(8, RoleType.ADMIN),
-    CONFIGURE_VM_NETWORK(9, RoleType.USER),
-    CONFIGURE_VM_STORAGE(10, RoleType.USER),
-    MOVE_VM(11, RoleType.USER),
-    MANIPULATE_VM_SNAPSHOTS(12, RoleType.USER),
-    RECONNECT_TO_VM(13, RoleType.ADMIN),
-    CHANGE_VM_CUSTOM_PROPERTIES(14, RoleType.ADMIN),
+    CREATE_VM,
+    DELETE_VM,
+    EDIT_VM_PROPERTIES,
+    VM_BASIC_OPERATIONS,
+    CHANGE_VM_CD,
+    MIGRATE_VM,
+    CONNECT_TO_VM,
+    IMPORT_EXPORT_VM,
+    CONFIGURE_VM_NETWORK,
+    CONFIGURE_VM_STORAGE,
+    MOVE_VM,
+    MANIPULATE_VM_SNAPSHOTS,
+    RECONNECT_TO_VM,
+    CHANGE_VM_CUSTOM_PROPERTIES,
     // host (vds) actions groups
-    CREATE_HOST(100, RoleType.ADMIN),
-    EDIT_HOST_CONFIGURATION(101, RoleType.ADMIN),
-    DELETE_HOST(102, RoleType.ADMIN),
-    MANIPUTLATE_HOST(103, RoleType.ADMIN),
-    CONFIGURE_HOST_NETWORK(104, RoleType.ADMIN),
+    CREATE_HOST,
+    EDIT_HOST_CONFIGURATION,
+    DELETE_HOST,
+    MANIPUTLATE_HOST,
+    CONFIGURE_HOST_NETWORK,
     // templates actions groups
-    CREATE_TEMPLATE(200, RoleType.USER),
-    EDIT_TEMPLATE_PROPERTIES(201, RoleType.USER),
-    DELETE_TEMPLATE(202, RoleType.USER),
-    COPY_TEMPLATE(203, RoleType.USER),
-    CONFIGURE_TEMPLATE_NETWORK(204, RoleType.USER),
+    CREATE_TEMPLATE,
+    EDIT_TEMPLATE_PROPERTIES,
+    DELETE_TEMPLATE,
+    COPY_TEMPLATE,
+    CONFIGURE_TEMPLATE_NETWORK,
     // vm pools actions groups
-    CREATE_VM_POOL(300, RoleType.USER),
-    EDIT_VM_POOL_CONFIGURATION(301, RoleType.USER),
-    DELETE_VM_POOL(302, RoleType.USER),
-    VM_POOL_BASIC_OPERATIONS(303, RoleType.USER),
+    CREATE_VM_POOL,
+    EDIT_VM_POOL_CONFIGURATION,
+    DELETE_VM_POOL,
+    VM_POOL_BASIC_OPERATIONS,
     // clusters actions groups
-    CREATE_CLUSTER(400, RoleType.ADMIN),
-    EDIT_CLUSTER_CONFIGURATION(401, RoleType.ADMIN),
-    DELETE_CLUSTER(402, RoleType.ADMIN),
-    CONFIGURE_CLUSTER_NETWORK(403, RoleType.ADMIN),
+    CREATE_CLUSTER,
+    EDIT_CLUSTER_CONFIGURATION,
+    DELETE_CLUSTER,
+    CONFIGURE_CLUSTER_NETWORK,
     // users and MLA actions groups
-    MANIPULATE_USERS(500, RoleType.ADMIN),
-    MANIPULATE_ROLES(501, RoleType.ADMIN),
-    MANIPULATE_PERMISSIONS(502, RoleType.USER),
+    MANIPULATE_USERS,
+    MANIPULATE_ROLES,
+    MANIPULATE_PERMISSIONS,
     // storage domains actions groups
-    CREATE_STORAGE_DOMAIN(600, RoleType.ADMIN),
-    EDIT_STORAGE_DOMAIN_CONFIGURATION(601, RoleType.ADMIN),
-    DELETE_STORAGE_DOMAIN(602, RoleType.ADMIN),
-    MANIPULATE_STORAGE_DOMAIN(603, RoleType.ADMIN),
+    CREATE_STORAGE_DOMAIN,
+    EDIT_STORAGE_DOMAIN_CONFIGURATION,
+    DELETE_STORAGE_DOMAIN,
+    MANIPULATE_STORAGE_DOMAIN,
     // storage pool actions groups
-    CREATE_STORAGE_POOL(700, RoleType.ADMIN),
-    DELETE_STORAGE_POOL(701, RoleType.ADMIN),
-    EDIT_STORAGE_POOL_CONFIGURATION(702, RoleType.ADMIN),
-    CONFIGURE_STORAGE_POOL_NETWORK(703, RoleType.ADMIN),
+    CREATE_STORAGE_POOL,
+    DELETE_STORAGE_POOL,
+    EDIT_STORAGE_POOL_CONFIGURATION,
+    CONFIGURE_STORAGE_POOL_NETWORK,
 
     // rhevm generic
-    CONFIGURE_RHEVM(800, RoleType.ADMIN),
+    CONFIGURE_RHEVM,
 
     // Quota
-    CONFIGURE_QUOTA(900, RoleType.ADMIN),
-    CONSUME_QUOTA(901, RoleType.USER),
+    CONFIGURE_QUOTA,
+    CONSUME_QUOTA,
 
     // Gluster
-    CREATE_GLUSTER_VOLUME(1000, RoleType.ADMIN),
-    MANIPULATE_GLUSTER_VOLUME(1001, RoleType.ADMIN),
-    DELETE_GLUSTER_VOLUME(1002, RoleType.ADMIN),
+    CREATE_GLUSTER_VOLUME,
+    MANIPULATE_GLUSTER_VOLUME,
+    DELETE_GLUSTER_VOLUME,
 
     // Disks action groups
-    CREATE_DISK(1100, RoleType.USER),
-    ATTACH_DISK(1101, RoleType.USER),
-    EDIT_DISK_PROPERTIES(1102, RoleType.USER),
-    CONFIGURE_DISK_STORAGE(1103, RoleType.USER),
-    DELETE_DISK(1104, RoleType.USER),
+    CREATE_DISK,
+    ATTACH_DISK,
+    EDIT_DISK_PROPERTIES,
+    CONFIGURE_DISK_STORAGE,
+    DELETE_DISK,
 
     // Vm Interface action groups
-    PORT_MIRRORING(1104, RoleType.ADMIN),
+    PORT_MIRRORING,
 
     // Login action group
-    LOGIN(1300, RoleType.USER);
-
-    private int id;
-    private RoleType role;
-    private PermitType(int id, RoleType role) {
-        this.id = id;
-        this.role = role;
-    }
+    LOGIN;
 
     public String value() {
         return name().toLowerCase();
-    }
-
-    public RoleType getRole() {
-        return role;
-    }
-
-    public int getId() {
-        return id;
     }
 }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/validation/PermitValidator.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/validation/PermitValidator.java
index bf209ef..e708150 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/validation/PermitValidator.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/validation/PermitValidator.java
@@ -5,6 +5,7 @@
 
 import org.ovirt.engine.api.model.Permit;
 import org.ovirt.engine.api.model.PermitType;
+import org.ovirt.engine.api.restapi.types.PermitMapper;
 
 import static org.ovirt.engine.api.common.util.EnumValidator.validateEnum;
 
@@ -20,7 +21,8 @@
             if (permit.isSetId()) {
                 boolean valid = false;
                 for (PermitType permitType : PermitType.values()) {
-                    if (permitType.getId() == Integer.valueOf(permit.getId())) 
{
+                    Permit mappedPermit = PermitMapper.map(permitType, 
(Permit)null);
+                    if (mappedPermit != null && 
mappedPermit.getId().equals(permit.getId())) {
                         valid = true;
                         break;
                     }
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/PermitMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/PermitMapper.java
index 63cd497..d75c4c9 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/PermitMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/PermitMapper.java
@@ -33,7 +33,7 @@
         Permit model = template != null ? template : new Permit();
         model.setId(Integer.toString(entity.getId()));
         model.setName(permitType.value());
-        
model.setAdministrative(org.ovirt.engine.api.model.RoleType.ADMIN.equals(permitType.getRole()));
+        
model.setAdministrative(org.ovirt.engine.api.model.RoleType.ADMIN.toString().equals(entity.getRoleType().toString()));
         return model;
     }
 
@@ -157,12 +157,129 @@
         }
     }
 
+    @Mapping(from = PermitType.class, to = ActionGroup.class)
+    public static ActionGroup map(PermitType entity, ActionGroup template) {
+        switch (entity) {
+        case CREATE_VM:
+            return ActionGroup.CREATE_VM;
+        case DELETE_VM:
+            return ActionGroup.DELETE_VM;
+        case EDIT_VM_PROPERTIES:
+            return ActionGroup.EDIT_VM_PROPERTIES;
+        case VM_BASIC_OPERATIONS:
+            return ActionGroup.VM_BASIC_OPERATIONS;
+        case CHANGE_VM_CD:
+            return ActionGroup.CHANGE_VM_CD;
+        case MIGRATE_VM:
+            return ActionGroup.MIGRATE_VM;
+        case CONNECT_TO_VM:
+            return ActionGroup.CONNECT_TO_VM;
+        case IMPORT_EXPORT_VM:
+            return ActionGroup.IMPORT_EXPORT_VM;
+        case CONFIGURE_VM_NETWORK:
+            return ActionGroup.CONFIGURE_VM_NETWORK;
+        case CONFIGURE_VM_STORAGE:
+            return ActionGroup.CONFIGURE_VM_STORAGE;
+        case MOVE_VM:
+            return ActionGroup.MOVE_VM;
+        case MANIPULATE_VM_SNAPSHOTS:
+            return ActionGroup.MANIPULATE_VM_SNAPSHOTS;
+        case RECONNECT_TO_VM:
+            return ActionGroup.RECONNECT_TO_VM;
+        case CHANGE_VM_CUSTOM_PROPERTIES:
+            return ActionGroup.CHANGE_VM_CUSTOM_PROPERTIES;
+        case CREATE_HOST:
+            return ActionGroup.CREATE_HOST;
+        case EDIT_HOST_CONFIGURATION:
+            return ActionGroup.EDIT_HOST_CONFIGURATION;
+        case DELETE_HOST:
+            return ActionGroup.DELETE_HOST;
+        case MANIPUTLATE_HOST:
+            return ActionGroup.MANIPUTLATE_HOST;
+        case CONFIGURE_HOST_NETWORK:
+            return ActionGroup.CONFIGURE_HOST_NETWORK;
+        case CREATE_TEMPLATE:
+            return ActionGroup.CREATE_TEMPLATE;
+        case EDIT_TEMPLATE_PROPERTIES:
+            return ActionGroup.EDIT_TEMPLATE_PROPERTIES;
+        case DELETE_TEMPLATE:
+            return ActionGroup.DELETE_TEMPLATE;
+        case COPY_TEMPLATE:
+            return ActionGroup.COPY_TEMPLATE;
+        case CONFIGURE_TEMPLATE_NETWORK:
+            return ActionGroup.CONFIGURE_TEMPLATE_NETWORK;
+        case CREATE_VM_POOL:
+            return ActionGroup.CREATE_VM_POOL;
+        case EDIT_VM_POOL_CONFIGURATION:
+            return ActionGroup.EDIT_VM_POOL_CONFIGURATION;
+        case DELETE_VM_POOL:
+            return ActionGroup.DELETE_VM_POOL;
+        case VM_POOL_BASIC_OPERATIONS:
+            return ActionGroup.VM_POOL_BASIC_OPERATIONS;
+        case CREATE_CLUSTER:
+            return ActionGroup.CREATE_CLUSTER;
+        case EDIT_CLUSTER_CONFIGURATION:
+            return ActionGroup.EDIT_CLUSTER_CONFIGURATION;
+        case DELETE_CLUSTER:
+            return ActionGroup.DELETE_CLUSTER;
+        case CONFIGURE_CLUSTER_NETWORK:
+            return ActionGroup.CONFIGURE_CLUSTER_NETWORK;
+        case MANIPULATE_USERS:
+            return ActionGroup.MANIPULATE_USERS;
+        case MANIPULATE_ROLES:
+            return ActionGroup.MANIPULATE_ROLES;
+        case MANIPULATE_PERMISSIONS:
+            return ActionGroup.MANIPULATE_PERMISSIONS;
+        case CREATE_STORAGE_DOMAIN:
+            return ActionGroup.CREATE_STORAGE_DOMAIN;
+        case EDIT_STORAGE_DOMAIN_CONFIGURATION:
+            return ActionGroup.EDIT_STORAGE_DOMAIN_CONFIGURATION;
+        case DELETE_STORAGE_DOMAIN:
+            return ActionGroup.DELETE_STORAGE_DOMAIN;
+        case MANIPULATE_STORAGE_DOMAIN:
+            return ActionGroup.MANIPULATE_STORAGE_DOMAIN;
+        case CREATE_STORAGE_POOL:
+            return ActionGroup.CREATE_STORAGE_POOL;
+        case DELETE_STORAGE_POOL:
+            return ActionGroup.DELETE_STORAGE_POOL;
+        case EDIT_STORAGE_POOL_CONFIGURATION:
+            return ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION;
+        case CONFIGURE_STORAGE_POOL_NETWORK:
+            return ActionGroup.CONFIGURE_STORAGE_POOL_NETWORK;
+        case CONFIGURE_RHEVM:
+            return ActionGroup.CONFIGURE_ENGINE;
+        case CONFIGURE_QUOTA:
+            return ActionGroup.CONFIGURE_QUOTA;
+        case CONSUME_QUOTA:
+            return ActionGroup.CONSUME_QUOTA;
+        case CREATE_GLUSTER_VOLUME:
+            return ActionGroup.CREATE_GLUSTER_VOLUME;
+        case MANIPULATE_GLUSTER_VOLUME:
+            return ActionGroup.MANIPULATE_GLUSTER_VOLUME;
+        case DELETE_GLUSTER_VOLUME:
+            return ActionGroup.DELETE_GLUSTER_VOLUME;
+        case CREATE_DISK:
+            return ActionGroup.CREATE_DISK;
+        case ATTACH_DISK:
+            return ActionGroup.ATTACH_DISK;
+        case EDIT_DISK_PROPERTIES:
+            return ActionGroup.EDIT_DISK_PROPERTIES;
+        case CONFIGURE_DISK_STORAGE:
+            return ActionGroup.CONFIGURE_DISK_STORAGE;
+        case DELETE_DISK:
+            return ActionGroup.DELETE_DISK;
+        case PORT_MIRRORING:
+            return ActionGroup.PORT_MIRRORING;
+        case LOGIN:
+            return ActionGroup.LOGIN;
+        default:
+            return null;
+        }
+    }
+
     @Mapping(from = PermitType.class, to = Permit.class)
     public static Permit map(PermitType entity, Permit template) {
-        Permit model = new Permit();
-        model.setName(entity.value());
-        model.setId(String.valueOf(entity.getId()));
-        
model.setAdministrative(entity.getRole()==org.ovirt.engine.api.model.RoleType.ADMIN);
-        return model;
+        ActionGroup actionGroup = map(entity, (ActionGroup) null);
+        return map(actionGroup, (Permit) null);
     }
 }
diff --git 
a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/PermitMapperTest.java
 
b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/PermitMapperTest.java
index 1c425e3..f78dcf5 100644
--- 
a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/PermitMapperTest.java
+++ 
b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/PermitMapperTest.java
@@ -18,7 +18,7 @@
         from.setId(Integer.toString(actionGroup.getId()));
         PermitType permitType = PermitMapper.map(actionGroup, 
(PermitType)null);
         from.setName(permitType.value());
-        from.setAdministrative(permitType.getRole()==RoleType.ADMIN);
+        
from.setAdministrative(actionGroup.getRoleType().toString().equals(RoleType.ADMIN.toString()));
         return from;
     }
 


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

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

Reply via email to