Skip to content

Commit dfda0c0

Browse files
committed
Fix oslo policy DeprecatedRule warnings
Since 3.7.0, oslo policy started the DeprecationWarning[1] if deprecated_reason and deprecated_since param are not passed in DeprecatedRule or they are passed in RuleDefault object. [1] https://github.com/openstack/oslo.policy/blob/3.7.0/oslo_policy/policy.py#L1538 Change-Id: Idbbc203c6ae65aee29f9463a4911bae2bb541f41
1 parent e7a7fd5 commit dfda0c0

21 files changed

+212
-308
lines changed

lower-constraints.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ oslo.i18n==5.0.1
7676
oslo.log==4.4.0
7777
oslo.messaging==10.3.0
7878
oslo.middleware==3.31.0
79-
oslo.policy==3.6.0
79+
oslo.policy==3.7.0
8080
oslo.privsep==2.4.0
8181
oslo.reports==1.18.0
8282
oslo.rootwrap==5.8.0

nova/policies/attach_interfaces.py

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,20 @@
2020

2121
BASE_POLICY_NAME = 'os_compute_api:os-attach-interfaces'
2222
POLICY_ROOT = 'os_compute_api:os-attach-interfaces:%s'
23-
DEPRECATED_INTERFACES_POLICY = policy.DeprecatedRule(
24-
BASE_POLICY_NAME,
25-
base.RULE_ADMIN_OR_OWNER,
26-
)
2723

2824
DEPRECATED_REASON = """
2925
Nova API policies are introducing new default roles with scope_type
3026
capabilities. Old policies are deprecated and silently going to be ignored
3127
in nova 23.0.0 release.
3228
"""
3329

30+
DEPRECATED_INTERFACES_POLICY = policy.DeprecatedRule(
31+
BASE_POLICY_NAME,
32+
base.RULE_ADMIN_OR_OWNER,
33+
deprecated_reason=DEPRECATED_REASON,
34+
deprecated_since='21.0.0',
35+
)
36+
3437
attach_interfaces_policies = [
3538
policy.DocumentedRuleDefault(
3639
name=POLICY_ROOT % 'list',
@@ -43,9 +46,7 @@
4346
},
4447
],
4548
scope_types=['system', 'project'],
46-
deprecated_rule=DEPRECATED_INTERFACES_POLICY,
47-
deprecated_reason=DEPRECATED_REASON,
48-
deprecated_since='21.0.0'),
49+
deprecated_rule=DEPRECATED_INTERFACES_POLICY),
4950
policy.DocumentedRuleDefault(
5051
name=POLICY_ROOT % 'show',
5152
check_str=base.PROJECT_READER_OR_SYSTEM_READER,
@@ -57,9 +58,7 @@
5758
}
5859
],
5960
scope_types=['system', 'project'],
60-
deprecated_rule=DEPRECATED_INTERFACES_POLICY,
61-
deprecated_reason=DEPRECATED_REASON,
62-
deprecated_since='21.0.0'),
61+
deprecated_rule=DEPRECATED_INTERFACES_POLICY),
6362
policy.DocumentedRuleDefault(
6463
name=POLICY_ROOT % 'create',
6564
check_str=base.PROJECT_MEMBER_OR_SYSTEM_ADMIN,
@@ -71,9 +70,7 @@
7170
}
7271
],
7372
scope_types=['system', 'project'],
74-
deprecated_rule=DEPRECATED_INTERFACES_POLICY,
75-
deprecated_reason=DEPRECATED_REASON,
76-
deprecated_since='21.0.0'),
73+
deprecated_rule=DEPRECATED_INTERFACES_POLICY),
7774
policy.DocumentedRuleDefault(
7875
name=POLICY_ROOT % 'delete',
7976
check_str=base.PROJECT_MEMBER_OR_SYSTEM_ADMIN,
@@ -85,9 +82,7 @@
8582
}
8683
],
8784
scope_types=['system', 'project'],
88-
deprecated_rule=DEPRECATED_INTERFACES_POLICY,
89-
deprecated_reason=DEPRECATED_REASON,
90-
deprecated_since='21.0.0')
85+
deprecated_rule=DEPRECATED_INTERFACES_POLICY)
9186
]
9287

9388

nova/policies/baremetal_nodes.py

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,19 @@
2121
ROOT_POLICY = 'os_compute_api:os-baremetal-nodes'
2222
BASE_POLICY_NAME = 'os_compute_api:os-baremetal-nodes:%s'
2323

