Hi Mariano, please find my comments below.
On Tue, 2015-08-25 at 10:55 -0500, [email protected] wrote: > From: Mariano Lopez <[email protected]> > > This allows to have datastore variables in the dump > commands and will get the data when a new instance > it's created. > > Also this remove special cases from the commands. > > [YOCTO #8118] > > Signed-off-by: Mariano Lopez <[email protected]> > --- > meta/classes/testimage.bbclass | 7 +++++-- > meta/lib/oeqa/utils/dump.py | 42 ++++++++++++++++++++++++++------ > ---------- > 2 files changed, 31 insertions(+), 18 deletions(-) > > diff --git a/meta/classes/testimage.bbclass > b/meta/classes/testimage.bbclass > index 2131869..6a4b80a 100644 > --- a/meta/classes/testimage.bbclass > +++ b/meta/classes/testimage.bbclass > @@ -63,11 +63,14 @@ testimage_dump_target () { > ps > free > df > - _ping > + # The next command will export the default gateway IP > + export DEFAULT_GATEWAY=$(ip route | awk '/default/ { print $3}') > + ping -c3 $DEFAULT_GATEWAY > dmesg > netstat -an > ip address > - _logs > + # Next command will dump logs from /var/log/ suggestion to make this a function and call it from here. > + find /var/log/ -type f 2>/dev/null -exec echo > "====================" \; -exec echo {} \; -exec echo > "====================" \; -exec cat {} \; -exec echo "" \; > } > > testimage_dump_host () { > diff --git a/meta/lib/oeqa/utils/dump.py > b/meta/lib/oeqa/utils/dump.py > index a0fa699..a76aede 100644 > --- a/meta/lib/oeqa/utils/dump.py > +++ b/meta/lib/oeqa/utils/dump.py > @@ -11,8 +11,24 @@ def get_host_dumper(d): > > class BaseDumper(object): > > - def __init__(self, d): > + def __init__(self, d, cmds): > + self.cmds = [] > self.parent_dir = d.getVar("TESTIMAGE_DUMP_DIR", True) > + for cmd in cmds.split('\n'): > + cmd = cmd.lstrip() > + if not cmd or cmd[0] == '#': > + continue > + # Replae variables from the datastore *Replace > + while True: > + index_start = cmd.find("${") > + if index_start == -1: > + break > + index_start += 2 > + index_end = cmd.find("}", index_start) > + var = cmd[index_start:index_end] > + value = d.getVar(var, True) > + cmd = cmd.replace("${%s}" % var, value) > + self.cmds.append(cmd) > > def create_dir(self, dir_suffix): > dump_subdir = ("%s_%s" % ( > @@ -26,7 +42,7 @@ class BaseDumper(object): > raise err > self.dump_dir = dump_dir > > - def write_dump(self, command, output): > + def _write_dump(self, command, output): > if isinstance(self, HostDumper): > prefix = "host" > elif isinstance(self, TargetDumper): > @@ -45,33 +61,27 @@ class BaseDumper(object): > class HostDumper(BaseDumper): > > def __init__(self, d): > - super(HostDumper, self).__init__(d) > - self.host_cmds = d.getVar("testimage_dump_host", True) > + host_cmds = d.getVar("testimage_dump_host", True) > + super(HostDumper, self).__init__(d, host_cmds) > > def dump_host(self, dump_dir=""): > if dump_dir: > self.dump_dir = dump_dir > - for cmd in self.host_cmds.split('\n'): > - cmd = cmd.lstrip() > - if not cmd or cmd[0] == '#': > - continue > + for cmd in self.cmds: > result = runCmd(cmd, ignore_status=True) > - self.write_dump(cmd.split()[0], result.output) > + self._write_dump(cmd.split()[0], result.output) > > > class TargetDumper(BaseDumper): > Wondering why there is not a base class Dumper that inherits to TargetDumper and HostDumper > def __init__(self, d, qemurunner): > - super(TargetDumper, self).__init__(d) > - self.target_cmds = d.getVar("testimage_dump_target", True) > + target_cmds = d.getVar("testimage_dump_target", True) > + super(TargetDumper, self).__init__(d, target_cmds) > self.runner = qemurunner > > def dump_target(self, dump_dir=""): > if dump_dir: > self.dump_dir = dump_dir > - for cmd in self.target_cmds.split('\n'): > - cmd = cmd.lstrip() > - if not cmd or cmd[0] == '#': > - continue > + for cmd in self.cmds: > (status, output) = self.runner.run_serial(cmd) > - self.write_dump(cmd.split()[0], output) > + self._write_dump(cmd.split()[0], output) > -- > 1.9.1 > -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
