- """
- def trace(self, name, attr = TraceAttr.ALL, block = 512, offset = 0):
- self.info("Retrieving '%s' trace %s " % (name, attr))
-
- path = os.path.join(self.run_home, name)
-
- command = "(test -f %s && echo 'success') || echo 'error'" % path
- (out, err), proc = self.node.execute(command)
-
- if (err and proc.poll()) or out.find("error") != -1:
- msg = " Couldn't find trace %s " % name
- self.error(msg, out, err)
- return None
-
- if attr == TraceAttr.PATH:
- return path
-
- if attr == TraceAttr.ALL:
- (out, err), proc = self.node.check_output(self.run_home, name)
-
- if proc.poll():
- msg = " Couldn't read trace %s " % name
- self.error(msg, out, err)
- return None
-
- return out
-
- if attr == TraceAttr.STREAM:
- cmd = "dd if=%s bs=%d count=1 skip=%d" % (path, block, offset)
- elif attr == TraceAttr.SIZE:
- cmd = "stat -c%%s %s " % path
-
- (out, err), proc = self.node.execute(cmd)
-
- if proc.poll():
- msg = " Couldn't find trace %s " % name
- self.error(msg, out, err)
- return None
-
- if attr == TraceAttr.SIZE:
- out = int(out.strip())
-
- return out
- """
-