summaryrefslogtreecommitdiff
path: root/nova/tests/virt/ironic/test_client_wrapper.py
diff options
context:
space:
mode:
Diffstat (limited to 'nova/tests/virt/ironic/test_client_wrapper.py')
-rw-r--r--nova/tests/virt/ironic/test_client_wrapper.py126
1 files changed, 0 insertions, 126 deletions
diff --git a/nova/tests/virt/ironic/test_client_wrapper.py b/nova/tests/virt/ironic/test_client_wrapper.py
deleted file mode 100644
index 9b1b923580..0000000000
--- a/nova/tests/virt/ironic/test_client_wrapper.py
+++ /dev/null
@@ -1,126 +0,0 @@
-# Copyright 2014 Red Hat, Inc.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-from ironicclient import client as ironic_client
-from ironicclient import exc as ironic_exception
-import mock
-from oslo.config import cfg
-
-from nova import exception
-from nova import test
-from nova.tests.virt.ironic import utils as ironic_utils
-from nova.virt.ironic import client_wrapper
-
-CONF = cfg.CONF
-
-FAKE_CLIENT = ironic_utils.FakeClient()
-
-
-class IronicClientWrapperTestCase(test.NoDBTestCase):
-
- def setUp(self):
- super(IronicClientWrapperTestCase, self).setUp()
- self.ironicclient = client_wrapper.IronicClientWrapper()
- # Do not waste time sleeping
- cfg.CONF.set_override('api_retry_interval', 0, 'ironic')
-
- @mock.patch.object(client_wrapper.IronicClientWrapper, '_multi_getattr')
- @mock.patch.object(client_wrapper.IronicClientWrapper, '_get_client')
- def test_call_good_no_args(self, mock_get_client, mock_multi_getattr):
- mock_get_client.return_value = FAKE_CLIENT
- self.ironicclient.call("node.list")
- mock_get_client.assert_called_once_with()
- mock_multi_getattr.assert_called_once_with(FAKE_CLIENT, "node.list")
- mock_multi_getattr.return_value.assert_called_once_with()
-
- @mock.patch.object(client_wrapper.IronicClientWrapper, '_multi_getattr')
- @mock.patch.object(client_wrapper.IronicClientWrapper, '_get_client')
- def test_call_good_with_args(self, mock_get_client, mock_multi_getattr):
- mock_get_client.return_value = FAKE_CLIENT
- self.ironicclient.call("node.list", 'test', associated=True)
- mock_get_client.assert_called_once_with()
- mock_multi_getattr.assert_called_once_with(FAKE_CLIENT, "node.list")
- mock_multi_getattr.return_value.assert_called_once_with(
- 'test', associated=True)
-
- @mock.patch.object(ironic_client, 'get_client')
- def test__get_client_no_auth_token(self, mock_ir_cli):
- self.flags(admin_auth_token=None, group='ironic')
- ironicclient = client_wrapper.IronicClientWrapper()
- # dummy call to have _get_client() called
- ironicclient.call("node.list")
- expected = {'os_username': CONF.ironic.admin_username,
- 'os_password': CONF.ironic.admin_password,
- 'os_auth_url': CONF.ironic.admin_url,
- 'os_tenant_name': CONF.ironic.admin_tenant_name,
- 'os_service_type': 'baremetal',
- 'os_endpoint_type': 'public',
- 'ironic_url': CONF.ironic.api_endpoint}
- mock_ir_cli.assert_called_once_with(CONF.ironic.api_version,
- **expected)
-
- @mock.patch.object(ironic_client, 'get_client')
- def test__get_client_with_auth_token(self, mock_ir_cli):
- self.flags(admin_auth_token='fake-token', group='ironic')
- ironicclient = client_wrapper.IronicClientWrapper()
- # dummy call to have _get_client() called
- ironicclient.call("node.list")
- expected = {'os_auth_token': 'fake-token',
- 'ironic_url': CONF.ironic.api_endpoint}
- mock_ir_cli.assert_called_once_with(CONF.ironic.api_version,
- **expected)
-
- @mock.patch.object(client_wrapper.IronicClientWrapper, '_multi_getattr')
- @mock.patch.object(client_wrapper.IronicClientWrapper, '_get_client')
- def test_call_fail(self, mock_get_client, mock_multi_getattr):
- cfg.CONF.set_override('api_max_retries', 2, 'ironic')
- test_obj = mock.Mock()
- test_obj.side_effect = ironic_exception.HTTPServiceUnavailable
- mock_multi_getattr.return_value = test_obj
- mock_get_client.return_value = FAKE_CLIENT
- self.assertRaises(exception.NovaException, self.ironicclient.call,
- "node.list")
- self.assertEqual(2, test_obj.call_count)
-
- @mock.patch.object(client_wrapper.IronicClientWrapper, '_multi_getattr')
- @mock.patch.object(client_wrapper.IronicClientWrapper, '_get_client')
- def test_call_fail_unexpected_exception(self, mock_get_client,
- mock_multi_getattr):
- test_obj = mock.Mock()
- test_obj.side_effect = ironic_exception.HTTPNotFound
- mock_multi_getattr.return_value = test_obj
- mock_get_client.return_value = FAKE_CLIENT
- self.assertRaises(ironic_exception.HTTPNotFound,
- self.ironicclient.call, "node.list")
-
- @mock.patch.object(ironic_client, 'get_client')
- def test__get_client_unauthorized(self, mock_get_client):
- mock_get_client.side_effect = ironic_exception.Unauthorized
- self.assertRaises(exception.NovaException,
- self.ironicclient._get_client)
-
- @mock.patch.object(ironic_client, 'get_client')
- def test__get_client_unexpected_exception(self, mock_get_client):
- mock_get_client.side_effect = ironic_exception.ConnectionRefused
- self.assertRaises(ironic_exception.ConnectionRefused,
- self.ironicclient._get_client)
-
- def test__multi_getattr_good(self):
- response = self.ironicclient._multi_getattr(FAKE_CLIENT, "node.list")
- self.assertEqual(FAKE_CLIENT.node.list, response)
-
- def test__multi_getattr_fail(self):
- self.assertRaises(AttributeError, self.ironicclient._multi_getattr,
- FAKE_CLIENT, "nonexistent")