Coverage for manila/policies/share_server.py: 100%
21 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# Licensed under the Apache License, Version 2.0 (the "License"); you may
2# not use this file except in compliance with the License. You may obtain
3# a copy of the License at
4#
5# http://www.apache.org/licenses/LICENSE-2.0
6#
7# Unless required by applicable law or agreed to in writing, software
8# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
9# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
10# License for the specific language governing permissions and limitations
11# under the License.
13from oslo_log import versionutils
14from oslo_policy import policy
16from manila.policies import base
19BASE_POLICY_NAME = 'share_server:%s'
21DEPRECATED_REASON = """
22The share server API now supports scope and default roles.
23"""
25deprecated_server_index = policy.DeprecatedRule(
26 name=BASE_POLICY_NAME % 'index',
27 check_str=base.RULE_ADMIN_API,
28 deprecated_reason=DEPRECATED_REASON,
29 deprecated_since=versionutils.deprecated.WALLABY
30)
31deprecated_server_show = policy.DeprecatedRule(
32 name=BASE_POLICY_NAME % 'show',
33 check_str=base.RULE_ADMIN_API,
34 deprecated_reason=DEPRECATED_REASON,
35 deprecated_since=versionutils.deprecated.WALLABY
36)
37deprecated_server_details = policy.DeprecatedRule(
38 name=BASE_POLICY_NAME % 'details',
39 check_str=base.RULE_ADMIN_API,
40 deprecated_reason=DEPRECATED_REASON,
41 deprecated_since=versionutils.deprecated.WALLABY
42)
43deprecated_server_delete = policy.DeprecatedRule(
44 name=BASE_POLICY_NAME % 'delete',
45 check_str=base.RULE_ADMIN_API,
46 deprecated_reason=DEPRECATED_REASON,
47 deprecated_since=versionutils.deprecated.WALLABY
48)
49deprecated_manage_server = policy.DeprecatedRule(
50 name=BASE_POLICY_NAME % 'manage_share_server',
51 check_str=base.RULE_ADMIN_API,
52 deprecated_reason=DEPRECATED_REASON,
53 deprecated_since=versionutils.deprecated.WALLABY
54)
55deprecated_unmanage_server = policy.DeprecatedRule(
56 name=BASE_POLICY_NAME % 'unmanage_share_server',
57 check_str=base.RULE_ADMIN_API,
58 deprecated_reason=DEPRECATED_REASON,
59 deprecated_since=versionutils.deprecated.WALLABY
60)
61deprecated_server_reset_status = policy.DeprecatedRule(
62 name=BASE_POLICY_NAME % 'reset_status',
63 check_str=base.RULE_ADMIN_API,
64 deprecated_reason=DEPRECATED_REASON,
65 deprecated_since=versionutils.deprecated.WALLABY
66)
67deprecated_server_migration_start = policy.DeprecatedRule(
68 name=BASE_POLICY_NAME % 'share_server_migration_start',
69 check_str=base.RULE_ADMIN_API,
70 deprecated_reason=DEPRECATED_REASON,
71 deprecated_since=versionutils.deprecated.WALLABY
72)
73deprecated_server_migration_check = policy.DeprecatedRule(
74 name=BASE_POLICY_NAME % 'share_server_migration_check',
75 check_str=base.RULE_ADMIN_API,
76 deprecated_reason=DEPRECATED_REASON,
77 deprecated_since=versionutils.deprecated.WALLABY
78)
79deprecated_server_migration_complete = policy.DeprecatedRule(
80 name=BASE_POLICY_NAME % 'share_server_migration_complete',
81 check_str=base.RULE_ADMIN_API,
82 deprecated_reason=DEPRECATED_REASON,
83 deprecated_since=versionutils.deprecated.WALLABY
84)
85deprecated_server_migration_cancel = policy.DeprecatedRule(
86 name=BASE_POLICY_NAME % 'share_server_migration_cancel',
87 check_str=base.RULE_ADMIN_API,
88 deprecated_reason=DEPRECATED_REASON,
89 deprecated_since=versionutils.deprecated.WALLABY
90)
91deprecated_server_migration_get_progress = policy.DeprecatedRule(
92 name=BASE_POLICY_NAME % 'share_server_migration_get_progress',
93 check_str=base.RULE_ADMIN_API,
94 deprecated_reason=DEPRECATED_REASON,
95 deprecated_since=versionutils.deprecated.WALLABY
96)
97deprecated_server_reset_task_state = policy.DeprecatedRule(
98 name=BASE_POLICY_NAME % 'share_server_reset_task_state',
99 check_str=base.RULE_ADMIN_API,
100 deprecated_reason=DEPRECATED_REASON,
101 deprecated_since=versionutils.deprecated.WALLABY
102)
105share_server_policies = [
106 policy.DocumentedRuleDefault(
107 name=BASE_POLICY_NAME % 'index',
108 check_str=base.ADMIN,
109 scope_types=['project'],
110 description="Get share servers.",
111 operations=[
112 {
113 'method': 'GET',
114 'path': '/share-servers?{query}',
115 }
116 ],
117 deprecated_rule=deprecated_server_index
118 ),
119 policy.DocumentedRuleDefault(
120 name=BASE_POLICY_NAME % 'show',
121 check_str=base.ADMIN,
122 scope_types=['project'],
123 description="Show share server.",
124 operations=[
125 {
126 'method': 'GET',
127 'path': '/share-servers/{server_id}',
128 }
129 ],
130 deprecated_rule=deprecated_server_show
131 ),
132 policy.DocumentedRuleDefault(
133 name=BASE_POLICY_NAME % 'details',
134 check_str=base.ADMIN,
135 scope_types=['project'],
136 description="Get share server details.",
137 operations=[
138 {
139 'method': 'GET',
140 'path': '/share-servers/{server_id}/details',
141 }
142 ],
143 deprecated_rule=deprecated_server_details
144 ),
145 policy.DocumentedRuleDefault(
146 name=BASE_POLICY_NAME % 'delete',
147 check_str=base.ADMIN,
148 scope_types=['project'],
149 description="Delete share server.",
150 operations=[
151 {
152 'method': 'DELETE',
153 'path': '/share-servers/{server_id}',
154 }
155 ],
156 deprecated_rule=deprecated_server_delete
157 ),
158 policy.DocumentedRuleDefault(
159 name=BASE_POLICY_NAME % 'manage_share_server',
160 check_str=base.ADMIN,
161 scope_types=['project'],
162 description="Manage share server.",
163 operations=[
164 {
165 'method': 'POST',
166 'path': '/share-servers/manage'
167 }
168 ],
169 deprecated_rule=deprecated_manage_server
170 ),
171 policy.DocumentedRuleDefault(
172 name=BASE_POLICY_NAME % 'unmanage_share_server',
173 check_str=base.ADMIN,
174 scope_types=['project'],
175 description="Unmanage share server.",
176 operations=[
177 {
178 'method': 'POST',
179 'path': '/share-servers/{share_server_id}/action'
180 }
181 ],
182 deprecated_rule=deprecated_unmanage_server
183 ),
184 policy.DocumentedRuleDefault(
185 name=BASE_POLICY_NAME % 'reset_status',
186 check_str=base.ADMIN,
187 scope_types=['project'],
188 description="Reset the status of a share server.",
189 operations=[
190 {
191 'method': 'POST',
192 'path': '/share-servers/{share_server_id}/action'
193 }
194 ],
195 deprecated_rule=deprecated_server_reset_status
196 ),
197 policy.DocumentedRuleDefault(
198 name=BASE_POLICY_NAME % 'share_server_migration_start',
199 check_str=base.ADMIN,
200 scope_types=['project'],
201 description="Migrates a share server to the specified host.",
202 operations=[
203 {
204 'method': 'POST',
205 'path': '/share-servers/{share_server_id}/action',
206 }
207 ],
208 deprecated_rule=deprecated_server_migration_start
209 ),
210 policy.DocumentedRuleDefault(
211 name=BASE_POLICY_NAME % 'share_server_migration_check',
212 check_str=base.ADMIN,
213 scope_types=['project'],
214 description="Check if can migrates a share server to the specified "
215 "host.",
216 operations=[
217 {
218 'method': 'POST',
219 'path': '/share-servers/{share_server_id}/action',
220 }
221 ],
222 deprecated_rule=deprecated_server_migration_check
223 ),
224 policy.DocumentedRuleDefault(
225 name=BASE_POLICY_NAME % 'share_server_migration_complete',
226 check_str=base.ADMIN,
227 scope_types=['project'],
228 description="Invokes the 2nd phase of share server migration.",
229 operations=[
230 {
231 'method': 'POST',
232 'path': '/share-servers/{share_server_id}/action',
233 }
234 ],
235 deprecated_rule=deprecated_server_migration_complete
236 ),
237 policy.DocumentedRuleDefault(
238 name=BASE_POLICY_NAME % 'share_server_migration_cancel',
239 check_str=base.ADMIN,
240 scope_types=['project'],
241 description="Attempts to cancel share server migration.",
242 operations=[
243 {
244 'method': 'POST',
245 'path': '/share-servers/{share_server_id}/action',
246 }
247 ],
248 deprecated_rule=deprecated_server_migration_cancel
249 ),
250 policy.DocumentedRuleDefault(
251 name=BASE_POLICY_NAME % 'share_server_migration_get_progress',
252 check_str=base.ADMIN,
253 scope_types=['project'],
254 description=("Retrieves the share server migration progress for a "
255 "given share server."),
256 operations=[
257 {
258 'method': 'POST',
259 'path': '/share-servers/{share_server_id}/action',
260 }
261 ],
262 deprecated_rule=deprecated_server_migration_get_progress
263 ),
264 policy.DocumentedRuleDefault(
265 name=BASE_POLICY_NAME % 'share_server_reset_task_state',
266 check_str=base.ADMIN,
267 scope_types=['project'],
268 description="Resets task state.",
269 operations=[
270 {
271 'method': 'POST',
272 'path': '/share-servers/{share_server_id}/action',
273 }
274 ],
275 deprecated_rule=deprecated_server_reset_task_state
276 ),
277]
280def list_rules():
281 return share_server_policies