python-openstackclient 8.0.0__py3-none-any.whl → 8.2.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 (106) hide show
  1. openstackclient/api/compute_v2.py +2 -2
  2. openstackclient/api/volume_v2.py +60 -0
  3. openstackclient/api/volume_v3.py +60 -0
  4. openstackclient/compute/client.py +5 -0
  5. openstackclient/compute/v2/console.py +7 -0
  6. openstackclient/compute/v2/console_connection.py +48 -0
  7. openstackclient/compute/v2/flavor.py +14 -1
  8. openstackclient/compute/v2/keypair.py +10 -3
  9. openstackclient/compute/v2/server.py +76 -13
  10. openstackclient/compute/v2/server_event.py +1 -1
  11. openstackclient/identity/common.py +85 -11
  12. openstackclient/identity/v3/application_credential.py +88 -87
  13. openstackclient/identity/v3/domain.py +67 -49
  14. openstackclient/identity/v3/group.py +113 -68
  15. openstackclient/identity/v3/project.py +42 -20
  16. openstackclient/identity/v3/role.py +7 -2
  17. openstackclient/identity/v3/user.py +38 -5
  18. openstackclient/image/client.py +5 -0
  19. openstackclient/image/v1/image.py +16 -1
  20. openstackclient/image/v2/cache.py +10 -6
  21. openstackclient/image/v2/image.py +59 -12
  22. openstackclient/image/v2/metadef_objects.py +8 -2
  23. openstackclient/image/v2/metadef_properties.py +9 -2
  24. openstackclient/network/client.py +0 -6
  25. openstackclient/network/v2/floating_ip.py +58 -29
  26. openstackclient/network/v2/network_qos_rule.py +3 -11
  27. openstackclient/network/v2/port.py +16 -0
  28. openstackclient/network/v2/router.py +1 -1
  29. openstackclient/network/v2/security_group.py +49 -7
  30. openstackclient/network/v2/security_group_rule.py +18 -1
  31. openstackclient/shell.py +1 -1
  32. openstackclient/tests/functional/base.py +5 -1
  33. openstackclient/tests/functional/compute/v2/test_keypair.py +41 -5
  34. openstackclient/tests/functional/identity/v3/test_access_rule.py +1 -1
  35. openstackclient/tests/functional/identity/v3/test_application_credential.py +7 -7
  36. openstackclient/tests/functional/image/v2/test_image.py +36 -14
  37. openstackclient/tests/functional/volume/v2/test_volume.py +1 -1
  38. openstackclient/tests/functional/volume/v3/test_volume.py +2 -2
  39. openstackclient/tests/unit/api/test_volume_v2.py +124 -0
  40. openstackclient/tests/unit/api/test_volume_v3.py +124 -0
  41. openstackclient/tests/unit/compute/v2/fakes.py +81 -305
  42. openstackclient/tests/unit/compute/v2/test_console.py +18 -1
  43. openstackclient/tests/unit/compute/v2/test_console_connection.py +72 -0
  44. openstackclient/tests/unit/compute/v2/test_flavor.py +160 -175
  45. openstackclient/tests/unit/compute/v2/test_keypair.py +12 -5
  46. openstackclient/tests/unit/compute/v2/test_server.py +211 -97
  47. openstackclient/tests/unit/compute/v2/test_server_backup.py +32 -71
  48. openstackclient/tests/unit/compute/v2/test_server_event.py +2 -2
  49. openstackclient/tests/unit/compute/v2/test_server_image.py +33 -72
  50. openstackclient/tests/unit/compute/v2/test_server_migration.py +4 -4
  51. openstackclient/tests/unit/identity/v3/test_application_credential.py +93 -65
  52. openstackclient/tests/unit/identity/v3/test_domain.py +117 -107
  53. openstackclient/tests/unit/identity/v3/test_group.py +353 -202
  54. openstackclient/tests/unit/identity/v3/test_project.py +46 -53
  55. openstackclient/tests/unit/identity/v3/test_role.py +2 -8
  56. openstackclient/tests/unit/identity/v3/test_user.py +86 -6
  57. openstackclient/tests/unit/image/v1/test_image.py +55 -9
  58. openstackclient/tests/unit/image/v2/test_image.py +128 -58
  59. openstackclient/tests/unit/image/v2/test_metadef_objects.py +22 -0
  60. openstackclient/tests/unit/image/v2/test_metadef_properties.py +24 -10
  61. openstackclient/tests/unit/network/v2/fakes.py +406 -485
  62. openstackclient/tests/unit/network/v2/test_floating_ip_network.py +13 -19
  63. openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +2 -2
  64. openstackclient/tests/unit/network/v2/test_ndp_proxy.py +3 -5
  65. openstackclient/tests/unit/network/v2/test_network.py +4 -4
  66. openstackclient/tests/unit/network/v2/test_network_agent.py +15 -29
  67. openstackclient/tests/unit/network/v2/test_network_qos_policy.py +16 -19
  68. openstackclient/tests/unit/network/v2/test_network_qos_rule.py +79 -152
  69. openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +4 -6
  70. openstackclient/tests/unit/network/v2/test_network_rbac.py +2 -2
  71. openstackclient/tests/unit/network/v2/test_port.py +57 -17
  72. openstackclient/tests/unit/network/v2/test_router.py +73 -57
  73. openstackclient/tests/unit/network/v2/test_security_group_network.py +31 -27
  74. openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +1 -3
  75. openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +82 -39
  76. openstackclient/tests/unit/volume/v2/fakes.py +1 -2
  77. openstackclient/tests/unit/volume/v2/test_service.py +57 -91
  78. openstackclient/tests/unit/volume/v2/test_volume.py +466 -410
  79. openstackclient/tests/unit/volume/v2/test_volume_backup.py +141 -148
  80. openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +293 -283
  81. openstackclient/tests/unit/volume/v3/test_block_storage_log_level.py +61 -71
  82. openstackclient/tests/unit/volume/v3/test_service.py +221 -141
  83. openstackclient/tests/unit/volume/v3/test_volume.py +569 -534
  84. openstackclient/tests/unit/volume/v3/test_volume_attachment.py +1 -1
  85. openstackclient/tests/unit/volume/v3/test_volume_backup.py +198 -203
  86. openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +682 -47
  87. openstackclient/volume/v2/service.py +41 -38
  88. openstackclient/volume/v2/volume.py +140 -88
  89. openstackclient/volume/v2/volume_backup.py +9 -3
  90. openstackclient/volume/v2/volume_snapshot.py +121 -84
  91. openstackclient/volume/v3/block_storage_log_level.py +22 -28
  92. openstackclient/volume/v3/service.py +105 -14
  93. openstackclient/volume/v3/volume.py +287 -99
  94. openstackclient/volume/v3/volume_backup.py +24 -19
  95. openstackclient/volume/v3/volume_group.py +1 -1
  96. openstackclient/volume/v3/volume_snapshot.py +485 -10
  97. {python_openstackclient-8.0.0.dist-info → python_openstackclient-8.2.0.dist-info}/AUTHORS +13 -0
  98. python_openstackclient-8.2.0.dist-info/METADATA +264 -0
  99. {python_openstackclient-8.0.0.dist-info → python_openstackclient-8.2.0.dist-info}/RECORD +104 -98
  100. {python_openstackclient-8.0.0.dist-info → python_openstackclient-8.2.0.dist-info}/entry_points.txt +7 -6
  101. python_openstackclient-8.2.0.dist-info/pbr.json +1 -0
  102. python_openstackclient-8.0.0.dist-info/METADATA +0 -166
  103. python_openstackclient-8.0.0.dist-info/pbr.json +0 -1
  104. {python_openstackclient-8.0.0.dist-info → python_openstackclient-8.2.0.dist-info}/LICENSE +0 -0
  105. {python_openstackclient-8.0.0.dist-info → python_openstackclient-8.2.0.dist-info}/WHEEL +0 -0
  106. {python_openstackclient-8.0.0.dist-info → python_openstackclient-8.2.0.dist-info}/top_level.txt +0 -0