24-
DEPRECATED_BAREMETAL_POLICY = policy.DeprecatedRule(
25-
ROOT_POLICY,
26-
base.RULE_ADMIN_API,
27-
)
28-
2924
DEPRECATED_REASON = """
3025
Nova API policies are introducing new default roles with scope_type
3126
capabilities. Old policies are deprecated and silently going to be ignored
3227
in nova 23.0.0 release.
3328
"""
3429

30+
DEPRECATED_BAREMETAL_POLICY = policy.DeprecatedRule(
31+
ROOT_POLICY,
32+
base.RULE_ADMIN_API,
33+
deprecated_reason=DEPRECATED_REASON,
34+
deprecated_since='22.0.0'
35+
)
36+
3537

3638
baremetal_nodes_policies = [
3739
policy.DocumentedRuleDefault(
@@ -48,9 +50,7 @@
4850
}
4951
],
5052
scope_types=['system'],
51-
deprecated_rule=DEPRECATED_BAREMETAL_POLICY,
52-
deprecated_reason=DEPRECATED_REASON,
53-
deprecated_since='22.0.0'),
53+
deprecated_rule=DEPRECATED_BAREMETAL_POLICY),
5454
policy.DocumentedRuleDefault(
5555
name=BASE_POLICY_NAME % 'show',
5656
check_str=base.SYSTEM_READER,
@@ -62,9 +62,7 @@
6262
}
6363
],
6464
scope_types=['system'],
65-
deprecated_rule=DEPRECATED_BAREMETAL_POLICY,
66-
deprecated_reason=DEPRECATED_REASON,
67-
deprecated_since='22.0.0')
65+
deprecated_rule=DEPRECATED_BAREMETAL_POLICY)
6866
]
6967

7068

nova/policies/base.py

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,26 @@
1717
RULE_ANY = '@' # Any user is allowed to perform the action.
1818
RULE_NOBODY = '!' # No users are allowed to perform the action.
1919

20+
DEPRECATED_REASON = """
21+
Nova API policies are introducing new default roles with scope_type
22+
capabilities. Old policies are deprecated and silently going to be ignored
23+
in nova 23.0.0 release.
24+
"""
25+
2026
DEPRECATED_ADMIN_POLICY = policy.DeprecatedRule(
2127
name=RULE_ADMIN_API,
2228
check_str='is_admin:True',
29+
deprecated_reason=DEPRECATED_REASON,
30+
deprecated_since='21.0.0'
2331
)
2432

2533
DEPRECATED_ADMIN_OR_OWNER_POLICY = policy.DeprecatedRule(
2634
name=RULE_ADMIN_OR_OWNER,
2735
check_str='is_admin:True or project_id:%(project_id)s',
36+
deprecated_reason=DEPRECATED_REASON,
37+
deprecated_since='21.0.0'
2838
)
2939

30-
DEPRECATED_REASON = """
31-
Nova API policies are introducing new default roles with scope_type
32-
capabilities. Old policies are deprecated and silently going to be ignored
33-
in nova 23.0.0 release.
34-
"""
35-
3640
# TODO(gmann): # Special string ``system_scope:all`` is added for system
3741
# scoped policies for backwards compatibility where ``nova.conf [oslo_policy]
3842
# enforce_scope = False``.
@@ -103,30 +107,22 @@
103107
name="system_admin_api",
104108
check_str='role:admin and system_scope:all',
105109
description="Default rule for System Admin APIs.",
106-
deprecated_rule=DEPRECATED_ADMIN_POLICY,
107-
deprecated_reason=DEPRECATED_REASON,
108-
deprecated_since='21.0.0'),
110+
deprecated_rule=DEPRECATED_ADMIN_POLICY),
109111
policy.RuleDefault(
110112
name="system_reader_api",
111113
check_str="role:reader and system_scope:all",
112114
description="Default rule for System level read only APIs.",
113-
deprecated_rule=DEPRECATED_ADMIN_POLICY,
114-
deprecated_reason=DEPRECATED_REASON,
115-
deprecated_since='21.0.0'),
115+
deprecated_rule=DEPRECATED_ADMIN_POLICY),
116116
policy.RuleDefault(
117117
"project_admin_api",
118118
"role:admin and project_id:%(project_id)s",
119119
"Default rule for Project level admin APIs.",
120-
deprecated_rule=DEPRECATED_ADMIN_POLICY,
121-
deprecated_reason=DEPRECATED_REASON,
122-
deprecated_since='21.0.0'),
120+
deprecated_rule=DEPRECATED_ADMIN_POLICY),
123121
policy.RuleDefault(
124122
"project_member_api",
125123
"role:member and project_id:%(project_id)s",
126124
"Default rule for Project level non admin APIs.",
127-
deprecated_rule=DEPRECATED_ADMIN_OR_OWNER_POLICY,
128-
deprecated_reason=DEPRECATED_REASON,
129-
deprecated_since='21.0.0'),
125+
deprecated_rule=DEPRECATED_ADMIN_OR_OWNER_POLICY),
130126
policy.RuleDefault(
131127
"project_reader_api",
132128
"role:reader and project_id:%(project_id)s",
@@ -135,16 +131,12 @@
135131
name="system_admin_or_owner",
136132
check_str="rule:system_admin_api or rule:project_member_api",
137133
description="Default rule for System admin+owner APIs.",
138-
deprecated_rule=DEPRECATED_ADMIN_OR_OWNER_POLICY,
139-
deprecated_reason=DEPRECATED_REASON,
140-
deprecated_since='21.0.0'),
134+
deprecated_rule=DEPRECATED_ADMIN_OR_OWNER_POLICY),
141135
policy.RuleDefault(
142136
"system_or_project_reader",
143137
"rule:system_reader_api or rule:project_reader_api",
144138
"Default rule for System+Project read only APIs.",
145-
deprecated_rule=DEPRECATED_ADMIN_OR_OWNER_POLICY,
146-
deprecated_reason=DEPRECATED_REASON,
147-
deprecated_since='21.0.0')
139+
deprecated_rule=DEPRECATED_ADMIN_OR_OWNER_POLICY)
148140
]
149141

