Gilad Chaplik has uploaded a new change for review.

Change subject: engine: profiles MLA support
......................................................................

engine: profiles MLA support

Introducing disk profiles Action Groups and adding to relevant roles.

Change-Id: I4d4ac948a401d5ad2f59c6151c69e0b0ab42aea2
Signed-off-by: Gilad Chaplik <[email protected]>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ActionGroup.java
M 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/model/PermitType.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/PermitMapper.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/roles_ui/RoleTreeView.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/LocalizedEnums.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
M 
frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/LocalizedEnums.properties
A packaging/dbscripts/upgrade/03_05_0780_add_disk_profile_action_groups.sql
8 files changed, 101 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/71/29671/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ActionGroup.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ActionGroup.java
index 5aeec1e..bca126f 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ActionGroup.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ActionGroup.java
@@ -132,7 +132,12 @@
     AUDIT_LOG_MANAGEMENT(1304, RoleType.ADMIN, false),
 
     // affinity group CRUD commands
-    MANIPULATE_AFFINITY_GROUPS(1550, RoleType.ADMIN, true, 
ApplicationMode.VirtOnly);
+    MANIPULATE_AFFINITY_GROUPS(1550, RoleType.ADMIN, true, 
ApplicationMode.VirtOnly),
+
+    // disk profiles
+    CONFIGURE_STORAGE_DISK_PROFILE(1560, RoleType.ADMIN, true, 
ApplicationMode.VirtOnly),
+    CREATE_STORAGE_DISK_PROFILE(1561, RoleType.ADMIN, true, 
ApplicationMode.VirtOnly),
+    DELETE_STORAGE_DISK_PROFILE(1562, RoleType.ADMIN, true, 
ApplicationMode.VirtOnly);
 
     private int id;
     private RoleType roleType;
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 439ae0f..814203c 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
@@ -115,7 +115,12 @@
     EVENT_NOTIFICATION_MANAGEMENT,
     AUDIT_LOG_MANAGEMENT,
     // affinity groups CRUD commands
-    MANIPULATE_AFFINITY_GROUPS;
+    MANIPULATE_AFFINITY_GROUPS,
+
+    // disk profile
+    CONFIGURE_STORAGE_DISK_PROFILE,
+    CREATE_STORAGE_DISK_PROFILE,
+    DELETE_STORAGE_DISK_PROFILE;
 
     public String value() {
         return name().toLowerCase();
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 ff9d19f..bb9cc3b 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
@@ -192,6 +192,12 @@
             return PermitType.MANIPULATE_AFFINITY_GROUPS;
         case ADD_USERS_AND_GROUPS_FROM_DIRECTORY:
             return PermitType.ADD_USERS_AND_GROUPS_FROM_DIRECTORY;
+        case CONFIGURE_STORAGE_DISK_PROFILE:
+            return PermitType.CONFIGURE_STORAGE_DISK_PROFILE;
+        case CREATE_STORAGE_DISK_PROFILE:
+            return PermitType.CREATE_STORAGE_DISK_PROFILE;
+        case DELETE_STORAGE_DISK_PROFILE:
+            return PermitType.DELETE_STORAGE_DISK_PROFILE;
         default:
             return null;
         }
@@ -348,6 +354,12 @@
             return ActionGroup.MANIPULATE_AFFINITY_GROUPS;
         case ADD_USERS_AND_GROUPS_FROM_DIRECTORY:
             return ActionGroup.ADD_USERS_AND_GROUPS_FROM_DIRECTORY;
+        case CONFIGURE_STORAGE_DISK_PROFILE:
+            return ActionGroup.CONFIGURE_STORAGE_DISK_PROFILE;
+        case CREATE_STORAGE_DISK_PROFILE:
+            return ActionGroup.CREATE_STORAGE_DISK_PROFILE;
+        case DELETE_STORAGE_DISK_PROFILE:
+            return ActionGroup.DELETE_STORAGE_DISK_PROFILE;
         default:
             return null;
         }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/roles_ui/RoleTreeView.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/roles_ui/RoleTreeView.java
