Exemple #1
0
    def test_minion_manage_schedule(self):
        '''
        Tests that the manage_schedule will call the add function, adding
        schedule data into opts.
        '''
        with patch('salt.minion.Minion.ctx', MagicMock(return_value={})), \
                patch('salt.minion.Minion.sync_connect_master', MagicMock(side_effect=RuntimeError('stop execution'))), \
                patch('salt.utils.process.SignalHandlingMultiprocessingProcess.start', MagicMock(return_value=True)), \
                patch('salt.utils.process.SignalHandlingMultiprocessingProcess.join', MagicMock(return_value=True)):
            mock_opts = self.get_config('minion', from_scratch=True)
            io_loop = tornado.ioloop.IOLoop()
            io_loop.make_current()

            with patch('salt.utils.schedule.clean_proc_dir', MagicMock(return_value=None)):
                mock_functions = {'test.ping': None}

                minion = salt.minion.Minion(mock_opts, io_loop=io_loop)
                minion.schedule = salt.utils.schedule.Schedule(mock_opts,
                                                               mock_functions,
                                                               returners={})

                schedule_data = {'test_job': {'function': 'test.ping',
                                              'return_job': False,
                                              'jid_include': True,
                                              'maxrunning': 2,
                                              'seconds': 10}}

                data = {'name': 'test-item',
                        'schedule': schedule_data,
                        'func': 'add'}
                tag = 'manage_schedule'

                minion.manage_schedule(tag, data)
                self.assertIn('test_job', minion.opts['schedule'])
Exemple #2
0
def test_minion_manage_schedule():
    """
    Tests that the manage_schedule will call the add function, adding
    schedule data into opts.
    """
    with patch("salt.minion.Minion.ctx", MagicMock(return_value={})), patch(
            "salt.minion.Minion.sync_connect_master",
            MagicMock(side_effect=RuntimeError("stop execution")),
    ), patch(
            "salt.utils.process.SignalHandlingProcess.start",
            MagicMock(return_value=True),
    ), patch(
            "salt.utils.process.SignalHandlingProcess.join",
            MagicMock(return_value=True),
    ):
        mock_opts = salt.config.DEFAULT_MINION_OPTS.copy()
        io_loop = salt.ext.tornado.ioloop.IOLoop()
        io_loop.make_current()

        with patch("salt.utils.schedule.clean_proc_dir",
                   MagicMock(return_value=None)):
            try:
                mock_functions = {"test.ping": None}

                minion = salt.minion.Minion(mock_opts, io_loop=io_loop)
                minion.schedule = salt.utils.schedule.Schedule(
                    mock_opts,
                    mock_functions,
                    returners={},
                    new_instance=True,
                )

                minion.opts["foo"] = "bar"
                schedule_data = {
                    "test_job": {
                        "function": "test.ping",
                        "return_job": False,
                        "jid_include": True,
                        "maxrunning": 2,
                        "seconds": 10,
                    }
                }

                data = {
                    "name": "test-item",
                    "schedule": schedule_data,
                    "func": "add",
                    "persist": False,
                }
                tag = "manage_schedule"

                minion.manage_schedule(tag, data)
                assert "test_job" in minion.opts["schedule"]
            finally:
                del minion.schedule
                minion.destroy()
                del minion
Exemple #3
0
    def test_minion_manage_schedule(self):
        """
        Tests that the manage_schedule will call the add function, adding
        schedule data into opts.
        """
        with patch(
                "salt.minion.Minion.ctx", MagicMock(return_value={})
        ), patch(
                "salt.minion.Minion.sync_connect_master",
                MagicMock(side_effect=RuntimeError("stop execution")),
        ), patch(
                "salt.utils.process.SignalHandlingMultiprocessingProcess.start",
                MagicMock(return_value=True),
        ), patch(
                "salt.utils.process.SignalHandlingMultiprocessingProcess.join",
                MagicMock(return_value=True),
        ):
            mock_opts = self.get_config("minion", from_scratch=True)
            io_loop = salt.ext.tornado.ioloop.IOLoop()
            io_loop.make_current()

            with patch("salt.utils.schedule.clean_proc_dir",
                       MagicMock(return_value=None)):
                mock_functions = {"test.ping": None}

                minion = salt.minion.Minion(mock_opts, io_loop=io_loop)
                minion.schedule = salt.utils.schedule.Schedule(mock_opts,
                                                               mock_functions,
                                                               returners={})

                schedule_data = {
                    "test_job": {
                        "function": "test.ping",
                        "return_job": False,
                        "jid_include": True,
                        "maxrunning": 2,
                        "seconds": 10,
                    }
                }

                data = {
                    "name": "test-item",
                    "schedule": schedule_data,
                    "func": "add"
                }
                tag = "manage_schedule"

                minion.manage_schedule(tag, data)
                self.assertIn("test_job", minion.opts["schedule"])