150142

nova/policies/deferred_delete.py

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,19 @@
2020

2121
BASE_POLICY_NAME = 'os_compute_api:os-deferred-delete:%s'
2222

23-
DEPRECATED_POLICY = policy.DeprecatedRule(
24-
'os_compute_api:os-deferred-delete',
25-
base.RULE_ADMIN_OR_OWNER,
26-
)
27-
2823
DEPRECATED_REASON = """
2924
Nova API policies are introducing new default roles with scope_type
3025
capabilities. Old policies are deprecated and silently going to be ignored
3126
in nova 23.0.0 release.
3227
"""
3328

29+
DEPRECATED_POLICY = policy.DeprecatedRule(
30+
'os_compute_api:os-deferred-delete',
31+
base.RULE_ADMIN_OR_OWNER,
32+
deprecated_reason=DEPRECATED_REASON,
33+
deprecated_since='21.0.0'
34+
)
35+
3436
deferred_delete_policies = [
3537
policy.DocumentedRuleDefault(
3638
name=BASE_POLICY_NAME % 'restore',
@@ -43,9 +45,7 @@
4345
},
4446
],
4547
scope_types=['system', 'project'],
46-
deprecated_rule=DEPRECATED_POLICY,
47-
deprecated_reason=DEPRECATED_REASON,
48-
deprecated_since='21.0.0'),
48+
deprecated_rule=DEPRECATED_POLICY),
4949
policy.DocumentedRuleDefault(
5050
name=BASE_POLICY_NAME % 'force',
5151
check_str=base.PROJECT_MEMBER_OR_SYSTEM_ADMIN,
@@ -57,9 +57,7 @@
5757
}
5858
],
5959
scope_types=['system', 'project'],
60-
deprecated_rule=DEPRECATED_POLICY,
61-
deprecated_reason=DEPRECATED_REASON,
62-
deprecated_since='21.0.0')
60+
deprecated_rule=DEPRECATED_POLICY)
6361
]
6462

6563

nova/policies/flavor_access.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,19 @@
2929
# SYSTEM_READER rule in base class is defined with the deprecated rule of admin
3030
# not admin or owner which is the main reason that we need to explicitly
3131
# deprecate this policy here.
32-
DEPRECATED_FLAVOR_ACCESS_POLICY = policy.DeprecatedRule(
33-
BASE_POLICY_NAME,
34-
base.RULE_ADMIN_OR_OWNER,
35-
)
36-
3732
DEPRECATED_REASON = """
3833
Nova API policies are introducing new default roles with scope_type
3934
capabilities. Old policies are deprecated and silently going to be ignored
4035
in nova 23.0.0 release.
4136
"""
4237

38+
DEPRECATED_FLAVOR_ACCESS_POLICY = policy.DeprecatedRule(
39+
BASE_POLICY_NAME,
40+
base.RULE_ADMIN_OR_OWNER,
41+
deprecated_reason=DEPRECATED_REASON,
42+
deprecated_since='21.0.0'
43+
)
44+
4345
flavor_access_policies = [
4446
policy.DocumentedRuleDefault(
4547
name=POLICY_ROOT % 'add_tenant_access',
@@ -78,9 +80,7 @@
7880
},
7981
],
8082
scope_types=['system'],
81-
deprecated_rule=DEPRECATED_FLAVOR_ACCESS_POLICY,
82-
deprecated_reason=DEPRECATED_REASON,
83-
deprecated_since='21.0.0'),
83+
deprecated_rule=DEPRECATED_FLAVOR_ACCESS_POLICY),
8484
]
8585