index 20121cf..f801756 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/roles_ui/RoleTreeView.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/roles_ui/RoleTreeView.java
@@ -231,7 +231,7 @@
     }
 
     protected static RoleNode createStorageDomainRoleTree() {
-        return new RoleNode(getConstants().storageDomainRoleTree(),
+        return new RoleNode(getConstants().storageDomainRoleTree(), new 
RoleNode[] {
                 new RoleNode(getConstants().configureStorageDomainRoleTree(), 
new RoleNode[] {
                         new RoleNode(ActionGroup.CREATE_STORAGE_DOMAIN,
                                 
getConstants().allowToCreateStorageDomainRoleTreeTooltip()),
@@ -240,7 +240,14 @@
                         new 
RoleNode(ActionGroup.EDIT_STORAGE_DOMAIN_CONFIGURATION,
                                 
getConstants().allowToModifyStorageDomainPropertiesRoleTreeTooltip()),
                         new RoleNode(ActionGroup.MANIPULATE_STORAGE_DOMAIN,
-                                
getConstants().allowToChangeStorageDomainStatusRoleTreeTooltip()) }));
+                                
getConstants().allowToChangeStorageDomainStatusRoleTreeTooltip()) }),
+                new RoleNode(getConstants().configureDiskProfileRoleTree(), 
new RoleNode[] {
+                        new RoleNode(ActionGroup.CREATE_STORAGE_DISK_PROFILE,
+                                
getConstants().allowToCreateDiskProfileRoleTreeTooltip()),
+                        new RoleNode(ActionGroup.DELETE_STORAGE_DISK_PROFILE,
+                                
getConstants().allowToDeleteDiskProfileRoleTreeTooltip()),
+                        new 
RoleNode(ActionGroup.CONFIGURE_STORAGE_DISK_PROFILE,
+                                
getConstants().allowToUpdateDiskProfileRoleTreeTooltip()) }) });
     }
 
     protected static RoleNode createNetworkRoleTree() {
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/LocalizedEnums.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/LocalizedEnums.java
index 5ffecf7..f21a22c 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/LocalizedEnums.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/LocalizedEnums.java
@@ -204,6 +204,12 @@
 
     String ActionGroup___MANIPULATE_GLUSTER_SERVICE();
 
+    String ActionGroup___CONFIGURE_STORAGE_DISK_PROFILE();
+
+    String ActionGroup___CREATE_STORAGE_DISK_PROFILE();
+
+    String ActionGroup___DELETE_STORAGE_DISK_PROFILE();
+
     String EventNotificationEntity___Host();
 
     String EventNotificationEntity___VdsGroup();
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
index 7c52a3a..e9871d2 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
@@ -1,8 +1,9 @@
 package org.ovirt.engine.ui.uicompat;
 
 
-import com.google.gwt.i18n.client.Constants;
 import org.ovirt.engine.core.common.businessentities.VmPool;
+
+import com.google.gwt.i18n.client.Constants;
 
 public interface UIConstants extends com.google.gwt.i18n.client.Constants {
 
@@ -1451,6 +1452,18 @@
     @DefaultStringValue("Configure Storage Domain")
     String configureStorageDomainRoleTree();
 
+    @DefaultStringValue("Configure Disk Profile")
+    String configureDiskProfileRoleTree();
+
+    @DefaultStringValue("Allow to create Disk Profile")
+    String allowToCreateDiskProfileRoleTreeTooltip();
+
+    @DefaultStringValue("Allow to delete Disk Profile")
+    String allowToDeleteDiskProfileRoleTreeTooltip();
+
+    @DefaultStringValue("Allow to update Disk Profile")
+    String allowToUpdateDiskProfileRoleTreeTooltip();
+
     @DefaultStringValue("Cluster")
     String clusterRoleTree();
 
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/LocalizedEnums.properties
 
b/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/LocalizedEnums.properties
index 5ce7131..792f020 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/LocalizedEnums.properties
+++ 
b/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/LocalizedEnums.properties
@@ -98,6 +98,9 @@
 ActionGroup___MANIPULATE_GLUSTER_HOOK=Manipulate Gluster Hook
 ActionGroup___MANIPULATE_GLUSTER_SERVICE=Manipulate Service
 ActionGroup___MANIPULATE_AFFINITY_GROUPS=Manipulate Affinity Groups
+ActionGroup___CONFIGURE_STORAGE_DISK_PROFILE=Manipulate Disk Profiles
+ActionGroup___CREATE_STORAGE_DISK_PROFILE=Create Disk Profiles
+ActionGroup___DELETE_STORAGE_DISK_PROFILE=Delete Disk Profiles
 EventNotificationEntity___Host=General Host Events:
 EventNotificationEntity___VdsGroup=Cluster Events:
 EventNotificationEntity___VirtHost=Virt Host Events:
diff --git 
a/packaging/dbscripts/upgrade/03_05_0780_add_disk_profile_action_groups.sql 
b/packaging/dbscripts/upgrade/03_05_0780_add_disk_profile_action_groups.sql
new file mode 100644
index 0000000..3c0b0dc
--- /dev/null
+++ b/packaging/dbscripts/upgrade/03_05_0780_add_disk_profile_action_groups.sql
@@ -0,0 +1,45 @@
+-- add permissions to disk profile (according to existing permissions on 
storage).
+
+------------------------------------------------
+--- Update existing roles with new Action Groups
+------------------------------------------------
+-- Add ActionGroup 1560 (CONFIGURE_STORAGE_DISK_PROFILE) to any role which 
contains EDIT_STORAGE_DOMAIN_CONFIGURATION(601) or 
MANIPULATE_STORAGE_DOMAIN(603)
+INSERT INTO roles_groups (role_id, action_group_id)
+SELECT DISTINCT role_id, 1560
+FROM roles_groups a
+WHERE NOT EXISTS (SELECT 1
+                      FROM roles_groups b
+                      WHERE b.role_id = a.role_id
+                      AND b.action_group_id = 1560)
+    AND EXISTS (SELECT 1
+                FROM roles_groups b
+                WHERE b.role_id = a.role_id
+                AND (b.action_group_id = 601 OR b.action_group_id = 603));
+
+-- Add ActionGroup 1561 (CREATE_STORAGE_DISK_PROFILE) to any role which 
contains ActionGroup CREATE_STORAGE_DOMAIN(600)
+INSERT INTO roles_groups (role_id, action_group_id)
+SELECT DISTINCT role_id, 1561
+FROM roles_groups a
+WHERE NOT EXISTS (SELECT 1
+                      FROM roles_groups b
+                      WHERE b.role_id = a.role_id
+                      AND b.action_group_id = 1561)
+    AND EXISTS (SELECT 1
+                FROM roles_groups b
+                WHERE b.role_id = a.role_id
+                AND b.action_group_id = 600);
+
+-- Add ActionGroup 1562 (DELETE_STORAGE_DISK_PROFILE) to any role which 
contains ActionGroup DELETE_STORAGE_DOMAIN(602)
+INSERT INTO roles_groups (role_id, action_group_id)
+SELECT DISTINCT role_id, 1562
+FROM roles_groups a
+WHERE NOT EXISTS (SELECT 1
+                      FROM roles_groups b
+                      WHERE b.role_id = a.role_id
+                      AND b.action_group_id = 1562)
+    AND EXISTS (SELECT 1
+                FROM roles_groups b
+                WHERE b.role_id = a.role_id
+                AND b.action_group_id = 602);
+
+


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4d4ac948a401d5ad2f59c6151c69e0b0ab42aea2
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Gilad Chaplik <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to