From 2a905351ef806f89d4e56f62164035c50b4841c8 Mon Sep 17 00:00:00 2001 From: Lin Yang Date: Thu, 1 Mar 2018 21:11:00 -0800 Subject: [PATCH] Assemble node after node composition Assume most of user will assemble node after composition, so assemble node automatically instead of requiring user to execute another command. Change-Id: Ib60a01d37a03c5499f1c56e56095ffad387ad2e5 --- rsdclient/tests/v1/test_node.py | 7 +++++++ rsdclient/v1/node.py | 9 ++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/rsdclient/tests/v1/test_node.py b/rsdclient/tests/v1/test_node.py index 0d987d2..853ab95 100644 --- a/rsdclient/tests/v1/test_node.py +++ b/rsdclient/tests/v1/test_node.py @@ -32,6 +32,10 @@ class NodeTest(testtools.TestCase): mock_node_collection = mock.Mock() mock_node_collection.compose_node.return_value = '/redfish/v1/Nodes/1' self.client.get_node_collection.return_value = mock_node_collection + + mock_node = mock.Mock() + self.client.get_node.return_value = mock_node + result = self.mgr.compose(name='fake_name', description='fake_description') self.mgr.client.get_node_collection.assert_called_once() @@ -39,6 +43,9 @@ class NodeTest(testtools.TestCase): name='fake_name', description='fake_description', processor_req=None, memory_req=None, remote_drive_req=None, local_drive_req=None, ethernet_interface_req=None) + self.mgr.client.get_node.assert_called_once_with( + self.mgr._get_node_uri(result)) + mock_node.assemble_node.assert_called_once() self.assertEqual(result, '1') def test_delete_node(self): diff --git a/rsdclient/v1/node.py b/rsdclient/v1/node.py index a011bfd..216f809 100644 --- a/rsdclient/v1/node.py +++ b/rsdclient/v1/node.py @@ -38,7 +38,14 @@ class NodeManager(base.Manager): memory_req=memory_req, remote_drive_req=remote_drive_req, local_drive_req=local_drive_req, ethernet_interface_req=ethernet_interface_req) - return node_uri[len(self.nodes_path) + 1:] + + # Assume most of user will assemble node after composition, so assemble + # node automatically here + node_id = node_uri[len(self.nodes_path) + 1:] + node = self.client.get_node(self._get_node_uri(node_id)) + node.assemble_node() + + return node_id def delete(self, node_id): self.client.get_node(self._get_node_uri(node_id)).delete_node()