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.
- openstackclient/api/compute_v2.py +2 -2
- openstackclient/api/volume_v2.py +60 -0
- openstackclient/api/volume_v3.py +60 -0
- openstackclient/compute/client.py +5 -0
- openstackclient/compute/v2/console.py +7 -0
- openstackclient/compute/v2/console_connection.py +48 -0
- openstackclient/compute/v2/flavor.py +14 -1
- openstackclient/compute/v2/keypair.py +10 -3
- openstackclient/compute/v2/server.py +76 -13
- openstackclient/compute/v2/server_event.py +1 -1
- openstackclient/identity/common.py +85 -11
- openstackclient/identity/v3/application_credential.py +88 -87
- openstackclient/identity/v3/domain.py +67 -49
- openstackclient/identity/v3/group.py +113 -68
- openstackclient/identity/v3/project.py +42 -20
- openstackclient/identity/v3/role.py +7 -2
- openstackclient/identity/v3/user.py +38 -5
- openstackclient/image/client.py +5 -0
- openstackclient/image/v1/image.py +16 -1
- openstackclient/image/v2/cache.py +10 -6
- openstackclient/image/v2/image.py +59 -12
- openstackclient/image/v2/metadef_objects.py +8 -2
- openstackclient/image/v2/metadef_properties.py +9 -2
- openstackclient/network/client.py +0 -6
- openstackclient/network/v2/floating_ip.py +58 -29
- openstackclient/network/v2/network_qos_rule.py +3 -11
- openstackclient/network/v2/port.py +16 -0
- openstackclient/network/v2/router.py +1 -1
- openstackclient/network/v2/security_group.py +49 -7
- openstackclient/network/v2/security_group_rule.py +18 -1
- openstackclient/shell.py +1 -1
- openstackclient/tests/functional/base.py +5 -1
- openstackclient/tests/functional/compute/v2/test_keypair.py +41 -5
- openstackclient/tests/functional/identity/v3/test_access_rule.py +1 -1
- openstackclient/tests/functional/identity/v3/test_application_credential.py +7 -7
- openstackclient/tests/functional/image/v2/test_image.py +36 -14
- openstackclient/tests/functional/volume/v2/test_volume.py +1 -1
- openstackclient/tests/functional/volume/v3/test_volume.py +2 -2
- openstackclient/tests/unit/api/test_volume_v2.py +124 -0
- openstackclient/tests/unit/api/test_volume_v3.py +124 -0
- openstackclient/tests/unit/compute/v2/fakes.py +81 -305
- openstackclient/tests/unit/compute/v2/test_console.py +18 -1
- openstackclient/tests/unit/compute/v2/test_console_connection.py +72 -0
- openstackclient/tests/unit/compute/v2/test_flavor.py +160 -175
- openstackclient/tests/unit/compute/v2/test_keypair.py +12 -5
- openstackclient/tests/unit/compute/v2/test_server.py +211 -97
- openstackclient/tests/unit/compute/v2/test_server_backup.py +32 -71
- openstackclient/tests/unit/compute/v2/test_server_event.py +2 -2
- openstackclient/tests/unit/compute/v2/test_server_image.py +33 -72
- openstackclient/tests/unit/compute/v2/test_server_migration.py +4 -4
- openstackclient/tests/unit/identity/v3/test_application_credential.py +93 -65
- openstackclient/tests/unit/identity/v3/test_domain.py +117 -107
- openstackclient/tests/unit/identity/v3/test_group.py +353 -202
- openstackclient/tests/unit/identity/v3/test_project.py +46 -53
- openstackclient/tests/unit/identity/v3/test_role.py +2 -8
- openstackclient/tests/unit/identity/v3/test_user.py +86 -6
- openstackclient/tests/unit/image/v1/test_image.py +55 -9
- openstackclient/tests/unit/image/v2/test_image.py +128 -58
- openstackclient/tests/unit/image/v2/test_metadef_objects.py +22 -0
- openstackclient/tests/unit/image/v2/test_metadef_properties.py +24 -10
- openstackclient/tests/unit/network/v2/fakes.py +406 -485
- openstackclient/tests/unit/network/v2/test_floating_ip_network.py +13 -19
- openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +2 -2
- openstackclient/tests/unit/network/v2/test_ndp_proxy.py +3 -5
- openstackclient/tests/unit/network/v2/test_network.py +4 -4
- openstackclient/tests/unit/network/v2/test_network_agent.py +15 -29
- openstackclient/tests/unit/network/v2/test_network_qos_policy.py +16 -19
- openstackclient/tests/unit/network/v2/test_network_qos_rule.py +79 -152
- openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +4 -6
- openstackclient/tests/unit/network/v2/test_network_rbac.py +2 -2
- openstackclient/tests/unit/network/v2/test_port.py +57 -17
- openstackclient/tests/unit/network/v2/test_router.py +73 -57
- openstackclient/tests/unit/network/v2/test_security_group_network.py +31 -27
- openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +1 -3
- openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +82 -39
- openstackclient/tests/unit/volume/v2/fakes.py +1 -2
- openstackclient/tests/unit/volume/v2/test_service.py +57 -91
- openstackclient/tests/unit/volume/v2/test_volume.py +466 -410
- openstackclient/tests/unit/volume/v2/test_volume_backup.py +141 -148
- openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +293 -283
- openstackclient/tests/unit/volume/v3/test_block_storage_log_level.py +61 -71
- openstackclient/tests/unit/volume/v3/test_service.py +221 -141
- openstackclient/tests/unit/volume/v3/test_volume.py +569 -534
- openstackclient/tests/unit/volume/v3/test_volume_attachment.py +1 -1
- openstackclient/tests/unit/volume/v3/test_volume_backup.py +198 -203
- openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +682 -47
- openstackclient/volume/v2/service.py +41 -38
- openstackclient/volume/v2/volume.py +140 -88
- openstackclient/volume/v2/volume_backup.py +9 -3
- openstackclient/volume/v2/volume_snapshot.py +121 -84
- openstackclient/volume/v3/block_storage_log_level.py +22 -28
- openstackclient/volume/v3/service.py +105 -14
- openstackclient/volume/v3/volume.py +287 -99
- openstackclient/volume/v3/volume_backup.py +24 -19
- openstackclient/volume/v3/volume_group.py +1 -1
- openstackclient/volume/v3/volume_snapshot.py +485 -10
- {python_openstackclient-8.0.0.dist-info → python_openstackclient-8.2.0.dist-info}/AUTHORS +13 -0
- python_openstackclient-8.2.0.dist-info/METADATA +264 -0
- {python_openstackclient-8.0.0.dist-info → python_openstackclient-8.2.0.dist-info}/RECORD +104 -98
- {python_openstackclient-8.0.0.dist-info → python_openstackclient-8.2.0.dist-info}/entry_points.txt +7 -6
- python_openstackclient-8.2.0.dist-info/pbr.json +1 -0
- python_openstackclient-8.0.0.dist-info/METADATA +0 -166
- python_openstackclient-8.0.0.dist-info/pbr.json +0 -1
- {python_openstackclient-8.0.0.dist-info → python_openstackclient-8.2.0.dist-info}/LICENSE +0 -0
- {python_openstackclient-8.0.0.dist-info → python_openstackclient-8.2.0.dist-info}/WHEEL +0 -0
- {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
|
|
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.
|
|
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.
|
|
42
|
+
self.log_level.host,
|
|
49
43
|
'--service',
|
|
50
|
-
self.
|
|
44
|
+
self.log_level.binary,
|
|
51
45
|
'--log-prefix',
|
|
52
|
-
|
|
46
|
+
'cinder.',
|
|
53
47
|
]
|
|
54
48
|
verifylist = [
|
|
55
|
-
('host', self.
|
|
56
|
-
('service', self.
|
|
57
|
-
('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.
|
|
76
|
-
self.
|
|
77
|
-
|
|
78
|
-
|
|
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
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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(
|
|
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
|
-
|
|
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.
|
|
148
|
+
self.log_level.host,
|
|
158
149
|
'--service',
|
|
159
|
-
self.
|
|
150
|
+
self.log_level.binary,
|
|
160
151
|
'--log-prefix',
|
|
161
|
-
|
|
152
|
+
'cinder.api.common',
|
|
162
153
|
]
|
|
163
154
|
verifylist = [
|
|
164
155
|
('level', 'ERROR'),
|
|
165
|
-
('host', self.
|
|
166
|
-
('service', self.
|
|
167
|
-
('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
|
-
|
|
174
|
-
self.
|
|
164
|
+
self.assertIsNone(ret)
|
|
165
|
+
self.volume_sdk_client.set_service_log_levels.assert_called_with(
|
|
175
166
|
level='ERROR',
|
|
176
|
-
server=self.
|
|
177
|
-
binary=self.
|
|
178
|
-
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.
|
|
176
|
+
self.log_level.host,
|
|
186
177
|
'--service',
|
|
187
178
|
'cinder-api',
|
|
188
179
|
'--log-prefix',
|
|
189
|
-
'
|
|
180
|
+
'cinder.api.common',
|
|
190
181
|
]
|
|
191
182
|
verifylist = [
|
|
192
183
|
('level', 'ERROR'),
|
|
193
|
-
('host', self.
|
|
184
|
+
('host', self.log_level.host),
|
|
194
185
|
('service', 'cinder-api'),
|
|
195
|
-
('log_prefix', '
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
270
|
-
binary=self.
|
|
271
|
-
prefix=
|
|
259
|
+
server=self.log_level.host,
|
|
260
|
+
binary=self.log_level.binary,
|
|
261
|
+
prefix='cinder.api.common',
|
|
272
262
|
)
|