def main():
    #url = 'cmsweb.cern.ch'
    url = 'https://cmsweb-testbed.cern.ch'
    if len(sys.argv) != 3:
        print "Usage:  python createSitesBackfill.py JSON_FILE SITE1,SITE2,..."
        sys.exit(0)
    jsonFile = sys.argv[1]
    siteList = sys.argv[2].split(',')
    #read request params
    configJson = json.load(open(jsonFile, 'r'))
    #wrap config in an object
    config = Config(configJson)
    
    reqMgrClient = ReqMgrClient(url, config)

    #set up common stuff
    config.requestArgs["createRequest"]["Campaign"] += "SiteBackfill" 
    reqStr = config.requestArgs["createRequest"]["RequestString"]
    
    config.requestArgs["assignRequest"]["AcquisitionEra"] += "SiteBackfill"
    config.requestArgs["createRequest"]["Campaign"] += "SiteBackfill" 


    #create a request for each site
    for site in siteList:
        
        #setup creation stuff
        config.requestArgs["createRequest"]["RequestString"] = reqStr+"-"+site
        config.requestArgs["createRequest"]["PrepID"] = None

        r = reqMgrClient.createRequest(config)
        print "Created:", r
        reqMgrClient.changeSplitting(config)
        print "Changed splitting"
        
        #change assignment stuff
        config.requestArgs["assignRequest"]["SiteWhitelist"] = [site]        
        config.requestArgs["assignRequest"]["ProcessingString"] = "SITE_TEST_"+site
        #assign
        reqMgrClient.assignRequests(config)
        print "Assigned: ", r ,"to",site
Example #2
0
def main():

    url = 'https://cmsweb.cern.ch'
    testbed_url = 'https://cmsweb-testbed.cern.ch'
    #url = 'https://alan-cloud1.cern.ch'

    #Create option parser
    usage = "usage: %prog [options] JSON_FILE SITE1,SITE2,..."
    parser = OptionParser(usage=usage)

    parser.add_option(
        "-t",
        "--team",
        dest="team",
        default=None,
        help="Team for assigning, if empty, the one on the Json file")
    parser.add_option("--testbed",
                      action="store_true",
                      dest="testbed",
                      default=False,
                      help="Use testbed ReqMgr instead of production ReqMgr.")
    parser.add_option("-m",
                      "--multi",
                      action="store_true",
                      dest="multi",
                      default=False,
                      help="Assign to all sites")

    (options, args) = parser.parse_args()

    if len(args) != 2:
        parser.error("Provide the JSON file and the site list")
        sys.exit(1)

    #the input options
    jsonFile = args[0]
    siteList = args[1].split(',')
    if options.testbed:
        url = testbed_url

    #read request params and wrap
    configJson = json.load(open(jsonFile, 'r'))
    config = Config(configJson)
    reqMgrClient = ReqMgrClient(url, config)

    #set up common stuff
    config.requestArgs["createRequest"]["Campaign"] += "SiteBackfill"
    reqStr = config.requestArgs["createRequest"]["RequestString"]

    config.requestArgs["assignRequest"]["AcquisitionEra"] += "SiteBackfill"
    config.requestArgs["createRequest"]["Campaign"] += "SiteBackfill"

    if options.team:
        config.requestArgs["assignRequest"]["Team"] = options.team

    #create a request for each site
    if not options.multi:
        for site in siteList:

            #setup creation stuff
            config.requestArgs["createRequest"][
                "RequestString"] = reqStr + "-" + site + "Backfill"
            config.requestArgs["createRequest"]["PrepID"] = None

            r = reqMgrClient.createRequest(config)
            print "Created:"
            print r
            reqMgrClient.changeSplitting(config)
            print "Changed splitting"

            #change assignment stuff
            config.requestArgs["assignRequest"]["SiteWhitelist"] = [site]
            config.requestArgs["assignRequest"][
                "ProcessingString"] = "SITE_TEST_" + site
            #assign
            reqMgrClient.assignRequests(config)
            print "Assigned to", site

    else:
        #setup creation stuff
        config.requestArgs["createRequest"][
            "RequestString"] = reqStr + "-SiteBackfill"
        config.requestArgs["createRequest"]["PrepID"] = None

        r = reqMgrClient.createRequest(config)
        print "Created:"
        print r
        reqMgrClient.changeSplitting(config)
        print "Changed splitting"

        #change assignment stuff
        config.requestArgs["assignRequest"]["SiteWhitelist"] = siteList
        config.requestArgs["assignRequest"]["ProcessingString"] = "SITE_TEST"
        #assign
        reqMgrClient.assignRequests(config)
        print "Assigned to", siteList
def main():

    url = 'https://cmsweb.cern.ch'
    testbed_url = 'https://cmsweb-testbed.cern.ch'
    #url = 'https://alan-cloud1.cern.ch'

    #Create option parser
    usage = "usage: %prog [options] JSON_FILE SITE1,SITE2,..."
    parser = OptionParser(usage=usage)

    parser.add_option("-t","--team", dest="team", default=None,
                        help="Team for assigning, if empty, the one on the Json file")
    parser.add_option("--testbed",action="store_true", dest="testbed", default=False,
                        help="Use testbed ReqMgr instead of production ReqMgr.")

    (options, args) = parser.parse_args()
    
    if len(args) != 2:
        parser.error("Provide the JSON file and the site list")
        sys.exit(1)
    
    #the input options
    jsonFile = args[0]
    siteList = args[1].split(',')
    if options.testbed:
        url = testbed_url

    #read request params and wrap
    configJson = json.load(open(jsonFile, 'r'))
    config = Config(configJson)
    reqMgrClient = ReqMgrClient(url, config)

    #set up common stuff
    config.requestArgs["createRequest"]["Campaign"] += "SiteBackfill" 
    reqStr = config.requestArgs["createRequest"]["RequestString"]
    
    config.requestArgs["assignRequest"]["AcquisitionEra"] += "SiteBackfill"
    config.requestArgs["createRequest"]["Campaign"] += "SiteBackfill" 
    
    if options.team:
        config.requestArgs["assignRequest"]["Team"] = options.team

    #create a request for each site
    for site in siteList:
        
        #setup creation stuff
        config.requestArgs["createRequest"]["RequestString"] = reqStr+"-"+site+"Backfill"
        config.requestArgs["createRequest"]["PrepID"] = None

        r = reqMgrClient.createRequest(config)
        print "Created:"
        print r
        reqMgrClient.changeSplitting(config)
        print "Changed splitting"
        
        #change assignment stuff
        config.requestArgs["assignRequest"]["SiteWhitelist"] = [site]        
        config.requestArgs["assignRequest"]["ProcessingString"] = "SITE_TEST_"+site
        #assign
        reqMgrClient.assignRequests(config)
        print "Assigned to",site