8686

nova/policies/floating_ips.py

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,19 @@
2121
ROOT_POLICY = 'os_compute_api:os-floating-ips'
2222
BASE_POLICY_NAME = 'os_compute_api:os-floating-ips:%s'
2323

24-
DEPRECATED_FIP_POLICY = policy.DeprecatedRule(
25-
ROOT_POLICY,
26-
base.RULE_ADMIN_OR_OWNER,
27-
)
28-
2924
DEPRECATED_REASON = """
3025
Nova API policies are introducing new default roles with scope_type
3126
capabilities. Old policies are deprecated and silently going to be ignored
3227
in nova 23.0.0 release.
3328
"""
3429

30+
DEPRECATED_FIP_POLICY = policy.DeprecatedRule(
31+
ROOT_POLICY,
32+
base.RULE_ADMIN_OR_OWNER,
33+
deprecated_reason=DEPRECATED_REASON,
34+
deprecated_since='22.0.0'
35+
)
36+
3537

3638
floating_ips_policies = [
3739
policy.DocumentedRuleDefault(
@@ -46,9 +48,7 @@
4648
}
4749
],
4850
scope_types=['system', 'project'],
49-
deprecated_rule=DEPRECATED_FIP_POLICY,
50-
deprecated_reason=DEPRECATED_REASON,
51-
deprecated_since='22.0.0'),
51+
deprecated_rule=DEPRECATED_FIP_POLICY),
5252
policy.DocumentedRuleDefault(
5353
name=BASE_POLICY_NAME % 'remove',
5454
check_str=base.PROJECT_MEMBER_OR_SYSTEM_ADMIN,
@@ -61,9 +61,7 @@
6161
}
6262
],
6363
scope_types=['system', 'project'],
64-
deprecated_rule=DEPRECATED_FIP_POLICY,
65-
deprecated_reason=DEPRECATED_REASON,
66-
deprecated_since='22.0.0'),
64+
deprecated_rule=DEPRECATED_FIP_POLICY),
6765
policy.DocumentedRuleDefault(
6866
name=BASE_POLICY_NAME % 'list',
6967
check_str=base.PROJECT_READER_OR_SYSTEM_READER,
@@ -75,9 +73,7 @@
7573
}
7674
],
7775
scope_types=['system', 'project'],
78-
deprecated_rule=DEPRECATED_FIP_POLICY,
79-
deprecated_reason=DEPRECATED_REASON,
80-
deprecated_since='22.0.0'),
76+
deprecated_rule=DEPRECATED_FIP_POLICY),
8177
policy.DocumentedRuleDefault(
8278
name=BASE_POLICY_NAME % 'create',
8379
check_str=base.PROJECT_MEMBER_OR_SYSTEM_ADMIN,
@@ -89,9 +85,7 @@
8985
}
9086
],
9187
scope_types=['system', 'project'],
92-
deprecated_rule=DEPRECATED_FIP_POLICY,
93-
deprecated_reason=DEPRECATED_REASON,
94-
deprecated_since='22.0.0'),
88+
deprecated_rule=DEPRECATED_FIP_POLICY),
9589
policy.DocumentedRuleDefault(
9690
name=BASE_POLICY_NAME % 'show',
9791
check_str=base.PROJECT_READER_OR_SYSTEM_READER,
@@ -103,9 +97,7 @@
10397
}
10498
],
10599
scope_types=['system', 'project'],
106-
deprecated_rule=DEPRECATED_FIP_POLICY,
107-
deprecated_reason=DEPRECATED_REASON,
108-
deprecated_since='22.0.0'),
100+
deprecated_rule=DEPRECATED_FIP_POLICY),
109101
policy.DocumentedRuleDefault(
110102
name=BASE_POLICY_NAME % 'delete',
111103
check_str=base.PROJECT_MEMBER_OR_SYSTEM_ADMIN,
@@ -117,9 +109,7 @@
117109
}
118110
],
119111
scope_types=['system', 'project'],
120-
deprecated_rule=DEPRECATED_FIP_POLICY,
121-
deprecated_reason=DEPRECATED_REASON,
122-
deprecated_since='22.0.0'),
112+
deprecated_rule=DEPRECATED_FIP_POLICY),
123113
]
124114

125115

0 commit comments

Comments
 (0)