This patch implements the changes in the API required for the
skipped action blueprint. It includes:
- New field `status_message` is visible in API get calls for Audits,
ActionPlans and Audits.
- New Patch call is added to `/actions/{action_id}` which allows to
manually move actions in PENDING state to SKIPPED for ActionPlans
which have not been started.
- A new API microversion 1.5 is added for these changes.
It also adds requried tests and documentation.
Implements: blueprint add-skip-actions
Assisted-By: Cursor (claude-4-sonnet)
Change-Id: I71fb9af76085e5941a7fd3e9e4c89d6f3a3ada47
Signed-off-by: Alfredo Moralejo <amoralej@redhat.com>
85 lines
2.0 KiB
Python
85 lines
2.0 KiB
Python
# Copyright (c) 2012 OpenStack Foundation
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
|
|
policy_data = """
|
|
{
|
|
"admin_api": "role:admin or role:administrator",
|
|
"show_password": "!",
|
|
"default": "rule:admin_api",
|
|
|
|
"action:detail": "",
|
|
"action:get": "",
|
|
"action:get_all": "",
|
|
"action:update": "",
|
|
|
|
"action_plan:delete": "",
|
|
"action_plan:detail": "",
|
|
"action_plan:get": "",
|
|
"action_plan:get_all": "",
|
|
"action_plan:update": "",
|
|
|
|
"audit:create": "",
|
|
"audit:delete": "",
|
|
"audit:detail": "",
|
|
"audit:get": "",
|
|
"audit:get_all": "",
|
|
"audit:update": "",
|
|
|
|
"audit_template:create": "",
|
|
"audit_template:delete": "",
|
|
"audit_template:detail": "",
|
|
"audit_template:get": "",
|
|
"audit_template:get_all": "",
|
|
"audit_template:update": "",
|
|
|
|
"goal:detail": "",
|
|
"goal:get": "",
|
|
"goal:get_all": "",
|
|
|
|
"scoring_engine:detail": "",
|
|
"scoring_engine:get": "",
|
|
"scoring_engine:get_all": "",
|
|
|
|
"strategy:detail": "",
|
|
"strategy:get": "",
|
|
"strategy:get_all": "",
|
|
"strategy:state": "",
|
|
|
|
"service:detail": "",
|
|
"service:get": "",
|
|
"service:get_all": "",
|
|
|
|
"data_model:get_all": ""
|
|
}
|
|
"""
|
|
|
|
|
|
policy_data_compat_juno = """
|
|
{
|
|
"admin": "role:admin or role:administrator",
|
|
"admin_api": "is_admin:True",
|
|
"default": "rule:admin_api"
|
|
}
|
|
"""
|
|
|
|
|
|
def get_policy_data(compat):
|
|
if not compat:
|
|
return policy_data
|
|
elif compat == 'juno':
|
|
return policy_data_compat_juno
|
|
else:
|
|
raise Exception('Policy data for %s not available' % compat)
|