def allusers(req): (stdout, stderr) = runCommand(" condor_status -format '%s\n' 'RemoteOwner' | sort | uniq -c") users = {} for line in stdout.readlines(): split_line = line.strip().split() users[split_line[1]] = split_line[0] pie = PieGraph() metadata = { 'title': 'Users Running on GlideinWMS Resources' } req.content_type = "image/x-png" pie.run(users, req, metadata)
def idlesites(req): (stdout, stderr) = runCommand(" condor_status -avail -format '%s\n' 'GLIDEIN_Site' -const 'IS_MONITOR_VM =!= TRUE' | sort | uniq -c") sites = {} for line in stdout.readlines(): split_line = line.strip().split() sites[split_line[1]] = split_line[0] pie = PieGraph() metadata = { 'title': 'Sites with idle glideins' } req.content_type = "image/x-png" pie.run(sites, req, metadata)
def flocked(req): (stdout, stderr) = runCommand("condor_status -schedd -format '%s ' 'TotalRunningJobs' -format '%s\n' 'TotalFlockedJobs' -const 'Name==\"glidein.unl.edu\"'") # Should only be 1 line: totalrunning totalflocked line = stdout.readline() totalrunning, totalflocked = line.split() totalrunning = int(totalrunning) totalflocked = int(totalflocked) nonflocked = totalrunning - totalflocked data = {"Flocked Jobs": totalflocked, "Non-Flocked Jobs": nonflocked } pie = PieGraph() metadata = { 'title': 'Flocked vs Non-Flocked' } req.content_type = "image/x-png" pie.run(data, req, metadata)
def index(self, dataset): errHtml = "<html><body><h2>No Graph Tools installed!!!</h2>\n " errHtml += "</body></html>" try: from graphtool.graphs.common_graphs import PieGraph except ImportError: return errHtml xCheck = MergeSensorCrossCheck(dataset) files = xCheck.getFileMap() newFiles = xCheck.getPendingUnmergedFiles() totalNew = len(newFiles) if (len(newFiles) == 0) and (len(files) == 0): html = "<html><body>No files for dataset: %s</body></html>" % ( dataset,) return html totalNotMerged = 0 for unmrg, mrg in files.items(): if mrg.strip() == "": totalNotMerged += 1 totalMerged = len(files) - totalNotMerged datasetPng = dataset.replace("/", "", 1) datasetPng = datasetPng.replace("/", "-") datasetPng = "MergeGraph-%s.png" % datasetPng pngfile = os.path.join(self.workingDir, datasetPng) pngfileUrl = "%s?filepath=%s" % (self.imageServer, datasetPng) data = { "new" : totalNew, "merging" : totalNotMerged, "merged" : totalMerged } metadata = {'title':'Merge Status for %s' % dataset} pie = PieGraph() coords = pie.run( data, pngfile, metadata ) html = "<html><body><img src=\"%s\"></body></html>" % pngfileUrl return html
def DatasetGraph(self, span, length, data): errHtml = "<html><body><h2>No Graph Tools installed!!!</h2>\n " errHtml += "</body></html>" try: from graphtool.graphs.common_graphs import PieGraph except ImportError: return errHtml pngfile = os.path.join(self.workingDir, "%s-dataset.png" % length) pngfileUrl = "../%s?filepath=%s" % (self.imageServer, pngfile) metadata = {"title" : "Datests"} pie = PieGraph() coords = pie.run( data, pngfile, metadata ) html = "<html><body><img src=\"%s\"></body></html>" % pngfileUrl return html
#!/usr/bin/env python import os from graphtool.graphs.common_graphs import PieGraph from graphtool.tools.common import expand_string filename = expand_string('$HOME/tmp/pie.png', os.environ) file = open(filename, 'w') data = {'foo': 45, 'bar': 55} metadata = {'title': 'Hello Graphing World!'} pie = PieGraph() coords = pie.run(data, file, metadata)
def index(self,user=None,task=None,eff=None, **rest): if user : string = user elif task: string=task else: string=eff action = string.split('::')[0] query_time = string.split('::')[1] dataset = string.split('::')[2] if action == 'task': tasklist=API.getTaskNameList(dataset,query_time) html = """<html><body>""" html += "<table>\n" html += "<tr>" html += "<th>List of Task</th>" html += "</tr>\n" for t_name, nn in tasklist: html += "<tr>" html += "<td>%s</td>" % ( t_name ) html += "</tr>\n" html += "</table>\n" html += """</body></html>""" elif action == 'user': userlist=API.getUserNameList(dataset,query_time) html = """<html><body>""" html += "<table>\n" html += "<tr>" html += "<th>List of Users</th><th>Number of Tasks </th>" html += "</tr>\n" for num,user in userlist: html += "<tr>" html += "<td>%s</td><td>%s</td>" % ( user,num ) html += "</tr>\n" html += "</table>\n" html += """</body></html>""" elif action == 'eff': if query_time == 'None': html = "<html><body><h2>No codes available</h2>\n " html += "</body></html>" return html else: onlyWrap = API.getWrapExit(dataset,query_time) onlyExec = API.getApplExit(dataset,query_time) data_wrap = {} data_exec = {} for i,code in onlyWrap: data_wrap[str(code)]=i #data_wrap['code']=i for i,code in onlyExec: data_exec[str(code)]=i errHtml = "<html><body><h2>No Graph Tools installed!!!</h2>\n " errHtml += "</body></html>" try: from graphtool.graphs.common_graphs import PieGraph except ImportError: return errHtml pngfile_wrap = os.path.join(self.workingDir, "wrappCode.png" ) pngfileUrl_wrap = "%s?filepath=%s" % (self.imageServer, pngfile_wrap) pngfile_exec = os.path.join(self.workingDir, "applicationCode.png" ) pngfileUrl_exec = "%s?filepath=%s" % (self.imageServer, pngfile_exec) metadata_wrap = {"title" : "Wrapper Error Codes"} metadata_exec = {"title" : "Executable Error Codes"} pie = PieGraph() coords_wrap = pie.run( data_wrap, pngfile_wrap, metadata_wrap ) pie1 = PieGraph() coords_exec = pie1.run( data_exec, pngfile_exec, metadata_exec ) html = '<html><body>' html += '<td align="left"><img src=\"%s\"></td>'% pngfileUrl_exec html += '<td align="left"><img src=\"%s\"></td>'% pngfileUrl_wrap html += """</body></html>""" return html
#!/usr/bin/env python import os from graphtool.graphs.common_graphs import PieGraph from graphtool.tools.common import expand_string filename = expand_string('$HOME/tmp/pie.png',os.environ) file = open( filename, 'w' ) data = {'foo':45, 'bar':55} metadata = {'title':'Hello Graphing World!'} pie = PieGraph() coords = pie.run( data, file, metadata )
def __init__(self): self.plot = PieGraph()