summaryrefslogtreecommitdiff
path: root/openstackclient/tests
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2021-11-30 19:08:01 +0000
committerGerrit Code Review <review@openstack.org>2021-11-30 19:08:01 +0000
commitd9ad0b5d46d7b81ff564e8a1ea33ebeec212d7f7 (patch)
tree12f99951156b60bbe417b3fd5eb464626c89be8b /openstackclient/tests
parente02fd2ab183806c951cb78ffa1ee40570f8e77b9 (diff)
parentf82afc7f379daebd1994d9133eff801f790c0d32 (diff)
downloadpython-openstackclient-d9ad0b5d46d7b81ff564e8a1ea33ebeec212d7f7.tar.gz
Merge "Switch openstack server remove port/network to using sdk"
Diffstat (limited to 'openstackclient/tests')
-rw-r--r--openstackclient/tests/functional/compute/v2/test_server.py94
-rw-r--r--openstackclient/tests/unit/compute/v2/test_server.py19
2 files changed, 94 insertions, 19 deletions
diff --git a/openstackclient/tests/functional/compute/v2/test_server.py b/openstackclient/tests/functional/compute/v2/test_server.py
index 0d07950e..cf4bcbc2 100644
--- a/openstackclient/tests/functional/compute/v2/test_server.py
+++ b/openstackclient/tests/functional/compute/v2/test_server.py
@@ -1072,7 +1072,7 @@ class ServerTests(common.ComputeTestCase):
self.assertNotIn('nics are required after microversion 2.36',
e.stderr)
- def test_server_add_remove_network_port(self):
+ def test_server_add_remove_network(self):
name = uuid.uuid4().hex
cmd_output = json.loads(self.openstack(
'server create -f json ' +
@@ -1085,18 +1085,63 @@ class ServerTests(common.ComputeTestCase):
self.assertIsNotNone(cmd_output['id'])
self.assertEqual(name, cmd_output['name'])
+ self.addCleanup(self.openstack, 'server delete --wait ' + name)
+ # add network and check 'public' is in server show
self.openstack(
'server add network ' + name + ' public')
+ wait_time = 0
+ while wait_time < 60:
+ cmd_output = json.loads(self.openstack(
+ 'server show -f json ' + name
+ ))
+ if 'public' not in cmd_output['addresses']:
+ # Hang out for a bit and try again
+ print('retrying add network check')
+ wait_time += 10
+ time.sleep(10)
+ else:
+ break
+ addresses = cmd_output['addresses']
+ self.assertIn('public', addresses)
+
+ # remove network and check 'public' is not in server show
+ self.openstack('server remove network ' + name + ' public')
+
+ wait_time = 0
+ while wait_time < 60:
+ cmd_output = json.loads(self.openstack(
+ 'server show -f json ' + name
+ ))
+ if 'public' in cmd_output['addresses']:
+ # Hang out for a bit and try again
+ print('retrying remove network check')
+ wait_time += 10
+ time.sleep(10)
+ else:
+ break
+
+ addresses = cmd_output['addresses']
+ self.assertNotIn('public', addresses)
+
+ def test_server_add_remove_port(self):
+ name = uuid.uuid4().hex
cmd_output = json.loads(self.openstack(
- 'server show -f json ' + name
+ 'server create -f json ' +
+ '--network private ' +
+ '--flavor ' + self.flavor_name + ' ' +
+ '--image ' + self.image_name + ' ' +
+ '--wait ' +
+ name
))
- addresses = cmd_output['addresses']
- self.assertIn('public', addresses)
+ self.assertIsNotNone(cmd_output['id'])
+ self.assertEqual(name, cmd_output['name'])
+ self.addCleanup(self.openstack, 'server delete --wait ' + name)
- port_name = 'test-port'
+ # create port, record one of its ip address
+ port_name = uuid.uuid4().hex
cmd_output = json.loads(self.openstack(
'port list -f json'
@@ -1108,17 +1153,44 @@ class ServerTests(common.ComputeTestCase):
'--network private ' + port_name
))
self.assertIsNotNone(cmd_output['id'])
+ ip_address = cmd_output['fixed_ips'][0]['ip_address']
+ self.addCleanup(self.openstack, 'port delete ' + port_name)
+ # add port to server, assert the ip address of the port appears
self.openstack('server add port ' + name + ' ' + port_name)
- cmd_output = json.loads(self.openstack(
- 'server show -f json ' + name
- ))
+ wait_time = 0
+ while wait_time < 60:
+ cmd_output = json.loads(self.openstack(
+ 'server show -f json ' + name
+ ))
+ if ip_address not in cmd_output['addresses']['private']:
+ # Hang out for a bit and try again
+ print('retrying add port check')
+ wait_time += 10
+ time.sleep(10)
+ else:
+ break
+ addresses = cmd_output['addresses']['private']
+ self.assertIn(ip_address, addresses)
- # TODO(diwei): test remove network/port after the commands are switched
+ # remove port, assert the ip address of the port doesn't appear
+ self.openstack('server remove port ' + name + ' ' + port_name)
- self.openstack('server delete ' + name)
- self.openstack('port delete ' + port_name)
+ wait_time = 0
+ while wait_time < 60:
+ cmd_output = json.loads(self.openstack(
+ 'server show -f json ' + name
+ ))
+ if ip_address in cmd_output['addresses']['private']:
+ # Hang out for a bit and try again
+ print('retrying add port check')
+ wait_time += 10
+ time.sleep(10)
+ else:
+ break
+ addresses = cmd_output['addresses']['private']
+ self.assertNotIn(ip_address, addresses)
def test_server_add_remove_volume(self):
volume_wait_for = volume_common.BaseVolumeTests.wait_for_status
diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py
index 27ea1263..f78c56e9 100644
--- a/openstackclient/tests/unit/compute/v2/test_server.py
+++ b/openstackclient/tests/unit/compute/v2/test_server.py
@@ -7028,14 +7028,14 @@ class TestServerRemovePort(TestServer):
# Set method to be tested.
self.methods = {
- 'interface_detach': None,
+ 'delete_server_interface': None,
}
self.find_port = mock.Mock()
self.app.client_manager.network.find_port = self.find_port
def _test_server_remove_port(self, port_id):
- servers = self.setup_servers_mock(count=1)
+ servers = self.setup_sdk_servers_mock(count=1)
port = 'fake-port'
arglist = [
@@ -7050,7 +7050,8 @@ class TestServerRemovePort(TestServer):
result = self.cmd.take_action(parsed_args)
- servers[0].interface_detach.assert_called_once_with(port_id)
+ self.sdk_client.delete_server_interface.assert_called_with(
+ port_id, server=servers[0], ignore_missing=False)
self.assertIsNone(result)
def test_server_remove_port(self):
@@ -7075,17 +7076,18 @@ class TestServerRemoveNetwork(TestServer):
# Set method to be tested.
self.fake_inf = mock.Mock()
self.methods = {
- 'interface_list': [self.fake_inf],
- 'interface_detach': None,
+ 'server_interfaces': [self.fake_inf],
+ 'delete_server_interface': None,
}
self.find_network = mock.Mock()
self.app.client_manager.network.find_network = self.find_network
+ self.sdk_client.server_interfaces.return_value = [self.fake_inf]
def _test_server_remove_network(self, network_id):
self.fake_inf.net_id = network_id
self.fake_inf.port_id = 'fake-port'
- servers = self.setup_servers_mock(count=1)
+ servers = self.setup_sdk_servers_mock(count=1)
network = 'fake-network'
arglist = [
@@ -7100,8 +7102,9 @@ class TestServerRemoveNetwork(TestServer):
result = self.cmd.take_action(parsed_args)
- servers[0].interface_list.assert_called_once_with()
- servers[0].interface_detach.assert_called_once_with('fake-port')
+ self.sdk_client.server_interfaces.assert_called_once_with(servers[0])
+ self.sdk_client.delete_server_interface.assert_called_once_with(
+ 'fake-port', server=servers[0])
self.assertIsNone(result)
def test_server_remove_network(self):