Add a little bit of support to grab info for making graphs
without using the jobfile.
util/stats/db.py:
util/stats/profile.py:
Make it possible to send job as a string and to set the system
separately from the job.
--HG--
extra : convert_revision : 08aaebd3f9a1643bd41953b43f3b80dc97e6592f
This commit is contained in:
@@ -152,17 +152,24 @@ class Database(object):
|
||||
self.method = 'sum'
|
||||
self._method = type(self).sum
|
||||
|
||||
def get(self, job, stat):
|
||||
run = self.allRunNames.get(job.name, None)
|
||||
def get(self, job, stat, system=None):
|
||||
run = self.allRunNames.get(str(job), None)
|
||||
if run is None:
|
||||
return None
|
||||
|
||||
from info import scalar, vector, value, values, total, len
|
||||
stat.system = self[job.system]
|
||||
if scalar(stat):
|
||||
return value(stat, run.run)
|
||||
if vector(stat):
|
||||
return values(stat, run.run)
|
||||
from info import ProxyError, scalar, vector, value, values, total, len
|
||||
if system is None and hasattr('system', job):
|
||||
system = job.system
|
||||
|
||||
if system is not None:
|
||||
stat.system = self[system]
|
||||
try:
|
||||
if scalar(stat):
|
||||
return value(stat, run.run)
|
||||
if vector(stat):
|
||||
return values(stat, run.run)
|
||||
except ProxyError:
|
||||
return None
|
||||
|
||||
return None
|
||||
|
||||
|
||||
@@ -283,13 +283,16 @@ class Profile(object):
|
||||
for cpu,data in cpus.iteritems():
|
||||
yield run,cpu,data
|
||||
|
||||
def get(self, job, stat):
|
||||
if job.system is None:
|
||||
def get(self, job, stat, system=None):
|
||||
if system is None and hasattr('system', job):
|
||||
system = job.system
|
||||
|
||||
if system is None:
|
||||
raise AttributeError, 'The job must have a system set'
|
||||
|
||||
run = job.name
|
||||
cpu = '%s.run%d' % (job.system, self.cpu)
|
||||
data = self.getdata(run, cpu)
|
||||
cpu = '%s.run%d' % (system, self.cpu)
|
||||
|
||||
data = self.getdata(str(job), cpu)
|
||||
if not data:
|
||||
return None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user