Esempio n. 1
0
    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))
Esempio n. 2
0
    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))
Esempio n. 3
0
    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))
Esempio n. 4
0
    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)))
Esempio n. 5
0
    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"))
Esempio n. 6
0
    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'))
Esempio n. 7
0
    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)
Esempio n. 8
0
            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)