Skip to content

Commit 0a63f86

Browse files
committed
compute: Fix bug with start/stop server
A mistake was introduced during the conversion from novaclient to SDK in change I5ebfa6b2468d5f20b99ea0eab1aea9377be09b8c. Fix the issue and add functional tests to prevent it being reintroduced. Change-Id: I6b314eab31bcf452e88b8b6a239ac2e296497cb9 Signed-off-by: Stephen Finucane <stephenfin@redhat.com> Story: 2010750 Task: 48004
1 parent 3c9afe6 commit 0a63f86

3 files changed

Lines changed: 50 additions & 10 deletions

File tree

openstackclient/compute/v2/server.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4721,10 +4721,10 @@ def take_action(self, parsed_args):
47214721
for server in parsed_args.server:
47224722
try:
47234723
server_id = compute_client.find_server(
4724-
name=server,
4724+
server,
4725+
ignore_missing=False,
47254726
details=False,
47264727
all_projects=parsed_args.all_projects,
4727-
ignore_missing=False,
47284728
).id
47294729
except sdk_exceptions.HttpException as exc:
47304730
if exc.status_code == 403:
@@ -4761,10 +4761,10 @@ def take_action(self, parsed_args):
47614761
for server in parsed_args.server:
47624762
try:
47634763
server_id = compute_client.find_server(
4764-
name=server,
4764+
server,
4765+
ignore_missing=False,
47654766
details=False,
47664767
all_projects=parsed_args.all_projects,
4767-
ignore_missing=False,
47684768
).id
47694769
except sdk_exceptions.HttpException as exc:
47704770
if exc.status_code == 403:

openstackclient/tests/functional/compute/v2/test_server.py

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ class ServerTests(common.ComputeTestCase):
2727

2828
@classmethod
2929
def setUpClass(cls):
30-
super(ServerTests, cls).setUpClass()
30+
super().setUpClass()
3131
cls.haz_network = cls.is_service_enabled('network')
3232

3333
def test_server_list(self):
34-
"""Test server list, set"""
34+
"""Test server list"""
3535
cmd_output = self.server_create()
3636
name1 = cmd_output['name']
3737
cmd_output = self.server_create()
@@ -1447,6 +1447,46 @@ def test_server_add_remove_volume(self):
14471447
raw_output = self.openstack('server volume list ' + server_name)
14481448
self.assertEqual('\n', raw_output)
14491449

1450+
def test_server_stop_start(self):
1451+
"""Test server stop, start"""
1452+
server_name = uuid.uuid4().hex
1453+
cmd_output = self.openstack(
1454+
'server create '
1455+
+ '--network private '
1456+
+ '--flavor '
1457+
+ self.flavor_name
1458+
+ ' '
1459+
+ '--image '
1460+
+ self.image_name
1461+
+ ' '
1462+
+ '--wait '
1463+
+ server_name,
1464+
parse_output=True,
1465+
)
1466+
1467+
self.assertIsNotNone(cmd_output['id'])
1468+
self.assertEqual(server_name, cmd_output['name'])
1469+
self.addCleanup(self.openstack, 'server delete --wait ' + server_name)
1470+
server_id = cmd_output['id']
1471+
1472+
cmd_output = self.openstack(
1473+
'server stop ' + server_name,
1474+
)
1475+
self.assertEqual("", cmd_output)
1476+
1477+
# This is our test that the request succeeded. If it doesn't transition
1478+
# to SHUTOFF then it didn't work.
1479+
self.wait_for_status(server_id, "SHUTOFF")
1480+
1481+
cmd_output = self.openstack(
1482+
'server start ' + server_name,
1483+
)
1484+
self.assertEqual("", cmd_output)
1485+
1486+
# As above, this is our test that the request succeeded. If it doesn't
1487+
# transition to ACTIVE then it didn't work.
1488+
self.wait_for_status(server_id, "ACTIVE")
1489+
14501490
def test_server_migration_list(self):
14511491
# Verify that the command does not raise an exception when we list
14521492
# migrations, including when we specify a query.

openstackclient/tests/unit/compute/v2/test_server.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8577,10 +8577,10 @@ def test_server_start_with_all_projects(self):
85778577
self.cmd.take_action(parsed_args)
85788578

85798579
self.sdk_client.find_server.assert_called_once_with(
8580-
name=servers[0].id,
8580+
servers[0].id,
8581+
ignore_missing=False,
85818582
details=False,
85828583
all_projects=True,
8583-
ignore_missing=False,
85848584
)
85858585

85868586

@@ -8612,10 +8612,10 @@ def test_server_start_with_all_projects(self):
86128612
self.cmd.take_action(parsed_args)
86138613

86148614
self.sdk_client.find_server.assert_called_once_with(
8615-
name=servers[0].id,
8615+
servers[0].id,
8616+
ignore_missing=False,
86168617
details=False,
86178618
all_projects=True,
8618-
ignore_missing=False,
86198619
)
86208620

86218621

0 commit comments

Comments
 (0)