]> git.ipfire.org Git - nitsi.git/blobdiff - machine.py
Log all messages to a recipe with the name of the corresponding test
[nitsi.git] / machine.py
index 9fbdf3fb67d05ecd22328235ec3009a22047b00a..7d5f148335d4d7643606ae4aa92000eacbe9848c 100644 (file)
@@ -9,16 +9,28 @@ from serial_connection import serial_connection
 import os
 import libvirt
 
+import logging
+
+logger = logging.getLogger("nitsi.machine")
 
 class machine():
     def __init__(self, libvirt_con, vm_xml_file, snapshot_xml_file, image, root_uid, username, password):
-        self.log = log(4)
+        self.log = logger.getChild(os.path.basename(vm_xml_file))
         self.con = libvirt_con
         try:
             with open(vm_xml_file) as fobj:
                 self.vm_xml = fobj.read()
         except FileNotFoundError as error:
-            self.log.error("No such file: {}".format(vm_xml_file))
+            logger.error("No such file: {}".format(vm_xml_file))
+
+        try:
+            self.name = self.get_name()
+        except BaseException as error:
+            logger.error("Could not get name of the machine: {}".format(vm_xml_file))
+            raise error
+
+        self.log = logger.getChild(self.name)
+        self.log.debug("Name of this machine is {}".format(self.name))
 
         try:
             with open(snapshot_xml_file) as fobj:
@@ -90,6 +102,12 @@ class machine():
         elem = xml_root.find("./devices/serial/source")
         return elem.get("path")
 
+    def get_name(self):
+        xml_root = ET.fromstring(self.vm_xml)
+
+        elem = xml_root.find("./name")
+        return elem.text
+
     def check_is_booted_up(self):
         serial_con = serial_connection(self.get_serial_device())