python-openstackclient 7.1.4__py3-none-any.whl → 7.1.5__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/compute/v2/server.py +6 -2
- openstackclient/tests/functional/compute/v2/test_server.py +87 -1
- openstackclient/tests/unit/compute/v2/test_server.py +4 -4
- {python_openstackclient-7.1.4.dist-info → python_openstackclient-7.1.5.dist-info}/METADATA +24 -17
- {python_openstackclient-7.1.4.dist-info → python_openstackclient-7.1.5.dist-info}/RECORD +11 -11
- {python_openstackclient-7.1.4.dist-info → python_openstackclient-7.1.5.dist-info}/WHEEL +1 -1
- {python_openstackclient-7.1.4.dist-info → python_openstackclient-7.1.5.dist-info}/entry_points.txt +0 -1
- python_openstackclient-7.1.5.dist-info/pbr.json +1 -0
- python_openstackclient-7.1.4.dist-info/pbr.json +0 -1
- {python_openstackclient-7.1.4.dist-info → python_openstackclient-7.1.5.dist-info/licenses}/AUTHORS +0 -0
- {python_openstackclient-7.1.4.dist-info → python_openstackclient-7.1.5.dist-info/licenses}/LICENSE +0 -0
- {python_openstackclient-7.1.4.dist-info → python_openstackclient-7.1.5.dist-info}/top_level.txt +0 -0
|
@@ -701,7 +701,10 @@ class AddServerSecurityGroup(command.Command):
|
|
|
701
701
|
security_group = compute_v2.find_security_group(
|
|
702
702
|
compute_client, parsed_args.group
|
|
703
703
|
)['name']
|
|
704
|
-
compute_client.add_security_group_to_server(
|
|
704
|
+
compute_client.add_security_group_to_server(
|
|
705
|
+
server,
|
|
706
|
+
{'name': security_group},
|
|
707
|
+
)
|
|
705
708
|
|
|
706
709
|
|
|
707
710
|
class AddServerVolume(command.ShowOne):
|
|
@@ -4039,7 +4042,8 @@ class RemoveServerSecurityGroup(command.Command):
|
|
|
4039
4042
|
compute_client, parsed_args.group
|
|
4040
4043
|
)['name']
|
|
4041
4044
|
compute_client.remove_security_group_from_server(
|
|
4042
|
-
server,
|
|
4045
|
+
server,
|
|
4046
|
+
{'name': security_group},
|
|
4043
4047
|
)
|
|
4044
4048
|
|
|
4045
4049
|
|
|
@@ -1295,7 +1295,7 @@ class ServerTests(common.ComputeTestCase):
|
|
|
1295
1295
|
)
|
|
1296
1296
|
if ip_address in cmd_output['addresses']['private']:
|
|
1297
1297
|
# Hang out for a bit and try again
|
|
1298
|
-
print('retrying
|
|
1298
|
+
print('retrying remove port check')
|
|
1299
1299
|
wait_time += 10
|
|
1300
1300
|
time.sleep(10)
|
|
1301
1301
|
else:
|
|
@@ -1367,6 +1367,92 @@ class ServerTests(common.ComputeTestCase):
|
|
|
1367
1367
|
addresses = cmd_output['addresses']['private']
|
|
1368
1368
|
self.assertIn(ip_address, addresses)
|
|
1369
1369
|
|
|
1370
|
+
def test_server_add_remove_security_group(self):
|
|
1371
|
+
name = uuid.uuid4().hex
|
|
1372
|
+
cmd_output = self.openstack(
|
|
1373
|
+
'server create '
|
|
1374
|
+
+ '--network private '
|
|
1375
|
+
+ '--flavor '
|
|
1376
|
+
+ self.flavor_name
|
|
1377
|
+
+ ' '
|
|
1378
|
+
+ '--image '
|
|
1379
|
+
+ self.image_name
|
|
1380
|
+
+ ' '
|
|
1381
|
+
+ '--wait '
|
|
1382
|
+
+ name,
|
|
1383
|
+
parse_output=True,
|
|
1384
|
+
)
|
|
1385
|
+
|
|
1386
|
+
self.assertIsNotNone(cmd_output['id'])
|
|
1387
|
+
self.assertEqual(name, cmd_output['name'])
|
|
1388
|
+
self.addCleanup(self.openstack, 'server delete --wait ' + name)
|
|
1389
|
+
|
|
1390
|
+
# create security group
|
|
1391
|
+
security_group_name = uuid.uuid4().hex
|
|
1392
|
+
|
|
1393
|
+
cmd_output = self.openstack(
|
|
1394
|
+
'security group list',
|
|
1395
|
+
parse_output=True,
|
|
1396
|
+
)
|
|
1397
|
+
self.assertNotIn(security_group_name, cmd_output)
|
|
1398
|
+
|
|
1399
|
+
cmd_output = self.openstack(
|
|
1400
|
+
'security group create ' + security_group_name,
|
|
1401
|
+
parse_output=True,
|
|
1402
|
+
)
|
|
1403
|
+
self.assertIsNotNone(cmd_output['id'])
|
|
1404
|
+
self.addCleanup(
|
|
1405
|
+
self.openstack, 'security group delete ' + security_group_name
|
|
1406
|
+
)
|
|
1407
|
+
|
|
1408
|
+
# add security group to server, assert the name of the security group
|
|
1409
|
+
# appears
|
|
1410
|
+
self.openstack(
|
|
1411
|
+
'server add security group ' + name + ' ' + security_group_name
|
|
1412
|
+
)
|
|
1413
|
+
|
|
1414
|
+
wait_time = 0
|
|
1415
|
+
while wait_time < 60:
|
|
1416
|
+
cmd_output = self.openstack(
|
|
1417
|
+
'server show ' + name,
|
|
1418
|
+
parse_output=True,
|
|
1419
|
+
)
|
|
1420
|
+
if security_group_name not in [
|
|
1421
|
+
x['name'] for x in cmd_output['security_groups']
|
|
1422
|
+
]:
|
|
1423
|
+
# Hang out for a bit and try again
|
|
1424
|
+
print('retrying add security group check')
|
|
1425
|
+
wait_time += 10
|
|
1426
|
+
time.sleep(10)
|
|
1427
|
+
else:
|
|
1428
|
+
break
|
|
1429
|
+
security_groups = [x['name'] for x in cmd_output['security_groups']]
|
|
1430
|
+
self.assertIn(security_group_name, security_groups)
|
|
1431
|
+
|
|
1432
|
+
# remove security group, assert the name of the security group doesn't
|
|
1433
|
+
# appear
|
|
1434
|
+
self.openstack(
|
|
1435
|
+
'server remove security group ' + name + ' ' + security_group_name
|
|
1436
|
+
)
|
|
1437
|
+
|
|
1438
|
+
wait_time = 0
|
|
1439
|
+
while wait_time < 60:
|
|
1440
|
+
cmd_output = self.openstack(
|
|
1441
|
+
'server show ' + name,
|
|
1442
|
+
parse_output=True,
|
|
1443
|
+
)
|
|
1444
|
+
if security_group_name not in [
|
|
1445
|
+
x['name'] for x in cmd_output['security_groups']
|
|
1446
|
+
]:
|
|
1447
|
+
# Hang out for a bit and try again
|
|
1448
|
+
print('retrying remove security group check')
|
|
1449
|
+
wait_time += 10
|
|
1450
|
+
time.sleep(10)
|
|
1451
|
+
else:
|
|
1452
|
+
break
|
|
1453
|
+
security_groups = [x['name'] for x in cmd_output['security_groups']]
|
|
1454
|
+
self.assertNotIn(security_group_name, security_groups)
|
|
1455
|
+
|
|
1370
1456
|
def test_server_add_remove_volume(self):
|
|
1371
1457
|
volume_wait_for = volume_common.BaseVolumeTests.wait_for_status
|
|
1372
1458
|
|
|
@@ -1186,7 +1186,7 @@ class TestServerAddSecurityGroup(compute_fakes.TestComputev2):
|
|
|
1186
1186
|
self.server.id, ignore_missing=False
|
|
1187
1187
|
)
|
|
1188
1188
|
self.compute_sdk_client.add_security_group_to_server.assert_called_once_with(
|
|
1189
|
-
self.server, 'fake_sg'
|
|
1189
|
+
self.server, {'name': 'fake_sg'}
|
|
1190
1190
|
)
|
|
1191
1191
|
mock_find_nova_net_sg.assert_called_once_with(
|
|
1192
1192
|
self.compute_sdk_client, 'fake_sg'
|
|
@@ -1207,7 +1207,7 @@ class TestServerAddSecurityGroup(compute_fakes.TestComputev2):
|
|
|
1207
1207
|
self.server.id, ignore_missing=False
|
|
1208
1208
|
)
|
|
1209
1209
|
self.compute_sdk_client.add_security_group_to_server.assert_called_once_with(
|
|
1210
|
-
self.server, 'fake_sg'
|
|
1210
|
+
self.server, {'name': 'fake_sg'}
|
|
1211
1211
|
)
|
|
1212
1212
|
self.assertIsNone(result)
|
|
1213
1213
|
|
|
@@ -7394,7 +7394,7 @@ class TestServerRemoveSecurityGroup(TestServer):
|
|
|
7394
7394
|
self.server.id, ignore_missing=False
|
|
7395
7395
|
)
|
|
7396
7396
|
self.compute_sdk_client.remove_security_group_from_server.assert_called_once_with(
|
|
7397
|
-
self.server, 'fake_sg'
|
|
7397
|
+
self.server, {'name': 'fake_sg'}
|
|
7398
7398
|
)
|
|
7399
7399
|
mock_find_nova_net_sg.assert_called_once_with(
|
|
7400
7400
|
self.compute_sdk_client, 'fake_sg'
|
|
@@ -7415,7 +7415,7 @@ class TestServerRemoveSecurityGroup(TestServer):
|
|
|
7415
7415
|
self.server.id, ignore_missing=False
|
|
7416
7416
|
)
|
|
7417
7417
|
self.compute_sdk_client.remove_security_group_from_server.assert_called_once_with(
|
|
7418
|
-
self.server, 'fake_sg'
|
|
7418
|
+
self.server, {'name': 'fake_sg'}
|
|
7419
7419
|
)
|
|
7420
7420
|
self.assertIsNone(result)
|
|
7421
7421
|
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: python-openstackclient
|
|
3
|
-
Version: 7.1.
|
|
3
|
+
Version: 7.1.5
|
|
4
4
|
Summary: OpenStack Command-line Client
|
|
5
5
|
Home-page: https://docs.openstack.org/python-openstackclient/latest/
|
|
6
6
|
Author: OpenStack
|
|
7
7
|
Author-email: openstack-discuss@lists.openstack.org
|
|
8
|
-
License: UNKNOWN
|
|
9
|
-
Platform: UNKNOWN
|
|
10
8
|
Classifier: Environment :: OpenStack
|
|
11
9
|
Classifier: Intended Audience :: Information Technology
|
|
12
10
|
Classifier: Intended Audience :: System Administrators
|
|
@@ -20,17 +18,28 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
20
18
|
Classifier: Programming Language :: Python :: 3.11
|
|
21
19
|
Classifier: Programming Language :: Python :: 3.12
|
|
22
20
|
Requires-Python: >=3.8
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
Requires-Dist:
|
|
26
|
-
Requires-Dist:
|
|
27
|
-
Requires-Dist:
|
|
28
|
-
Requires-Dist:
|
|
29
|
-
Requires-Dist:
|
|
30
|
-
Requires-Dist:
|
|
31
|
-
Requires-Dist:
|
|
32
|
-
Requires-Dist:
|
|
33
|
-
Requires-Dist:
|
|
21
|
+
License-File: LICENSE
|
|
22
|
+
License-File: AUTHORS
|
|
23
|
+
Requires-Dist: pbr!=2.1.0,>=2.0.0
|
|
24
|
+
Requires-Dist: cryptography>=2.7
|
|
25
|
+
Requires-Dist: cliff>=3.5.0
|
|
26
|
+
Requires-Dist: iso8601>=0.1.11
|
|
27
|
+
Requires-Dist: openstacksdk>=3.3.0
|
|
28
|
+
Requires-Dist: osc-lib>=2.3.0
|
|
29
|
+
Requires-Dist: oslo.i18n>=3.15.3
|
|
30
|
+
Requires-Dist: python-keystoneclient>=3.22.0
|
|
31
|
+
Requires-Dist: python-cinderclient>=3.3.0
|
|
32
|
+
Requires-Dist: requests>=2.27.0
|
|
33
|
+
Requires-Dist: stevedore>=2.0.1
|
|
34
|
+
Dynamic: author
|
|
35
|
+
Dynamic: author-email
|
|
36
|
+
Dynamic: classifier
|
|
37
|
+
Dynamic: description
|
|
38
|
+
Dynamic: home-page
|
|
39
|
+
Dynamic: license-file
|
|
40
|
+
Dynamic: requires-dist
|
|
41
|
+
Dynamic: requires-python
|
|
42
|
+
Dynamic: summary
|
|
34
43
|
|
|
35
44
|
========================
|
|
36
45
|
Team and repository tags
|
|
@@ -171,5 +180,3 @@ Authentication using username/password is most commonly used:
|
|
|
171
180
|
If a password is not provided above (in plaintext), you will be interactively
|
|
172
181
|
prompted to provide one securely.
|
|
173
182
|
|
|
174
|
-
|
|
175
|
-
|
|
@@ -30,7 +30,7 @@ openstackclient/compute/v2/host.py,sha256=1Ow4eJu9HPz-SC0u_eXJskUXaGoyW7X1O2yZIf
|
|
|
30
30
|
openstackclient/compute/v2/hypervisor.py,sha256=xkSLqZjaJnVABAKh9ANF9zqy67WaEJeD9NiVL3Frqko,8808
|
|
31
31
|
openstackclient/compute/v2/hypervisor_stats.py,sha256=Y2Jkkleha8PXnM2VQ2MJtjKxHKchGRyEqmILfPj-Wgw,2161
|
|
32
32
|
openstackclient/compute/v2/keypair.py,sha256=yM30AVsMmPP1SAqD8_nKXNkeB9WLyL6sd18AjeYIuhM,15730
|
|
33
|
-
openstackclient/compute/v2/server.py,sha256=
|
|
33
|
+
openstackclient/compute/v2/server.py,sha256=k6GEzWM98DzV6RTJw_9i4iFFsCfDJD4ii9-ow-ca-P8,187272
|
|
34
34
|
openstackclient/compute/v2/server_backup.py,sha256=GVf_T5iHt0po1vYDDQgUQ_fN3AisHvKozEXY37voWkc,4119
|
|
35
35
|
openstackclient/compute/v2/server_event.py,sha256=vLtu_LBJ99Fgfj9oRBCVATalRMyqBd3CUjHToVfQB48,10055
|
|
36
36
|
openstackclient/compute/v2/server_group.py,sha256=s9CjDnmjNUk03VUdAkOn5QHMoSCHV8dtvuLe05ER4Rg,8674
|
|
@@ -159,7 +159,7 @@ openstackclient/tests/functional/compute/v2/test_aggregate.py,sha256=7KQfDWDM2Tq
|
|
|
159
159
|
openstackclient/tests/functional/compute/v2/test_flavor.py,sha256=2-dVzVvXsNSMDsTBzDuo3Rv79asExWC7wURudSld1iw,7452
|
|
160
160
|
openstackclient/tests/functional/compute/v2/test_hypervisor.py,sha256=w9iH5k5__R3saIWPl7N6kXT9xRfTykrQEBKoaS2gSnE,1923
|
|
161
161
|
openstackclient/tests/functional/compute/v2/test_keypair.py,sha256=9DiQz6_eNPOYQc6iFyraW8AZOhKsWplsfHpXy0ia8qY,7116
|
|
162
|
-
openstackclient/tests/functional/compute/v2/test_server.py,sha256=
|
|
162
|
+
openstackclient/tests/functional/compute/v2/test_server.py,sha256=MBg-R-k0wqcRkgUX2GEL-u5KdxewcbiSRAw6XCvJslQ,54495
|
|
163
163
|
openstackclient/tests/functional/compute/v2/test_server_event.py,sha256=8MhH2tEJ4MrYW20UQOxKkFdZe0346nIRlz7wbCLXKxI,5157
|
|
164
164
|
openstackclient/tests/functional/compute/v2/test_server_group.py,sha256=Bd46q5DDFHXCUInzT0Kbe0fmArW73VxEt4tQStRA-iE,3062
|
|
165
165
|
openstackclient/tests/functional/identity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -294,7 +294,7 @@ openstackclient/tests/unit/compute/v2/test_host.py,sha256=AAcIxoGpVdy1qOkV3lPFyD
|
|
|
294
294
|
openstackclient/tests/unit/compute/v2/test_hypervisor.py,sha256=t_Xv7uh4dzv6G-gOG3Eoy7l516cHOwy1xeiBgIyaUKc,17390
|
|
295
295
|
openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py,sha256=1z8Jhx_CBoN-cu4im3MQc-YPAZlRQfu--3c9UAUmMG4,3020
|
|
296
296
|
openstackclient/tests/unit/compute/v2/test_keypair.py,sha256=ASoemn6bN_tEKZlHRbhUpjPNydPaqMA22jn6fyAcwGs,25067
|
|
297
|
-
openstackclient/tests/unit/compute/v2/test_server.py,sha256=
|
|
297
|
+
openstackclient/tests/unit/compute/v2/test_server.py,sha256=aoNHY-W6TeV1VU7UaisrC8qql8rTsp5C5buQ-pJ0-H8,310933
|
|
298
298
|
openstackclient/tests/unit/compute/v2/test_server_backup.py,sha256=MW2UQQ32cE403Bmihp7s_MYVhVV4NrkwfDdaZ-y5Wu4,7503
|
|
299
299
|
openstackclient/tests/unit/compute/v2/test_server_event.py,sha256=aZhLD_RgcNDUdCgwVJmpolQlabVWxlrp5edSZBanR_Q,12504
|
|
300
300
|
openstackclient/tests/unit/compute/v2/test_server_group.py,sha256=Ul0SQ_cIq4mW7TIsm6mDRtCOlboNyy6lClP1Oy3NPAE,14934
|
|
@@ -493,11 +493,11 @@ openstackclient/volume/v3/volume_message.py,sha256=HBBxPEcYoNqGjEbzGIEnIJ1XTcQ2K
|
|
|
493
493
|
openstackclient/volume/v3/volume_snapshot.py,sha256=pZ4q_qCwqh4jaGhX28G59wsWDmEc3uXdbpeD176osZg,3186
|
|
494
494
|
openstackclient/volume/v3/volume_transfer_request.py,sha256=PthOJV2m-pTV1njFzwTpaekXZkET1c6alIJrpuN7R6Q,7530
|
|
495
495
|
openstackclient/volume/v3/volume_type.py,sha256=DF2MVoW2mIk0ABDLZD8D2sb8JlR7-rRjA4qCnBHRe6o,34039
|
|
496
|
-
python_openstackclient-7.1.
|
|
497
|
-
python_openstackclient-7.1.
|
|
498
|
-
python_openstackclient-7.1.
|
|
499
|
-
python_openstackclient-7.1.
|
|
500
|
-
python_openstackclient-7.1.
|
|
501
|
-
python_openstackclient-7.1.
|
|
502
|
-
python_openstackclient-7.1.
|
|
503
|
-
python_openstackclient-7.1.
|
|
496
|
+
python_openstackclient-7.1.5.dist-info/licenses/AUTHORS,sha256=TRFKS0fs1j9d3_KWaIQfYnNH3gfTnDyBHng0RJAUFeM,21384
|
|
497
|
+
python_openstackclient-7.1.5.dist-info/licenses/LICENSE,sha256=XfKg2H1sVi8OoRxoisUlMqoo10TKvHmU_wU39ks7MyA,10143
|
|
498
|
+
python_openstackclient-7.1.5.dist-info/METADATA,sha256=fmv-QoucuGzPHr8JFTkAH3h5EkM7OWsX5b5KAL7I3vU,6740
|
|
499
|
+
python_openstackclient-7.1.5.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
500
|
+
python_openstackclient-7.1.5.dist-info/entry_points.txt,sha256=VsZCw-6So3hkHuIiX-dGaMVL1PEqmfDynF37m1EwjCs,53260
|
|
501
|
+
python_openstackclient-7.1.5.dist-info/pbr.json,sha256=UhLx127tuigXv-CFTmYy9R7GRr1HsjkJKYtQJnfqOow,47
|
|
502
|
+
python_openstackclient-7.1.5.dist-info/top_level.txt,sha256=htg7z9oZgysRuVUHn-m1Bk6XLGOeV65nMbZX9H8qhs0,16
|
|
503
|
+
python_openstackclient-7.1.5.dist-info/RECORD,,
|
{python_openstackclient-7.1.4.dist-info → python_openstackclient-7.1.5.dist-info}/entry_points.txt
RENAMED
|
@@ -715,4 +715,3 @@ volume_type_set = openstackclient.volume.v3.volume_type:SetVolumeType
|
|
|
715
715
|
volume_type_show = openstackclient.volume.v3.volume_type:ShowVolumeType
|
|
716
716
|
volume_type_unset = openstackclient.volume.v3.volume_type:UnsetVolumeType
|
|
717
717
|
volume_unset = openstackclient.volume.v3.volume:UnsetVolume
|
|
718
|
-
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"git_version": "67f5509f", "is_release": true}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"git_version": "f42ade43", "is_release": true}
|
{python_openstackclient-7.1.4.dist-info → python_openstackclient-7.1.5.dist-info/licenses}/AUTHORS
RENAMED
|
File without changes
|
{python_openstackclient-7.1.4.dist-info → python_openstackclient-7.1.5.dist-info/licenses}/LICENSE
RENAMED
|
File without changes
|
{python_openstackclient-7.1.4.dist-info → python_openstackclient-7.1.5.dist-info}/top_level.txt
RENAMED
|
File without changes
|