diff options
author | Robert Yang <liezhi.yang@windriver.com> | 2017-03-24 01:45:02 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-03-27 08:15:06 +0100 |
commit | c085688a5bd22bd368921a9cc38c0045720c1e78 (patch) | |
tree | 06417917bb0ce01ac17c3c5d5ee676311e67a0c2 /meta/lib/oeqa/targetcontrol.py | |
parent | b6f5a8ab6b69fea9c6ae71b5eb73f2c32d05b0fa (diff) | |
download | poky-c085688a5bd22bd368921a9cc38c0045720c1e78.tar.gz |
targetcontrol.py: use logger.info to replace of bb.note
The bb.note prints multiple same lines when invoke this class again, but
if we set mainlogger.propagate = False, nothing would be printed,
according to logging's document:
https://docs.python.org/3/library/logging.html
Note
If you attach a handler to a logger and one or more of its ancestors, it
may emit the same record multiple times. In general, you should not need
to attach a handler to more than one logger - if you just attach it to
the appropriate logger which is highest in the logger hierarchy, then it
will see all events logged by all descendant loggers, provided that
their propagate setting is left set to True. A common scenario is to
attach handlers only to the root logger, and to let propagation take
care of the rest.
We may need avoid using bb.note or bb.warn in oeqa since it attaches
multiple log handlers which may cause confusions
This patch only sets "mainlogger.propagate = False" in
selftest/runqemu.py and use logger.info to replace bb.note in
targetcontrol.py to minimize the impact.
[YOCTO #10249]
(From OE-Core rev: b139790422bc8e0d80bad063bb78bc1632731bc1)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oeqa/targetcontrol.py')
-rw-r--r-- | meta/lib/oeqa/targetcontrol.py | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/meta/lib/oeqa/targetcontrol.py b/meta/lib/oeqa/targetcontrol.py index ea89538002..40a2589cc9 100644 --- a/meta/lib/oeqa/targetcontrol.py +++ b/meta/lib/oeqa/targetcontrol.py | |||
@@ -18,6 +18,8 @@ from oeqa.utils.dump import TargetDumper | |||
18 | from oeqa.controllers.testtargetloader import TestTargetLoader | 18 | from oeqa.controllers.testtargetloader import TestTargetLoader |
19 | from abc import ABCMeta, abstractmethod | 19 | from abc import ABCMeta, abstractmethod |
20 | 20 | ||
21 | logger = logging.getLogger('BitBake.QemuRunner') | ||
22 | |||
21 | def get_target_controller(d): | 23 | def get_target_controller(d): |
22 | testtarget = d.getVar("TEST_TARGET") | 24 | testtarget = d.getVar("TEST_TARGET") |
23 | # old, simple names | 25 | # old, simple names |
@@ -63,7 +65,7 @@ class BaseTarget(object, metaclass=ABCMeta): | |||
63 | if os.path.islink(sshloglink): | 65 | if os.path.islink(sshloglink): |
64 | os.unlink(sshloglink) | 66 | os.unlink(sshloglink) |
65 | os.symlink(self.sshlog, sshloglink) | 67 | os.symlink(self.sshlog, sshloglink) |
66 | bb.note("SSH log file: %s" % self.sshlog) | 68 | logger.info("SSH log file: %s" % self.sshlog) |
67 | 69 | ||
68 | @abstractmethod | 70 | @abstractmethod |
69 | def start(self, params=None, ssh=True, extra_bootparams=None): | 71 | def start(self, params=None, ssh=True, extra_bootparams=None): |
@@ -140,7 +142,6 @@ class QemuTarget(BaseTarget): | |||
140 | import oe.path | 142 | import oe.path |
141 | bb.utils.mkdirhier(self.testdir) | 143 | bb.utils.mkdirhier(self.testdir) |
142 | self.qemurunnerlog = os.path.join(self.testdir, 'qemurunner_log.%s' % self.datetime) | 144 | self.qemurunnerlog = os.path.join(self.testdir, 'qemurunner_log.%s' % self.datetime) |
143 | logger = logging.getLogger('BitBake.QemuRunner') | ||
144 | loggerhandler = logging.FileHandler(self.qemurunnerlog) | 145 | loggerhandler = logging.FileHandler(self.qemurunnerlog) |
145 | loggerhandler.setFormatter(logging.Formatter("%(levelname)s: %(message)s")) | 146 | loggerhandler.setFormatter(logging.Formatter("%(levelname)s: %(message)s")) |
146 | logger.addHandler(loggerhandler) | 147 | logger.addHandler(loggerhandler) |
@@ -177,8 +178,8 @@ class QemuTarget(BaseTarget): | |||
177 | os.unlink(qemuloglink) | 178 | os.unlink(qemuloglink) |
178 | os.symlink(self.qemulog, qemuloglink) | 179 | os.symlink(self.qemulog, qemuloglink) |
179 | 180 | ||
180 | bb.note("rootfs file: %s" % self.rootfs) | 181 | logger.info("rootfs file: %s" % self.rootfs) |
181 | bb.note("Qemu log file: %s" % self.qemulog) | 182 | logger.info("Qemu log file: %s" % self.qemulog) |
182 | super(QemuTarget, self).deploy() | 183 | super(QemuTarget, self).deploy() |
183 | 184 | ||
184 | def start(self, params=None, ssh=True, extra_bootparams='', runqemuparams='', launch_cmd=''): | 185 | def start(self, params=None, ssh=True, extra_bootparams='', runqemuparams='', launch_cmd=''): |
@@ -230,14 +231,14 @@ class SimpleRemoteTarget(BaseTarget): | |||
230 | self.port = addr.split(":")[1] | 231 | self.port = addr.split(":")[1] |
231 | except IndexError: | 232 | except IndexError: |
232 | self.port = None | 233 | self.port = None |
233 | bb.note("Target IP: %s" % self.ip) | 234 | logger.info("Target IP: %s" % self.ip) |
234 | self.server_ip = d.getVar("TEST_SERVER_IP") | 235 | self.server_ip = d.getVar("TEST_SERVER_IP") |
235 | if not self.server_ip: | 236 | if not self.server_ip: |
236 | try: | 237 | try: |
237 | self.server_ip = subprocess.check_output(['ip', 'route', 'get', self.ip ]).split("\n")[0].split()[-1] | 238 | self.server_ip = subprocess.check_output(['ip', 'route', 'get', self.ip ]).split("\n")[0].split()[-1] |
238 | except Exception as e: | 239 | except Exception as e: |
239 | bb.fatal("Failed to determine the host IP address (alternatively you can set TEST_SERVER_IP with the IP address of this machine): %s" % e) | 240 | bb.fatal("Failed to determine the host IP address (alternatively you can set TEST_SERVER_IP with the IP address of this machine): %s" % e) |
240 | bb.note("Server IP: %s" % self.server_ip) | 241 | logger.info("Server IP: %s" % self.server_ip) |
241 | 242 | ||
242 | def deploy(self): | 243 | def deploy(self): |
243 | super(SimpleRemoteTarget, self).deploy() | 244 | super(SimpleRemoteTarget, self).deploy() |