Пример #1
0
def test_submit_kill_resubmit(gpi):
    """
    Test that a simple submit-kill-resubmit-kill cycle works
    """

    from Ganga.GPI import Job, LCG
    j = Job()
    j.backend = LCG()

    with patch('Ganga.Lib.LCG.Grid.submit',
               return_value='https://example.com:9000/42') as submit:
        j.submit()
        submit.assert_called_once()
        assert j.backend.id == 'https://example.com:9000/42'

    with patch('Ganga.Lib.LCG.Grid.cancel', return_value=True) as cancel:
        j.kill()
        cancel.assert_called_once()
        assert j.status == 'killed'

    with patch('Ganga.Lib.LCG.Grid.submit',
               return_value='https://example.com:9000/43') as submit:
        j.resubmit()
        submit.assert_called_once()
        assert j.backend.id == 'https://example.com:9000/43'

    with patch('Ganga.Lib.LCG.Grid.cancel', return_value=True):
        j.kill()
Пример #2
0
def test_submit_kill_resubmit(gpi):
    """
    Test that a simple submit-kill-resubmit-kill cycle works
    """

    from Ganga.GPI import Job, LCG
    j = Job()
    j.backend = LCG()

    with patch('Ganga.Lib.LCG.Grid.submit', return_value='https://example.com:9000/42') as submit:
        j.submit()
        submit.assert_called_once()
        assert j.backend.id == 'https://example.com:9000/42'

    with patch('Ganga.Lib.LCG.Grid.cancel', return_value=True) as cancel:
        j.kill()
        cancel.assert_called_once()
        assert j.status == 'killed'

    with patch('Ganga.Lib.LCG.Grid.submit', return_value='https://example.com:9000/43') as submit:
        j.resubmit()
        submit.assert_called_once()
        assert j.backend.id == 'https://example.com:9000/43'

    with patch('Ganga.Lib.LCG.Grid.cancel', return_value=True):
        j.kill()
Пример #3
0
    def test_e_testInMemory(self):
        """
        Test the resubmit on a job in memory vs a job which has been loaded from disk
        """
        from Ganga.GPI import Job, Local

        j = Job()
        j.splitter = self._getSplitter()
        j.backend = Local()
        j.submit()

        from GangaTest.Framework.utils import sleep_until_completed
        sleep_until_completed(j)

        # Job has ben created, split, run and now exists in Memory (NOT SJXML)

        from Ganga.Utility.Config import setConfigOption
        setConfigOption('Configuration', 'resubmitOnlyFailedSubjobs', 'True')

        j.resubmit()

        sleep_until_completed(j)

        j.subjobs(0).resubmit()

        # We should get here if calling resubmit doesn't stall

        j.subjobs(0).force_status('failed', force=True)

        j.resubmit()

        sleep_until_completed(j)

        assert j.subjobs(0).status == 'completed'

        # Test resubmit from the master job worked

        j.subjobs(0).force_status('failed')

        j.subjobs(0).resubmit()

        sleep_until_completed(j)

        assert j.subjobs(0).status == 'completed'

        # Test that the resubmit from the subjob worked

        setConfigOption('Configuration', 'resubmitOnlyFailedSubjobs', 'False')

        j.resubmit()

        sleep_until_completed(j)

        j.subjobs(0).force_status('failed')

        j.resubmit()

        sleep_until_completed(j)
