python-openstackclient 8.3.0__py3-none-any.whl → 9.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. openstackclient/common/module.py +1 -1
  2. openstackclient/common/quota.py +31 -17
  3. openstackclient/compute/v2/server.py +2 -2
  4. openstackclient/identity/common.py +31 -0
  5. openstackclient/identity/v2_0/service.py +3 -1
  6. openstackclient/identity/v3/federation_protocol.py +39 -40
  7. openstackclient/identity/v3/limit.py +85 -84
  8. openstackclient/identity/v3/project.py +181 -112
  9. openstackclient/identity/v3/registered_limit.py +82 -99
  10. openstackclient/identity/v3/tag.py +0 -11
  11. openstackclient/image/v2/image.py +2 -1
  12. openstackclient/tests/functional/identity/v3/test_limit.py +47 -0
  13. openstackclient/tests/functional/image/v2/test_metadef_objects.py +69 -0
  14. openstackclient/tests/functional/volume/v3/test_volume_snapshot.py +46 -132
  15. openstackclient/tests/unit/common/test_quota.py +59 -0
  16. openstackclient/tests/unit/compute/v2/test_server.py +6 -8
  17. openstackclient/tests/unit/identity/v3/test_limit.py +197 -145
  18. openstackclient/tests/unit/identity/v3/test_project.py +831 -512
  19. openstackclient/tests/unit/identity/v3/test_protocol.py +97 -88
  20. openstackclient/tests/unit/identity/v3/test_registered_limit.py +355 -220
  21. openstackclient/tests/unit/image/v2/test_image.py +5 -5
  22. openstackclient/tests/unit/volume/v2/test_consistency_group.py +8 -2
  23. openstackclient/tests/unit/volume/v2/test_volume.py +7 -6
  24. openstackclient/tests/unit/volume/v3/test_volume.py +34 -12
  25. openstackclient/volume/v2/consistency_group.py +8 -8
  26. openstackclient/volume/v2/consistency_group_snapshot.py +2 -2
  27. openstackclient/volume/v2/qos_specs.py +2 -2
  28. openstackclient/volume/v2/volume.py +12 -5
  29. openstackclient/volume/v2/volume_backup.py +2 -2
  30. openstackclient/volume/v2/volume_snapshot.py +2 -2
  31. openstackclient/volume/v2/volume_transfer_request.py +2 -2
  32. openstackclient/volume/v2/volume_type.py +5 -5
  33. openstackclient/volume/v3/volume.py +14 -7
  34. openstackclient/volume/v3/volume_backup.py +2 -2
  35. openstackclient/volume/v3/volume_snapshot.py +2 -2
  36. openstackclient/volume/v3/volume_transfer_request.py +2 -2
  37. openstackclient/volume/v3/volume_type.py +5 -5
  38. {python_openstackclient-8.3.0.dist-info → python_openstackclient-9.0.0.dist-info}/METADATA +1 -1
  39. {python_openstackclient-8.3.0.dist-info → python_openstackclient-9.0.0.dist-info}/RECORD +45 -44
  40. {python_openstackclient-8.3.0.dist-info → python_openstackclient-9.0.0.dist-info}/WHEEL +1 -1
  41. {python_openstackclient-8.3.0.dist-info → python_openstackclient-9.0.0.dist-info}/licenses/AUTHORS +5 -0
  42. python_openstackclient-9.0.0.dist-info/pbr.json +1 -0
  43. python_openstackclient-8.3.0.dist-info/pbr.json +0 -1
  44. {python_openstackclient-8.3.0.dist-info → python_openstackclient-9.0.0.dist-info}/entry_points.txt +0 -0
  45. {python_openstackclient-8.3.0.dist-info → python_openstackclient-9.0.0.dist-info}/licenses/LICENSE +0 -0
  46. {python_openstackclient-8.3.0.dist-info → python_openstackclient-9.0.0.dist-info}/top_level.txt +0 -0
@@ -10,87 +10,85 @@
10
10
  # License for the specific language governing permissions and limitations
11
11
  # under the License.
12
12
 
