#1 Build system, plus tests.
Closed 2 years ago by admiyo. Opened 2 years ago by admiyo.

Added test results to branch
Sean Pryor • 2 years ago  
Incremental update
Sean Pryor • 2 years ago  
Fixed grouping of deny_stack_user
Sean Pryor • 2 years ago  
Draft of Glance policy
Sean Pryor • 2 years ago  
Update README.md
Sean Pryor • 2 years ago  
file added
+3

@@ -0,0 +1,3 @@ 

+ build/*

+ *~

+ *current

file modified
+2 -35

@@ -1,35 +1,2 @@ 

- This is a repository of the files/tools we are developping around

- integrating the sevone (monitoring software) into RH-OSP.

- 

- This project includes several areas:

- - Add policy files to the overcloud to restrict the 'readonly' role and prevent

-   update/create/delete operations.

-   

- - Add tooling (OBSOLETE since this will be done through node-payload in the

-   osp10 templates) to push/update policies on the overcloud.

-   

- - Provide a MOP (Method of procedure) to enable Sevone pre-requisites on

-   both the undercloud and overcloud. An ASCII version of the MOP is provided

-   in this repository.

- 

- This work on the 'readonly' role was a request of the VZW HQ Planning group.

- 

- Here is how it works:

- 

- On the undercloud, as the 'stack' user perform the following steps:

- 

-     1) source stackrc  

-     2) git clone https://gitlab.cee.redhat.com/vcojot/OSP-Readonly-Policies/tree/master  

-     3) ./policydir/files/push_readonly_policies_to_overcloud.sh  

-     4) source overcloudrc

-     5) openstack role create readonly

- 

- (this will auto-detect the controllers and push the appropriate policies)  

- 

- To restrict a user, then simply do add the 'readonly' role to the user, do a: 

- 

-     openstack role add --project <tenant_name> --user <user_name> readonly

- 

- To lift the restrictions and re-enable modifications to the overcloud, do a:  

- 

-     openstack role remove --project <tenant_name> --user <user_name> readonly

+ This repo contains the current ongoing work of attempting to implement a

+ read-only role via policy.json in OSP10 

OSP10 or OSP13?. This PR in osp13 branch, isn't?

\ No newline at end of file

file added
+6

@@ -0,0 +1,6 @@ 

+ #!/bin/sh

+ 

+ . tests/functions

+ 

+ build_policy

+ run_policy_current

file added
+3

@@ -0,0 +1,3 @@ 

+ #!/bin/sh

+ 

+ rm -rf build/etc

file added
+35

@@ -0,0 +1,35 @@ 

+ # COMMON

+ 

+ # A global reader role, that is able to read things that don't have a project_id associated

+ global_reader: "(role:global_reader and is_admin_project:True)"

+ 

+ # The specification for readers, who should only be able to read, never modify, data.

+ # This rule incorporates other less strict reader specifications, so any reader

+ reader: "((role:reader and project_id:%(project_id)s) or rule:global_reader)"

+ 

+ # This is the default admin specification, able to control every part of the cloud without issue

+ admin: "(is_admin:True or role:admin  and (is_admin_project:True or  project_id:%(project_id)s))"

+ 

+ # This is a helper role specification for members, since some deployers use "member", and some use "_member_"

+ _member_role: "(role:Member or role:member or role:_member_)"

+ 

+ # This is the default member specification, implying that the user is a member of that

+ # project or domain, and has permission to modify objects inside it, but not on the cloud

+ # as a whole

+ member: "(rule:_member_role and project_id:%(project_id)s)"

+ 

+ # This rule is specific for a user's own objects

+ owner: "(rule:_member_role and user_id:%(user_id)s)"

+ 

+ # The role used by openstack services

+ "service_role": "(role:service)"

+ 

+ #

+ "token_subject": "user_id:%(target.token.user_id)s"

+ 

+ 

+ # Decides what is required for the 'is_admin:True' check to succeed.

+ "context_is_admin": "role:admin and (is_admin_project:True or project_id:%(project_id)s)"

+ 

+ 

+ # END COMMON

file removed
-20

@@ -1,20 +0,0 @@ 

- {

-     "context_is_admin": "role:admin",

-     "segregation": "rule:context_is_admin",

-     "admin_or_owner": "rule:context_is_admin or project_id:%(project_id)s",

-     "default": "rule:admin_or_owner",

- 

-     "telemetry:get_alarm": "rule:admin_or_owner",

-     "telemetry:get_alarms": "rule:admin_or_owner",

-     "telemetry:query_alarm": "rule:admin_or_owner",

- 

-     "telemetry:create_alarm": "",

-     "telemetry:change_alarm": "rule:admin_or_owner",

-     "telemetry:delete_alarm": "rule:admin_or_owner",

- 

-     "telemetry:get_alarm_state": "rule:admin_or_owner",

-     "telemetry:change_alarm_state": "rule:admin_or_owner",

- 

-     "telemetry:alarm_history": "rule:admin_or_owner",

-     "telemetry:query_alarm_history": "rule:admin_or_owner"

- }

@@ -1,18 +0,0 @@ 

- {

-     "context_is_admin": "role:admin",

-     "segregation": "rule:context_is_admin",

- 

-     "telemetry:get_samples": "",

-     "telemetry:get_sample": "",

-     "telemetry:query_sample": "",

-     "telemetry:create_samples": "",

- 

-     "telemetry:compute_statistics": "",

-     "telemetry:get_meters": "",

- 

-     "telemetry:get_resource": "",

-     "telemetry:get_resources": "",

- 

-     "telemetry:events:index": "",

-     "telemetry:events:show": ""

- }

file removed
-142

@@ -1,142 +0,0 @@ 

- {

- 

-     "readonly": "(project_id:%(project_id)s and role:readonly)",

-     "global_readonly": "(role:global_readonly)",

-     "_member_role": "(role:member or role:_member_)",

-     "member": "(project_id:%(project_id)s and rule:_member_role)",

-     "admin": "(is_admin:True or role:admin)",

-     "owner": "(user_id:%(user_id)s and rule:_member_role)",

- 

-     "default": "rule:admin or rule:member",

- 

-     "volume:create": "rule:admin or rule:member",

-     "volume:delete": "rule:admin or rule:member",

-     "volume:get": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-     "volume:get_all": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-     "volume:get_volume_metadata": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-     "volume:create_volume_metadata": "rule:admin or rule:member",

-     "volume:delete_volume_metadata": "rule:admin or rule:member",

-     "volume:update_volume_metadata": "rule:admin or rule:member",

-     "volume:get_volume_admin_metadata": "rule:admin",

-     "volume:update_volume_admin_metadata": "rule:admin",

-     "volume:get_snapshot": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-     "volume:get_all_snapshots": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-     "volume:create_snapshot": "rule:admin or rule:member",

-     "volume:delete_snapshot": "rule:admin or rule:member",

-     "volume:update_snapshot": "rule:admin or rule:member",

-     "volume:get_snapshot_metadata": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-     "volume:delete_snapshot_metadata": "rule:admin or rule:member",

-     "volume:update_snapshot_metadata": "rule:admin or rule:member",

-     "volume:extend": "rule:admin or rule:member",

-     "volume:update_readonly_flag": "rule:admin or rule:member",

-     "volume:retype": "rule:admin or rule:member",

-     "volume:update": "rule:admin or rule:member",

- 

-     "volume_extension:types_manage": "rule:admin",

-     "volume_extension:types_extra_specs": "rule:admin",

-     "volume_extension:access_types_qos_specs_id": "rule:admin",

-     "volume_extension:access_types_extra_specs": "rule:admin",

-     "volume_extension:volume_type_access": "rule:admin or rule:member",

-     "volume_extension:volume_type_access:addProjectAccess": "rule:admin",

-     "volume_extension:volume_type_access:removeProjectAccess": "rule:admin",

-     "volume_extension:volume_type_encryption": "rule:admin",

-     "volume_extension:volume_encryption_metadata": "rule:admin or rule:member",

-     "volume_extension:extended_snapshot_attributes": "rule:admin or rule:member",

-     "volume_extension:volume_image_metadata": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

- 

-     "volume_extension:quotas:show": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-     "volume_extension:quotas:update": "rule:admin",

-     "volume_extension:quotas:delete": "rule:admin",

-     "volume_extension:quota_classes": "rule:admin",

-     "volume_extension:quota_classes:validate_setup_for_nested_quota_use": "rule:admin",

- 

-     "volume_extension:volume_admin_actions:reset_status": "rule:admin",

-     "volume_extension:snapshot_admin_actions:reset_status": "rule:admin",

-     "volume_extension:backup_admin_actions:reset_status": "rule:admin",

-     "volume_extension:volume_admin_actions:force_delete": "rule:admin",

-     "volume_extension:volume_admin_actions:force_detach": "rule:admin",

-     "volume_extension:snapshot_admin_actions:force_delete": "rule:admin",

-     "volume_extension:backup_admin_actions:force_delete": "rule:admin",

-     "volume_extension:volume_admin_actions:migrate_volume": "rule:admin",

-     "volume_extension:volume_admin_actions:migrate_volume_completion": "rule:admin",

- 

-     "volume_extension:volume_actions:upload_public": "rule:admin",

-     "volume_extension:volume_actions:upload_image": "rule:admin or rule:member",

- 

-     "volume_extension:volume_host_attribute": "rule:admin",

-     "volume_extension:volume_tenant_attribute": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-     "volume_extension:volume_mig_status_attribute": "rule:admin",

-     "volume_extension:hosts": "rule:admin or rule:readonly or rule:global_readonly",

-     "volume_extension:services:index": "rule:admin or rule:readonly or rule:global_readonly",

-     "volume_extension:services:update" : "rule:admin",

- 

-     "volume_extension:volume_manage": "rule:admin",

-     "volume_extension:volume_unmanage": "rule:admin",

-     "volume_extension:list_manageable": "rule:admin",

- 

-     "volume_extension:capabilities": "rule:admin or rule:readonly or rule:global_readonly",

- 

-     "volume:create_transfer": "rule:admin or rule:member",

-     "volume:accept_transfer": "rule:admin or rule:member",

-     "volume:delete_transfer": "rule:admin or rule:member",

-     "volume:get_transfer": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-     "volume:get_all_transfers": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

- 

-     "volume_extension:replication:promote": "rule:admin",

-     "volume_extension:replication:reenable": "rule:admin",

- 

-     "volume:failover_host": "rule:admin",

-     "volume:freeze_host": "rule:admin",

-     "volume:thaw_host": "rule:admin",

- 

-     "backup:create" : "rule:admin or rule:member",

-     "backup:delete": "rule:admin or rule:member",

-     "backup:get": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-     "backup:get_all": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-     "backup:restore": "rule:admin or rule:member",

-     "backup:backup-import": "rule:admin",

-     "backup:backup-export": "rule:admin",

-     "backup:update": "rule:admin or rule:member",

- 

-     "snapshot_extension:snapshot_actions:update_snapshot_status": "rule:admin",

-     "snapshot_extension:snapshot_manage": "rule:admin",

-     "snapshot_extension:snapshot_unmanage": "rule:admin",

-     "snapshot_extension:list_manageable": "rule:admin",

- 

-     "consistencygroup:create" : "group:nobody",

-     "consistencygroup:delete": "group:nobody",

-     "consistencygroup:update": "group:nobody",

-     "consistencygroup:get": "group:nobody",

-     "consistencygroup:get_all": "group:nobody",

- 

-     "consistencygroup:create_cgsnapshot" : "group:nobody",

-     "consistencygroup:delete_cgsnapshot": "group:nobody",

-     "consistencygroup:get_cgsnapshot": "group:nobody",

-     "consistencygroup:get_all_cgsnapshots": "group:nobody",

- 

-     "group:group_types_manage": "rule:admin",

-     "group:group_types_specs": "rule:admin",

-     "group:access_group_types_specs": "rule:admin",

-     "group:group_type_access": "rule:admin or rule:member",

- 

-     "group:create" : "rule:admin or rule:member",

-     "group:delete": "rule:admin or rule:member",

-     "group:update": "rule:admin or rule:member",

-     "group:get": "rule:admin or rule:member",

-     "group:get_all": "rule:admin or rule:member",

- 

-     "group:create_group_snapshot": "rule:admin or rule:member",

-     "group:delete_group_snapshot": "rule:admin or rule:member",

-     "group:update_group_snapshot": "rule:admin or rule:member",

-     "group:get_group_snapshot": "rule:admin or rule:member",

-     "group:get_all_group_snapshots": "rule:admin or rule:member",

- 

-     "scheduler_extension:scheduler_stats:get_pools" : "rule:admin or rule:readonly or rule:global_readonly",

-     "message:delete": "rule:admin or rule:member",

-     "message:get": "rule:admin or rule:member",

-     "message:get_all": "rule:admin or rule:member",

- 

-     "clusters:get": "rule:admin",

-     "clusters:get_all": "rule:admin",

-     "clusters:update": "rule:admin"

- }

file removed
-61

@@ -1,61 +0,0 @@ 

- {

-     "context_is_admin":  "role:admin",

-     "default": "role:admin",

- 

-     "add_image": "",

-     "delete_image": "",

-     "get_image": "",

-     "get_images": "",

-     "modify_image": "",

-     "publicize_image": "role:admin",

-     "copy_from": "",

- 

-     "download_image": "",

-     "upload_image": "",

- 

-     "delete_image_location": "",

-     "get_image_location": "",

-     "set_image_location": "",

- 

-     "add_member": "",

-     "delete_member": "",

-     "get_member": "",

-     "get_members": "",

-     "modify_member": "",

- 

-     "manage_image_cache": "role:admin",

- 

-     "get_task": "role:admin",

-     "get_tasks": "role:admin",

-     "add_task": "role:admin",

-     "modify_task": "role:admin",

- 

-     "deactivate": "",

-     "reactivate": "",

- 

-     "get_metadef_namespace": "",

-     "get_metadef_namespaces":"",

-     "modify_metadef_namespace":"",

-     "add_metadef_namespace":"",

- 

-     "get_metadef_object":"",

-     "get_metadef_objects":"",

-     "modify_metadef_object":"",

-     "add_metadef_object":"",

- 

-     "list_metadef_resource_types":"",

-     "get_metadef_resource_type":"",

-     "add_metadef_resource_type_association":"",

- 

-     "get_metadef_property":"",

-     "get_metadef_properties":"",

-     "modify_metadef_property":"",

-     "add_metadef_property":"",

- 

-     "get_metadef_tag":"",

-     "get_metadef_tags":"",

-     "modify_metadef_tag":"",

-     "add_metadef_tag":"",

-     "add_metadef_tags":""

- 

- }

file removed
-42

@@ -1,42 +0,0 @@ 

- {

-     "admin_or_creator": "role:admin or project_id:%(created_by_project_id)s",

-     "resource_owner": "project_id:%(project_id)s",

-     "metric_owner": "project_id:%(resource.project_id)s",

- 

-     "get status": "role:admin",

- 

-     "create resource": "",

-     "get resource": "rule:admin_or_creator or rule:resource_owner",

-     "update resource": "rule:admin_or_creator",

-     "delete resource": "rule:admin_or_creator",

-     "delete resources": "rule:admin_or_creator",

-     "list resource": "rule:admin_or_creator or rule:resource_owner",

-     "search resource": "rule:admin_or_creator or rule:resource_owner",

- 

-     "create resource type": "role:admin",

-     "delete resource type": "role:admin",

-     "update resource type": "role:admin",

-     "list resource type": "",

-     "get resource type": "",

- 

-     "get archive policy": "",

-     "list archive policy": "",

-     "create archive policy": "role:admin",

-     "update archive policy": "role:admin",

-     "delete archive policy": "role:admin",

- 

-     "create archive policy rule": "role:admin",

-     "get archive policy rule": "",

-     "list archive policy rule": "",

-     "delete archive policy rule": "role:admin",

- 

-     "create metric": "",

-     "delete metric": "rule:admin_or_creator",

-     "get metric": "rule:admin_or_creator or rule:metric_owner",

-     "search metric": "rule:admin_or_creator or rule:metric_owner",

-     "list metric": "",

-     "list all metric": "role:admin",

- 

-     "get measures":  "rule:admin_or_creator or rule:metric_owner",

-     "post measures":  "rule:admin_or_creator"

- }

file removed
-3

@@ -1,3 +0,0 @@ 

- {

-     "context_is_admin": "role:admin","project_admin": "role:admin","deny_stack_user": "not role:heat_stack_user","deny_everybody": "!","cloudformation:ListStacks": "rule:deny_stack_user","cloudformation:CreateStack": "rule:deny_stack_user","cloudformation:DescribeStacks": "rule:deny_stack_user","cloudformation:DeleteStack": "rule:deny_stack_user","cloudformation:UpdateStack": "rule:deny_stack_user","cloudformation:CancelUpdateStack": "rule:deny_stack_user","cloudformation:DescribeStackEvents": "rule:deny_stack_user","cloudformation:ValidateTemplate": "rule:deny_stack_user","cloudformation:GetTemplate": "rule:deny_stack_user","cloudformation:EstimateTemplateCost": "rule:deny_stack_user","cloudformation:DescribeStackResource": "","cloudformation:DescribeStackResources": "rule:deny_stack_user","cloudformation:ListStackResources": "rule:deny_stack_user","cloudwatch:DeleteAlarms": "rule:deny_stack_user","cloudwatch:DescribeAlarmHistory": "rule:deny_stack_user","cloudwatch:DescribeAlarms": "rule:deny_stack_user","cloudwatch:DescribeAlarmsForMetric": "rule:deny_stack_user","cloudwatch:DisableAlarmActions": "rule:deny_stack_user","cloudwatch:EnableAlarmActions": "rule:deny_stack_user","cloudwatch:GetMetricStatistics": "rule:deny_stack_user","cloudwatch:ListMetrics": "rule:deny_stack_user","cloudwatch:PutMetricAlarm": "rule:deny_stack_user","cloudwatch:PutMetricData": "","cloudwatch:SetAlarmState": "rule:deny_stack_user","actions:action": "rule:deny_stack_user","build_info:build_info": "rule:deny_stack_user","events:index": "rule:deny_stack_user","events:show": "rule:deny_stack_user","resource:index": "rule:deny_stack_user","resource:metadata": "","resource:signal": "","resource:mark_unhealthy": "rule:deny_stack_user","resource:show": "rule:deny_stack_user","stacks:abandon": "rule:deny_stack_user","stacks:create": "rule:deny_stack_user","stacks:delete": "rule:deny_stack_user","stacks:detail": "rule:deny_stack_user","stacks:export": "rule:deny_stack_user","stacks:generate_template": "rule:deny_stack_user","stacks:global_index": "rule:deny_everybody","stacks:index": "rule:deny_stack_user","stacks:list_resource_types": "rule:deny_stack_user","stacks:list_template_versions": "rule:deny_stack_user","stacks:list_template_functions": "rule:deny_stack_user","stacks:lookup": "","stacks:preview": "rule:deny_stack_user","stacks:resource_schema": "rule:deny_stack_user","stacks:show": "rule:deny_stack_user","stacks:template": "rule:deny_stack_user","stacks:environment": "rule:deny_stack_user","stacks:files": "rule:deny_stack_user","stacks:update": "rule:deny_stack_user","stacks:update_patch": "rule:deny_stack_user","stacks:preview_update": "rule:deny_stack_user","stacks:preview_update_patch": "rule:deny_stack_user","stacks:validate_template": "rule:deny_stack_user","stacks:snapshot": "rule:deny_stack_user","stacks:show_snapshot": "rule:deny_stack_user","stacks:delete_snapshot": "rule:deny_stack_user","stacks:list_snapshots": "rule:deny_stack_user","stacks:restore_snapshot": "rule:deny_stack_user","stacks:list_outputs": "rule:deny_stack_user","stacks:show_output": "rule:deny_stack_user","software_configs:global_index": "rule:deny_everybody","software_configs:index": "rule:deny_stack_user","software_configs:create": "rule:deny_stack_user","software_configs:show": "rule:deny_stack_user","software_configs:delete": "rule:deny_stack_user","software_deployments:index": "rule:deny_stack_user","software_deployments:create": "rule:deny_stack_user","software_deployments:show": "rule:deny_stack_user","software_deployments:update": "rule:deny_stack_user","software_deployments:delete": "rule:deny_stack_user","software_deployments:metadata": "","service:index": "rule:context_is_admin","resource_types:OS::Nova::Flavor": "rule:project_admin","resource_types:OS::Cinder::EncryptedVolumeType": "rule:project_admin","resource_types:OS::Cinder::VolumeType": "rule:project_admin","resource_types:OS::Cinder::Quota": "rule:project_admin","resource_types:OS::Manila::ShareType": "rule:project_admin","resource_types:OS::Neutron::QoSPolicy": "rule:project_admin","resource_types:OS::Neutron::QoSBandwidthLimitRule": "rule:project_admin","resource_types:OS::Nova::HostAggregate": "rule:project_admin","resource_types:OS::Cinder::QoSSpecs": "rule:project_admin"

- }

file removed
-5

@@ -1,5 +0,0 @@ 

- # Beginning with the Newton release, you may leave this file empty

- # to use default policy defined in code.

- {

- 

- }

file removed
-200

@@ -1,200 +0,0 @@ 

- {

-     "readonly": "(project_id:%(project_id)s and role:readonly)",

-     "global_readonly": "(role:global_readonly)",

-     "_member_role": "(role:member or role:_member_)",

-     "member": "(project_id:%(project_id)s and rule:_member_role)",

-     "admin": "(is_admin:True or role:admin)",

-     "owner": "(user_id:%(user_id)s and rule:_member_role)",

- 

-     "service": "role:service",

-     "token_subject": "user_id:%(target.token.user_id)s",

- 

- 

-     "default": "rule:admin",

- 

-     "identity:get_region": "",

-     "identity:list_regions": "",

-     "identity:create_region": "rule:admin",

-     "identity:update_region": "rule:admin",

-     "identity:delete_region": "rule:admin",

- 

-     "identity:get_service": "rule:admin",

-     "identity:list_services": "rule:admin",

-     "identity:create_service": "rule:admin",

-     "identity:update_service": "rule:admin",

-     "identity:delete_service": "rule:admin",

- 

-     "identity:get_endpoint": "rule:admin",

-     "identity:list_endpoints": "rule:admin or rule:readonly or rule:global_readonly",

-     "identity:create_endpoint": "rule:admin",

-     "identity:update_endpoint": "rule:admin",

-     "identity:delete_endpoint": "rule:admin",

- 

-     "identity:get_domain": "rule:admin or token.project.domain.id:%(target.domain.id)s or rule:readonly or rule:global_readonly",

-     "identity:list_domains": "rule:admin or rule:readonly or rule:global_readonly",

-     "identity:create_domain": "rule:admin",

-     "identity:update_domain": "rule:admin",

-     "identity:delete_domain": "rule:admin",

- 

-     "identity:get_project": "rule:admin or project_id:%(target.project.id)s",

-     "identity:list_projects": "rule:admin or rule:readonly or rule:global_readonly",

-     "identity:list_user_projects": "rule:admin or rule:owner or rule:readonly or rule:global_readonly",

-     "identity:create_project": "rule:admin",

-     "identity:update_project": "rule:admin",

-     "identity:delete_project": "rule:admin",

- 

-     "identity:get_user": "rule:admin or rule:owner or rule:readonly or rule:global_readonly",

-     "identity:list_users": "rule:admin or rule:readonly or rule:global_readonly",

-     "identity:create_user": "rule:admin",

-     "identity:update_user": "rule:admin",

-     "identity:delete_user": "rule:admin",

-     "identity:change_password": "rule:admin or rule:owner",

- 

-     "identity:get_group": "rule:admin",

-     "identity:list_groups": "rule:admin or rule:readonly or rule:global_readonly",

-     "identity:list_groups_for_user": "rule:admin or rule:owner or rule:readonly or rule:global_readonly",

-     "identity:create_group": "rule:admin",

-     "identity:update_group": "rule:admin",

-     "identity:delete_group": "rule:admin",

-     "identity:list_users_in_group": "rule:admin or rule:readonly or rule:global_readonly",

-     "identity:remove_user_from_group": "rule:admin",

-     "identity:check_user_in_group": "rule:admin",

-     "identity:add_user_to_group": "rule:admin",

- 

-     "identity:get_credential": "rule:admin",

-     "identity:list_credentials": "rule:admin",

-     "identity:create_credential": "rule:admin",

-     "identity:update_credential": "rule:admin",

-     "identity:delete_credential": "rule:admin",

- 

-     "identity:ec2_get_credential": "rule:admin or (rule:owner and user_id:%(target.credential.user_id)s)",

-     "identity:ec2_list_credentials": "rule:admin or rule:owner",

-     "identity:ec2_create_credential": "rule:admin or rule:owner",

-     "identity:ec2_delete_credential": "rule:admin or (rule:owner and user_id:%(target.credential.user_id)s)",

- 

-     "identity:get_role": "rule:admin",

-     "identity:list_roles": "rule:admin",

-     "identity:create_role": "rule:admin",

-     "identity:update_role": "rule:admin",

-     "identity:delete_role": "rule:admin",

-     "identity:get_domain_role": "rule:admin",

-     "identity:list_domain_roles": "rule:admin",

-     "identity:create_domain_role": "rule:admin",

-     "identity:update_domain_role": "rule:admin",

-     "identity:delete_domain_role": "rule:admin",

- 

-     "identity:get_implied_role": "rule:admin ",

-     "identity:list_implied_roles": "rule:admin",

-     "identity:create_implied_role": "rule:admin",

-     "identity:delete_implied_role": "rule:admin",

-     "identity:list_role_inference_rules": "rule:admin",

-     "identity:check_implied_role": "rule:admin",

- 

-     "identity:check_grant": "rule:admin",

-     "identity:list_grants": "rule:admin or rule:readonly or rule:global_readonly",

-     "identity:create_grant": "rule:admin",

-     "identity:revoke_grant": "rule:admin",

- 

-     "identity:list_role_assignments": "rule:admin",

-     "identity:list_role_assignments_for_tree": "rule:admin",

- 

-     "identity:get_policy": "rule:admin",

-     "identity:list_policies": "rule:admin",

-     "identity:create_policy": "rule:admin",

-     "identity:update_policy": "rule:admin",

-     "identity:delete_policy": "rule:admin",

- 

-     "identity:check_token": "rule:admin or rule:token_subject",

-     "identity:validate_token": "rule:service or rule:admin or rule:token_subject",

-     "identity:validate_token_head": "rule:service or rule:admin",

-     "identity:revocation_list": "rule:service or rule:admin",

-     "identity:revoke_token": "rule:admin or rule:token_subject",

- 

-     "identity:create_trust": "user_id:%(trust.trustor_user_id)s",

-     "identity:list_trusts": "",

-     "identity:list_roles_for_trust": "",

-     "identity:get_role_for_trust": "",

-     "identity:delete_trust": "",

- 

-     "identity:create_consumer": "rule:admin",

-     "identity:get_consumer": "rule:admin",

-     "identity:list_consumers": "rule:admin",

-     "identity:delete_consumer": "rule:admin",

-     "identity:update_consumer": "rule:admin",

- 

-     "identity:authorize_request_token": "rule:admin",

-     "identity:list_access_token_roles": "rule:admin",

-     "identity:get_access_token_role": "rule:admin",

-     "identity:list_access_tokens": "rule:admin",

-     "identity:get_access_token": "rule:admin",

-     "identity:delete_access_token": "rule:admin",

- 

-     "identity:list_projects_for_endpoint": "rule:admin or rule:readonly or rule:global_readonly",

-     "identity:add_endpoint_to_project": "rule:admin",

-     "identity:check_endpoint_in_project": "rule:admin",

-     "identity:list_endpoints_for_project": "rule:admin or rule:readonly or rule:global_readonly",

-     "identity:remove_endpoint_from_project": "rule:admin",

- 

-     "identity:create_endpoint_group": "rule:admin",

-     "identity:list_endpoint_groups": "rule:admin or rule:readonly or rule:global_readonly",

-     "identity:get_endpoint_group": "rule:admin",

-     "identity:update_endpoint_group": "rule:admin",

-     "identity:delete_endpoint_group": "rule:admin",

-     "identity:list_projects_associated_with_endpoint_group": "rule:admin",

-     "identity:list_endpoints_associated_with_endpoint_group": "rule:admin",

-     "identity:get_endpoint_group_in_project": "rule:admin",

-     "identity:list_endpoint_groups_for_project": "rule:admin",

-     "identity:add_endpoint_group_to_project": "rule:admin",

-     "identity:remove_endpoint_group_from_project": "rule:admin",

- 

-     "identity:create_identity_provider": "rule:admin",

-     "identity:list_identity_providers": "rule:admin",

-     "identity:get_identity_providers": "rule:admin",

-     "identity:update_identity_provider": "rule:admin",

-     "identity:delete_identity_provider": "rule:admin",

- 

-     "identity:create_protocol": "rule:admin",

-     "identity:update_protocol": "rule:admin",

-     "identity:get_protocol": "rule:admin",

-     "identity:list_protocols": "rule:admin",

-     "identity:delete_protocol": "rule:admin",

- 

-     "identity:create_mapping": "rule:admin",

-     "identity:get_mapping": "rule:admin",

-     "identity:list_mappings": "rule:admin",

-     "identity:delete_mapping": "rule:admin",

-     "identity:update_mapping": "rule:admin",

- 

-     "identity:create_service_provider": "rule:admin",

-     "identity:list_service_providers": "rule:admin",

-     "identity:get_service_provider": "rule:admin",

-     "identity:update_service_provider": "rule:admin",

-     "identity:delete_service_provider": "rule:admin",

- 

-     "identity:get_auth_catalog": "",

-     "identity:get_auth_projects": "",

-     "identity:get_auth_domains": "",

- 

-     "identity:list_projects_for_user": "",

-     "identity:list_domains_for_user": "",

- 

-     "identity:list_revoke_events": "",

- 

-     "identity:create_policy_association_for_endpoint": "rule:admin",

-     "identity:check_policy_association_for_endpoint": "rule:admin",

-     "identity:delete_policy_association_for_endpoint": "rule:admin",

-     "identity:create_policy_association_for_service": "rule:admin",

-     "identity:check_policy_association_for_service": "rule:admin",

-     "identity:delete_policy_association_for_service": "rule:admin",

-     "identity:create_policy_association_for_region_and_service": "rule:admin",

-     "identity:check_policy_association_for_region_and_service": "rule:admin",

-     "identity:delete_policy_association_for_region_and_service": "rule:admin",

-     "identity:get_policy_for_endpoint": "rule:admin",

-     "identity:list_endpoints_for_policy": "rule:admin",

- 

-     "identity:create_domain_config": "rule:admin",

-     "identity:get_domain_config": "rule:admin",

-     "identity:update_domain_config": "rule:admin",

-     "identity:delete_domain_config": "rule:admin",

-     "identity:get_domain_config_default": "rule:admin"

- }

file removed
-135

@@ -1,135 +0,0 @@ 

- {

-     "context_is_admin": "role:admin",

-     "admin_or_owner": "is_admin:True or project_id:%(project_id)s",

-     "default": "rule:admin_or_owner",

- 

-     "admin_api": "is_admin:True",

- 

-     "availability_zone:index": "rule:default",

- 

-     "quota_set:update": "rule:admin_api",

-     "quota_set:show": "rule:default",

-     "quota_set:delete": "rule:admin_api",

- 

-     "quota_class_set:show": "rule:default",

-     "quota_class_set:update": "rule:admin_api",

- 

-     "service:index": "rule:admin_api",

-     "service:update": "rule:admin_api",

- 

-     "share:create": "",

-     "share:delete": "rule:default",

-     "share:get": "rule:default",

-     "share:get_all": "rule:default",

-     "share:list_by_share_server_id": "rule:admin_api",

-     "share:update": "rule:default",

-     "share:access_get": "rule:default",

-     "share:access_get_all": "rule:default",

-     "share:allow_access": "rule:default",

-     "share:deny_access": "rule:default",

-     "share:extend": "rule:default",

-     "share:shrink": "rule:default",

-     "share:get_share_metadata": "rule:default",

-     "share:delete_share_metadata": "rule:default",

-     "share:update_share_metadata": "rule:default",

-     "share:migration_start": "rule:admin_api",

-     "share:migration_complete": "rule:admin_api",

-     "share:migration_cancel": "rule:admin_api",

-     "share:migration_get_progress": "rule:admin_api",

-     "share:reset_task_state": "rule:admin_api",

-     "share:manage": "rule:admin_api",

-     "share:unmanage": "rule:admin_api",

-     "share:force_delete": "rule:admin_api",

-     "share:reset_status": "rule:admin_api",

-     "share_export_location:index": "rule:default",

-     "share_export_location:show": "rule:default",

- 

-     "share_instance:index": "rule:admin_api",

-     "share_instance:show": "rule:admin_api",

-     "share_instance:force_delete": "rule:admin_api",

-     "share_instance:reset_status": "rule:admin_api",

-     "share_instance_export_location:index": "rule:admin_api",

-     "share_instance_export_location:show": "rule:admin_api",

- 

-     "share_snapshot:create_snapshot": "rule:default",

-     "share_snapshot:delete_snapshot": "rule:default",

-     "share_snapshot:get_snapshot": "rule:default",

-     "share_snapshot:get_all_snapshots": "rule:default",

-     "share_snapshot:snapshot_update": "rule:default",

-     "share_snapshot:manage_snapshot": "rule:admin_api",

-     "share_snapshot:unmanage_snapshot": "rule:admin_api",

-     "share_snapshot:force_delete": "rule:admin_api",

-     "share_snapshot:reset_status": "rule:admin_api",

- 

-     "share_snapshot_instance:detail": "rule:admin_api",

-     "share_snapshot_instance:index": "rule:admin_api",

-     "share_snapshot_instance:show": "rule:admin_api",

-     "share_snapshot_instance:reset_status": "rule:admin_api",

- 

-     "share_type:index": "rule:default",

-     "share_type:show": "rule:default",

-     "share_type:default": "rule:default",

-     "share_type:create": "rule:admin_api",

-     "share_type:delete": "rule:admin_api",

-     "share_type:add_project_access": "rule:admin_api",

-     "share_type:list_project_access": "rule:admin_api",

-     "share_type:remove_project_access": "rule:admin_api",

- 

-     "share_types_extra_spec:create": "rule:admin_api",

-     "share_types_extra_spec:update": "rule:admin_api",

-     "share_types_extra_spec:show": "rule:admin_api",

-     "share_types_extra_spec:index": "rule:admin_api",

-     "share_types_extra_spec:delete": "rule:admin_api",

- 

-     "security_service:create": "rule:default",

-     "security_service:delete": "rule:default",

-     "security_service:update": "rule:default",

-     "security_service:show": "rule:default",

-     "security_service:index": "rule:default",

-     "security_service:detail": "rule:default",

-     "security_service:get_all_security_services": "rule:admin_api",

- 

-     "share_server:index": "rule:admin_api",

-     "share_server:show": "rule:admin_api",

-     "share_server:details": "rule:admin_api",

-     "share_server:delete": "rule:admin_api",

- 

-     "share_network:create": "rule:default",

-     "share_network:delete": "rule:default",

-     "share_network:update": "rule:default",

-     "share_network:index": "rule:default",

-     "share_network:detail": "rule:default",

-     "share_network:show": "rule:default",

-     "share_network:add_security_service": "rule:default",

-     "share_network:remove_security_service": "rule:default",

-     "share_network:get_all_share_networks": "rule:admin_api",

- 

-     "scheduler_stats:pools:index": "rule:admin_api",

-     "scheduler_stats:pools:detail": "rule:admin_api",

- 

-     "consistency_group:create" : "rule:default",

-     "consistency_group:delete": "rule:default",

-     "consistency_group:update": "rule:default",

-     "consistency_group:get": "rule:default",

-     "consistency_group:get_all": "rule:default",

-     "consistency_group:force_delete": "rule:admin_api",

-     "consistency_group:reset_status": "rule:admin_api",

- 

-     "cgsnapshot:force_delete": "rule:admin_api",

-     "cgsnapshot:reset_status": "rule:admin_api",

-     "cgsnapshot:create" : "rule:default",

-     "cgsnapshot:update" : "rule:default",

-     "cgsnapshot:delete": "rule:default",

-     "cgsnapshot:get_cgsnapshot": "rule:default",

-     "cgsnapshot:get_all": "rule:default",

- 

-     "share_replica:get_all": "rule:default",

-     "share_replica:show": "rule:default",

-     "share_replica:create" : "rule:default",

-     "share_replica:delete": "rule:default",

-     "share_replica:promote": "rule:default",

-     "share_replica:resync": "rule:admin_api",

-     "share_replica:reset_status": "rule:admin_api",

-     "share_replica:force_delete": "rule:admin_api",

-     "share_replica:reset_replica_state": "rule:admin_api"

- }

file removed
-64

@@ -1,64 +0,0 @@ 

- {

-     "admin_only": "is_admin:True",

-     "admin_or_owner":  "is_admin:True or project_id:%(project_id)s",

-     "default": "rule:admin_or_owner",

- 

-     "action_executions:delete": "rule:admin_or_owner",

-     "action_execution:create": "rule:admin_or_owner",

-     "action_executions:get": "rule:admin_or_owner",

-     "action_executions:list": "rule:admin_or_owner",

-     "action_executions:update": "rule:admin_or_owner",

- 

-     "actions:create": "rule:admin_or_owner",

-     "actions:delete": "rule:admin_or_owner",

-     "actions:get": "rule:admin_or_owner",

-     "actions:list": "rule:admin_or_owner",

-     "actions:update": "rule:admin_or_owner",

- 

-     "cron_triggers:create": "rule:admin_or_owner",

-     "cron_triggers:delete": "rule:admin_or_owner",

-     "cron_triggers:get": "rule:admin_or_owner",

-     "cron_triggers:list": "rule:admin_or_owner",

- 

-     "environments:create": "rule:admin_or_owner",

-     "environments:delete": "rule:admin_or_owner",

-     "environments:get": "rule:admin_or_owner",

-     "environments:list": "rule:admin_or_owner",

-     "environments:update": "rule:admin_or_owner",

- 

-     "executions:create": "rule:admin_or_owner",

-     "executions:delete": "rule:admin_or_owner",

-     "executions:get": "rule:admin_or_owner",

-     "executions:list": "rule:admin_or_owner",

-     "executions:update": "rule:admin_or_owner",

- 

-     "members:create": "rule:admin_or_owner",

-     "members:delete": "rule:admin_or_owner",

-     "members:get": "rule:admin_or_owner",

-     "members:list": "rule:admin_or_owner",

-     "members:update": "rule:admin_or_owner",

- 

-     "services:list": "rule:admin_or_owner",

- 

-     "tasks:get": "rule:admin_or_owner",

-     "tasks:list": "rule:admin_or_owner",

-     "tasks:update": "rule:admin_or_owner",

- 

-     "workbooks:create": "rule:admin_or_owner",

-     "workbooks:delete": "rule:admin_or_owner",

-     "workbooks:get": "rule:admin_or_owner",

-     "workbooks:list": "rule:admin_or_owner",

-     "workbooks:update": "rule:admin_or_owner",

- 

-     "workflows:create": "rule:admin_or_owner",

-     "workflows:delete": "rule:admin_or_owner",

-     "workflows:get": "rule:admin_or_owner",

-     "workflows:list": "rule:admin_or_owner",

-     "workflows:update": "rule:admin_or_owner",

- 

-     "event_triggers:create": "rule:admin_or_owner",

-     "event_triggers:delete": "rule:admin_or_owner",

-     "event_triggers:get": "rule:admin_or_owner",

-     "event_triggers:list": "rule:admin_or_owner",

-     "event_triggers:update": "rule:admin_or_owner"

- }

file removed
-219

@@ -1,219 +0,0 @@ 

- {

- 

-     "readonly": "(project_id:%(project_id)s and role:readonly)",

-     "global_readonly": "(role:global_readonly)",

-     "_member_role": "(role:member or role:_member_)",

-     "member": "(project_id:%(project_id)s and rule:_member_role)",

-     "admin": "(is_admin:True or role:admin)",

-     "owner": "(user_id:%(user_id)s and rule:_member_role)",

- 

-     "context_is_advsvc":  "role:advsvc",

- 

-     "admin_or_network_owner": "(rule:admin or rule:member or role:network_admin)",

-     "admin_owner_or_network_owner": "(rule:owner or rule:admin_or_network_owner)",

-     "shared": "(field:networks:shared=True)",

-     "shared_subnetpools": "(field:subnetpools:shared=True)",

-     "shared_address_scopes": "(field:address_scopes:shared=True)",

-     "external": "(field:networks:router:external=True)",

- 

-     "default": "rule:admin or rule:member",

- 

-     "create_subnet": "rule:admin_or_network_owner",

-     "create_subnet:segment_id": "rule:admin",

-     "create_subnet:service_types": "rule:admin",

-     "get_subnet": "rule:admin or rule:member or rule:shared or rule:readonly or rule:global_readonly",

-     "get_subnet:segment_id": "rule:admin",

-     "update_subnet": "rule:admin_or_network_owner",

-     "update_subnet:service_types": "rule:admin",

-     "delete_subnet": "rule:admin_or_network_owner",

- 

-     "create_subnetpool": "rule:admin or rule:member",

-     "create_subnetpool:shared": "rule:admin",

-     "create_subnetpool:is_default": "rule:admin",

-     "get_subnetpool": "rule:admin or rule:member or rule:shared_subnetpools or rule:readonly or rule:global_readonly",

-     "update_subnetpool": "rule:admin or rule:member",

-     "update_subnetpool:is_default": "rule:admin",

-     "delete_subnetpool": "rule:admin or rule:member",

- 

-     "create_address_scope": "rule:admin or rule:member",

-     "create_address_scope:shared": "rule:admin",

-     "get_address_scope": "rule:admin or rule:member or rule:shared_address_scopes",

-     "update_address_scope": "rule:admin or rule:member",

-     "update_address_scope:shared": "rule:admin",

-     "delete_address_scope": "rule:admin or rule:member",

- 

-     "create_network": "rule:admin or rule:member",

-     "get_network": "rule:admin or rule:member or rule:readonly or rule:global_readonly or rule:shared or rule:external or rule:context_is_advsvc",

-     "get_network:router:external": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-     "get_network:segments": "rule:admin or rule:readonly or rule:global_readonly",

-     "get_network:provider:network_type": "rule:admin or rule:readonly or rule:global_readonly",

-     "get_network:provider:physical_network": "rule:admin or rule:readonly or rule:global_readonly",

-     "get_network:provider:segmentation_id": "rule:admin or rule:readonly or rule:global_readonly",

-     "get_network:queue_id": "rule:admin",

-     "get_network_ip_availabilities": "rule:admin",

-     "get_network_ip_availability": "rule:admin",

-     "create_network:shared": "rule:admin",

-     "create_network:router:external": "rule:admin",

-     "create_network:is_default": "rule:admin",

-     "create_network:segments": "rule:admin",

-     "create_network:provider:network_type": "rule:admin",

-     "create_network:provider:physical_network": "rule:admin",

-     "create_network:provider:segmentation_id": "rule:admin",

-     "update_network": "rule:admin or rule:member",

-     "update_network:segments": "rule:admin",

-     "update_network:shared": "rule:admin",

-     "update_network:provider:network_type": "rule:admin",

-     "update_network:provider:physical_network": "rule:admin",

-     "update_network:provider:segmentation_id": "rule:admin",

-     "update_network:router:external": "rule:admin",

-     "delete_network": "rule:admin or rule:member",

- 

-     "create_segment": "rule:admin",

-     "get_segment": "rule:admin",

-     "update_segment": "rule:admin",

-     "delete_segment": "rule:admin",

- 

-     "network_device": "field:port:device_owner=~^network:",

-     "create_port": "rule:admin or rule:member",

-     "create_port:device_owner": "not rule:network_device or rule:context_is_advsvc or rule:admin_or_network_owner",

-     "create_port:mac_address": "rule:context_is_advsvc or rule:admin_or_network_owner",

-     "create_port:fixed_ips": "rule:context_is_advsvc or rule:admin_or_network_owner",

-     "create_port:port_security_enabled": "rule:context_is_advsvc or rule:admin_or_network_owner",

-     "create_port:binding:host_id": "rule:admin",

-     "create_port:binding:profile": "rule:admin",

-     "create_port:mac_learning_enabled": "rule:context_is_advsvc or rule:admin_or_network_owner",

-     "create_port:allowed_address_pairs": "rule:admin_or_network_owner",

-     "get_port": "rule:context_is_advsvc or rule:admin_owner_or_network_owner or rule:readonly or rule:global_readonly",

-     "get_port:queue_id": "rule:admin",

-     "get_port:binding:vif_type": "rule:admin or rule:readonly or rule:global_readonly",

-     "get_port:binding:vif_details": "rule:admin or rule:readonly or rule:global_readonly",

-     "get_port:binding:host_id": "rule:admin or rule:readonly or rule:global_readonly",

-     "get_port:binding:profile": "rule:admin or rule:readonly or rule:global_readonly",

-     "update_port": "rule:admin or rule:member or rule:context_is_advsvc",

-     "update_port:device_owner": "not rule:network_device or rule:context_is_advsvc or rule:admin_or_network_owner",

-     "update_port:mac_address": "rule:admin or rule:context_is_advsvc",

-     "update_port:fixed_ips": "rule:context_is_advsvc or rule:admin_or_network_owner",

-     "update_port:port_security_enabled": "rule:context_is_advsvc or rule:admin_or_network_owner",

-     "update_port:binding:host_id": "rule:admin",

-     "update_port:binding:profile": "rule:admin",

-     "update_port:mac_learning_enabled": "rule:context_is_advsvc or rule:admin_or_network_owner",

-     "update_port:allowed_address_pairs": "rule:admin_or_network_owner",

-     "delete_port": "rule:context_is_advsvc or rule:admin_owner_or_network_owner",

- 

-     "get_router:ha": "rule:admin",

-     "create_router": "rule:admin or rule:member",

-     "create_router:external_gateway_info:enable_snat": "rule:admin",

-     "create_router:distributed": "rule:admin",

-     "create_router:ha": "rule:admin",

-     "get_router": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-     "get_router:distributed": "rule:admin or rule:readonly or rule:global_readonly",

-     "update_router:external_gateway_info:enable_snat": "rule:admin",

-     "update_router:distributed": "rule:admin",

-     "update_router:ha": "rule:admin",

-     "delete_router": "rule:admin or rule:member",

- 

-     "add_router_interface": "rule:admin or rule:member",

-     "remove_router_interface": "rule:admin or rule:member",

- 

-     "create_router:external_gateway_info:external_fixed_ips": "rule:admin",

-     "update_router:external_gateway_info:external_fixed_ips": "rule:admin",

- 

-     "insert_rule": "rule:admin or rule:member",

-     "remove_rule": "rule:admin or rule:member",

- 

-     "create_qos_queue": "rule:admin",

-     "get_qos_queue": "rule:admin",

- 

-     "update_agent": "rule:admin",

-     "delete_agent": "rule:admin",

-     "get_agent": "rule:admin or rule:readonly or rule:global_readonly",

- 

-     "create_dhcp-network": "rule:admin",

-     "delete_dhcp-network": "rule:admin",

-     "get_dhcp-networks": "rule:admin or rule:readonly or rule:global_readonly",

-     "create_l3-router": "rule:admin",

-     "delete_l3-router": "rule:admin",

-     "get_l3-routers": "rule:admin or rule:readonly or rule:global_readonly",

-     "get_dhcp-agents": "rule:admin or rule:readonly or rule:global_readonly",

-     "get_l3-agents": "rule:admin",

-     "get_loadbalancer-agent": "rule:admin",

-     "get_loadbalancer-pools": "rule:admin",

-     "get_agent-loadbalancers": "rule:admin",

-     "get_loadbalancer-hosting-agent": "rule:admin",

- 

-     "create_floatingip": "rule:admin or rule:member",

-     "create_floatingip:floating_ip_address": "rule:admin",

-     "update_floatingip": "rule:admin or rule:member",

-     "delete_floatingip": "rule:admin or rule:member",

-     "get_floatingip": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

- 

-     "create_network_profile": "rule:admin",

-     "update_network_profile": "rule:admin",

-     "delete_network_profile": "rule:admin",

-     "get_network_profiles": "rule:admin or rule:member",

-     "get_network_profile": "rule:admin or rule:member",

-     "update_policy_profiles": "rule:admin",

-     "get_policy_profiles": "rule:admin or rule:member",

-     "get_policy_profile": "rule:admin or rule:member",

- 

-     "create_metering_label": "rule:admin",

-     "delete_metering_label": "rule:admin",

-     "get_metering_label": "rule:admin or rule:readonly or rule:global_readonly",

- 

-     "create_metering_label_rule": "rule:admin",

-     "delete_metering_label_rule": "rule:admin",

-     "get_metering_label_rule": "rule:admin or rule:readonly or rule:global_readonly",

- 

-     "get_service_provider": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-     "get_lsn": "rule:admin",

-     "create_lsn": "rule:admin",

- 

-     "create_flavor": "rule:admin",

-     "update_flavor": "rule:admin",

-     "delete_flavor": "rule:admin",

-     "get_flavors": "rule:admin or rule:member",

-     "get_flavor": "rule:admin or rule:member",

-     "create_service_profile": "rule:admin",

-     "update_service_profile": "rule:admin",

-     "delete_service_profile": "rule:admin",

-     "get_service_profiles": "rule:admin",

-     "get_service_profile": "rule:admin",

- 

-     "get_policy": "rule:admin or rule:member",

-     "create_policy": "rule:admin",

-     "update_policy": "rule:admin",

-     "delete_policy": "rule:admin",

-     "get_policy_bandwidth_limit_rule": "rule:admin or rule:member",

-     "create_policy_bandwidth_limit_rule": "rule:admin",

-     "delete_policy_bandwidth_limit_rule": "rule:admin",

-     "update_policy_bandwidth_limit_rule": "rule:admin",

-     "get_policy_dscp_marking_rule": "rule:admin or rule:member",

-     "create_policy_dscp_marking_rule": "rule:admin",

-     "delete_policy_dscp_marking_rule": "rule:admin",

-     "update_policy_dscp_marking_rule": "rule:admin",

-     "get_rule_type": "rule:admin or rule:member",

-     "get_policy_minimum_bandwidth_rule": "rule:admin or rule:member",

-     "create_policy_minimum_bandwidth_rule": "rule:admin",

-     "delete_policy_minimum_bandwidth_rule": "rule:admin",

-     "update_policy_minimum_bandwidth_rule": "rule:admin",

- 

-     "restrict_wildcard": "(not field:rbac_policy:target_tenant=*) or rule:admin",

-     "create_rbac_policy": "rule:admin or rule:member",

-     "create_rbac_policy:target_tenant": "rule:restrict_wildcard",

-     "update_rbac_policy": "rule:admin or rule:member",

-     "update_rbac_policy:target_tenant": "rule:restrict_wildcard and rule:admin or rule:member",

-     "get_rbac_policy": "rule:admin or rule:member",

-     "delete_rbac_policy": "rule:admin or rule:member",

- 

-     "create_flavor_service_profile": "rule:admin",

-     "delete_flavor_service_profile": "rule:admin",

-     "get_flavor_service_profile": "rule:admin or rule:member",

-     "get_auto_allocated_topology": "rule:admin or rule:member",

- 

-     "create_trunk": "rule:admin or rule:member",

-     "get_trunk": "rule:admin or rule:member",

-     "delete_trunk": "rule:admin or rule:member",

-     "get_subports": "rule:admin or rule:member",

-     "add_subports": "rule:admin or rule:member",

-     "remove_subports": "rule:admin or rule:member"

- }

file removed
-180

@@ -1,180 +0,0 @@ 

- {

-   

-   "readonly": "(project_id:%(project_id)s and role:readonly)",

-   "global_readonly": "(role:global_readonly)",

-   "_member_role": "(role:member or role:_member_)",

-   "member": "(project_id:%(project_id)s and rule:_member_role)",

-   "admin": "(is_admin:True or role:admin)",

-   "owner": "(user_id:%(user_id)s and rule:_member_role)",

- 

-   "os_compute_api:os-evacuate": "rule:admin",

-   "os_compute_api:servers:create": "rule:admin or rule:member",

-   "os_compute_api:os-extended-volumes": "rule:admin or rule:member",

-   "os_compute_api:servers:create:forced_host": "rule:admin",

-   "os_compute_api:os-aggregates:remove_host": "rule:admin",

-   "os_compute_api:os-console-output": "rule:admin or rule:member",

-   "os_compute_api:os-floating-ips": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-   "os_compute_api:os-aggregates:update": "rule:admin",

-   "os_compute_api:os-pci:pci_servers": "rule:admin or rule:member",

-   "os_compute_api:servers:start": "rule:admin or rule:member",

-   "os_compute_api:os-keypairs:create": "rule:admin or user_id:%(user_id)s",

-   "os_compute_api:servers:trigger_crash_dump": "rule:admin or rule:member",

-   "os_compute_api:server-metadata:index": "rule:admin or rule:member",

-   "os_compute_api:servers:create_image": "rule:admin or rule:member",

-   "os_compute_api:os-virtual-interfaces": "rule:admin or rule:member",

-   "os_compute_api:os-server-groups": "rule:admin or rule:member",

-   "os_compute_api:os-server-tags:delete_all": "@",

-   "os_compute_api:os-keypairs:delete": "rule:admin or user_id:%(user_id)s",

-   "os_compute_api:os-floating-ips-bulk": "rule:admin",

-   "os_compute_api:os-simple-tenant-usage:list": "rule:admin",

-   "os_compute_api:os-quota-class-sets:show": "is_admin:True or quota_class:%(quota_class)s",

-   "os_compute_api:os-suspend-server:resume": "rule:admin or rule:member",

-   "os_compute_api:os-tenant-networks": "rule:admin or rule:member",

-   "os_compute_api:os-floating-ip-dns:domain:update": "rule:admin",

-   "os_compute_api:os-hypervisors": "rule:admin",

-   "os_compute_api:os-consoles:delete": "rule:admin or rule:member",

-   "os_compute_api:os-networks-associate": "rule:admin",

-   "os_compute_api:os-volumes-attachments:index": "rule:admin or rule:member",

-   "os_compute_api:os-pci:show": "rule:admin",

-   "os_compute_api:os-remote-consoles": "rule:admin or rule:member",

-   "os_compute_api:limits": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-   "os_compute_api:os-cells:create": "rule:admin",

-   "os_compute_api:os-aggregates:delete": "rule:admin",

-   "os_compute_api:servers:migrations:show": "rule:admin",

-   "os_compute_api:os-consoles:create": "rule:admin or rule:member",

-   "os_compute_api:os-aggregates:set_metadata": "rule:admin",

-   "os_compute_api:os-create-backup": "rule:admin or rule:member",

-   "os_compute_api:server-metadata:delete": "rule:admin or rule:member",

-   "os_compute_api:os-pause-server:pause": "rule:admin or rule:member",

-   "os_compute_api:os-server-external-events:create": "rule:admin",

-   "os_compute_api:server-metadata:show": "rule:admin or rule:member",

-   "os_compute_api:os-rescue": "rule:admin or rule:member",

-   "os_compute_api:os-agents": "rule:admin",

-   "os_compute_api:os-server-tags:delete": "rule:admin or rule:member",

-   "os_compute_api:os-flavor-extra-specs:show": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-   "os_compute_api:os-attach-interfaces:delete": "rule:admin or rule:member",

-   "os_compute_api:os-extended-availability-zone": "rule:admin or rule:member",

-   "os_compute_api:os-instance-actions:events": "rule:admin",

-   "os_compute_api:os-fixed-ips": "rule:admin",

-   "os_compute_api:os-flavor-manage": "rule:admin",

-   "os_compute_api:server-metadata:create": "rule:admin or rule:member",

-   "os_compute_api:os-shelve:shelve": "rule:admin or rule:member",

-   "os_compute_api:servers:resize": "rule:admin or rule:member",

-   "os_compute_api:os-aggregates:add_host": "rule:admin",

-   "os_compute_api:os-flavor-access:add_tenant_access": "rule:admin",

-   "os_compute_api:os-cells:update": "rule:admin",

-   "os_compute_api:os-server-diagnostics": "rule:admin",

-   "os_compute_api:servers:revert_resize": "rule:admin or rule:member",

-   "os_compute_api:os-cells": "rule:admin",

-   "os_compute_api:servers:update": "rule:admin or rule:member",

-   "os_compute_api:servers:index:get_all_tenants": "rule:admin",

-   "os_compute_api:os-admin-actions:reset_network": "rule:admin",

-   "os_compute_api:os-certificates:show": "rule:admin or rule:member",

-   "os_compute_api:os-config-drive": "rule:admin or rule:member",

-   "os_compute_api:os-instance-actions": "rule:admin or rule:member",

-   "os_compute_api:os-attach-interfaces:create": "rule:admin or rule:member",

-   "os_compute_api:os-volumes-attachments:create": "rule:admin or rule:member",

-   "os_compute_api:os-consoles:index": "rule:admin or rule:member",

-   "os_compute_api:os-used-limits": "rule:admin",

-   "os_compute_api:os-migrations:index": "rule:admin",

-   "os_compute_api:os-admin-actions:reset_state": "rule:admin",

-   "os_compute_api:os-flavor-rxtx": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-   "os_compute_api:os-quota-sets:defaults": "@",

-   "os_compute_api:os-fping:all_tenants": "rule:admin",

-   "os_compute_api:os-flavor-extra-specs:create": "rule:admin",

-   "os_compute_api:os-lock-server:lock": "rule:admin or rule:member",

-   "os_compute_api:os-flavor-extra-specs:index": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-   "os_compute_api:servers:create_image:allow_volume_backed": "rule:admin or rule:member",

-   "os_compute_api:os-extended-status": "rule:admin or rule:member",

-   "os_compute_api:os-assisted-volume-snapshots:delete": "rule:admin",

-   "os_compute_api:servers:migrations:force_complete": "rule:admin",

-   "os_compute_api:os-extended-server-attributes": "rule:admin",

-   "os_compute_api:os-assisted-volume-snapshots:create": "rule:admin",

-   "os_compute_api:os-consoles:show": "rule:admin or rule:member",

-   "os_compute_api:os-admin-actions:inject_network_info": "rule:admin",

-   "os_compute_api:servers:create:attach_volume": "rule:admin or rule:member",

-   "os_compute_api:os-server-tags:update_all": "@",

-   "os_compute_api:os-quota-sets:show": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-   "os_compute_api:os-server-tags:update": "@",

-   "os_compute_api:os-quota-class-sets:update": "rule:admin",

-   "os_compute_api:image-size": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-   "os_compute_api:os-migrate-server:migrate": "rule:admin",

-   "os_compute_api:extensions": "rule:admin or rule:member",

-   "os_compute_api:flavors": "rule:admin or rule:member",

-   "os_compute_api:os-flavor-access:remove_tenant_access": "rule:admin",

-   "os_compute_api:os-simple-tenant-usage:show": "rule:admin or rule:member",

-   "os_compute_api:os-floating-ip-pools": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-   "os_compute_api:os-volumes-attachments:show": "rule:admin or rule:member",

-   "os_compute_api:os-security-groups": "rule:admin or rule:member",

-   "os_compute_api:os-keypairs:show": "rule:admin or user_id:%(user_id)s",

-   "os_compute_api:os-pci:index": "rule:admin",

-   "os_compute_api:os-deferred-delete": "rule:admin or rule:member",

-   "os_compute_api:os-hide-server-addresses": "is_admin:False",

-   "os_compute_api:os-flavor-extra-specs:update": "rule:admin",

-   "os_compute_api:os-pause-server:unpause": "rule:admin or rule:member",

-   "os_compute_api:os-availability-zone:list": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-   "os_compute_api:servers:detail": "rule:admin or rule:member",

-   "os_compute_api:servers:stop": "rule:admin or rule:member",

-   "os_compute_api:os-pci:detail": "rule:admin",

-   "os_compute_api:servers:rebuild": "rule:admin or rule:member",

-   "os_compute_api:ips:index": "rule:admin or rule:member",

-   "os_compute_api:os-quota-sets:delete": "rule:admin",

-   "os_compute_api:os-quota-sets:detail": "rule:admin or rule:readonly or rule:global_readonly",

-   "os_compute_api:os-availability-zone:detail": "rule:admin or rule:readonly or rule:global_readonly",

-   "cells_scheduler_filter:TargetCellFilter": "is_admin:True",

-   "os_compute_api:os-keypairs": "rule:admin or rule:member",

-   "os_compute_api:servers:show": "rule:admin or rule:member",

-   "network:attach_external_network": "is_admin:True",

-   "os_compute_api:os-cloudpipe": "rule:admin",

-   "os_compute_api:os-certificates:create": "rule:admin or rule:member",

-   "os_compute_api:os-aggregates:show": "rule:admin",

-   "os_compute_api:os-cells:sync_instances": "rule:admin",

-   "os_compute_api:ips:show": "rule:admin or rule:member",

-   "os_compute_api:os-server-password": "rule:admin or rule:member",

-   "os_compute_api:os-server-usage": "rule:admin or rule:member",

-   "os_compute_api:os-services": "rule:admin",

-   "os_compute_api:servers:detail:get_all_tenants": "rule:admin",

-   "os_compute_api:servers:index": "rule:admin or rule:member",

-   "os_compute_api:os-keypairs:index": "rule:admin or user_id:%(user_id)s",

-   "os_compute_api:os-fping": "rule:admin or rule:member",

-   "os_compute_api:os-server-tags:index": "@",

-   "os_compute_api:os-suspend-server:suspend": "rule:admin or rule:member",

-   "os_compute_api:os-admin-actions": "rule:admin",

-   "os_compute_api:servers:confirm_resize": "rule:admin or rule:member",

-   "os_compute_api:os-networks:view": "rule:admin or rule:member",

-   "os_compute_api:os-floating-ip-dns": "rule:admin or rule:member",

-   "os_compute_api:os-quota-sets:update": "rule:admin",

-   "os_compute_api:os-volumes": "rule:admin or rule:member",

-   "os_compute_api:os-admin-password": "rule:admin or rule:member",

-   "os_compute_api:os-baremetal-nodes": "rule:admin",

-   "os_compute_api:servers:show:host_status": "rule:admin",

-   "os_compute_api:os-aggregates:index": "rule:admin",

-   "os_compute_api:os-flavor-extra-specs:delete": "rule:admin",

-   "os_compute_api:servers:migrations:delete": "rule:admin",

-   "os_compute_api:os-instance-usage-audit-log": "rule:admin",

-   "os_compute_api:os-aggregates:create": "rule:admin",

-   "os_compute_api:os-lock-server:unlock:unlock_override": "rule:admin",

-   "os_compute_api:os-networks": "rule:admin",

-   "os_compute_api:os-server-tags:show": "@",

-   "os_compute_api:os-lock-server:unlock": "rule:admin or rule:member",

-   "os_compute_api:os-cells:delete": "rule:admin",

-   "os_compute_api:server-metadata:update_all": "rule:admin or rule:member",

-   "os_compute_api:os-security-group-default-rules": "rule:admin",

-   "os_compute_api:servers:reboot": "rule:admin or rule:member",

-   "cells_scheduler_filter:DifferentCellFilter": "is_admin:True",

-   "os_compute_api:servers:migrations:index": "rule:admin",

-   "os_compute_api:os-flavor-access": "rule:admin or rule:member or rule:readonly or rule:global_readonly",

-   "os_compute_api:servers:delete": "rule:admin or rule:member",

-   "os_compute_api:os-migrate-server:migrate_live": "rule:admin",

-   "os_compute_api:servers:create:attach_network": "rule:admin or rule:member",

-   "os_compute_api:os-console-auth-tokens": "rule:admin",

-   "os_compute_api:os-attach-interfaces": "rule:admin or rule:member",

-   "os_compute_api:os-volumes-attachments:update": "rule:admin",

-   "os_compute_api:os-hosts": "rule:admin",

-   "os_compute_api:os-multinic": "rule:admin or rule:member",

-   "os_compute_api:os-shelve:unshelve": "rule:admin or rule:member",

-   "os_compute_api:server-metadata:update": "rule:admin or rule:member",

-   "os_compute_api:os-volumes-attachments:delete": "rule:admin or rule:member",

-   "os_compute_api:os-floating-ip-dns:domain:delete": "rule:admin",

-   "os_compute_api:os-shelve:shelve_offload": "rule:admin"

- }

file removed
-73

@@ -1,73 +0,0 @@ 

- {

-     "context_is_admin": "role:admin",

-     "default": "",

- 

-     "data-processing:clusters:get_all": "",

-     "data-processing:clusters:create": "",

-     "data-processing:clusters:scale": "",

-     "data-processing:clusters:get": "",

-     "data-processing:clusters:delete": "",

-     "data-processing:clusters:modify": "",

- 

-     "data-processing:cluster-templates:get_all": "",

-     "data-processing:cluster-templates:create": "",

-     "data-processing:cluster-templates:get": "",

-     "data-processing:cluster-templates:modify": "",

-     "data-processing:cluster-templates:delete": "",

- 

-     "data-processing:node-group-templates:get_all": "",

-     "data-processing:node-group-templates:create": "",

-     "data-processing:node-group-templates:get": "",

-     "data-processing:node-group-templates:modify": "",

-     "data-processing:node-group-templates:delete": "",

- 

-     "data-processing:plugins:get_all": "",

-     "data-processing:plugins:get": "",

-     "data-processing:plugins:get_version": "",

-     "data-processing:plugins:convert_config": "",

-     "data-processing:plugins:patch": "role:admin",

- 

-     "data-processing:images:get_all": "",

-     "data-processing:images:get": "",

-     "data-processing:images:register": "",

-     "data-processing:images:unregister": "",

-     "data-processing:images:add_tags": "",

-     "data-processing:images:remove_tags": "",

- 

-     "data-processing:job-executions:get_all": "",

-     "data-processing:job-executions:get": "",

-     "data-processing:job-executions:refresh_status": "",

-     "data-processing:job-executions:cancel": "",

-     "data-processing:job-executions:delete": "",

-     "data-processing:job-executions:modify": "",

- 

-     "data-processing:data-sources:get_all": "",

-     "data-processing:data-sources:get": "",

-     "data-processing:data-sources:register": "",

-     "data-processing:data-sources:delete": "",

-     "data-processing:data-sources:modify": "",

- 

-     "data-processing:jobs:get_all": "",

-     "data-processing:jobs:create": "",

-     "data-processing:jobs:get": "",

-     "data-processing:jobs:delete": "",

-     "data-processing:jobs:get_config_hints": "",

-     "data-processing:jobs:execute": "",

-     "data-processing:jobs:modify": "",

- 

-     "data-processing:job-binaries:get_all": "",

-     "data-processing:job-binaries:create": "",

-     "data-processing:job-binaries:get": "",

-     "data-processing:job-binaries:delete": "",

-     "data-processing:job-binaries:get_data": "",

-     "data-processing:job-binaries:modify": "",

- 

-     "data-processing:job-binary-internals:get_all": "",

-     "data-processing:job-binary-internals:create": "",

-     "data-processing:job-binary-internals:get": "",

-     "data-processing:job-binary-internals:delete": "",

-     "data-processing:job-binary-internals:get_data": "",

-     "data-processing:job-binary-internals:modify": "",

- 

-     "data-processing:job-types:get_all": ""

- }

file removed
-46

@@ -1,46 +0,0 @@ 

- {

-     "context_is_admin": "role:admin",

-     "admin_or_owner": "is_admin:True or project_id:%(project_id)s",

-     "default": "rule:admin_or_owner",

- 

-     "queues:get_all": "",

-     "queues:create": "",

-     "queues:get": "",

-     "queues:delete": "",

-     "queues:update": "",

-     "queues:stats": "",

- 

-     "messages:get_all": "",

-     "messages:create": "",

-     "messages:get": "",

-     "messages:delete": "",

-     "messages:delete_all": "",

- 

-     "claims:get_all": "",

-     "claims:create": "",

-     "claims:get": "",

-     "claims:delete": "",

-     "claims:update": "",

- 

-     "subscription:get_all": "",

-     "subscription:create": "",

-     "subscription:get": "",

-     "subscription:delete": "",

-     "subscription:update": "",

-     "subscription:confirm": "",

- 

-     "pools:get_all": "rule:context_is_admin",

-     "pools:create": "rule:context_is_admin",

-     "pools:get": "rule:context_is_admin",

-     "pools:delete": "rule:context_is_admin",

-     "pools:update": "rule:context_is_admin",

- 

-     "flavors:get_all": "",

-     "flavors:create": "rule:context_is_admin",

-     "flavors:get": "",

-     "flavors:delete": "rule:context_is_admin",

-     "flavors:update": "rule:context_is_admin",

- 

-     "ping:get": "",

-     "health:get": "rule:context_is_admin"

- }

file added
+2294
The added file is too large to be shown here, see it at: patrole-base.log
file added
+2294
The added file is too large to be shown here, see it at: patrole-new.log

@@ -0,0 +1,42 @@ 

+ 

+ # RULES:

+ 

+ # Get an alarm.

+ # GET  /v2/alarms/{alarm_id}

+ "telemetry:get_alarm": "rule:admin or rule:member or rule:reader"

+ 

+ # Get all alarms, based on the query provided.

+ # GET  /v2/alarms

+ "telemetry:get_alarms": "rule:admin or rule:member or rule:reader"

+ 

+ # Get all alarms, based on the query provided.

+ # POST  /v2/query/alarms

+ "telemetry:query_alarm": "rule:admin or rule:member"

+ 

+ # Create a new alarm.

+ # POST  /v2/alarms

+ "telemetry:create_alarm": "rule:admin or rule:member"

+ 

+ # Modify this alarm.

+ # PUT  /v2/alarms/{alarm_id}

+ "telemetry:change_alarm": "rule:admin or rule:member"

+ 

+ # Delete this alarm.

+ # DELETE  /v2/alarms/{alarm_id}

+ "telemetry:delete_alarm": "rule:admin or rule:member"

+ 

+ # Get the state of this alarm.

+ # GET  /v2/alarms/{alarm_id}/state

+ "telemetry:get_alarm_state": "rule:admin or rule:member or rule:reader"

+ 

+ # Set the state of this alarm.

+ # PUT  /v2/alarms/{alarm_id}/state

+ "telemetry:change_alarm_state": "rule:admin or rule:member"

+ 

+ # Assembles the alarm history requested.

+ # GET  /v2/alarms/{alarm_id}/history

+ "telemetry:alarm_history": "rule:admin or rule:member or rule:reader"

+ 

+ # Define query for retrieving AlarmChange data.

+ # POST  /v2/query/alarms/history

+ "telemetry:query_alarm_history": "rule:admin or rule:member"

@@ -0,0 +1,600 @@ 

+ 

+ # RULES

+ 

+ 

+ # Create attachment.

+ # POST  /attachments

+ "volume:attachment_create": "rule:admin or rule:member"

+ 

+ # Update attachment.

+ # PUT  /attachments/{attachment_id}

+ "volume:attachment_update": "rule:admin or rule:member"

+ 

+ # Delete attachment.

+ # DELETE  /attachments/{attachment_id}

+ "volume:attachment_delete": "rule:admin or rule:member"

+ 

+ # Mark a volume attachment process as completed (in-use)

+ # POST  /attachments/{attachment_id}/action (os-complete)

+ "volume:attachment_complete": "rule:admin or rule:member"

+ 

+ # Allow multiattach of bootable volumes.

+ # POST  /attachments

+ "volume:multiattach_bootable_volume": "rule:admin or rule:member"

+ 

+ # List messages.

+ # GET  /messages

+ "message:get_all": "rule:admin or rule:member or rule:reader"

+ 

+ # Show message.

+ # GET  /messages/{message_id}

+ "message:get": "rule:admin or rule:member or rule:reader"

+ 

+ # Delete message.

+ # DELETE  /messages/{message_id}