@@ -10,9 +10,10 @@
10
10
  # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
11
11
  # License for the specific language governing permissions and limitations
12
12
  # under the License.
13
- #
14
13
 
15
14
  import ddt
15
+ from openstack.block_storage.v3 import service as _service
16
+ from openstack.test import fakes as sdk_fakes
16
17
  from osc_lib import exceptions
17
18
 
18
19
  from openstackclient.tests.unit import utils as tests_utils
@@ -20,24 +21,17 @@ from openstackclient.tests.unit.volume.v3 import fakes as volume_fakes
20
21
  from openstackclient.volume.v3 import block_storage_log_level as service
21
22
 
22
23
 
23
- class TestService(volume_fakes.TestVolume):
24
- def setUp(self):
25
- super().setUp()
26
-
27
- # Get a shortcut to the ServiceManager Mock
28
- self.service_mock = self.volume_client.services
29
- self.service_mock.reset_mock()
30
-
31
-
32
- class TestBlockStorageLogLevelList(TestService):
33
- service_log = volume_fakes.create_service_log_level_entry()
34
-
24
+ class TestBlockStorageLogLevelList(volume_fakes.TestVolume):
35
25
  def setUp(self):
36
26
  super().setUp()
37
27
 
38
- self.service_mock.get_log_levels.return_value = [self.service_log]
28
+ self.log_level = sdk_fakes.generate_fake_resource(
29
+ _service.LogLevel, binary='cinder-scheduler'
30
+ )
31
+ self.volume_sdk_client.get_service_log_levels.return_value = [
32
+ self.log_level
33
+ ]
39
34
 
