Esempio n. 1
0
    def test_Savannah13979(self):
        from Ganga.GPI import Job, Executable, export, load

        self.fname = "test_savannah_13979.ganga"
        j = Job(application=Executable())

        args_set = [
            ["a"],
            [
                """a
                b"""
            ],
            [
                """a
                b""",
                "simple",
                "normal\nnewline",
                """another

                multiline""",
            ],
        ]

        for args in args_set:
            j.application.args = args
            export(j, self.fname)
            j2 = load(self.fname)[0]
            self.assertEqual(j2.application.args, args)
    def save_data_file(self, destDir = '.', fname = None, savecatalog = True,
                       saveganga = True) :
        data = self.get_data_set()
        if not data :
            return None
        if not fname :
            fname = os.path.join(destDir, self.get_file_name())
        else :
            fname = os.path.join(destDir, fname)

        if not '$' in fname :
            fname = os.path.abspath(fname)
            expandedfname = fname
        else :
            expandedfname = os.path.abspath(os.path.expandvars(fname))

        if savecatalog :
            try :
                catalogname = fname + '.xml'
                expandedcatalogname = expandedfname + '.xml'
                with open(expandedcatalogname, 'w') as f :
                    f.write(data.getCatalog())
                data.XMLCatalogueSlice = LocalFile(namePattern = catalogname)
            except :
                print 'Failed to save catalogue!'
        if saveganga :
            export(data, expandedfname + '.ganga')

        with open(expandedfname, 'w') as f :
            f.write(data.optionsString())
            if savecatalog :
                f.write('\nfrom Gaudi.Configuration import FileCatalog\nFileCatalog().Catalogs += [{0!r}]\n'.format('xmlcatalog_file:' + catalogname))
        return fname
Esempio n. 3
0
    def test_c_JobManipulation(self):

        from Ganga.GPI import runMonitoring, Job, jobs, export, load

        runMonitoring()

        # -- JOBMANIPULATION JOBCOPY START
        j = Job(name = 'original')
        j2 = j.copy()
        j2.name = 'copy'
        j.submit()
        j3 = Job(j, name = 'copy2')
        jobs
        # -- JOBMANIPULATION JOBCOPY STOP

        # -- JOBMANIPULATION REPOACCESS START
        jobs(2)
        # -- JOBMANIPULATION REPOACCESS STOP

        # -- JOBMANIPULATION JOBSLICING START
        jobs[2]
        jobs[2:]
        jobs['copy2']
        # -- JOBMANIPULATION JOBSLICING STOP

        jobs(0).kill()
        # -- JOBMANIPULATION RESUBMIT START
        jobs(0).resubmit()
        # -- JOBMANIPULATION RESUBMIT STOP

        # -- JOBMANIPULATION FORCESTATUS START
        jobs(1).force_status('failed')
        # -- JOBMANIPULATION FORCESTATUS STOP

        # -- JOBMANIPULATION JOBREMOVE START
        jobs(2).remove()
        # -- JOBMANIPULATION JOBREMOVE STOP

        # -- JOBMANIPULATION JOBSELECT START
        # can select on ids, name, status, backend, application
        jobs.select(status='new')
        jobs.select(backend='Local')
        jobs.select(ids=[1,3])

        # can restrict on min/max id
        jobs.select(1,3, application='Executable')
        # -- JOBMANIPULATION JOBSELECT STOP

        # -- JOBMANIPULATION JOBSELECTOP START
        jobs.select(status='new').submit()
        # -- JOBMANIPULATION JOBSELECTOP STOP

        # -- JOBMANIPULATION EXPORTJOB START
        export(jobs(0), 'my_job.txt')
        jlist = load('my_job.txt')
        jlist[0].submit()
Esempio n. 4
0
    def test_c_JobManipulation(self):

        from Ganga.GPI import runMonitoring, Job, jobs, export, load

        runMonitoring()

        # -- JOBMANIPULATION JOBCOPY START
        j = Job(name='original')
        j2 = j.copy()
        j2.name = 'copy'
        j.submit()
        j3 = Job(j, name='copy2')
        jobs
        # -- JOBMANIPULATION JOBCOPY STOP

        # -- JOBMANIPULATION REPOACCESS START
        jobs(2)
        # -- JOBMANIPULATION REPOACCESS STOP

        # -- JOBMANIPULATION JOBSLICING START
        jobs[2]
        jobs[2:]
        jobs['copy2']
        # -- JOBMANIPULATION JOBSLICING STOP

        jobs(0).kill()
        # -- JOBMANIPULATION RESUBMIT START
        jobs(0).resubmit()
        # -- JOBMANIPULATION RESUBMIT STOP

        # -- JOBMANIPULATION FORCESTATUS START
        jobs(1).force_status('failed')
        # -- JOBMANIPULATION FORCESTATUS STOP

        # -- JOBMANIPULATION JOBREMOVE START
        jobs(2).remove()
        # -- JOBMANIPULATION JOBREMOVE STOP

        # -- JOBMANIPULATION JOBSELECT START
        # can select on ids, name, status, backend, application
        jobs.select(status='new')
        jobs.select(backend='Local')
        jobs.select(ids=[1, 3])

        # can restrict on min/max id
        jobs.select(1, 3, application='Executable')
        # -- JOBMANIPULATION JOBSELECT STOP

        # -- JOBMANIPULATION JOBSELECTOP START
        jobs.select(status='new').submit()
        # -- JOBMANIPULATION JOBSELECTOP STOP

        # -- JOBMANIPULATION EXPORTJOB START
        export(jobs(0), 'my_job.txt')
        jlist = load('my_job.txt')
        jlist[0].submit()
Esempio n. 5
0
    def test_Savannah40220(self):
        from Ganga.GPI import Job, LCG, export, load

        j = Job(backend=LCG())
        import tempfile
        f, self.fname = tempfile.mkstemp()

        self.assertTrue(export(j, self.fname))

        self.assertTrue(load(self.fname))
Esempio n. 6
0
    def test_Savannah13979(self):
        from Ganga.GPI import Job, Executable, export, load

        self.fname = 'test_savannah_13979.ganga'
        j = Job(application=Executable())

        args_set = [['a'], ['''a
                b'''],
                    [
                        '''a
                b''', 'simple', 'normal\nnewline', """another

                multiline"""
                    ]]

        for args in args_set:
            j.application.args = args
            export(j, self.fname)
            j2 = load(self.fname)[0]
            self.assertEqual(j2.application.args, args)
Esempio n. 7
0
    def test_Savannah13979(self):
        from Ganga.GPI import Job, Executable, export, load

        self.fname = 'test_savannah_13979.ganga'
        j = Job(application=Executable())

        args_set = [
            ['a'],

            ['''a
                b'''],

            ['''a
                b''', 'simple', 'normal\nnewline', """another

                multiline"""]
        ]

        for args in args_set:
            j.application.args = args
            export(j, self.fname)
            j2 = load(self.fname)[0]
            self.assertEqual(j2.application.args, args)