예제 #1
0
    def testLumiSubmit(self):
        """
        Test submission with the lumiMask parameter"
        """

        sections = ["General", "User", "Data", "Site", "JobType"]
        lumiConf = Configuration()
        for sec in sections:
            lumiConf.section_(sec)

        lumiConf.General.serverUrl = "localhost:8518"
        lumiConf.JobType.externalPluginFile = os.path.join(
            os.path.dirname(__file__), "TestPlugin.py")
        lumiConf.Site.storageSite = 'T2_XXX'

        lumiInput = os.path.join(os.path.dirname(__file__),
                                 "../../../data/lumiInput.json")
        lumiConf.Data.splitting = 'LumiBased'
        lumiConf.Data.lumiMask = 'lumiInput.json'

        sub = submit(
            self.logger, self.maplistopt + [
                "-c", lumiConf, "-p",
                "/DC=ch/DC=cern/OU=Organic Units/OU=Users/CN=mmascher/CN=720897/CN=Marco Mascheroni",
                "-s", "127.0.0.1:8518"
            ])

        res = sub()
        expRes = CommandResult(0, None)
        self.assertEquals(res, expRes)
예제 #2
0
def config():
    """
    Return a Configuration object containing all the sections that CRAB recognizes.
    """
    config = Configuration()  # pylint: disable=redefined-outer-name
    config.section_("General")
    config.section_("JobType")
    config.section_("Data")
    config.section_("Site")
    config.section_("User")
    config.section_("Debug")
    return config
예제 #3
0
    def testSubmit(self):
        #Delete workdir
        if os.path.isdir("crab_" + self.TestConfig.config.General.requestName):
            shutil.rmtree("crab_" + self.TestConfig.config.General.requestName)

        #2) The config file is not found
        sub = submit(self.logger, self.maplistopt + ["-c", "asdf", "-p", "/DC=ch/DC=cern/OU=Organic Units/OU=Users/CN=mmascher/CN=720897/CN=Marco Mascheroni", \
                                       "-s", "127.0.0.1:8518"])
        res = sub()
        self.assertEqual(res[0], 1)

        #3) Is the client chacking the configurations?
        #If a mandatory section is not there => fail!
        sections = ["General", "User", "Data", "Site",
                    "JobType"]  #mandatory sections
        emptyConf = Configuration()
        for sec in sections:
            sub = submit(self.logger, self.maplistopt + ["-c", "asdf", "-p", "/DC=ch/DC=cern/OU=Organic Units/OU=Users/CN=mmascher/CN=720897/CN=Marco Mascheroni", \
                                           "-s", "127.0.0.1:8518"])
            res = sub()
            self.assertEqual(res[0], 1)
            emptyConf.section_(sec)

        emptyConf.General.serverUrl = "localhost:8518"
        emptyConf.General.requestName = 'TestAnalysisSubmit'
        emptyConf.JobType.externalPluginFile = os.path.join(
            os.path.dirname(__file__), "TestPlugin.py")
        emptyConf.Site.storageSite = 'T2_XXX'
        expRes = CommandResult(0, None)
        sub = submit(self.logger, self.maplistopt + ["-c", emptyConf, "-p", "/DC=ch/DC=cern/OU=Organic Units/OU=Users/CN=mmascher/CN=720897/CN=Marco Mascheroni", \
                                       "-s", "127.0.0.1:8518"])
        res = sub()
        self.assertEquals(res, expRes)

        shutil.rmtree("./crab_TestAnalysisSubmit")
        emptyConf.Data.runWhitelist = '1,3,9-13'
        emptyConf.Data.runBlacklist = '1,3,9-13'
        expRes = CommandResult(0, None)
        sub = submit(self.logger, self.maplistopt + ["-c", emptyConf, "-p", "/DC=ch/DC=cern/OU=Organic Units/OU=Users/CN=mmascher/CN=720897/CN=Marco Mascheroni", \
                                       "-s", "127.0.0.1:8518"])
        res = sub()
        self.assertEquals(res, expRes)
예제 #4
0
_CMSSWConfig_t_

Unittests for CMSSW config files
"""

import logging
import os
import unittest

from CRABClient.JobType.CMSSWConfig import CMSSWConfig
from CRABClient.JobType.ScramEnvironment import ScramEnvironment
from CRABClient.Configuration import Configuration

#### Test WMCore.Configuration

testWMConfig = Configuration()

testWMConfig.section_("JobType")
testWMConfig.JobType.pluginName = 'CMSSW'
testWMConfig.section_("Data")
testWMConfig.Data.inputDataset = '/cms/data/set'
testWMConfig.section_("General")
testWMConfig.General.serverUrl = 'crabas.lnl.infn.it:8888'
testWMConfig.section_("User")
testWMConfig.User.group = 'Analysis'

#### Test CMSSW python config

testCMSSWConfig = """
import FWCore.ParameterSet.Config as cms
예제 #5
0
"""
This is an example configuration file for CRAB3 client, covering
most of the available configuration options.
"""

from CRABClient.Configuration import Configuration
import os

config = Configuration()

## General options for the client
config.section_("General")

# Request name must be specified
#config.General.requestName   = 'MyAnalysis_1'
#config.General.workArea   = '/path/to/workarea'

# Specify a custom server.  This is almost never used; the defaults will point at the central server.
## https schema is used. If the port is not specified default 443 will be used
#config.General.serverUrl     = 'yourserver[:0000]'
# This identify which type of server you're using. If it is a private instance you must set 'other'
# (other options are prod/preprod/dev/test)
#config.General.instance = 'other'
#config.General.restHost = 'yourserver.cern.ch'
#config.General.dbInstance = 'dev'
#

## Specific option of the job type
## these options are directly readable from the job type plugin
config.section_("JobType")
#config.JobType.pluginName  = 'Analysis'
예제 #6
0
 def __init__(self, submitClass=CRABClient.Commands.submit.submit):
     self.config = Configuration()
     self.apiLog, self.clientLog, self.tracebackLog = \
             CRABAPI.TopLevel.getAllLoggers()
     self.submitClass = submitClass