Beispiel #1
0
 def test_mask_secrets(self, mock_log):
     node = obj_utils.get_test_node(
         self.context, driver_info=db_utils.get_test_ipmi_info())
     node = self.serializer.serialize_entity(self.context, node)
     body = self._request('with_node', {'context': self.ctx, 'node': node})
     node = self.serializer.deserialize_entity(self.context, body['result'])
     logged_params = mock_log.call_args_list[0][0][2]
     logged_node = logged_params['node']['ironic_object.data']
     self.assertEqual('***', logged_node['driver_info']['ipmi_password'])
     logged_resp = mock_log.call_args_list[1][0][2]
     logged_node = logged_resp['ironic_object.data']
     self.assertEqual('***', logged_node['driver_info']['ipmi_password'])
     # The result is not affected, only logging
     self.assertEqual(db_utils.get_test_ipmi_info(), node.driver_info)
Beispiel #2
0
 def test_node_set_boot_device_non_existent_device(self):
     mgr_utils.mock_the_extension_manager(driver="fake_ipmitool")
     self.driver = driver_factory.get_driver("fake_ipmitool")
     ipmi_info = utils.get_test_ipmi_info()
     node = obj_utils.create_test_node(
         self.context, uuid=uuidutils.generate_uuid(), driver="fake_ipmitool", driver_info=ipmi_info
     )
     task = task_manager.TaskManager(self.context, node.uuid)
     self.assertRaises(exception.InvalidParameterValue, conductor_utils.node_set_boot_device, task, device="fake")
Beispiel #3
0
 def setUp(self):
     super(IntelIPMITestCase, self).setUp()
     self.driver_info = db_utils.get_test_ipmi_info()
     self.config(enabled_hardware_types=['intel-ipmi'],
                 enabled_management_interfaces=['intel-ipmitool'],
                 enabled_power_interfaces=['ipmitool'])
     self.node = obj_utils.create_test_node(self.context,
                                            driver='intel-ipmi',
                                            driver_info=self.driver_info)
Beispiel #4
0
    def test_node_set_boot_device_valid(self):
        mgr_utils.mock_the_extension_manager(driver="fake_ipmitool")
        self.driver = driver_factory.get_driver("fake_ipmitool")
        ipmi_info = utils.get_test_ipmi_info()
        node = obj_utils.create_test_node(
            self.context, uuid=uuidutils.generate_uuid(), driver="fake_ipmitool", driver_info=ipmi_info
        )
        task = task_manager.TaskManager(self.context, node.uuid)

        with mock.patch.object(self.driver.management, "set_boot_device") as mock_sbd:
            conductor_utils.node_set_boot_device(task, device="pxe")
            mock_sbd.assert_called_once_with(task, device="pxe", persistent=False)
Beispiel #5
0
 def test_node_set_boot_device_non_existent_device(self):
     mgr_utils.mock_the_extension_manager(driver="fake_ipmitool")
     self.driver = driver_factory.get_driver("fake_ipmitool")
     ipmi_info = utils.get_test_ipmi_info()
     node = obj_utils.create_test_node(self.context,
                                       uuid=uuidutils.generate_uuid(),
                                       driver='fake_ipmitool',
                                       driver_info=ipmi_info)
     task = task_manager.TaskManager(self.context, node.uuid)
     self.assertRaises(exception.InvalidParameterValue,
                       conductor_utils.node_set_boot_device,
                       task,
                       device='fake')
Beispiel #6
0
    def test_node_set_boot_device_adopting(self):
        mgr_utils.mock_the_extension_manager(driver="fake_ipmitool")
        self.driver = driver_factory.get_driver("fake_ipmitool")
        ipmi_info = utils.get_test_ipmi_info()
        node = obj_utils.create_test_node(self.context,
                                          uuid=uuidutils.generate_uuid(),
                                          driver='fake_ipmitool',
                                          driver_info=ipmi_info,
                                          provision_state=states.ADOPTING)
        task = task_manager.TaskManager(self.context, node.uuid)

        with mock.patch.object(self.driver.management,
                               'set_boot_device') as mock_sbd:
            conductor_utils.node_set_boot_device(task, device='pxe')
            self.assertFalse(mock_sbd.called)
