]> git.ipfire.org Git - nitsi.git/commitdiff
Format the name in the log file always with the same length
authorJonatan Schlag <jonatan.schlag@ipfire.org>
Wed, 9 May 2018 11:32:32 +0000 (13:32 +0200)
committerJonatan Schlag <jonatan.schlag@ipfire.org>
Wed, 9 May 2018 11:32:32 +0000 (13:32 +0200)
Signed-off-by: Jonatan Schlag <jonatan.schlag@ipfire.org>
src/nitsi/logger.py
src/nitsi/machine.py
src/nitsi/serial_connection.py
src/nitsi/test.py
src/nitsi/virtual_environ.py

index 8f90651e6c8296e04ffe1ddd5ae1919aaba1595e..7990732e5e3dfe5c6f77e1bf03b7d970043e7318 100644 (file)
@@ -38,7 +38,7 @@ def init_logging(path):
 
 
 class TestFormatter(logging.Formatter):
-    def __init__(self, start_time=None, name=None):
+    def __init__(self, start_time=None, name=None, longest_machine_name=10):
         super().__init__(fmt="[%(asctime)s] %(message)s")
         logger.debug("Initiating TestFormatter for")
         if start_time == None:
@@ -51,6 +51,8 @@ class TestFormatter(logging.Formatter):
         else:
             self.name = name
 
+        self.longest_machine_name = longest_machine_name
+
     def converter(self, recordtime):
 
         # This returns a timestamp relatively to the time when we started
@@ -61,7 +63,10 @@ class TestFormatter(logging.Formatter):
         return time.gmtime(recordtime)
 
     def format(self, record):
-        return "[{}][{}] {}".format(self.formatTime(record), self.name, record.getMessage())
+        return "[{}][{:^{align}}] {}".format(self.formatTime(record),
+                                                self.name,
+                                                record.getMessage(),
+                                                align=self.longest_machine_name)
 
     def formatTime(self, record, datefmt=None):
         ct = self.converter(record.created)
index 230e8558bc3cdd8e78d2af1719ed15fc795bbed1..795a0b8d1a9551fbcff1d81a28d5599b18bc9ccc 100644 (file)
@@ -117,13 +117,14 @@ class machine():
 
         #serial_con.close()
 
-    def login(self, log_file, log_start_time=None):
+    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,
                                 log_file=log_file,
                                 log_start_time=log_start_time,
-                                name=self.name)
+                                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")
index 5e60be3bfc0ffef75a8e66ad4f37a61cd4f78789..f9c04fea625c435c73b57fd521d246e41ece333f 100644 (file)
@@ -13,7 +13,7 @@ from nitsi.logger import TestFormatter
 logger = logging.getLogger("nitsi.serial")
 
 class serial_connection():
-    def __init__(self, device, username=None, log_file=None, name=None, log_start_time=None):
+    def __init__(self, device, username=None, log_file=None, name=None, log_start_time=None, longest_machine_name=10):
         self.buffer = b""
         self.back_at_prompt_pattern =  None
         self.username = username
@@ -27,7 +27,9 @@ class serial_connection():
         log_file_handler = logging.FileHandler(self.log_file)
         log_file_handler.setLevel(logging.INFO)
         log_file_handler.terminator = ""
-        formatter = TestFormatter(name=self.name, start_time=log_start_time)
+        formatter = TestFormatter(name=self.name,
+                                    start_time=log_start_time,
+                                    longest_machine_name=longest_machine_name)
         log_file_handler.setFormatter(formatter)
         self.log_output.addHandler(log_file_handler)
 
index 413518e72c68e1d8444ac5a568f3d26af7e62f17..ecbe5f059795731ab1151520b655eefdcc2c6d96 100755 (executable)
@@ -78,10 +78,15 @@ class test():
         # Time to which all serial output log entries are relativ
         log_start_time = time.time()
 
+        # Number of chars of the longest machine name
+        longest_machine_name = self.virtual_environ.longest_machine_name
+
         self.log.debug("Try to login on all machines")
         for name in self.virtual_environ.machine_names:
             self.log.debug("Try to login on {}".format(name))
-            self.virtual_machines[name].login("{}/test.log".format(self.log_path), log_start_time)
+            self.virtual_machines[name].login("{}/test.log".format(self.log_path),
+                                                log_start_time=log_start_time,
+                                                longest_machine_name=longest_machine_name)
 
     def load_recipe(self):
         self.log.info("Going to load the recipe")
index 586d433a84e5c7d55431d154671186be2b24e303..3dc86fdae9329f368d45cccdad1ca987ec022bd5 100644 (file)
@@ -45,6 +45,9 @@ class virtual_environ():
         self.log.debug(self.machines)
         self.log.debug(self.networks)
 
+        # Number of characters of the longest machine name
+        self._longest_machine_name = 0
+
         self.uri = self.config["DEFAULT"]["uri"]
 
         try:
@@ -82,4 +85,15 @@ class virtual_environ():
 
     @property
     def network_names(self):
-        return self.networks
\ No newline at end of file
+        return self.networks
+
+    @property
+    def longest_machine_name(self):
+        if self._longest_machine_name:
+            return self._longest_machine_name
+        else:
+            for _machine in self.machines:
+                if len(_machine) > self._longest_machine_name:
+                    self._longest_machine_name = len(_machine)
+
+            return self._longest_machine_name
\ No newline at end of file