From 3d0b5e9c12a2f01fdff9db77b5a41d7d637e7201 Mon Sep 17 00:00:00 2001
From: Katleho Madisa <katleho.madisa47@gmail.com>
Date: Mon, 21 Sep 2020 15:02:21 +0000
Subject: [PATCH] SAR-149 Implementing suggestion
 https://gitlab.com/ska-telescope/ska-logging/-/merge_requests/7?diff_id=112182151#note_415872064.

---
 src/ska/logging/transactions.py | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/src/ska/logging/transactions.py b/src/ska/logging/transactions.py
index acf865f..049821b 100644
--- a/src/ska/logging/transactions.py
+++ b/src/ska/logging/transactions.py
@@ -72,10 +72,7 @@ class Transaction:
         self._params = params
         self._transaction_id_key = transaction_id_key
 
-        self._transaction_id = transaction_id if self._is_valid_id(transaction_id) else ""
-
-        if not self._transaction_id:
-            self._transaction_id = self._get_from_params_or_generate_new_id()
+        self._transaction_id = self._get_id_from_params_or_generate_new_id(transaction_id)
 
         if transaction_id and params.get(self._transaction_id_key):
             self.logger.info(
@@ -100,20 +97,27 @@ class Transaction:
         if exc_type:
             raise
 
-    def _get_from_params_or_generate_new_id(self):
-        """Use the transaction_id_key to get the transaction ID from the parameters
-        or generate a new one if it's not there.
+    def _get_id_from_params_or_generate_new_id(self, transaction_id):
+        """At first use the transaction_id passed or use the transaction_id_key to get the
+        transaction ID from the parameters or generate a new one if it's not there.
+
+        Parameters
+        ----------
+        transaction_id : [String]
+            [The transaction ID]
 
         Returns
         -------
         [String]
             [transaction ID]
         """
-        transaction_id = self._params.get(self._transaction_id_key)
-        if not self._is_valid_id(transaction_id):
-            transaction_id = self._generate_new_id()
-            self.logger.info(f"Generated transaction ID {transaction_id}")
-        return transaction_id
+        _transaction_id = (
+            transaction_id if transaction_id else self._params.get(self._transaction_id_key)
+        )
+        if not self._is_valid_id(_transaction_id):
+            _transaction_id = self._generate_new_id()
+            self.logger.info(f"Generated transaction ID {_transaction_id}")
+        return _transaction_id
 
     def _is_valid_id(self, transaction_id):
         """Check if the ID is valid
-- 
GitLab