Beispiel #7
0
    def test_node_set_boot_device_valid(self):
        mgr_utils.mock_the_extension_manager(driver="fake_ipmitool")
        self.driver = driver_factory.get_driver("fake_ipmitool")
        ipmi_info = utils.get_test_ipmi_info()
        node = obj_utils.create_test_node(self.context,
                                          uuid=uuidutils.generate_uuid(),
                                          driver='fake_ipmitool',
                                          driver_info=ipmi_info)
        task = task_manager.TaskManager(self.context, node.uuid)

        with mock.patch.object(self.driver.management,
                               'set_boot_device') as mock_sbd:
            conductor_utils.node_set_boot_device(task, device='pxe')
            mock_sbd.assert_called_once_with(task,
                                             device='pxe',
                                             persistent=False)
Beispiel #8
0
    def test_node_set_boot_device_adopting(self):
        mgr_utils.mock_the_extension_manager(driver="fake_ipmitool")
        self.driver = driver_factory.get_driver("fake_ipmitool")
        ipmi_info = utils.get_test_ipmi_info()
        node = obj_utils.create_test_node(self.context,
                                          uuid=uuidutils.generate_uuid(),
                                          driver='fake_ipmitool',
                                          driver_info=ipmi_info,
                                          provision_state=states.ADOPTING)
        task = task_manager.TaskManager(self.context, node.uuid)

        with mock.patch.object(self.driver.management,
                               'set_boot_device') as mock_sbd:
            conductor_utils.node_set_boot_device(task,
                                                 device='pxe')
            self.assertFalse(mock_sbd.called)
Beispiel #9
0
from oslo_config import cfg
from oslo_service import loopingcall
from oslo_utils import netutils
import psutil

from ironic.common import exception
from ironic.drivers.modules import console_utils
from ironic.drivers.modules import ipmitool as ipmi
from ironic.tests.unit.db import base as db_base
from ironic.tests.unit.db import utils as db_utils
from ironic.tests.unit.objects import utils as obj_utils


CONF = cfg.CONF

INFO_DICT = db_utils.get_test_ipmi_info()


class ConsoleUtilsTestCase(db_base.DbTestCase):

    def setUp(self):
        super(ConsoleUtilsTestCase, self).setUp()
        self.node = obj_utils.get_test_node(
            self.context,
            driver='fake_ipmitool',
            driver_info=INFO_DICT)
        self.info = ipmi._parse_driver_info(self.node)

    def test__get_console_pid_dir(self):
        pid_dir = '/tmp/pid_dir'
        self.config(terminal_pid_dir=pid_dir, group='console')
Beispiel #10
0
from pyghmi import exceptions as pyghmi_exception

from ironic.common import boot_devices
from ironic.common import driver_factory
from ironic.common import exception
from ironic.common import states
from ironic.conductor import task_manager
from ironic.drivers.modules import console_utils
from ironic.drivers.modules import ipminative
from ironic.drivers import utils as driver_utils
from ironic.tests.unit.conductor import mgr_utils
from ironic.tests.unit.db import base as db_base
from ironic.tests.unit.db import utils as db_utils
from ironic.tests.unit.objects import utils as obj_utils

INFO_DICT = db_utils.get_test_ipmi_info()


class IPMINativePrivateMethodTestCase(db_base.DbTestCase):
    """Test cases for ipminative private methods."""
    def setUp(self):
        super(IPMINativePrivateMethodTestCase, self).setUp()
        self.node = obj_utils.create_test_node(self.context,
                                               driver='fake_ipminative',
                                               driver_info=INFO_DICT)
        self.info = ipminative._parse_driver_info(self.node)

    def test__parse_driver_info(self):
        # make sure we get back the expected things
        self.assertIsNotNone(self.info.get('address'))
        self.assertIsNotNone(self.info.get('username'))