示例#1
0
 def assign(self, **kwds):
     """assign page"""
     if not kwds:
         kwds = {}
     if 'status' not in kwds:
         kwds.update({'status': 'assignment-approved'})
     docs = []
     attrs = [
         'RequestName', 'RequestDate', 'Group', 'Requestor', 'RequestStatus'
     ]
     data = self.reqmgr.getRequestByStatus(statusList=[kwds['status']])
     for val in data.values():
         docs.append(request_attr(val, attrs))
     sortby = kwds.get('sort', 'status')
     docs = [r for r in sort(docs, sortby)]
     misc_json = {
         'RequestPriority': 5000,
         'CMSSWVersion': releases(),
         'ScramArch': architectures(),
         'SiteWhitelist': SITE_CACHE.getData(),
         'SiteBlacklist': SITE_CACHE.getData(),
         'SubscriptionPriority': ['Low', 'Normal', 'High'],
         'CustodialSubType': ['Move', 'Replica'],
         'NonCustodialSubType': ['Move', 'Replica'],
         'MinMergeSize': 2147483648,
         'MaxMergeSize': 4294967296,
         'MaxMergeEvents': 50000,
         'MaxRSS': 20411724,
         'MaxVSize': 20411724,
         'SoftTimeout': 129600,
         'GracePeriod': 300,
         'BlockCloseMaxWaitTime': 66400,
         'BlockCloseMaxFiles': 500,
         'BlockCloseMaxEvents': 250000000,
         'BlockCloseMaxSize': 5000000000000,
         'AcquisitionEra': '',
         'ProcessingVersion': 1,
         'ProcessingString': '',
         'MergedLFNBase': lfn_bases(),
         'UnmergedLFNBase': lfn_unmerged_bases(),
         'Dashboard': dashboardActivities(),
         'Team': self.getTeams()
     }
     filter_sort = self.templatepage('filter_sort')
     content = self.templatepage('assign',
                                 sort=sortby,
                                 filter_sort_table=filter_sort,
                                 sites=SITE_CACHE.getData(),
                                 site_white_list=site_white_list(),
                                 site_black_list=site_black_list(),
                                 user=user(),
                                 user_dn=user_dn(),
                                 requests=toString(docs),
                                 misc_table=json2table(
                                     misc_json, web_ui_names(),
                                     "all_attributes"),
                                 misc_json=json2form(misc_json,
                                                     indent=2,
                                                     keep_first_value=True))
     return self.abs_page('assign', content)
示例#2
0
    def getWorkloadCreateArgs():
        baseArgs = StdBase.getWorkloadCreateArgs()
        specArgs = {"RequestType": {"default": "Express"},
                    "ConfigCacheID": {"optional": True, "null": True},
                    "Scenario": {"optional": False, "attr": "procScenario"},
                    "RecoCMSSWVersion": {"validate": lambda x: x in releases(),
                                         "optional": False, "attr": "recoFrameworkVersion"},
                    "RecoScramArch": {"validate": lambda x: all([y in architectures() for y in x]),
                                      "optional": False, "type": makeNonEmptyList},
                    "GlobalTag": {"optional": False},
                    "GlobalTagTransaction": {"optional": False},
                    "ProcessingString": {"default": "", "validate": procstringT0},
                    "StreamName": {"optional": False},
                    "SpecialDataset": {"optional": False},
                    "AlcaHarvestTimeout": {"type": int, "optional": False},
                    "AlcaHarvestDir": {"optional": False, "null": True},
                    "AlcaSkims": {"type": makeList, "optional": False},
                    "DQMSequences": {"type": makeList, "attr": "dqmSequences", "optional": False},
                    "Outputs": {"type": makeList, "optional": False},
                    "MaxInputRate": {"type": int, "optional": False},
                    "MaxInputEvents": {"type": int, "optional": False},
                    "MaxInputSize": {"type": int, "optional": False},
                    "MaxInputFiles": {"type": int, "optional": False},
                    "MaxLatency": {"type": int, "optional": False},

                    }
        baseArgs.update(specArgs)
        StdBase.setDefaultArgumentsProperty(baseArgs)
        return baseArgs
