From 366ee0084c1f2ca6e046bd63b765accd50aba23b Mon Sep 17 00:00:00 2001 From: Duc Truong Date: Wed, 16 Sep 2020 00:45:39 +0000 Subject: [PATCH] Pass in correct port id parameter When calling interface create on a server, the port id must be passed in port_id as specified in [1]. Passing in the incorrect parameter was causing nodes to go into error state during cluster update that involved a profile whose network was changed. [1] https://docs.openstack.org/api-ref/compute/?expanded=create-interface-detail#create-interface Change-Id: I4627cba1064097234c765a7c97cfd1be8b3224a7 Closes-Bug: #1895759 (cherry picked from commit aca5b42d81bf3ec422ea6452027f3527c3b5443b) --- senlin/profiles/os/nova/server.py | 2 +- senlin/tests/unit/drivers/test_nova_v2.py | 4 ++-- senlin/tests/unit/profiles/test_nova_server_update.py | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/senlin/profiles/os/nova/server.py b/senlin/profiles/os/nova/server.py index cdffa6b3a..8e98b4873 100644 --- a/senlin/profiles/os/nova/server.py +++ b/senlin/profiles/os/nova/server.py @@ -1183,7 +1183,7 @@ class ServerProfile(base.Profile): ports = self._create_ports_from_properties( obj, networks, 'update') for port in ports: - params = {'port': port['id']} + params = {'port_id': port['id']} try: cc.server_interface_create(server, **params) except exc.InternalError as ex: diff --git a/senlin/tests/unit/drivers/test_nova_v2.py b/senlin/tests/unit/drivers/test_nova_v2.py index 957d3b7b7..a661e8ea9 100644 --- a/senlin/tests/unit/drivers/test_nova_v2.py +++ b/senlin/tests/unit/drivers/test_nova_v2.py @@ -371,9 +371,9 @@ class TestNovaV2(base.SenlinTestCase): def test_server_interface_create(self): server = mock.Mock() d = nova_v2.NovaClient(self.conn_params) - d.server_interface_create(server, name='foo') + d.server_interface_create(server, port_id='fake-port-id') self.compute.create_server_interface.assert_called_once_with( - server, name='foo') + server, port_id='fake-port-id') def test_server_interface_list(self): d = nova_v2.NovaClient(self.conn_params) diff --git a/senlin/tests/unit/profiles/test_nova_server_update.py b/senlin/tests/unit/profiles/test_nova_server_update.py index 6428b7a10..f79315917 100644 --- a/senlin/tests/unit/profiles/test_nova_server_update.py +++ b/senlin/tests/unit/profiles/test_nova_server_update.py @@ -798,9 +798,9 @@ class TestNovaServerUpdate(base.SenlinTestCase): mock_validate.assert_has_calls(validation_calls) mock_get_port.assert_called_with(obj, {'port': 'port4'}) create_calls = [ - mock.call(server_obj, port='port1_id'), - mock.call(server_obj, port='port2_id'), - mock.call(server_obj, port='port4_id'), + mock.call(server_obj, port_id='port1_id'), + mock.call(server_obj, port_id='port2_id'), + mock.call(server_obj, port_id='port4_id'), ] cc.server_interface_create.assert_has_calls(create_calls)