diff --git a/src/ska/logging/transactions.py b/src/ska/logging/transactions.py index 312990591e7edbc63f23785b6893104847a45c59..d9a19e987a95876d07bb7a3905659e55d85c9f18 100644 --- a/src/ska/logging/transactions.py +++ b/src/ska/logging/transactions.py @@ -109,10 +109,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( @@ -137,20 +134,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