Coverage for manila/policies/share_access_metadata.py: 100%
10 statements
« prev ^ index » next coverage.py v7.11.0, created at 2026-02-18 22:19 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2026-02-18 22:19 +0000
1# Copyright 2018 Huawei Corporation.
2# All Rights Reserved.
3#
4# Licensed under the Apache License, Version 2.0 (the "License"); you may
5# not use this file except in compliance with the License. You may obtain
6# a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13# License for the specific language governing permissions and limitations
14# under the License.
16from oslo_log import versionutils
17from oslo_policy import policy
19from manila.policies import base
22BASE_POLICY_NAME = 'share_access_metadata:%s'
24DEPRECATED_REASON = """
25The share access metadata API now support system scope and default roles.
26"""
28deprecated_access_metadata_update = policy.DeprecatedRule(
29 name=BASE_POLICY_NAME % 'update',
30 check_str=base.RULE_DEFAULT,
31 deprecated_reason=DEPRECATED_REASON,
32 deprecated_since=versionutils.deprecated.WALLABY
33)
34deprecated_access_metadata_delete = policy.DeprecatedRule(
35 name=BASE_POLICY_NAME % 'delete',
36 check_str=base.RULE_DEFAULT,
37 deprecated_reason=DEPRECATED_REASON,
38 deprecated_since=versionutils.deprecated.WALLABY
39)
42share_access_rule_metadata_policies = [
43 policy.DocumentedRuleDefault(
44 name=BASE_POLICY_NAME % 'update',
45 check_str=base.ADMIN_OR_PROJECT_MEMBER,
46 scope_types=['project'],
47 description="Set metadata for a share access rule.",
48 operations=[
49 {
50 'method': 'PUT',
51 'path': '/share-access-rules/{share_access_id}/metadata'
52 }
53 ],
54 deprecated_rule=deprecated_access_metadata_update
55 ),
56 policy.DocumentedRuleDefault(
57 name=BASE_POLICY_NAME % 'delete',
58 check_str=base.ADMIN_OR_PROJECT_MEMBER,
59 scope_types=['project'],
60 description="Delete metadata for a share access rule.",
61 operations=[
62 {
63 'method': 'DELETE',
64 'path': '/share-access-rules/{share_access_id}/metadata/{key}'
65 }
66 ],
67 deprecated_rule=deprecated_access_metadata_delete
68 ),
69]
72def list_rules():
73 return share_access_rule_metadata_policies