コード例 #1
0
    def testPersist(self):
        """
        _testPersist_

        Verify that we're able to save and load the job package.
        """
        package = JobPackage()

        for i in range(100):
            newJob = Job("Job%s" % i)
            newJob["id"] = i
            package[i] = newJob

        package.save(self.persistFile)

        assert os.path.exists(self.persistFile), \
               "Error: Package file was never created."

        newPackage = JobPackage()
        newPackage.load(self.persistFile)

        # There is an extra key for the directory the package is stored in.
        assert len(newPackage.keys()) == 101, \
               "Error: Wrong number of jobs in package."

        for i in range(100):
            job = newPackage[i]
            assert job["id"] == i, \
                   "Error: Jobs has wrong ID."
            assert job["name"] == "Job%d" % i, \
                   "Error: Job has wrong name."

        return
コード例 #2
0
ファイル: JobPackage_t.py プロジェクト: vytjan/WMCore
    def testPersist(self):
        """
        _testPersist_

        Verify that we're able to save and load the job package.
        """
        package = JobPackage()

        for i in range(100):
            newJob = Job("Job%s" % i)
            newJob["id"] = i
            package[i] = newJob

        package.save(self.persistFile)

        assert os.path.exists(self.persistFile), \
               "Error: Package file was never created."

        newPackage = JobPackage()
        newPackage.load(self.persistFile)

        # There is an extra key for the directory the package is stored in.
        assert len(newPackage.keys()) == 101, \
               "Error: Wrong number of jobs in package."

        for i in range(100):
            job = newPackage[i]
            assert job["id"] == i, \
                   "Error: Jobs has wrong ID."
            assert job["name"] == "Job%d" % i, \
                   "Error: Job has wrong name."

        return
コード例 #3
0
    def testBaggage(self):
        """
        _testBaggage_

        Verify that job baggage is persisted with the package.
        """
        package = JobPackage()

        for i in range(100):
            newJob = Job("Job%s" % i)
            newJob["id"] = i
            baggage = newJob.getBaggage()
            setattr(baggage, "thisJob", newJob["name"])
            setattr(baggage, "seed1", 11111111)
            setattr(baggage, "seed2", 22222222)
            setattr(baggage, "seed3", 33333333)
            setattr(baggage, "seed4", 44444444)
            setattr(baggage, "seed5", 55555555)
            package[i] = newJob

        package.save(self.persistFile)

        assert os.path.exists(self.persistFile), \
               "Error: Package file was never created."

        newPackage = JobPackage()
        newPackage.load(self.persistFile)

        # There is an extra key for the directory the package is stored in.
        assert len(newPackage.keys()) == 101, \
               "Error: Wrong number of jobs in package."

        for i in range(100):
            job = newPackage[i]
            assert job["id"] == i, \
                   "Error: Jobs has wrong ID."
            assert job["name"] == "Job%d" % i, \
                   "Error: Job has wrong name."
            jobBaggage = job.getBaggage()

            assert jobBaggage.thisJob == "Job%d" % i, \
                   "Error: Job baggage has wrong name."
            assert jobBaggage.seed1 == 11111111, \
                   "Error: Job baggee has wrong value for seed1."
            assert jobBaggage.seed2 == 22222222, \
                   "Error: Job baggee has wrong value for seed2."
            assert jobBaggage.seed3 == 33333333, \
                   "Error: Job baggee has wrong value for seed3."
            assert jobBaggage.seed4 == 44444444, \
                   "Error: Job baggee has wrong value for seed4."
            assert jobBaggage.seed5 == 55555555, \
                   "Error: Job baggee has wrong value for seed5."


        return
コード例 #4
0
ファイル: JobPackage_t.py プロジェクト: vytjan/WMCore
    def testBaggage(self):
        """
        _testBaggage_

        Verify that job baggage is persisted with the package.
        """
        package = JobPackage()

        for i in range(100):
            newJob = Job("Job%s" % i)
            newJob["id"] = i
            baggage = newJob.getBaggage()
            setattr(baggage, "thisJob", newJob["name"])
            setattr(baggage, "seed1", 11111111)
            setattr(baggage, "seed2", 22222222)
            setattr(baggage, "seed3", 33333333)
            setattr(baggage, "seed4", 44444444)
            setattr(baggage, "seed5", 55555555)
            package[i] = newJob

        package.save(self.persistFile)

        assert os.path.exists(self.persistFile), \
               "Error: Package file was never created."

        newPackage = JobPackage()
        newPackage.load(self.persistFile)

        # There is an extra key for the directory the package is stored in.
        assert len(newPackage.keys()) == 101, \
               "Error: Wrong number of jobs in package."

        for i in range(100):
            job = newPackage[i]
            assert job["id"] == i, \
                   "Error: Jobs has wrong ID."
            assert job["name"] == "Job%d" % i, \
                   "Error: Job has wrong name."
            jobBaggage = job.getBaggage()

            assert jobBaggage.thisJob == "Job%d" % i, \
                   "Error: Job baggage has wrong name."
            assert jobBaggage.seed1 == 11111111, \
                   "Error: Job baggee has wrong value for seed1."
            assert jobBaggage.seed2 == 22222222, \
                   "Error: Job baggee has wrong value for seed2."
            assert jobBaggage.seed3 == 33333333, \
                   "Error: Job baggee has wrong value for seed3."
            assert jobBaggage.seed4 == 44444444, \
                   "Error: Job baggee has wrong value for seed4."
            assert jobBaggage.seed5 == 55555555, \
                   "Error: Job baggee has wrong value for seed5."

        return
