def test_delete_composed_node(self, mock_etcd_read, mock_etcd_delete): node = utils.get_test_composed_node_db_info() mock_etcd_read.return_value = utils.get_etcd_read_result( node['uuid'], json.dumps(node)) db_api.Connection.delete_composed_node(node['uuid']) mock_etcd_delete.assert_called_with('/nodes/' + node['uuid'])
def test_get_composed_node_by_uuid(self, mock_etcd_read): node = utils.get_test_composed_node_db_info() mock_etcd_read.return_value = utils.get_etcd_read_result( node['uuid'], json.dumps(node)) result = db_api.Connection.get_composed_node_by_uuid(node['uuid']) self.assertEqual(node, result.as_dict()) mock_etcd_read.assert_called_once_with('/nodes/' + node['uuid'])
def test_get_composed_node_not_found(self, mock_etcd_read): node = utils.get_test_composed_node_db_info() mock_etcd_read.side_effect = etcd.EtcdKeyNotFound with self.assertRaises(exception.NotFound) as context: # noqa: H202 db_api.Connection.get_composed_node_by_uuid(node['uuid']) self.assertTrue("Composed node '{0}' not found in database.".format( node['uuid']) in str(context.exception)) mock_etcd_read.assert_called_once_with('/nodes/' + node['uuid'])
def test_get_composed_node_by_uuid(self, mock_redfish_get_node): """Test get composed node detail""" node_hw = node_fakes.get_test_composed_node() node_db = test_utils.get_test_composed_node_db_info() self.node_controller.node = node_db mock_redfish_get_node.return_value = node_hw result = self.node_controller.get_composed_node_by_uuid() expected = copy.deepcopy(node_hw) expected.update(node_db) self.assertEqual(expected, result)
def test_list_composed_nodes(self, mock_db_list_composed_nodes): """Test list all composed nodes""" node_db = test_utils.get_test_composed_node_db_info() mock_db_model = mock.MagicMock() mock_db_model.as_dict.return_value = node_db mock_db_list_composed_nodes.return_value = [mock_db_model] expected = [nodes.Node._show_node_brief_info(node_db)] result = nodes.Node.list_composed_nodes() self.assertEqual(expected, result)
def test_create_composed_node(self, mock_etcd_read, mock_etcd_write): node = utils.get_test_composed_node_db_info() fake_utcnow = '2017-01-01 00:00:00 UTC' node['created_at'] = fake_utcnow node['updated_at'] = fake_utcnow # Mark this uuid don't exist in etcd db mock_etcd_read.side_effect = etcd.EtcdKeyNotFound result = db_api.Connection.create_composed_node(node) self.assertEqual(node, result.as_dict()) mock_etcd_read.assert_called_once_with('/nodes/' + node['uuid']) mock_etcd_write.assert_called_once_with('/nodes/' + node['uuid'], json.dumps(result.as_dict()))
def test_update_composed_node(self, mock_etcd_read, mock_etcd_write): node = utils.get_test_composed_node_db_info() mock_etcd_read.return_value = utils.get_etcd_read_result( node['uuid'], json.dumps(node)) fake_utcnow = '2017-01-01 00:00:00 UTC' node['updated_at'] = fake_utcnow node.update({'index': '2'}) result = db_api.Connection.update_composed_node( node['uuid'], {'index': '2'}) self.assertEqual(node, result.as_dict()) mock_etcd_read.assert_called_with('/nodes/' + node['uuid']) mock_etcd_write.assert_called_with('/nodes/' + node['uuid'], json.dumps(result.as_dict()))
def test_list_composed_nodes(self, mock_etcd_read): node = utils.get_test_composed_node_db_info() node2 = copy.deepcopy(node) node2['uuid'] = '5a8e2a25-2901-438d-8157-de7ffd68d05' node2['podm_id'] = 'da8e2a25-2901-438d-8157-de7ffd685' mock_etcd_read.return_value = utils.get_etcd_read_list( '/nodes', json.dumps(node), json.dumps(node2)) # check without filters result = db_api.Connection.list_composed_nodes() result = [val.as_dict() for val in result] self.assertEqual(result, [node, node2]) # check with filters filters = {'podm_id': 'da8e2a25-2901-438d-8157-de7ffd685'} result = db_api.Connection.list_composed_nodes(filters) result = [val.as_dict() for val in result] self.assertEqual(result, [node2])
def setUp(self, mock_redfish, mock_connection): self.node_controller = nodes.Node(podm_id='test-podm-1') self.node_controller.node = test_utils.get_test_composed_node_db_info() self.node_controller.connection = podm_base.PodManagerBase( 'fake', 'fake-pass', 'http://fake-url')
def test_delete_composed_node(self, mock_db_delete_composed_node): """Test delete composed node""" node_db = test_utils.get_test_composed_node_db_info() self.node_controller.node = node_db self.node_controller.delete_composed_node() mock_db_delete_composed_node.assert_called_once_with(node_db["uuid"])