298
298
self.sshclient, ssh_cmd)
300
300
@mock.patch.object(processutils, 'ssh_execute')
301
@mock.patch.object(ssh, '_get_hosts_name_for_node')
302
def test__get_power_status_correct_node(self, get_hosts_name_mock,
304
# Bug: #1397834 test that get_power_status return status of
305
# baremeta_1 (off) and not baremetal_11 (on)
306
info = ssh._parse_driver_info(self.node)
307
exec_ssh_mock.return_value = ('"baremetal_11"\n"seed"\n', '')
308
get_hosts_name_mock.return_value = "baremetal_1"
310
pstate = ssh._get_power_status(self.sshclient, info)
311
self.assertEqual(states.POWER_OFF, pstate)
313
@mock.patch.object(processutils, 'ssh_execute')
301
314
def test__get_hosts_name_for_node_match(self, exec_ssh_mock):
302
315
info = ssh._parse_driver_info(self.node)
303
316
info['macs'] = ["11:11:11:11:11:11", "52:54:00:cf:2d:31"]
604
617
@mock.patch.object(driver_utils, 'get_node_mac_addresses')
605
618
@mock.patch.object(ssh, '_get_connection')
606
@mock.patch.object(ssh, '_get_power_status')
607
@mock.patch.object(ssh, '_power_off')
608
619
@mock.patch.object(ssh, '_power_on')
609
def test_reboot_good(self, power_on_mock, power_off_mock,
610
get_power_stat_mock, get_conn_mock,
620
def test_reboot_good(self, power_on_mock, get_conn_mock,
611
621
get_mac_addr_mock):
612
622
info = ssh._parse_driver_info(self.node)
613
623
info['macs'] = ["11:11:11:11:11:11", "52:54:00:cf:2d:31"]
614
624
get_mac_addr_mock.return_value = info['macs']
615
625
get_conn_mock.return_value = self.sshclient
616
get_power_stat_mock.return_value = states.POWER_ON
617
power_off_mock.return_value = None
618
626
power_on_mock.return_value = states.POWER_ON
619
627
with mock.patch.object(ssh,
620
628
'_parse_driver_info') as parse_drv_info_mock:
626
634
parse_drv_info_mock.assert_called_once_with(task.node)
627
635
get_mac_addr_mock.assert_called_once_with(mock.ANY)
628
636
get_conn_mock.assert_called_once_with(task.node)
629
get_power_stat_mock.assert_called_once_with(self.sshclient,
631
power_off_mock.assert_called_once_with(self.sshclient, info)
632
637
power_on_mock.assert_called_once_with(self.sshclient, info)
634
639
@mock.patch.object(driver_utils, 'get_node_mac_addresses')
635
640
@mock.patch.object(ssh, '_get_connection')
636
@mock.patch.object(ssh, '_get_power_status')
637
@mock.patch.object(ssh, '_power_off')
638
641
@mock.patch.object(ssh, '_power_on')
639
def test_reboot_fail(self, power_on_mock, power_off_mock,
640
get_power_stat_mock, get_conn_mock,
642
def test_reboot_fail(self, power_on_mock, get_conn_mock,
641
643
get_mac_addr_mock):
642
644
info = ssh._parse_driver_info(self.node)
643
645
info['macs'] = ["11:11:11:11:11:11", "52:54:00:cf:2d:31"]
644
646
get_mac_addr_mock.return_value = info['macs']
645
647
get_conn_mock.return_value = self.sshclient
646
get_power_stat_mock.return_value = states.POWER_ON
647
power_off_mock.return_value = None
648
648
power_on_mock.return_value = states.POWER_OFF
649
649
with mock.patch.object(ssh,
650
650
'_parse_driver_info') as parse_drv_info_mock:
656
656
parse_drv_info_mock.assert_called_once_with(task.node)
657
657
get_mac_addr_mock.assert_called_once_with(mock.ANY)
658
658
get_conn_mock.assert_called_once_with(task.node)
659
get_power_stat_mock.assert_called_once_with(self.sshclient,
661
power_off_mock.assert_called_once_with(self.sshclient, info)
662
659
power_on_mock.assert_called_once_with(self.sshclient, info)
664
661
@mock.patch.object(driver_utils, 'get_node_mac_addresses')
932
929
nodename = 'fakevm'
933
930
mock_h.return_value = nodename
934
931
mock_get_conn.return_value = self.sshclient
935
mock_exc.return_value = (nodename, '')
932
# list_running quotes names
933
mock_exc.return_value = ('"%s"' % nodename, '')
936
934
with task_manager.acquire(self.context, self.node.uuid) as task:
937
935
task.node['driver_info']['ssh_virt_type'] = 'vmware'
938
936
power_state = self.driver.power.get_power_state(task)