def test_power_off_calls__issue_ipmitool_command(self): context = make_context() moonshot_driver = MoonshotIPMIPowerDriver() _issue_ipmitool_command_mock = self.patch(moonshot_driver, "_issue_ipmitool_command") system_id = factory.make_name("system_id") moonshot_driver.power_off(system_id, context) self.assertThat(_issue_ipmitool_command_mock, MockCalledOnceWith("off", **context))
def test_power_query_calls__issue_ipmitool_command(self): context = make_context() moonshot_driver = MoonshotIPMIPowerDriver() _issue_ipmitool_command_mock = self.patch(moonshot_driver, '_issue_ipmitool_command') system_id = factory.make_name('system_id') moonshot_driver.power_query(system_id, context) self.assertThat(_issue_ipmitool_command_mock, MockCalledOnceWith('status', **context))
def test__issue_ipmitool_command_sets_pxe_boot(self): context = make_context() env = get_env_with_locale() pxe_command = make_pxe_command(context) moonshot_driver = MoonshotIPMIPowerDriver() call_and_check_mock = self.patch(moonshot_module, "call_and_check") moonshot_driver._issue_ipmitool_command("pxe", **context) self.assertThat(call_and_check_mock, MockCalledOnceWith(pxe_command, env=env))
def test_power_on_calls__issue_ipmitool_command(self): context = make_context() moonshot_driver = MoonshotIPMIPowerDriver() _issue_ipmitool_command_mock = self.patch( moonshot_driver, '_issue_ipmitool_command') system_id = factory.make_name('system_id') moonshot_driver.power_on(system_id, context) self.assertThat( _issue_ipmitool_command_mock, MockCallsMatch( call('pxe', **context), call('on', **context)))
def test__issue_ipmitool_command_returns_stdout_if_no_match(self): context = make_context() env = get_env_with_locale() ipmitool_command = make_ipmitool_command("status", context) moonshot_driver = MoonshotIPMIPowerDriver() call_and_check_mock = self.patch(moonshot_module, "call_and_check") call_and_check_mock.return_value = b"other" result = moonshot_driver._issue_ipmitool_command("status", **context) self.expectThat(call_and_check_mock, MockCalledOnceWith(ipmitool_command, env=env)) self.expectThat(result, Equals("other"))
def test__issue_ipmitool_command_returns_stdout_if_no_match(self): context = make_context() env = select_c_utf8_locale() ipmitool_command = make_ipmitool_command('status', context) moonshot_driver = MoonshotIPMIPowerDriver() call_and_check_mock = self.patch(moonshot_module, 'call_and_check') call_and_check_mock.return_value = b'other' result = moonshot_driver._issue_ipmitool_command('status', **context) self.expectThat( call_and_check_mock, MockCalledOnceWith(ipmitool_command, env=env)) self.expectThat(result, Equals('other'))
def test__issue_ipmitool_raises_power_action_error(self): context = make_context() moonshot_driver = MoonshotIPMIPowerDriver() call_and_check_mock = self.patch(moonshot_module, "call_and_check") call_and_check_mock.side_effect = ExternalProcessError( 1, "ipmitool something") self.assertRaises(PowerActionError, moonshot_driver._issue_ipmitool_command, "status", **context)
for _, driver in cls ] validate(schemas, JSON_POWER_DRIVERS_SCHEMA) return schemas # Register all the power drivers. power_drivers = [ AMTPowerDriver(), APCPowerDriver(), DLIPowerDriver(), HMCPowerDriver(), IPMIPowerDriver(), LXDPowerDriver(), ManualPowerDriver(), MoonshotIPMIPowerDriver(), MSCMPowerDriver(), MicrosoftOCSPowerDriver(), NovaPowerDriver(), OpenBMCPowerDriver(), RECSPowerDriver(), RedfishPowerDriver(), SeaMicroPowerDriver(), UCSMPowerDriver(), VirshPowerDriver(), VMwarePowerDriver(), WedgePowerDriver(), ] for driver in power_drivers: PowerDriverRegistry.register_item(driver.name, driver)