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)
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
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)
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
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