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