Example #1
0
    def __init__(self, task = None):
        self.generators = {}
        self.generatorFactory = GeneratorFactory()

        if not hasattr(task, 'data'):
            #We don't have a WMTask
            return
        if not hasattr(task.data, 'generators'):
            #We have a blank task with no generators
            return
        #Otherwise we have a fully formed task of some type

        configList = task.listGenerators()

        for generator in configList:
            self.addGenerator(generator, **task.getGeneratorSettings(generator))


        return
Example #2
0
    def createWMBSJobs(self, subscription, task):
        """
        Create the jobs for WMBS Components
        Send a subscription/task, get back a package.

        """

        splitter = SplitterFactory()
        geneFac  = GeneratorFactory()
        jobfactory = splitter(subscription = subscription,
                              package = "WMCore.DataStructs",
                              generators = geneFac.makeGenerators(task))
        params = task.jobSplittingParameters()
        jobGroups = jobfactory(**params)

        jobID = 1
        package = JobPackage()
        for group in jobGroups:
            for job in group.jobs:
                job['id'] = jobID
                jobID += 1
                package[job['id']] = job

        return package
Example #3
0
    def __init__(self, task = None):
        self.generators = {}
        self.generatorFactory = GeneratorFactory()

        if not hasattr(task, 'data'):
            #We don't have a WMTask
            return
        if not hasattr(task.data, 'generators'):
            #We have a blank task with no generators
            return
        #Otherwise we have a fully formed task of some type

        configList = task.listGenerators()

        for generator in configList:
            self.addGenerator(generator, **task.getGeneratorSettings(generator))


        return
Example #4
0
class GeneratorManager(object):
    """
    _GeneratorManager_



    """
    def __init__(self, task = None):
        self.generators = {}
        self.generatorFactory = GeneratorFactory()

        if not hasattr(task, 'data'):
            #We don't have a WMTask
            return
        if not hasattr(task.data, 'generators'):
            #We have a blank task with no generators
            return
        #Otherwise we have a fully formed task of some type

        configList = task.listGenerators()

        for generator in configList:
            self.addGenerator(generator, **task.getGeneratorSettings(generator))


        return

    def addGenerator(self, generatorName, **args):
        """
        _addGenerator_

        Add a new instance of the generator provided

        """
        if generatorName == None:
            return
        if generatorName in self.generators:
            return

        #TODO: Exception check
        newGenerator = self.generatorFactory.getGenerator(generatorName, **args)

        self.generators[generatorName] = newGenerator
        return



    def __call__(self, jobGroup):
        """
        _operator(jobGroup)_

        Run all generators in this manager over the jobs in the
        job group provided

        """
        [list(map(generator, jobGroup.jobs)) for generator in viewvalues(self.generators)]
        return


    def getGeneratorList(self):
        """
        _getGeneratorList_

        Returns a list of all generators for usage in JobSplitting
        """
        generatorList = []

        for generator in viewvalues(self.generators):
            generatorList.append(generator)

        return generatorList
Example #5
0
class GeneratorManager:
    """
    _GeneratorManager_



    """
    def __init__(self, task = None):
        self.generators = {}
        self.generatorFactory = GeneratorFactory()

        if not hasattr(task, 'data'):
            #We don't have a WMTask
            return
        if not hasattr(task.data, 'generators'):
            #We have a blank task with no generators
            return
        #Otherwise we have a fully formed task of some type

        configList = task.listGenerators()

        for generator in configList:
            self.addGenerator(generator, **task.getGeneratorSettings(generator))


        return

    def addGenerator(self, generatorName, **args):
        """
        _addGenerator_

        Add a new instance of the generator provided

        """
        if generatorName == None:
            return
        if self.generators.has_key(generatorName):
            return

        #TODO: Exception check
        newGenerator = self.generatorFactory.getGenerator(generatorName, **args)

        self.generators[generatorName] = newGenerator
        return



    def __call__(self, jobGroup):
        """
        _operator(jobGroup)_

        Run all generators in this manager over the jobs in the
        job group provided

        """
        [ map(generator, jobGroup.jobs) for generator in self.generators.values()]
        return


    def getGeneratorList(self):
        """
        _getGeneratorList_

        Returns a list of all generators for usage in JobSplitting
        """
        generatorList = []

        for name in self.generators.keys():
            generatorList.append(self.generators[name])

        return generatorList