]> git.ipfire.org Git - nitsi.git/blobdiff - src/nitsi/machine.py
Improving error message and undefining of network objects
[nitsi.git] / src / nitsi / machine.py
index b49fe302f825f664629078111014df57bcb81c84..0b4617aed8dcbb0df1ec094a414dbfce73621e42 100644 (file)
@@ -1,15 +1,12 @@
 #!/usr/bin/python3
 
-import xml.etree.ElementTree as ET
-
-from nitsi.disk import disk
-
-from nitsi.serial_connection import serial_connection
-
-import os
 import libvirt
-
 import logging
+import os
+import xml.etree.ElementTree as ET
+
+from . import disk
+from . import serial_connection
 
 logger = logging.getLogger("nitsi.machine")
 
@@ -44,7 +41,7 @@ class machine():
             self.log.error("No such file: {}".format(self.image))
 
         self.root_uid = root_uid
-        self.disk = disk(image)
+        self.disk = disk.disk(image)
 
         self.username = username
         self.password = password
@@ -109,7 +106,7 @@ class machine():
         return elem.text
 
     def check_is_booted_up(self):
-        serial_con = serial_connection(self.get_serial_device())
+        serial_con = serial_connection.serial_connection(self.get_serial_device())
 
         serial_con.write("\n")
         # This will block till the domain is booted up
@@ -117,12 +114,19 @@ class machine():
 
         #serial_con.close()
 
-    def login(self):
+    def login(self, log_file, log_start_time=None, longest_machine_name=10):
         try:
-            self.serial_con = serial_connection(self.get_serial_device(), username=self.username)
+            self.serial_con = serial_connection.serial_connection(self.get_serial_device(),
+                                username=self.username,
+                                log_file=log_file,
+                                log_start_time=log_start_time,
+                                name=self.name,
+                                longest_machine_name=longest_machine_name)
             self.serial_con.login(self.password)
         except BaseException as e:
             self.log.error("Could not connect to the domain via serial console")
+            self.log.exception(e)
+            raise e
 
     def cmd(self, cmd):
         return self.serial_con.command(cmd)
@@ -135,4 +139,4 @@ class machine():
             self.log.error(e)
         finally:
             self.disk.umount("/")
-            self.disk.close()
\ No newline at end of file
+            self.disk.close()