13
- import copy
14
-
15
- from keystoneauth1.exceptions import http as ksa_exceptions
13
+ from openstack import exceptions as sdk_exc
14
+ from openstack.identity.v3 import domain as _domain
15
+ from openstack.identity.v3 import limit as _limit
16
+ from openstack.identity.v3 import project as _project
17
+ from openstack.identity.v3 import region as _region
18
+ from openstack.identity.v3 import service as _service
19
+ from openstack.test import fakes as sdk_fakes
16
20
  from osc_lib import exceptions
17
21
 
18
22
  from openstackclient.identity.v3 import limit
19
- from openstackclient.tests.unit import fakes
20
23
  from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
21
24
 
22
25
 
23
- class TestLimit(identity_fakes.TestIdentityv3):
26
+ class TestLimitCreate(identity_fakes.TestIdentityv3):
24
27
  def setUp(self):
25
28
  super().setUp()
26
29
 
27
- identity_manager = self.identity_client
28
-
29
- self.limit_mock = identity_manager.limits
30
-
31
- self.services_mock = identity_manager.services
32
- self.services_mock.reset_mock()
33
-
34
- self.projects_mock = identity_manager.projects
35
- self.projects_mock.reset_mock()
36
-
37
- self.regions_mock = identity_manager.regions
38
- self.regions_mock.reset_mock()
30
+ self.domain = sdk_fakes.generate_fake_resource(_domain.Domain)
31
+ self.project = sdk_fakes.generate_fake_resource(
32
+ _project.Project, domain_id=self.domain.id
33
+ )
34
+ self.region = sdk_fakes.generate_fake_resource(_region.Region)
35
+ self.service = sdk_fakes.generate_fake_resource(_service.Service)
39
36
 
37
+ self.resource_limit = 15
40
38
 
41
- class TestLimitCreate(TestLimit):
42
- def setUp(self):
43
- super().setUp()
44
-
45
- self.service = fakes.FakeResource(
46
- None, copy.deepcopy(identity_fakes.SERVICE), loaded=True
47
- )
48
- self.services_mock.get.return_value = self.service
39
+ self.identity_sdk_client.find_service.return_value = self.service
40
+ self.identity_sdk_client.get_region.return_value = self.region
41
+ self.identity_sdk_client.find_project.return_value = self.project
42
+ self.identity_sdk_client.find_domain.return_value = self.domain
49
43
 
