Exemple #1
0
    def test__parse_driver_info(self, mock_sleep):
        # make sure we get back the expected things
        self.assertIsNotNone(self.info.get('address'))
        self.assertIsNotNone(self.info.get('username'))
        self.assertIsNotNone(self.info.get('password'))
        self.assertIsNotNone(self.info.get('uuid'))

        info = dict(INFO_DICT)

        # test the default value for 'priv_level'
        node = obj_utils.get_test_node(self.context, driver_info=info)
        ret = ipmi._parse_driver_info(node)
        self.assertEqual('ADMINISTRATOR', ret['priv_level'])

        # ipmi_username / ipmi_password are not mandatory
        del info['ipmi_username']
        node = obj_utils.get_test_node(self.context, driver_info=info)
        ipmi._parse_driver_info(node)
        del info['ipmi_password']
        node = obj_utils.get_test_node(self.context, driver_info=info)
        ipmi._parse_driver_info(node)

        # make sure error is raised when ipmi_address is missing
        del info['ipmi_address']
        node = obj_utils.get_test_node(self.context, driver_info=info)
        self.assertRaises(exception.InvalidParameterValue,
                          ipmi._parse_driver_info, node)

        # test the invalid priv_level value
        self.info['priv_level'] = 'ABCD'
        node = obj_utils.get_test_node(self.context, driver_info=info)
        self.assertRaises(exception.InvalidParameterValue,
                          ipmi._parse_driver_info, node)
Exemple #2
0
    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'))
        self.assertIsNotNone(self.info.get('password'))
        self.assertIsNotNone(self.info.get('uuid'))

        info = dict(INFO_DICT)

        # test the default value for 'priv_level'
        node = obj_utils.get_test_node(self.context, driver_info=info)
        ret = ipmi._parse_driver_info(node)
        self.assertEqual('ADMINISTRATOR', ret['priv_level'])

        # ipmi_username / ipmi_password are not mandatory
        del info['ipmi_username']
        node = obj_utils.get_test_node(self.context, driver_info=info)
        ipmi._parse_driver_info(node)
        del info['ipmi_password']
        node = obj_utils.get_test_node(self.context, driver_info=info)
        ipmi._parse_driver_info(node)

        # make sure error is raised when ipmi_address is missing
        del info['ipmi_address']
        node = obj_utils.get_test_node(self.context, driver_info=info)
        self.assertRaises(exception.InvalidParameterValue,
                          ipmi._parse_driver_info,
                          node)

        # test the invalid priv_level value
        self.info['priv_level'] = 'ABCD'
        node = obj_utils.get_test_node(self.context, driver_info=info)
        self.assertRaises(exception.InvalidParameterValue,
                          ipmi._parse_driver_info,
                          node)
Exemple #3
0
    def test__parse_driver_info(self, mock_sleep):
        # make sure we get back the expected things
        self.assertIsNotNone(self.info.get("address"))
        self.assertIsNotNone(self.info.get("username"))
        self.assertIsNotNone(self.info.get("password"))
        self.assertIsNotNone(self.info.get("uuid"))

        info = dict(INFO_DICT)

        # test the default value for 'priv_level'
        node = obj_utils.get_test_node(self.context, driver_info=info)
        ret = ipmi._parse_driver_info(node)
        self.assertEqual("ADMINISTRATOR", ret["priv_level"])

        # ipmi_username / ipmi_password are not mandatory
        del info["ipmi_username"]
        node = obj_utils.get_test_node(self.context, driver_info=info)
        ipmi._parse_driver_info(node)
        del info["ipmi_password"]
        node = obj_utils.get_test_node(self.context, driver_info=info)
        ipmi._parse_driver_info(node)

        # make sure error is raised when ipmi_address is missing
        del info["ipmi_address"]
        node = obj_utils.get_test_node(self.context, driver_info=info)
        self.assertRaises(exception.InvalidParameterValue, ipmi._parse_driver_info, node)

        # test the invalid priv_level value
        self.info["priv_level"] = "ABCD"
        node = obj_utils.get_test_node(self.context, driver_info=info)
        self.assertRaises(exception.InvalidParameterValue, ipmi._parse_driver_info, node)
Exemple #4
0
 def setUp(self):
     super(ConsoleUtilsTestCase, self).setUp()
     self.context = context.get_admin_context()
     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 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 setUp(self):
     super(ConsoleUtilsTestCase, self).setUp()
     self.node = obj_utils.get_test_node(self.context,
                                         driver_info=INFO_DICT)
     self.info = ipmi._parse_driver_info(self.node)
     self.mock_stdout = tempfile.NamedTemporaryFile(delete=False)
     self.mock_stderr = tempfile.NamedTemporaryFile(delete=False)
