summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2017-11-08 18:13:24 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-03-04 11:11:59 +0000
commit1659b33553b4c219ff55ef5812e6819ee5983c03 (patch)
tree2fd710f08ea365c69a6d6a283ffb7a5f0cc9cd4d
parent23037f8c910284b4a15d942fed4684d74302333e (diff)
downloadpoky-1659b33553b4c219ff55ef5812e6819ee5983c03.tar.gz
oeqa/qemurunner: Use logger.debug, not logger.info
Bitbake logs info messages to the console. These messages are really there as debugging information. At the debug level, they will be shown in failure logs and in the task logs but not on the console which is what we want in this case. (From OE-Core rev: 5c1cdd4f3ea59a202fff853e0390b9aa5859dc74) (From OE-Core rev: 7274a9caa39c77128ecaf398437e685923ebc2c5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/lib/oeqa/utils/qemurunner.py74
1 files changed, 37 insertions, 37 deletions
diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py
index d5b594347d..12653931f4 100644
--- a/meta/lib/oeqa/utils/qemurunner.py
+++ b/meta/lib/oeqa/utils/qemurunner.py
@@ -68,7 +68,7 @@ class QemuRunner:
68 sock.bind(("127.0.0.1",0)) 68 sock.bind(("127.0.0.1",0))
69 sock.listen(2) 69 sock.listen(2)
70 port = sock.getsockname()[1] 70 port = sock.getsockname()[1]
71 self.logger.info("Created listening socket for qemu serial console on: 127.0.0.1:%s" % port) 71 self.logger.debug("Created listening socket for qemu serial console on: 127.0.0.1:%s" % port)
72 return (sock, port) 72 return (sock, port)
73 73
74 except socket.error: 74 except socket.error:
@@ -95,8 +95,8 @@ class QemuRunner:
95 def handleSIGCHLD(self, signum, frame): 95 def handleSIGCHLD(self, signum, frame):
96 if self.runqemu and self.runqemu.poll(): 96 if self.runqemu and self.runqemu.poll():
97 if self.runqemu.returncode: 97 if self.runqemu.returncode:
98 self.logger.info('runqemu exited with code %d' % self.runqemu.returncode) 98 self.logger.debug('runqemu exited with code %d' % self.runqemu.returncode)
99 self.logger.info("Output from runqemu:\n%s" % self.getOutput(self.runqemu.stdout)) 99 self.logger.debug("Output from runqemu:\n%s" % self.getOutput(self.runqemu.stdout))
100 self.stop() 100 self.stop()
101 self._dump_host() 101 self._dump_host()
102 raise SystemExit 102 raise SystemExit
@@ -124,10 +124,10 @@ class QemuRunner:
124 if not launch_cmd: 124 if not launch_cmd:
125 launch_cmd = 'runqemu %s %s ' % ('snapshot' if discard_writes else '', runqemuparams) 125 launch_cmd = 'runqemu %s %s ' % ('snapshot' if discard_writes else '', runqemuparams)
126 if self.use_kvm: 126 if self.use_kvm:
127 self.logger.info('Using kvm for runqemu') 127 self.logger.debug('Using kvm for runqemu')
128 launch_cmd += ' kvm' 128 launch_cmd += ' kvm'
129 else: 129 else:
130 self.logger.info('Not using kvm for runqemu') 130 self.logger.debug('Not using kvm for runqemu')
131 if not self.display: 131 if not self.display:
132 launch_cmd += ' nographic' 132 launch_cmd += ' nographic'
133 launch_cmd += ' %s %s' % (self.machine, self.rootfs) 133 launch_cmd += ' %s %s' % (self.machine, self.rootfs)
@@ -159,7 +159,7 @@ class QemuRunner:
159 self.origchldhandler = signal.getsignal(signal.SIGCHLD) 159 self.origchldhandler = signal.getsignal(signal.SIGCHLD)
160 signal.signal(signal.SIGCHLD, self.handleSIGCHLD) 160 signal.signal(signal.SIGCHLD, self.handleSIGCHLD)
161 161
162 self.logger.info('launchcmd=%s'%(launch_cmd)) 162 self.logger.debug('launchcmd=%s'%(launch_cmd))
163 163
164 # FIXME: We pass in stdin=subprocess.PIPE here to work around stty 164 # FIXME: We pass in stdin=subprocess.PIPE here to work around stty
165 # blocking at the end of the runqemu script when using this within 165 # blocking at the end of the runqemu script when using this within
@@ -194,17 +194,17 @@ class QemuRunner:
194 os.killpg(os.getpgid(self.runqemu.pid), signal.SIGTERM) 194 os.killpg(os.getpgid(self.runqemu.pid), signal.SIGTERM)
195 sys.exit(0) 195 sys.exit(0)
196 196
197 self.logger.info("runqemu started, pid is %s" % self.runqemu.pid) 197 self.logger.debug("runqemu started, pid is %s" % self.runqemu.pid)
198 self.logger.info("waiting at most %s seconds for qemu pid" % self.runqemutime) 198 self.logger.debug("waiting at most %s seconds for qemu pid" % self.runqemutime)
199 endtime = time.time() + self.runqemutime 199 endtime = time.time() + self.runqemutime
200 while not self.is_alive() and time.time() < endtime: 200 while not self.is_alive() and time.time() < endtime:
201 if self.runqemu.poll(): 201 if self.runqemu.poll():
202 if self.runqemu.returncode: 202 if self.runqemu.returncode:
203 # No point waiting any longer 203 # No point waiting any longer
204 self.logger.info('runqemu exited with code %d' % self.runqemu.returncode) 204 self.logger.debug('runqemu exited with code %d' % self.runqemu.returncode)
205 self._dump_host() 205 self._dump_host()
206 self.stop() 206 self.stop()
207 self.logger.info("Output from runqemu:\n%s" % self.getOutput(output)) 207 self.logger.debug("Output from runqemu:\n%s" % self.getOutput(output))
208 return False 208 return False
209 time.sleep(0.5) 209 time.sleep(0.5)
210 210
@@ -213,7 +213,7 @@ class QemuRunner:
213 # Dump all processes to help us to figure out what is going on... 213 # Dump all processes to help us to figure out what is going on...
214 ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,command '], stdout=subprocess.PIPE).communicate()[0] 214 ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,command '], stdout=subprocess.PIPE).communicate()[0]
215 processes = ps.decode("utf-8") 215 processes = ps.decode("utf-8")
216 self.logger.info("Running processes:\n%s" % processes) 216 self.logger.debug("Running processes:\n%s" % processes)
217 self._dump_host() 217 self._dump_host()
218 self.stop() 218 self.stop()
219 op = self.getOutput(output) 219 op = self.getOutput(output)
@@ -226,7 +226,7 @@ class QemuRunner:
226 # We are alive: qemu is running 226 # We are alive: qemu is running
227 out = self.getOutput(output) 227 out = self.getOutput(output)
228 netconf = False # network configuration is not required by default 228 netconf = False # network configuration is not required by default
229 self.logger.info("qemu started in %s seconds - qemu procces pid is %s" % (time.time() - (endtime - self.runqemutime), self.qemupid)) 229 self.logger.debug("qemu started in %s seconds - qemu procces pid is %s" % (time.time() - (endtime - self.runqemutime), self.qemupid))
230 if get_ip: 230 if get_ip:
231 cmdline = '' 231 cmdline = ''
232 with open('/proc/%s/cmdline' % self.qemupid) as p: 232 with open('/proc/%s/cmdline' % self.qemupid) as p:
@@ -238,7 +238,7 @@ class QemuRunner:
238 ips = re.findall("((?:[0-9]{1,3}\.){3}[0-9]{1,3})", cmdline.split("ip=")[1]) 238 ips = re.findall("((?:[0-9]{1,3}\.){3}[0-9]{1,3})", cmdline.split("ip=")[1])
239 self.ip = ips[0] 239 self.ip = ips[0]
240 self.server_ip = ips[1] 240 self.server_ip = ips[1]
241 self.logger.info("qemu cmdline used:\n{}".format(cmdline)) 241 self.logger.debug("qemu cmdline used:\n{}".format(cmdline))
242 except (IndexError, ValueError): 242 except (IndexError, ValueError):
243 # Try to get network configuration from runqemu output 243 # Try to get network configuration from runqemu output
244 match = re.match('.*Network configuration: ([0-9.]+)::([0-9.]+):([0-9.]+)$.*', 244 match = re.match('.*Network configuration: ([0-9.]+)::([0-9.]+):([0-9.]+)$.*',
@@ -257,8 +257,8 @@ class QemuRunner:
257 self.stop() 257 self.stop()
258 return False 258 return False
259 259
260 self.logger.info("Target IP: %s" % self.ip) 260 self.logger.debug("Target IP: %s" % self.ip)
261 self.logger.info("Server IP: %s" % self.server_ip) 261 self.logger.debug("Server IP: %s" % self.server_ip)
262 262
263 self.thread = LoggingThread(self.log, threadsock, self.logger) 263 self.thread = LoggingThread(self.log, threadsock, self.logger)
264 self.thread.start() 264 self.thread.start()
@@ -269,8 +269,8 @@ class QemuRunner:
269 self.stop_thread() 269 self.stop_thread()
270 return False 270 return False
271 271
272 self.logger.info("Output from runqemu:\n%s", out) 272 self.logger.debug("Output from runqemu:\n%s", out)
273 self.logger.info("Waiting at most %d seconds for login banner" % self.boottime) 273 self.logger.debug("Waiting at most %d seconds for login banner" % self.boottime)
274 endtime = time.time() + self.boottime 274 endtime = time.time() + self.boottime
275 socklist = [self.server_socket] 275 socklist = [self.server_socket]
276 reachedlogin = False 276 reachedlogin = False
@@ -289,7 +289,7 @@ class QemuRunner:
289 qemusock.setblocking(0) 289 qemusock.setblocking(0)
290 socklist.append(qemusock) 290 socklist.append(qemusock)
291 socklist.remove(self.server_socket) 291 socklist.remove(self.server_socket)
292 self.logger.info("Connection from %s:%s" % addr) 292 self.logger.debug("Connection from %s:%s" % addr)
293 else: 293 else:
294 data = data + sock.recv(1024) 294 data = data + sock.recv(1024)
295 if data: 295 if data:
@@ -301,7 +301,7 @@ class QemuRunner:
301 self.server_socket = qemusock 301 self.server_socket = qemusock
302 stopread = True 302 stopread = True
303 reachedlogin = True 303 reachedlogin = True
304 self.logger.info("Reached login banner") 304 self.logger.debug("Reached login banner")
305 except UnicodeDecodeError: 305 except UnicodeDecodeError:
306 continue 306 continue
307 else: 307 else:
@@ -311,12 +311,12 @@ class QemuRunner:
311 311
312 312
313 if not reachedlogin: 313 if not reachedlogin:
314 self.logger.info("Target didn't reached login boot in %d seconds" % self.boottime) 314 self.logger.debug("Target didn't reached login boot in %d seconds" % self.boottime)
315 tail = lambda l: "\n".join(l.splitlines()[-25:]) 315 tail = lambda l: "\n".join(l.splitlines()[-25:])
316 # in case bootlog is empty, use tail qemu log store at self.msg 316 # in case bootlog is empty, use tail qemu log store at self.msg
317 lines = tail(bootlog if bootlog else self.msg) 317 lines = tail(bootlog if bootlog else self.msg)
318 self.logger.info("Last 25 lines of text:\n%s" % lines) 318 self.logger.debug("Last 25 lines of text:\n%s" % lines)
319 self.logger.info("Check full boot log: %s" % self.logfile) 319 self.logger.debug("Check full boot log: %s" % self.logfile)
320 self._dump_host() 320 self._dump_host()
321 self.stop() 321 self.stop()
322 return False 322 return False
@@ -326,20 +326,20 @@ class QemuRunner:
326 (status, output) = self.run_serial("root\n", raw=True) 326 (status, output) = self.run_serial("root\n", raw=True)
327 if re.search("root@[a-zA-Z0-9\-]+:~#", output): 327 if re.search("root@[a-zA-Z0-9\-]+:~#", output):
328 self.logged = True 328 self.logged = True
329 self.logger.info("Logged as root in serial console") 329 self.logger.debug("Logged as root in serial console")
330 if netconf: 330 if netconf:
331 # configure guest networking 331 # configure guest networking
332 cmd = "ifconfig eth0 %s netmask %s up\n" % (self.ip, self.netmask) 332 cmd = "ifconfig eth0 %s netmask %s up\n" % (self.ip, self.netmask)
333 output = self.run_serial(cmd, raw=True)[1] 333 output = self.run_serial(cmd, raw=True)[1]
334 if re.search("root@[a-zA-Z0-9\-]+:~#", output): 334 if re.search("root@[a-zA-Z0-9\-]+:~#", output):
335 self.logger.info("configured ip address %s", self.ip) 335 self.logger.debug("configured ip address %s", self.ip)
336 else: 336 else:
337 self.logger.info("Couldn't configure guest networking") 337 self.logger.debug("Couldn't configure guest networking")
338 else: 338 else:
339 self.logger.info("Couldn't login into serial console" 339 self.logger.debug("Couldn't login into serial console"
340 " as root using blank password") 340 " as root using blank password")
341 except: 341 except:
342 self.logger.info("Serial console failed while trying to login") 342 self.logger.debug("Serial console failed while trying to login")
343 return True 343 return True
344 344
345 def stop(self): 345 def stop(self):
@@ -350,7 +350,7 @@ class QemuRunner:
350 if self.runqemu: 350 if self.runqemu:
351 if hasattr(self, "monitorpid"): 351 if hasattr(self, "monitorpid"):
352 os.kill(self.monitorpid, signal.SIGKILL) 352 os.kill(self.monitorpid, signal.SIGKILL)
353 self.logger.info("Sending SIGTERM to runqemu") 353 self.logger.debug("Sending SIGTERM to runqemu")
354 try: 354 try:
355 os.killpg(os.getpgid(self.runqemu.pid), signal.SIGTERM) 355 os.killpg(os.getpgid(self.runqemu.pid), signal.SIGTERM)
356 except OSError as e: 356 except OSError as e:
@@ -360,7 +360,7 @@ class QemuRunner:
360 while self.runqemu.poll() is None and time.time() < endtime: 360 while self.runqemu.poll() is None and time.time() < endtime:
361 time.sleep(1) 361 time.sleep(1)
362 if self.runqemu.poll() is None: 362 if self.runqemu.poll() is None:
363 self.logger.info("Sending SIGKILL to runqemu") 363 self.logger.debug("Sending SIGKILL to runqemu")
364 os.killpg(os.getpgid(self.runqemu.pid), signal.SIGKILL) 364 os.killpg(os.getpgid(self.runqemu.pid), signal.SIGKILL)
365 self.runqemu = None 365 self.runqemu = None
366 if hasattr(self, 'server_socket') and self.server_socket: 366 if hasattr(self, 'server_socket') and self.server_socket:
@@ -386,7 +386,7 @@ class QemuRunner:
386 self.thread.join() 386 self.thread.join()
387 387
388 def restart(self, qemuparams = None): 388 def restart(self, qemuparams = None):
389 self.logger.info("Restarting qemu process") 389 self.logger.debug("Restarting qemu process")
390 if self.runqemu.poll() is None: 390 if self.runqemu.poll() is None:
391 self.stop() 391 self.stop()
392 if self.start(qemuparams): 392 if self.start(qemuparams):
@@ -484,17 +484,17 @@ class LoggingThread(threading.Thread):
484 self.teardown() 484 self.teardown()
485 485
486 def run(self): 486 def run(self):
487 self.logger.info("Starting logging thread") 487 self.logger.debug("Starting logging thread")
488 self.readpipe, self.writepipe = os.pipe() 488 self.readpipe, self.writepipe = os.pipe()
489 threading.Thread.run(self) 489 threading.Thread.run(self)
490 490
491 def stop(self): 491 def stop(self):
492 self.logger.info("Stopping logging thread") 492 self.logger.debug("Stopping logging thread")
493 if self.running: 493 if self.running:
494 os.write(self.writepipe, bytes("stop", "utf-8")) 494 os.write(self.writepipe, bytes("stop", "utf-8"))
495 495
496 def teardown(self): 496 def teardown(self):
497 self.logger.info("Tearing down logging thread") 497 self.logger.debug("Tearing down logging thread")
498 self.close_socket(self.serversock) 498 self.close_socket(self.serversock)
499 499
500 if self.readsock is not None: 500 if self.readsock is not None:
@@ -512,7 +512,7 @@ class LoggingThread(threading.Thread):
512 512
513 breakout = False 513 breakout = False
514 self.running = True 514 self.running = True
515 self.logger.info("Starting thread event loop") 515 self.logger.debug("Starting thread event loop")
516 while not breakout: 516 while not breakout:
517 events = poll.poll() 517 events = poll.poll()
518 for event in events: 518 for event in events:
@@ -522,19 +522,19 @@ class LoggingThread(threading.Thread):
522 522
523 # Event to stop the thread 523 # Event to stop the thread
524 if self.readpipe == event[0]: 524 if self.readpipe == event[0]:
525 self.logger.info("Stop event received") 525 self.logger.debug("Stop event received")
526 breakout = True 526 breakout = True
527 break 527 break
528 528
529 # A connection request was received 529 # A connection request was received
530 elif self.serversock.fileno() == event[0]: 530 elif self.serversock.fileno() == event[0]:
531 self.logger.info("Connection request received") 531 self.logger.debug("Connection request received")
532 self.readsock, _ = self.serversock.accept() 532 self.readsock, _ = self.serversock.accept()
533 self.readsock.setblocking(0) 533 self.readsock.setblocking(0)
534 poll.unregister(self.serversock.fileno()) 534 poll.unregister(self.serversock.fileno())
535 poll.register(self.readsock.fileno(), event_read_mask) 535 poll.register(self.readsock.fileno(), event_read_mask)
536 536
537 self.logger.info("Setting connection established event") 537 self.logger.debug("Setting connection established event")
538 self.connection_established.set() 538 self.connection_established.set()
539 539
540 # Actual data to be logged 540 # Actual data to be logged