40
- # Get the command object to test
41
35
  self.cmd = service.BlockStorageLogLevelList(self.app, None)
42
36
 
43
37
  def test_block_storage_log_level_list(self):
@@ -45,16 +39,16 @@ class TestBlockStorageLogLevelList(TestService):
45
39
 
46
40
  arglist = [
47
41
  '--host',
48
- self.service_log.host,
42
+ self.log_level.host,
49
43
  '--service',
50
- self.service_log.binary,
44
+ self.log_level.binary,
51
45
  '--log-prefix',
52
- self.service_log.prefix,
46
+ 'cinder.',
53
47
  ]
54
48
  verifylist = [
55
- ('host', self.service_log.host),
56
- ('service', self.service_log.binary),
57
- ('log_prefix', self.service_log.prefix),
49
+ ('host', self.log_level.host),
50
+ ('service', self.log_level.binary),
51
+ ('log_prefix', 'cinder.'),
58
52
  ]
59
53
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
60
54
 
@@ -66,40 +60,35 @@ class TestBlockStorageLogLevelList(TestService):
66
60
  'Prefix',
67
61
  'Level',
68
62
  ]
69
-
70
- # confirming if all expected columns are present in the result.
71
- self.assertEqual(expected_columns, columns)
72
-
73
- datalist = (
63
+ datalist = tuple(
74
64
  (
75
- self.service_log.binary,
76
- self.service_log.host,
77
- self.service_log.prefix,
78
- self.service_log.level,
79
- ),
65
+ self.log_level.binary,
66
+ self.log_level.host,
67
+ prefix,
68
+ level,
69
+ )
70
+ for prefix, level in self.log_level.levels.values()
80
71
  )
81
-
82
- # confirming if all expected values are present in the result.
72
+ self.assertEqual(expected_columns, columns)
83
73
  self.assertEqual(datalist, tuple(data))
84
74
 