def dump_sdr(task, file_path):
    """Dump SDR data to a file.

    :param task: a TaskManager instance.
    :param file_path: the path to SDR dump file.
    :raises: IPMIFailure on an error from ipmitool.
    :raises: MissingParameterValue if a required parameter is missing.
    :raises: InvalidParameterValue when an invalid value is specified.

    """
    node_uuid = task.node.uuid
    LOG.debug('Dump SDR data for node %(node)s to file %(name)s',
              {'name': file_path, 'node': node_uuid})
    driver_info = ipmitool._parse_driver_info(task.node)
    cmd = 'sdr dump %s' % file_path

    try:
        out, err = ipmitool._exec_ipmitool(driver_info, cmd)
        LOG.debug('dump SDR returned stdout: %(stdout)s, stderr:'
                  ' %(stderr)s', {'stdout': out, 'stderr': err})
    except (exception.PasswordFileFailedToCreate,
            processutils.ProcessExecutionError) as e:
        LOG.exception(_LE('IPMI "sdr dump" failed for node %(node_id)s '
                      'with error: %(error)s.'),
                      {'node_id': node_uuid, 'error': e})
        raise exception.IPMIFailure(cmd=cmd)
def send_raw(task, raw_bytes):
    """Send raw bytes to the BMC. Bytes should be a string of bytes.

    :param task: a TaskManager instance.
    :param raw_bytes: a string of raw bytes to send, e.g. '0x00 0x01'
    :returns: a tuple with stdout and stderr.
    :raises: IPMIFailure on an error from ipmitool.
    :raises: MissingParameterValue if a required parameter is missing.
    :raises: InvalidParameterValue when an invalid value is specified.

    """
    node_uuid = task.node.uuid
    LOG.debug('Sending node %(node)s raw bytes %(bytes)s',
              {'bytes': raw_bytes, 'node': node_uuid})
    driver_info = ipmitool._parse_driver_info(task.node)
    cmd = 'raw %s' % raw_bytes

    try:
        out, err = ipmitool._exec_ipmitool(driver_info, cmd)
        LOG.debug('send raw bytes returned stdout: %(stdout)s, stderr:'
                  ' %(stderr)s', {'stdout': out, 'stderr': err})
    except (exception.PasswordFileFailedToCreate,
            processutils.ProcessExecutionError) as e:
        LOG.exception(_LE('IPMI "raw bytes" failed for node %(node_id)s '
                      'with error: %(error)s.'),
                      {'node_id': node_uuid, 'error': e})
        raise exception.IPMIFailure(cmd=cmd)

    return out, err
Exemple #9
0
 def setUp(self):
     super(IPMIToolPrivateMethodTestCase, self).setUp()
     self.context = context.get_admin_context()
     self.node = obj_utils.get_test_node(
             self.context,
             driver='fake_ipmitool',
             driver_info=INFO_DICT)
     self.info = ipmi._parse_driver_info(self.node)
Exemple #10
0
    def setUp(self):
        super(IPMIToolDriverTestCase, self).setUp()
        self.context = context.get_admin_context()
        self.dbapi = db_api.get_instance()
        mgr_utils.mock_the_extension_manager(driver="fake_ipmitool")
        self.driver = driver_factory.get_driver("fake_ipmitool")

        self.node = obj_utils.create_test_node(self.context, driver="fake_ipmitool", driver_info=INFO_DICT)
        self.info = ipmi._parse_driver_info(self.node)
Exemple #11
0
    def setUp(self):
        super(IPMIToolDriverTestCase, self).setUp()
        self.dbapi = db_api.get_instance()
        self.driver = mgr_utils.get_mocked_node_manager(driver='fake_ipmitool')

        self.node = db_utils.get_test_node(
                driver='fake_ipmitool',
                driver_info=db_utils.ipmi_info)
        self.info = ipmi._parse_driver_info(self.node)
        self.dbapi.create_node(self.node)
Exemple #12
0
    def setUp(self):
        super(IPMIToolDriverTestCase, self).setUp()
        self.context = context.get_admin_context()
        self.dbapi = db_api.get_instance()
        mgr_utils.mock_the_extension_manager(driver="fake_ipmitool")
        self.driver = driver_factory.get_driver("fake_ipmitool")

        self.node = obj_utils.create_test_node(self.context,
                                               driver='fake_ipmitool',
                                               driver_info=INFO_DICT)
        self.info = ipmi._parse_driver_info(self.node)
Exemple #13
0
    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'))
        self.assertIsNotNone(self.info.get('password'))
        self.assertIsNotNone(self.info.get('uuid'))

        info = dict(INFO_DICT)

        # ipmi_username / ipmi_password are not mandatory
        del info['ipmi_username']
        node = db_utils.get_test_node(driver_info=info)
        ipmi._parse_driver_info(node)
        del info['ipmi_password']
        node = db_utils.get_test_node(driver_info=info)
        ipmi._parse_driver_info(node)

        # make sure error is raised when ipmi_address is missing
        del info['ipmi_address']
        node = db_utils.get_test_node(driver_info=info)
        self.assertRaises(exception.InvalidParameterValue,
                          ipmi._parse_driver_info,
                          node)
Exemple #14
0
 def setUp(self):
     super(IPMIToolPrivateMethodTestCase, self).setUp()
     self.node = db_utils.get_test_node(
             driver='fake_ipmitool',
             driver_info=INFO_DICT)
     self.info = ipmi._parse_driver_info(self.node)
Exemple #15
0
 def setUp(self):
     super(IPMIToolPrivateMethodTestCase, self).setUp()
     self.node = db_utils.get_test_node(driver='fake_ipmitool',
                                        driver_info=INFO_DICT)
     self.info = ipmi._parse_driver_info(self.node)