50
- self.project = fakes.FakeResource(
51
- None, copy.deepcopy(identity_fakes.PROJECT), loaded=True
44
+ self.limit = sdk_fakes.generate_fake_resource(
45
+ resource_type=_limit.Limit,
46
+ project_id=self.project.id,
47
+ service_id=self.service.id,
48
+ resource_name='foobars',
49
+ description=None,
50
+ resource_limit=self.resource_limit,
51
+ region_id=None,
52
52
  )
53
- self.projects_mock.get.return_value = self.project
54
-
55
- self.region = fakes.FakeResource(
56
- None, copy.deepcopy(identity_fakes.REGION), loaded=True
53
+ self.limit_with_options = sdk_fakes.generate_fake_resource(
54
+ resource_type=_limit.Limit,
55
+ project_id=self.project.id,
56
+ service_id=self.service.id,
57
+ resource_limit=self.resource_limit,
58
+ resource_name='foobars',
59
+ description='test description',
60
+ region_id=self.region.id,
57
61
  )
58
- self.regions_mock.get.return_value = self.region
59
62
 
60
63
  self.cmd = limit.CreateLimit(self.app, None)
61
64
 
62
65
  def test_limit_create_without_options(self):
63
- self.limit_mock.create.return_value = fakes.FakeResource(
64
- None, copy.deepcopy(identity_fakes.LIMIT), loaded=True
65
- )
66
+ self.identity_sdk_client.create_limit.return_value = self.limit
66
67
 
67
- resource_limit = 15
68
68
  arglist = [
69
69
  '--project',
70
- identity_fakes.project_id,
70
+ self.project.id,
71
71
  '--service',
72
- identity_fakes.service_id,
72
+ self.service.id,
73
73
  '--resource-limit',
74
- str(resource_limit),
75
- identity_fakes.limit_resource_name,
74
+ str(self.resource_limit),
75
+ self.limit.resource_name,
76
76
  ]
77
77
  verifylist = [
78
- ('project', identity_fakes.project_id),
79
- ('service', identity_fakes.service_id),
80
- ('resource_name', identity_fakes.limit_resource_name),
81
- ('resource_limit', resource_limit),
78
+ ('project', self.project.id),
79
+ ('service', self.service.id),
80
+ ('resource_name', self.limit.resource_name),
81
+ ('resource_limit', self.resource_limit),
82
82
  ]
83
83
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
84
84
 
85
85
  columns, data = self.cmd.take_action(parsed_args)
86
86
 
87
- kwargs = {'description': None, 'region': None}
88
- self.limit_mock.create.assert_called_with(
89
- self.project,
90
- self.service,
91
- identity_fakes.limit_resource_name,
92
- resource_limit,
93
- **kwargs,
87
+ self.identity_sdk_client.create_limit.assert_called_with(
88
+ project_id=self.project.id,
89
+ service_id=self.service.id,
90
+ resource_name=self.limit.resource_name,
91
+ resource_limit=self.resource_limit,
94
92
  )
95
93
 
96
94
  collist = (
@@ -105,55 +103,58 @@ class TestLimitCreate(TestLimit):
105
103
  self.assertEqual(collist, columns)
106
104
  datalist = (
107
105
  None,
108
- identity_fakes.limit_id,
109
- identity_fakes.project_id,
106
+ self.limit.id,
107
+ self.project.id,
110
108
  None,
111
- resource_limit,
112
- identity_fakes.limit_resource_name,
113
- identity_fakes.service_id,
109
+ self.resource_limit,
110
+ self.limit.resource_name,
111
+ self.service.id,
114
112
  )
115
113
  self.assertEqual(datalist, data)
116
114
 
117
115
  def test_limit_create_with_options(self):
118
- self.limit_mock.create.return_value = fakes.FakeResource(
119
- None, copy.deepcopy(identity_fakes.LIMIT_OPTIONS), loaded=True
116
+ self.identity_sdk_client.create_limit.return_value = (
117
+ self.limit_with_options
120
118
  )
121
119
 
122
120
  resource_limit = 15
123
121
  arglist = [
124
122
  '--project',
125
- identity_fakes.project_id,
123
+ self.project.id,
124
+ '--project-domain',
125
+ self.domain.name,
126
126
  '--service',
127
- identity_fakes.service_id,
127
+ self.service.id,
128
128
  '--resource-limit',
129
129
  str(resource_limit),
130
130
  '--region',
131
- identity_fakes.region_id,
131
+ self.region.id,
132
132
  '--description',
133
- identity_fakes.limit_description,
134
- identity_fakes.limit_resource_name,
133
+ self.limit_with_options.description,
134
+ self.limit_with_options.resource_name,
135
135
  ]
136
136
  verifylist = [
137
- ('project', identity_fakes.project_id),
138
- ('service', identity_fakes.service_id),
139
- ('resource_name', identity_fakes.limit_resource_name),
137
+ ('project', self.project.id),
138
+ ('project_domain', self.domain.name),
139
+ ('service', self.service.id),
140
+ ('resource_name', self.limit_with_options.resource_name),
140
141
  ('resource_limit', resource_limit),
141
- ('region', identity_fakes.region_id),
142
- ('description', identity_fakes.limit_description),
142
+ ('region', self.region.id),
143
+ ('description', self.limit_with_options.description),
143
144
  ]
144
145
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
145
146
 
146
147
  columns, data = self.cmd.take_action(parsed_args)
147
148
 
148
149
  kwargs = {
149
- 'description': identity_fakes.limit_description,
150
- 'region': self.region,
150
+ 'project_id': self.project.id,
151
+ 'service_id': self.service.id,
152
+ 'region_id': self.region.id,
153
+ 'resource_name': self.limit_with_options.resource_name,
154
+ 'resource_limit': resource_limit,
155
+ 'description': self.limit_with_options.description,
151
156
  }
152
- self.limit_mock.create.assert_called_with(
153
- self.project,
154
- self.service,
155
- identity_fakes.limit_resource_name,
156
- resource_limit,
157
+ self.identity_sdk_client.create_limit.assert_called_with(
157
158
  **kwargs,
158
159
  )
159
160
 
@@ -168,37 +169,41 @@ class TestLimitCreate(TestLimit):
168
169
  )
169
170
  self.assertEqual(collist, columns)
170
171
  datalist = (
171
- identity_fakes.limit_description,
172
- identity_fakes.limit_id,
173
- identity_fakes.project_id,
174
- identity_fakes.region_id,
172
+ self.limit_with_options.description,
173
+ self.limit_with_options.id,
174
+ self.project.id,
175
+ self.region.id,
175
176
  resource_limit,
176
- identity_fakes.limit_resource_name,
177
- identity_fakes.service_id,
177
+ self.limit_with_options.resource_name,
178
+ self.service.id,
178
179
  )
179
180
  self.assertEqual(datalist, data)
180
181
 
181
182
 
182
- class TestLimitDelete(TestLimit):
183
+ class TestLimitDelete(identity_fakes.TestIdentityv3):
183
184
  def setUp(self):
184
185
  super().setUp()
185
186
  self.cmd = limit.DeleteLimit(self.app, None)
186
187
 
187
188
  def test_limit_delete(self):
188
- self.limit_mock.delete.return_value = None
189
+ self.limit = sdk_fakes.generate_fake_resource(
190
+ resource_type=_limit.Limit
191
+ )
192
+ self.identity_sdk_client.delete_limit.return_value = None
189
193
 
190
- arglist = [identity_fakes.limit_id]
191
- verifylist = [('limit_id', [identity_fakes.limit_id])]
194
+ arglist = [self.limit.id]
195
+ verifylist = [('limit_id', [self.limit.id])]
192
196
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
193
197
 
194
198
  result = self.cmd.take_action(parsed_args)
195
199
 
196
- self.limit_mock.delete.assert_called_with(identity_fakes.limit_id)
200
+ self.identity_sdk_client.delete_limit.assert_called_with(self.limit.id)
197
201
  self.assertIsNone(result)
198
202
 
199
203
  def test_limit_delete_with_exception(self):
200
- return_value = ksa_exceptions.NotFound()
201
- self.limit_mock.delete.side_effect = return_value
204
+ self.identity_sdk_client.delete_limit.side_effect = (
205
+ sdk_exc.ResourceNotFound
206
+ )
202
207
 
203
208
  arglist = ['fake-limit-id']
204
209
  verifylist = [('limit_id', ['fake-limit-id'])]
@@ -211,24 +216,42 @@ class TestLimitDelete(TestLimit):
211
216
  self.assertEqual('1 of 1 limits failed to delete.', str(e))
212
217
 
213
218
 
214
- class TestLimitShow(TestLimit):
219
+ class TestLimitShow(identity_fakes.TestIdentityv3):
215
220
  def setUp(self):
216
221
  super().setUp()
217
222
 
218
- self.limit_mock.get.return_value = fakes.FakeResource(
219
- None, copy.deepcopy(identity_fakes.LIMIT), loaded=True
223
+ self.project = sdk_fakes.generate_fake_resource(_project.Project)
224
+ self.region = sdk_fakes.generate_fake_resource(_region.Region)
225
+ self.service = sdk_fakes.generate_fake_resource(_service.Service)
226
+
227
+ self.resource_limit = 15
228
+
229
+ self.identity_sdk_client.find_service.return_value = self.service
230
+ self.identity_sdk_client.get_region.return_value = self.region
231
+ self.identity_sdk_client.find_project.return_value = self.project
232
+
233
+ self.limit = sdk_fakes.generate_fake_resource(
234
+ resource_type=_limit.Limit,
235
+ project_id=self.project.id,
236
+ service_id=self.service.id,
237
+ resource_name='foobars',
238
+ description=None,
239
+ resource_limit=self.resource_limit,
240
+ region_id=None,
220
241
  )
221
242
 
243
+ self.identity_sdk_client.get_limit.return_value = self.limit
244
+
222
245
  self.cmd = limit.ShowLimit(self.app, None)
223
246
 
224
247
  def test_limit_show(self):
225
- arglist = [identity_fakes.limit_id]
226
- verifylist = [('limit_id', identity_fakes.limit_id)]
248
+ arglist = [self.limit.id]
249
+ verifylist = [('limit_id', self.limit.id)]
227
250
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
228
251
 
229
252
  columns, data = self.cmd.take_action(parsed_args)
230
253
 
231
- self.limit_mock.get.assert_called_with(identity_fakes.limit_id)
254
+ self.identity_sdk_client.get_limit.assert_called_with(self.limit.id)
232
255
 
233
256
  collist = (
234
257
  'description',
@@ -242,45 +265,61 @@ class TestLimitShow(TestLimit):
242
265
  self.assertEqual(collist, columns)
243
266
  datalist = (
244
267
  None,
245
- identity_fakes.limit_id,
246
- identity_fakes.project_id,
268
+ self.limit.id,
269
+ self.project.id,
247
270
  None,
248
- identity_fakes.limit_resource_limit,
249
- identity_fakes.limit_resource_name,
250
- identity_fakes.service_id,
271
+ self.resource_limit,
272
+ self.limit.resource_name,
273
+ self.service.id,
251
274
  )
252
275
  self.assertEqual(datalist, data)
253
276
 
254
277
 
255
- class TestLimitSet(TestLimit):
278
+ class TestLimitSet(identity_fakes.TestIdentityv3):
256
279
  def setUp(self):
257
280
  super().setUp()
281
+
282
+ self.project = sdk_fakes.generate_fake_resource(_project.Project)
283
+ self.region = sdk_fakes.generate_fake_resource(_region.Region)
284
+ self.service = sdk_fakes.generate_fake_resource(_service.Service)
285
+
286
+ self.resource_limit = 15
287
+
288
+ self.identity_sdk_client.find_service.return_value = self.service
289
+ self.identity_sdk_client.get_region.return_value = self.region
290
+ self.identity_sdk_client.find_project.return_value = self.project
291
+
258
292
  self.cmd = limit.SetLimit(self.app, None)
259
293
 
260
294
  def test_limit_set_description(self):
261
- limit = copy.deepcopy(identity_fakes.LIMIT)
262
- limit['description'] = identity_fakes.limit_description
263
- self.limit_mock.update.return_value = fakes.FakeResource(
264
- None, limit, loaded=True
295
+ description = 'limit of foobars'
296
+ limit = sdk_fakes.generate_fake_resource(
297
+ resource_type=_limit.Limit,
298
+ project_id=self.project.id,
299
+ service_id=self.service.id,
300
+ resource_name='foobars',
301
+ description=description,
302
+ resource_limit=self.resource_limit,
303
+ region_id=None,
265
304
  )
305
+ self.identity_sdk_client.update_limit.return_value = limit
266
306
 
267
307
  arglist = [
268
308
  '--description',
269
- identity_fakes.limit_description,
270
- identity_fakes.limit_id,
309
+ description,
310
+ limit.id,
271
311
  ]
272
312
  verifylist = [
273
- ('description', identity_fakes.limit_description),
274
- ('limit_id', identity_fakes.limit_id),
313
+ ('description', description),
314
+ ('limit_id', limit.id),
275
315
  ]
276
316
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
277
317
 
278
318
  columns, data = self.cmd.take_action(parsed_args)
279
319
 
280
- self.limit_mock.update.assert_called_with(
281
- identity_fakes.limit_id,
282
- description=identity_fakes.limit_description,
283
- resource_limit=None,
320
+ self.identity_sdk_client.update_limit.assert_called_with(
321
+ limit.id,
322
+ description=description,
284
323
  )
285
324
 
286
325
  collist = (
@@ -294,40 +333,44 @@ class TestLimitSet(TestLimit):
294
333
  )
295
334
  self.assertEqual(collist, columns)
296
335
  datalist = (
297
- identity_fakes.limit_description,
298
- identity_fakes.limit_id,
299
- identity_fakes.project_id,
336
+ description,
337
+ limit.id,
338
+ self.project.id,
300
339
  None,
301
- identity_fakes.limit_resource_limit,
302
- identity_fakes.limit_resource_name,
303
- identity_fakes.service_id,
340
+ limit.resource_limit,
341
+ limit.resource_name,
342
+ self.service.id,
304
343
  )
305
344
  self.assertEqual(datalist, data)
306
345
 
307
346
  def test_limit_set_resource_limit(self):
308
347
  resource_limit = 20
309
- limit = copy.deepcopy(identity_fakes.LIMIT)
310
- limit['resource_limit'] = resource_limit
311
- self.limit_mock.update.return_value = fakes.FakeResource(
312
- None, limit, loaded=True
348
+ limit = sdk_fakes.generate_fake_resource(
349
+ resource_type=_limit.Limit,
350
+ project_id=self.project.id,
351
+ service_id=self.service.id,
352
+ resource_name='foobars',
353
+ description=None,
354
+ resource_limit=resource_limit,
355
+ region_id=None,
313
356
  )
357
+ self.identity_sdk_client.update_limit.return_value = limit
314
358
 
315
359
  arglist = [
316
360
  '--resource-limit',
317
361
  str(resource_limit),
318
- identity_fakes.limit_id,
362
+ limit.id,
319
363
  ]
320
364
  verifylist = [
321
365
  ('resource_limit', resource_limit),
322
- ('limit_id', identity_fakes.limit_id),
366
+ ('limit_id', limit.id),
323
367
  ]
324
368
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
325
369
 
326
370
  columns, data = self.cmd.take_action(parsed_args)
327
371
 
328
- self.limit_mock.update.assert_called_with(
329
- identity_fakes.limit_id,
330
- description=None,
372
+ self.identity_sdk_client.update_limit.assert_called_with(
373
+ limit.id,
331
374
  resource_limit=resource_limit,
332
375
  )
333
376
 
@@ -343,25 +386,36 @@ class TestLimitSet(TestLimit):
343
386
  self.assertEqual(collist, columns)
344
387
  datalist = (
345
388
  None,
346
- identity_fakes.limit_id,
347
- identity_fakes.project_id,
389
+ limit.id,
390
+ self.project.id,
348
391
  None,
349
392
  resource_limit,
350
- identity_fakes.limit_resource_name,
351
- identity_fakes.service_id,
393
+ limit.resource_name,
394
+ self.service.id,
352
395
  )
353
396
  self.assertEqual(datalist, data)
354
397
 
355
398
 
356
- class TestLimitList(TestLimit):
399
+ class TestLimitList(identity_fakes.TestIdentityv3):
357
400
  def setUp(self):
358
401
  super().setUp()
359
402
 
360
- self.limit_mock.list.return_value = [
361
- fakes.FakeResource(
362
- None, copy.deepcopy(identity_fakes.LIMIT), loaded=True
363
- )
364
- ]
403
+ self.project = sdk_fakes.generate_fake_resource(_project.Project)
404
+ self.region = sdk_fakes.generate_fake_resource(_region.Region)
405
+ self.service = sdk_fakes.generate_fake_resource(_service.Service)
406
+
407
+ self.resource_limit = 15
408
+
409
+ self.limit = sdk_fakes.generate_fake_resource(
410
+ resource_type=_limit.Limit,
411
+ project_id=self.project.id,
412
+ service_id=self.service.id,
413
+ resource_name='foobars',
414
+ description=None,
415
+ resource_limit=self.resource_limit,
416
+ region_id=None,
417
+ )
418
+ self.identity_sdk_client.limits.return_value = [self.limit]
365
419
 
366
420
  self.cmd = limit.ListLimit(self.app, None)
367
421
 
@@ -372,9 +426,7 @@ class TestLimitList(TestLimit):
372
426
 
373
427
  columns, data = self.cmd.take_action(parsed_args)
374
428
 
375
- self.limit_mock.list.assert_called_with(
376
- service=None, resource_name=None, region=None, project=None
377
- )
429
+ self.identity_sdk_client.limits.assert_called_with()
378
430
 
379
431
  collist = (
380
432
  'ID',
@@ -388,11 +440,11 @@ class TestLimitList(TestLimit):
388
440
  self.assertEqual(collist, columns)
389
441
  datalist = (
390
442
  (
391
- identity_fakes.limit_id,
392
- identity_fakes.project_id,
393
- identity_fakes.service_id,
394
- identity_fakes.limit_resource_name,
395
- identity_fakes.limit_resource_limit,
443
+ self.limit.id,
444
+ self.project.id,
445
+ self.service.id,
446
+ self.limit.resource_name,
447
+ self.limit.resource_limit,
396
448
  None,
397
449
  None,
398
450
  ),