def test_set_power_state_off_fail(self): info = ssh._parse_driver_info(self.node) info['macs'] = ["11:11:11:11:11:11", "52:54:00:cf:2d:31"] self.mox.StubOutWithMock(ssh, '_parse_driver_info') self.mox.StubOutWithMock(ssh, '_get_nodes_mac_addresses') self.mox.StubOutWithMock(ssh, '_get_connection') self.mox.StubOutWithMock(ssh, '_power_off') ssh._parse_driver_info(self.node).\ AndReturn(info) ssh._get_nodes_mac_addresses(mox.IgnoreArg(), self.node).\ AndReturn(info['macs']) ssh._get_connection(self.node).\ AndReturn(self.sshclient) ssh._power_off(self.sshclient, info).\ AndReturn(states.POWER_ON) self.mox.ReplayAll() with task_manager.acquire([info['uuid']], shared=False) as task: self.assertRaises(exception.PowerStateFailure, task.resources[0].driver.power.set_power_state, task, self.node, states.POWER_OFF) self.mox.VerifyAll()
def test_reboot_good(self): info = ssh._parse_driver_info(self.node) info['macs'] = ["11:11:11:11:11:11", "52:54:00:cf:2d:31"] self.mox.StubOutWithMock(ssh, '_parse_driver_info') self.mox.StubOutWithMock(ssh, '_get_nodes_mac_addresses') self.mox.StubOutWithMock(ssh, '_get_connection') self.mox.StubOutWithMock(ssh, '_get_power_status') self.mox.StubOutWithMock(ssh, '_power_off') self.mox.StubOutWithMock(ssh, '_power_on') ssh._parse_driver_info(self.node).\ AndReturn(info) ssh._get_nodes_mac_addresses(mox.IgnoreArg(), self.node).\ AndReturn(info['macs']) ssh._get_connection(self.node).\ AndReturn(self.sshclient) ssh._get_power_status(self.sshclient, info).\ AndReturn(states.POWER_ON) ssh._power_off(self.sshclient, info).\ AndReturn(None) ssh._power_on(self.sshclient, info).\ AndReturn(states.POWER_ON) self.mox.ReplayAll() with task_manager.acquire([info['uuid']], shared=False) as task: task.resources[0].driver.power.reboot(task, self.node) self.mox.VerifyAll()
def test__get_connection_client(self): with mock.patch.object(utils, 'ssh_connect') as ssh_connect_mock: ssh_connect_mock.return_value = self.sshclient client = ssh._get_connection(self.node) self.assertEqual(self.sshclient, client) driver_info = ssh._parse_driver_info(self.node) ssh_connect_mock.assert_called_once_with(driver_info)
def test__get_connection_client(self): with mock.patch.object( utils, 'ssh_connect') as ssh_connect_mock: ssh_connect_mock.return_value = self.sshclient client = ssh._get_connection(self.node) self.assertEqual(self.sshclient, client) driver_info = ssh._parse_driver_info(self.node) ssh_connect_mock.assert_called_once_with(driver_info)
def test_set_power_state_bad_state(self): info = ssh._parse_driver_info(self.node) info["macs"] = ["11:11:11:11:11:11", "52:54:00:cf:2d:31"] self.mox.StubOutWithMock(ssh, "_parse_driver_info") self.mox.StubOutWithMock(ssh, "_get_nodes_mac_addresses") self.mox.StubOutWithMock(ssh, "_get_connection") ssh._parse_driver_info(self.node).AndReturn(info) ssh._get_nodes_mac_addresses(mox.IgnoreArg(), self.node).AndReturn(info["macs"]) ssh._get_connection(self.node).AndReturn(self.sshclient) self.mox.ReplayAll() with task_manager.acquire([info["uuid"]], shared=False) as task: self.assertRaises( exception.IronicException, task.resources[0].driver.power.set_power_state, task, self.node, "BAD_PSTATE" ) self.mox.VerifyAll()
def test_set_power_state_off_good(self): info = ssh._parse_driver_info(self.node) info["macs"] = ["11:11:11:11:11:11", "52:54:00:cf:2d:31"] self.mox.StubOutWithMock(ssh, "_parse_driver_info") self.mox.StubOutWithMock(ssh, "_get_nodes_mac_addresses") self.mox.StubOutWithMock(ssh, "_get_connection") self.mox.StubOutWithMock(ssh, "_power_off") ssh._parse_driver_info(self.node).AndReturn(info) ssh._get_nodes_mac_addresses(mox.IgnoreArg(), self.node).AndReturn(info["macs"]) ssh._get_connection(self.node).AndReturn(self.sshclient) ssh._power_off(self.sshclient, info).AndReturn(states.POWER_OFF) self.mox.ReplayAll() with task_manager.acquire([info["uuid"]], shared=False) as task: task.resources[0].driver.power.set_power_state(task, self.node, states.POWER_OFF) self.assert_(True) self.mox.VerifyAll()
def test_reboot_fail(self): info = ssh._parse_driver_info(self.node) info["macs"] = ["11:11:11:11:11:11", "52:54:00:cf:2d:31"] self.mox.StubOutWithMock(ssh, "_parse_driver_info") self.mox.StubOutWithMock(ssh, "_get_nodes_mac_addresses") self.mox.StubOutWithMock(ssh, "_get_connection") self.mox.StubOutWithMock(ssh, "_get_power_status") self.mox.StubOutWithMock(ssh, "_power_off") self.mox.StubOutWithMock(ssh, "_power_on") ssh._parse_driver_info(self.node).AndReturn(info) ssh._get_nodes_mac_addresses(mox.IgnoreArg(), self.node).AndReturn(info["macs"]) ssh._get_connection(self.node).AndReturn(self.sshclient) ssh._get_power_status(self.sshclient, info).AndReturn(states.POWER_ON) ssh._power_off(self.sshclient, info).AndReturn(None) ssh._power_on(self.sshclient, info).AndReturn(states.POWER_OFF) self.mox.ReplayAll() with task_manager.acquire([info["uuid"]], shared=False) as task: self.assertRaises(exception.PowerStateFailure, task.resources[0].driver.power.reboot, task, self.node) self.mox.VerifyAll()
def test_set_power_state_bad_state(self): info = ssh._parse_driver_info(self.node) info['macs'] = ["11:11:11:11:11:11", "52:54:00:cf:2d:31"] self.mox.StubOutWithMock(ssh, '_parse_driver_info') self.mox.StubOutWithMock(ssh, '_get_nodes_mac_addresses') self.mox.StubOutWithMock(ssh, '_get_connection') ssh._parse_driver_info(self.node).\ AndReturn(info) ssh._get_nodes_mac_addresses(mox.IgnoreArg(), self.node).\ AndReturn(info['macs']) ssh._get_connection(self.node).\ AndReturn(self.sshclient) self.mox.ReplayAll() with task_manager.acquire([info['uuid']], shared=False) as task: self.assertRaises(exception.IronicException, task.resources[0].driver.power.set_power_state, task, self.node, "BAD_PSTATE") self.mox.VerifyAll()
def test__get_connection_client(self, ssh_connect_mock): ssh_connect_mock.return_value = self.sshclient client = ssh._get_connection(self.node) self.assertEqual(self.sshclient, client) driver_info = ssh._parse_driver_info(self.node) ssh_connect_mock.assert_called_once_with(driver_info)