Пример #4
0
    def test_e_testInMemory(self):
        """
        Test the resubmit on a job in memory vs a job which has been loaded from disk
        """
        from Ganga.GPI import Job, Local

        j=Job()
        j.splitter = self._getSplitter()
        j.backend = Local()
        j.submit()

        from GangaTest.Framework.utils import sleep_until_completed
        sleep_until_completed(j)

        # Job has ben created, split, run and now exists in Memory (NOT SJXML)

        from Ganga.Utility.Config import setConfigOption
        setConfigOption('Configuration', 'resubmitOnlyFailedSubjobs', 'True')

        j.resubmit()

        sleep_until_completed(j)

        j.subjobs(0).resubmit()

        # We should get here if calling resubmit doesn't stall

        j.subjobs(0).force_status('failed')

        j.resubmit()

        sleep_until_completed(j)

        assert j.subjobs(0).status == 'completed'

        # Test resubmit from the master job worked

        j.subjobs(0).force_status('failed')

        j.subjobs(0).resubmit()

        sleep_until_completed(j)

        assert j.subjobs(0).status == 'completed'

        # Test that the resubmit from the subjob worked

        setConfigOption('Configuration', 'resubmitOnlyFailedSubjobs', 'False')

        j.resubmit()

        sleep_until_completed(j)

        j.subjobs(0).force_status('failed')

        j.resubmit()

        sleep_until_completed(j)
Пример #5
0
    def test_Savannah28511(self):
        from Ganga.GPI import Job, TestSubmitter

        j = Job()

        j.submit()
        assert run_until_completed(j, timeout=20), 'Job is not completed'

        j.resubmit()
        assert run_until_completed(j, timeout=30), 'Job is not completed after fail during resubmit'

        j._impl.updateStatus('failed')
        assert run_until_state(j, timeout=20, state='failed'), 'Job is not failed'

        j.resubmit()
        assert run_until_completed(j, timeout=20), 'Job is not completed after resubmit'
Пример #6
0
    def Savannah28511(self):
        from Ganga.GPI import Job, TestSubmitter

        from GangaTest.Framework.utils import sleep_until_completed, sleep_until_state

        j = Job()

        j.submit()
        self.assertTrue(sleep_until_completed(j, 20), 'Job is not completed')

        j.resubmit()
        self.assertTrue(sleep_until_completed(j, 30), 'Job is not completed after fail during resubmit')

        j._impl.updateStatus('failed')
        self.assertTrue(sleep_until_state(j, 20, 'failed'), 'Job is not failed')

        j.resubmit()
        self.assertTrue(sleep_until_completed(j, 20), 'Job is not completed after resubmit')
Пример #7
0
    def test_Savannah77962(self):
        from Ganga.GPI import Job

        # The submit_counter was being incremented by 2 when j.resubmit was called.
        from GangaTest.Framework.utils import sleep_until_completed

        j = Job()

        self.assertEqual(j.info.submit_counter, 0)

        j.submit()

        self.assertEqual(j.info.submit_counter, 1)

        self.assertTrue(sleep_until_completed(j), 'Timeout on job submission: job is still not finished')

        j.resubmit()

        self.assertEqual(j.info.submit_counter, 2)
Пример #8
0
    def test_Savannah28511(self):
        from Ganga.GPI import Job, TestSubmitter

        j = Job()

        j.submit()
        assert run_until_completed(j, timeout=20), 'Job is not completed'

        j.resubmit()
        assert run_until_completed(
            j, timeout=30), 'Job is not completed after fail during resubmit'

        j._impl.updateStatus('failed')
        assert run_until_state(j, timeout=20,
                               state='failed'), 'Job is not failed'

        j.resubmit()
        assert run_until_completed(
            j, timeout=20), 'Job is not completed after resubmit'
Пример #9
0
    def Savannah28511(self):
        from Ganga.GPI import Job, TestSubmitter

        from GangaTest.Framework.utils import sleep_until_completed, sleep_until_state

        j = Job()

        j.submit()
        self.assertTrue(sleep_until_completed(j, 20), 'Job is not completed')

        j.resubmit()
        self.assertTrue(sleep_until_completed(j, 30),
                        'Job is not completed after fail during resubmit')

        j._impl.updateStatus('failed')
        self.assertTrue(sleep_until_state(j, 20, 'failed'),
                        'Job is not failed')

        j.resubmit()
        self.assertTrue(sleep_until_completed(j, 20),
                        'Job is not completed after resubmit')