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

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. 

15 

16from oslo_log import versionutils 

17from oslo_policy import policy 

18 

19from manila.policies import base 

20 

21 

22BASE_POLICY_NAME = 'share_access_metadata:%s' 

23 

24DEPRECATED_REASON = """ 

25The share access metadata API now support system scope and default roles. 

26""" 

27 

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) 

40 

41 

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] 

70 

71 

72def list_rules(): 

73 return share_access_rule_metadata_policies