コード例 #5
0
def loadJobDefinition():
    """
    _loadJobDefinition_

    Load the job package and pull out the indexed job, return
    WMBS Job instance

    Although this will create a JobReport, it won't necessarily bring it back.
    Report names are dependent on the retry_count, but if it fails unpacking the job
    it doesn't know the retry_count and will create the wrong file
    """
    sandboxLoc = locateWMSandbox()
    package = JobPackage()
    packageLoc = os.path.join(sandboxLoc, "JobPackage.pcl")
    try:
        package.load(packageLoc)
    except Exception as ex:
        msg = "Failed to load JobPackage:%s\n" % packageLoc
        msg += str(ex)
        createErrorReport(exitCode=11001,
                          errorType="JobPackageError",
                          errorDetails=msg)
        raise BootstrapException(msg)

    try:
        import WMSandbox.JobIndex
    except ImportError as ex:
        msg = "Failed to import WMSandbox.JobIndex module\n"
        msg += str(ex)
        createErrorReport(exitCode=11002,
                          errorType="JobIndexError",
                          errorDetails=msg)
        raise BootstrapException(msg)

    index = WMSandbox.JobIndex.jobIndex

    try:
        job = package[index]
    except Exception as ex:
        msg = "Failed to extract Job %i\n" % (index)
        msg += str(ex)
        createErrorReport(exitCode=11003,
                          errorType="JobExtractionError",
                          errorDetails=msg)
        raise BootstrapException(msg)
    diagnostic = """
    Job Index = %s
    Job Instance = %s
    """ % (index, job)
    logging.info(diagnostic)

    return job
コード例 #6
0
ファイル: Bootstrap.py プロジェクト: AndresTanasijczuk/WMCore
def loadJobDefinition():
    """
    _loadJobDefinition_

    Load the job package and pull out the indexed job, return
    WMBS Job instance

    Although this will create a JobReport, it won't necessarily bring it back.
    Report names are dependent on the retry_count, but if it fails unpacking the job
    it doesn't know the retry_count and will create the wrong file
    """
    sandboxLoc = locateWMSandbox()
    package = JobPackage()
    packageLoc = os.path.join(sandboxLoc, "JobPackage.pcl")
    try:
        package.load(packageLoc)
    except Exception as ex:
        msg = "Failed to load JobPackage:%s\n" % packageLoc
        msg += str(ex)
        createErrorReport(exitCode = 11001, errorType = "JobPackageError", errorDetails = msg)
        raise BootstrapException(msg)

    try:
        import WMSandbox.JobIndex
    except ImportError as ex:
        msg = "Failed to import WMSandbox.JobIndex module\n"
        msg += str(ex)
        createErrorReport(exitCode = 11002, errorType = "JobIndexError", errorDetails = msg)
        raise BootstrapException(msg)

    index = WMSandbox.JobIndex.jobIndex

    try:
        job = package[index]
    except Exception as ex:
        msg = "Failed to extract Job %i\n" % (index)
        msg += str(ex)
        createErrorReport(exitCode = 11003, errorType = "JobExtractionError", errorDetails = msg)
        raise BootstrapException(msg)
    diagnostic = """
    Job Index = %s
    Job Instance = %s
    """ % (index, job)
    logging.info(diagnostic)

    return job
コード例 #7
0
ファイル: Bootstrap.py プロジェクト: stuartw/WMCore
def loadJobDefinition():
    """
    _loadJobDefinition_

    Load the job package and pull out the indexed job, return
    WMBS Job instance

    Although this will create a JobReport, it won't necessarily bring it back.
    Report names are dependent on the retry_count, but if it fails unpacking the job
    it doesn't know the retry_count and will create the wrong file
    """
    sandboxLoc = locateWMSandbox()
    package = JobPackage()
    packageLoc = os.path.join(sandboxLoc, "JobPackage.pcl")
    try:
        package.load(packageLoc)
    except Exception, ex:
        msg = "Failed to load JobPackage:%s\n" % packageLoc
        msg += str(ex)
        createErrorReport(exitCode = 11001, errorType = "JobPackageError", errorDetails = msg)
        raise BootstrapException, msg
コード例 #8
0
ファイル: Bootstrap.py プロジェクト: ticoann/WMCore
def loadJobDefinition():
    """
    _loadJobDefinition_

    Load the job package and pull out the indexed job, return
    WMBS Job instance

    Although this will create a JobReport, it won't necessarily bring it back.
    Report names are dependent on the retry_count, but if it fails unpacking the job
    it doesn't know the retry_count and will create the wrong file
    """
    sandboxLoc = locateWMSandbox()
    package = JobPackage()
    packageLoc = os.path.join(sandboxLoc, "JobPackage.pcl")
    try:
        package.load(packageLoc)
    except Exception, ex:
        msg = "Failed to load JobPackage:%s\n" % packageLoc
        msg += str(ex)
        createErrorReport(exitCode = 11001, errorType = "JobPackageError", errorDetails = msg)
        raise BootstrapException, msg