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)
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)
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)
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
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)
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)
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)
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)
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)
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)
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)