~ubuntu-branches/ubuntu/vivid/ironic/vivid-proposed

« back to all changes in this revision

Viewing changes to ironic/tests/drivers/test_ssh.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short, Corey Bryant
  • Date: 2015-02-13 11:35:18 UTC
  • mfrom: (1.2.5)
  • Revision ID: package-import@ubuntu.com-20150213113518-nlxa7f01fd1auln9
Tags: 2015.1~b2-0ubuntu1
[ Corey Bryant ]
* New upstream release.
  - d/control: Align with upstream dependencies.
  - d/p/fix-requirements.patch: Added to drop websockify.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
import fixtures
19
19
import mock
20
 
from oslo.config import cfg
21
20
from oslo_concurrency import processutils
 
21
from oslo_config import cfg
22
22
import paramiko
23
23
 
24
24
from ironic.common import boot_devices
298
298
                self.sshclient, ssh_cmd)
299
299
 
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,
 
303
                                            exec_ssh_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"
 
309
 
 
310
        pstate = ssh._get_power_status(self.sshclient, info)
 
311
        self.assertEqual(states.POWER_OFF, pstate)
 
312
 
 
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"]
603
616
 
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,
630
 
                                                            info)
631
 
                power_off_mock.assert_called_once_with(self.sshclient, info)
632
637
                power_on_mock.assert_called_once_with(self.sshclient, info)
633
638
 
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,
660
 
                                                            info)
661
 
                power_off_mock.assert_called_once_with(self.sshclient, info)
662
659
                power_on_mock.assert_called_once_with(self.sshclient, info)
663
660
 
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)