示例#1
0
    def test_monitor_node(self):
        """
        Test _monitor action without reboot
        """
        node = Node(name='node')
        node.install = MagicMock()
        node._start_all_containers = MagicMock()
        node._start_all_vms = MagicMock()
        node.state.set('actions', 'install', 'ok')
        node._node_sal.is_running = MagicMock(return_value=True)
        node._node_sal.uptime = MagicMock(return_value=40.0)
        node._monitor()

        assert not node._start_all_containers.called
        assert not node._start_all_vms.called
        assert not node.install.called
示例#2
0
    def test_monitor_node_reboot(self):
        """
        Test _monitor action called after node rebooted
        """
        node = Node(name='node', data={'uptime': 40.0})
        node.install = MagicMock()
        node._start_all_containers = MagicMock()
        node._start_all_vms = MagicMock()
        node.state.set('actions', 'install', 'ok')
        node.state.set('status', 'rebooting', 'ok')
        node._node_sal.is_running = MagicMock(return_value=True)
        node._node_sal.uptime = MagicMock(return_value=10.0)
        node._monitor()

        node._start_all_containers.assert_called_once_with()
        node._start_all_vms.assert_called_once_with()
        node.install.assert_called_once_with()

        with pytest.raises(StateCheckError,
                           message='template should remove the rebooting status after monitoring'):
            node.state.check('status', 'rebooting', 'ok')