85
- # checking if proper call was made to get log level of services
86
- self.service_mock.get_log_levels.assert_called_with(
87
- server=self.service_log.host,
88
- binary=self.service_log.binary,
89
- prefix=self.service_log.prefix,
75
+ self.volume_sdk_client.get_service_log_levels.assert_called_with(
76
+ server=self.log_level.host,
77
+ binary=self.log_level.binary,
78
+ prefix='cinder.',
90
79
  )
91
80
 
92
81
  def test_block_storage_log_level_list_pre_332(self):
93
82
  arglist = [
94
83
  '--host',
95
- self.service_log.host,
84
+ self.log_level.host,
96
85
  '--service',
97
86
  'cinder-api',
98
87
  '--log-prefix',
99
88
  'cinder_test.api.common',
100
89
  ]
101
90
  verifylist = [
102
- ('host', self.service_log.host),
91
+ ('host', self.log_level.host),
103
92
  ('service', 'cinder-api'),
104
93
  ('log_prefix', 'cinder_test.api.common'),
105
94
  ]
@@ -117,14 +106,14 @@ class TestBlockStorageLogLevelList(TestService):
117
106
 
118
107
  arglist = [
119
108
  '--host',
120
- self.service_log.host,
109
+ self.log_level.host,
121
110
  '--service',
122
111
  'nova-api',
123
112
  '--log-prefix',
124
113
  'cinder_test.api.common',
125
114
  ]
126
115
  verifylist = [
127
- ('host', self.service_log.host),
116
+ ('host', self.log_level.host),
128
117
  ('service', 'nova-api'),
129
118
  ('log_prefix', 'cinder_test.api.common'),
130
119
  ]
@@ -139,13 +128,15 @@ class TestBlockStorageLogLevelList(TestService):
139
128
 
140
129
 
141
130
  @ddt.ddt
142
- class TestBlockStorageLogLevelSet(TestService):
143
- service_log = volume_fakes.create_service_log_level_entry()
144
-
131
+ class TestBlockStorageLogLevelSet(volume_fakes.TestVolume):
145
132
  def setUp(self):
146
133
  super().setUp()
147
134
 
148
- # Get the command object to test
135
+ self.log_level = sdk_fakes.generate_fake_resource(
136
+ _service.LogLevel, binary='cinder-api'
137
+ )
138
+ self.volume_sdk_client.set_service_log_levels.return_value = None
139
+
149
140
  self.cmd = service.BlockStorageLogLevelSet(self.app, None)
150
141
 
151
142
  def test_block_storage_log_level_set(self):
@@ -154,45 +145,45 @@ class TestBlockStorageLogLevelSet(TestService):
154
145
  arglist = [
155
146
  'ERROR',
156
147
  '--host',
157
- self.service_log.host,
148
+ self.log_level.host,
158
149
  '--service',
159
- self.service_log.binary,
150
+ self.log_level.binary,
160
151
  '--log-prefix',
161
- self.service_log.prefix,
152
+ 'cinder.api.common',
162
153
  ]
163
154
  verifylist = [
164
155
  ('level', 'ERROR'),
165
- ('host', self.service_log.host),
166
- ('service', self.service_log.binary),
167
- ('log_prefix', self.service_log.prefix),
156
+ ('host', self.log_level.host),
157
+ ('service', self.log_level.binary),
158
+ ('log_prefix', 'cinder.api.common'),
168
159
  ]
169
160
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
170
161
 
171
- self.cmd.take_action(parsed_args)
162
+ ret = self.cmd.take_action(parsed_args)
172
163
 
173
- # checking if proper call was made to set log level of services
174
- self.service_mock.set_log_levels.assert_called_with(
164
+ self.assertIsNone(ret)
165
+ self.volume_sdk_client.set_service_log_levels.assert_called_with(
175
166
  level='ERROR',
176
- server=self.service_log.host,
177
- binary=self.service_log.binary,
178
- prefix=self.service_log.prefix,
167
+ server=self.log_level.host,
168
+ binary=self.log_level.binary,
169
+ prefix='cinder.api.common',
179
170
  )
180
171
 
181
172
  def test_block_storage_log_level_set_pre_332(self):
182
173
  arglist = [
183
174
  'ERROR',
184
175
  '--host',
185
- self.service_log.host,
176
+ self.log_level.host,
186
177
  '--service',
187
178
  'cinder-api',
188
179
  '--log-prefix',
189
- 'cinder_test.api.common',
180
+ 'cinder.api.common',
190
181
  ]
191
182
  verifylist = [
192
183
  ('level', 'ERROR'),
193
- ('host', self.service_log.host),
184
+ ('host', self.log_level.host),
194
185
  ('service', 'cinder-api'),
195
- ('log_prefix', 'cinder_test.api.common'),
186
+ ('log_prefix', 'cinder.api.common'),
196
187
  ]
197
188
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
198
189
 
@@ -209,7 +200,7 @@ class TestBlockStorageLogLevelSet(TestService):
209
200
  arglist = [
210
201
  'ERROR',
211
202
  '--host',
212
- self.service_log.host,
203
+ self.log_level.host,
213
204
  '--service',
214
205
  'nova-api',
215
206
  '--log-prefix',
@@ -217,7 +208,7 @@ class TestBlockStorageLogLevelSet(TestService):
217
208
  ]
218
209
  verifylist = [
219
210
  ('level', 'ERROR'),
220
- ('host', self.service_log.host),
211
+ ('host', self.log_level.host),
221
212
  ('service', 'nova-api'),
222
213
  ('log_prefix', 'cinder.api.common'),
223
214
  ]
@@ -237,7 +228,7 @@ class TestBlockStorageLogLevelSet(TestService):
237
228
  arglist = [
238
229
  log_level,
239
230
  '--host',
240
- self.service_log.host,
231
+ self.log_level.host,
241
232
  '--service',
242
233
  'cinder-api',
243
234
  '--log-prefix',
@@ -245,7 +236,7 @@ class TestBlockStorageLogLevelSet(TestService):
245
236
  ]
246
237
  verifylist = [
247
238
  ('level', log_level.upper()),
248
- ('host', self.service_log.host),
239
+ ('host', self.log_level.host),
249
240
  ('service', 'cinder-api'),
250
241
  ('log_prefix', 'cinder.api.common'),
251
242
  ]
@@ -263,10 +254,9 @@ class TestBlockStorageLogLevelSet(TestService):
263
254
 
264
255
  self.cmd.take_action(parsed_args)
265
256
 
266
- # checking if proper call was made to set log level of services
267
- self.service_mock.set_log_levels.assert_called_with(
257
+ self.volume_sdk_client.set_service_log_levels.assert_called_with(
268
258
  level=log_level.upper(),
269
- server=self.service_log.host,
270
- binary=self.service_log.binary,
271
- prefix=self.service_log.prefix,
259
+ server=self.log_level.host,
260
+ binary=self.log_level.binary,
261
+ prefix='cinder.api.common',
272
262
  )