def getProductionArchitecture(release_name, tcBaseURL = tcBaseURL, dryRun=False): url = tcBaseURL+'public/py_getReleaseArchitectures?default=1&release=%s' % (release_name) print "going to receive release %s architectures: %s" % (release_name, url) raw_output = str(doWget(url)) architecture = None if raw_output: print "raw output: " + raw_output architecture = loads(raw_output) return architecture
def getRequestData(request, dryRun=False, tcBaseURL = tcBaseURL): url = tcBaseURL+'public/getCustomIBRequestInformation?request_id=' + str(request) raw_output = str(doWget(url)) print "Output-Size: " + str(len(raw_output)) print "raw output:\n" + raw_output if not raw_output: return None data = loads(raw_output) print "data=" + str(data) return data
def call(obj, method, **kwds): obj = str(obj).strip("/") print obj,":", method print kwds if method == "GET": opts = urlencode(kwds) result = ws_sso_content_reader.getContent(join(DEFAULT_API_URL, obj) + "?" + opts, None, method) elif method in ["POST", "PATCH", "DELETE"]: opts = dumps(kwds) result = ws_sso_content_reader.getContent(join(DEFAULT_API_URL, obj), opts, method) print result return loads(result)
def listPendingTasks(state="Pending", release_pattern=".*", architecture_pattern=".*", tcBaseURL=tcBaseURL): url = tcBaseURL+'public/getCustomIBRequests?state=Pending' raw_output = str(doWget(url)) if not raw_output: return None requests = loads(raw_output) data = [getRequestData(request, dryRun=False, tcBaseURL = tcBaseURL) for request in requests] data2 = [r for r in data if r and re.match(release_pattern, r["release_name"])] data3 = [r for r in data2 if re.match(architecture_pattern, r["architecture_name"])] data4 = [r for r in data3 if r["type"].startswith("TASK")] data5 = [r for r in data4 if r.has_key("tags")] return [(x["id"], x["architecture_name"], x["release_name"], x["tags"]) for x in data5]
def getBuildingRequests(rel=None, architecture_names=None, dryRun=False, tcBaseURL = tcBaseURL, type='IB'): url = tcBaseURL+'public/getCustomIBRequests?state=Building&types=%s' % (type) print "going to receive pending %s requests: %s" % (type, url) raw_output = str(doWget(url)) print "raw output: " + raw_output requests = loads(raw_output) ret_data = [] for request in requests: data = getRequestData(request, dryRun=dryRun, tcBaseURL = tcBaseURL) if data and (not rel or data["release_name"].startswith("CMSSW_" + rel)): if architecture_names: for architecture_name in architecture_names: if data['architecture_name'] == architecture_name: ret_data.append(data) else: ret_data.append(data) return ret_data
def getPendingRequests(release_pattern=None, architecture_pattern=None, requestType='IB',dryRun=False, tcBaseURL = tcBaseURL): url = tcBaseURL+'public/getCustomIBRequests?state=Pending&types=%s' % (requestType) if dryRun: print "going to receive pending %s requests: %s" % (requestType, url) raw_output = str(doWget(url)) if not raw_output: return None requests = loads(raw_output) for request in requests: data = getRequestData(request, dryRun=dryRun, tcBaseURL = tcBaseURL) if data: if release_pattern and not re.match(release_pattern, data['release_name']): continue if architecture_pattern and not re.match(architecture_pattern, data['architecture_name']): continue print "Found request with release name %s and architecture %s" % (data['release_name'], data['architecture_name'],) return data return None