示例#3
0
 def assign(self, **kwds):
     """assign page"""
     if not kwds:
         kwds = {}
     if 'status' not in kwds:
         kwds.update({'status': 'assignment-approved'})
     docs = []
     attrs = ['RequestName', 'RequestDate', 'Group', 'Requestor', 'RequestStatus']
     dataResult = self.reqmgr.getRequestByStatus(statusList=[kwds['status']])
     for data in dataResult:
         for val in data.values():
             docs.append(request_attr(val, attrs))
     sortby = kwds.get('sort', 'status')
     docs = [r for r in sort(docs, sortby)]
     misc_json = {'RequestPriority': 5000,
                  'CMSSWVersion': releases(),
                  'ScramArch': architectures(),
                  'SiteWhitelist': SITE_CACHE.getData(),
                  'SiteBlacklist': SITE_CACHE.getData(),
                  'SubscriptionPriority': ['Low', 'Normal', 'High'],
                  'CustodialSubType': ['Move', 'Replica'],
                  'NonCustodialSubType': ['Move', 'Replica'],
                  'MinMergeSize': 2147483648,
                  'MaxMergeSize': 4294967296,
                  'MaxMergeEvents': 50000,
                  'MaxRSS': 20411724,
                  'MaxVSize': 20411724,
                  'SoftTimeout': 129600,
                  'GracePeriod': 300,
                  'BlockCloseMaxWaitTime': 66400,
                  'BlockCloseMaxFiles': 500,
                  'BlockCloseMaxEvents': 250000000,
                  'BlockCloseMaxSize': 5000000000000,
                  'AcquisitionEra': '',
                  'ProcessingVersion': 1,
                  'ProcessingString': '',
                  'MergedLFNBase': lfn_bases(),
                  'UnmergedLFNBase': lfn_unmerged_bases(),
                  'Dashboard': dashboardActivities(),
                  'Team': self.getTeams()}
     filter_sort = self.templatepage('filter_sort')
     content = self.templatepage('assign', sort=sortby,
                                 filter_sort_table=filter_sort,
                                 sites=SITE_CACHE.getData(),
                                 site_white_list=site_white_list(),
                                 site_black_list=site_black_list(),
                                 user=user(), user_dn=user_dn(), requests=toString(docs),
                                 misc_table=json2table(misc_json, web_ui_names(), "all_attributes"),
                                 misc_json=json2form(misc_json, indent=2, keep_first_value=True))
     return self.abs_page('assign', content)
示例#4
0
def create_json_template_spec(specArgs):
    template = {}
    for key, prop in specArgs.items():
        
        if key == "RequestorDN":
            # this will be automatically collected so skip it.
            continue
        
        if key == "CMSSWVersion":
            # get if from tag collector
            value = releases()
        elif key == "ScramArch":
            value = architectures()
        elif prop.get("optional", True):
            # if optional need to always have default value
            value = prop["default"]
        else:
            value = "REPLACE-%s" % key
        template[key] = value
    return template
示例#5
0
def create_json_template_spec(specArgs):
    template = {}
    for key, prop in specArgs.items():

        if key == "RequestorDN":
            # this will be automatically collected so skip it.
            continue

        if key == "CMSSWVersion":
            # get if from tag collector
            value = releases()
        elif key == "ScramArch":
            value = architectures()
        elif prop.get("optional", True):
            # if optional need to always have default value
            value = prop["default"]
        else:
            value = "REPLACE-%s" % key
        template[key] = value
    return template
示例#6
0
 def getWorkloadCreateArgs():
     baseArgs = StdBase.getWorkloadCreateArgs()
     specArgs = {
         "RequestType": {
             "default": "Express"
         },
         "ConfigCacheID": {
             "optional": True,
             "null": True
         },
         "Scenario": {
             "optional": False,
             "attr": "procScenario"
         },
         "RecoCMSSWVersion": {
             "validate": lambda x: x in releases(),
             "optional": False,
             "attr": "recoFrameworkVersion"
         },
         "RecoScramArch": {
             "validate": lambda x: all([y in architectures() for y in x]),
             "optional": False,
             "type": makeNonEmptyList
         },
         "GlobalTag": {
             "optional": False
         },
         "GlobalTagTransaction": {
             "optional": False
         },
         "ProcessingString": {
             "default": "",
             "validate": procstringT0
         },
         "StreamName": {
             "optional": False
         },
         "SpecialDataset": {
             "optional": False
         },
         "AlcaHarvestTimeout": {
             "type": int,
             "optional": False
         },
         "AlcaHarvestDir": {
             "optional": False,
             "null": True
         },
         "AlcaSkims": {
             "type": makeList,
             "optional": False
         },
         "DQMSequences": {
             "type": makeList,
             "attr": "dqmSequences",
             "optional": False
         },
         "Outputs": {
             "type": makeList,
             "optional": False
         },
         "MaxInputRate": {
             "type": int,
             "optional": False
         },
         "MaxInputEvents": {
             "type": int,
             "optional": False
         },
         "MaxInputSize": {
             "type": int,
             "optional": False
         },
         "MaxInputFiles": {
             "type": int,
             "optional": False
         },
         "MaxLatency": {
             "type": int,
             "optional": False
         },
     }
     baseArgs.update(specArgs)
     StdBase.setDefaultArgumentsProperty(baseArgs)
     return baseArgs