From 5a23115811fda90185a667ff6c4e4c553a7ecf36 Mon Sep 17 00:00:00 2001
From: Jiri Podivin <jpodivin@redhat.com>
Date: Tue, 22 Nov 2022 11:09:05 +0100
Subject: [PATCH] Expanding logging facilities to rest of the framework

Logger was introduced in If8ed6510dad16dc8495717789bb132b957828e0d
and so far has been performing admirably.

We can now expand it to the rest of the library and remove leftovers
from the original setup. This way we can establish proper monitoring
of code execution across our tool and provide operators with
more actionable information.

Signed-off-by: Jiri Podivin <jpodivin@redhat.com>
Change-Id: I3dd296c8b8b9a33f87a451dd7bef68b38ba60af7
---
 validations_libs/ansible.py                       |  6 +++---
 validations_libs/cli/common.py                    |  4 ++--
 validations_libs/cli/community.py                 |  4 ++--
 validations_libs/community/init_validation.py     |  4 ++--
 validations_libs/group.py                         |  4 ++--
 validations_libs/tests/test_ansible.py            |  2 +-
 validations_libs/tests/test_validation_actions.py |  5 +++--
 validations_libs/validation.py                    |  4 ++--
 validations_libs/validation_actions.py            | 12 ++++++------
 validations_libs/validation_logs.py               |  8 ++++----
 10 files changed, 27 insertions(+), 26 deletions(-)

diff --git a/validations_libs/ansible.py b/validations_libs/ansible.py
index 09c65c86..dea6c639 100644
--- a/validations_libs/ansible.py
+++ b/validations_libs/ansible.py
@@ -14,7 +14,7 @@
 #
 
 import ansible_runner
-import logging
+from validations_libs.logger import getLogger
 import pkg_resources
 import pwd
 import os
@@ -27,7 +27,7 @@ import configparser
 from validations_libs import constants
 from validations_libs import utils
 
-LOG = logging.getLogger(__name__ + ".ansible")
+LOG = getLogger(__name__ + ".ansible")
 
 # NOTE(cloudnull): This is setting the FileExistsError for py2 environments.
 #                  When we no longer support py2 (centos7) this should be
@@ -48,7 +48,7 @@ class Ansible:
     """An Object for encapsulating an Ansible execution"""
 
     def __init__(self, uuid=None):
-        self.log = logging.getLogger(__name__ + ".Ansible")
+        self.log = getLogger(__name__ + ".Ansible")
         self.uuid = uuid
 
     def _playbook_check(self, play, playbook_dir=None):
diff --git a/validations_libs/cli/common.py b/validations_libs/cli/common.py
index 148a0f1b..e4c2d61f 100644
--- a/validations_libs/cli/common.py
+++ b/validations_libs/cli/common.py
@@ -17,7 +17,7 @@
 from argparse import ArgumentDefaultsHelpFormatter
 from cliff import _argparse
 import json
-import logging
+from validations_libs.logger import getLogger
 from prettytable import PrettyTable
 import re
 import sys
@@ -92,7 +92,7 @@ def write_output(output_log, results):
 def write_junitxml(output_junitxml, results):
     """Write output file as JUnitXML format"""
     if not JUNIT_XML_FOUND:
-        log = logging.getLogger(__name__ + ".write_junitxml")
+        log = getLogger(__name__ + ".write_junitxml")
         log.warning('junitxml output disabled: the `junit_xml` python module '
                     'is missing.')
         return
diff --git a/validations_libs/cli/community.py b/validations_libs/cli/community.py
index 9437c8ac..0c9d56ea 100644
--- a/validations_libs/cli/community.py
+++ b/validations_libs/cli/community.py
@@ -14,7 +14,7 @@
 #   License for the specific language governing permissions and limitations
 #   under the License.
 
-import logging
+from validations_libs.logger import getLogger
 import os
 
 from validations_libs import constants, utils
@@ -22,7 +22,7 @@ from validations_libs.cli.base import BaseCommand
 from validations_libs.community.init_validation import \
     CommunityValidation as com_val
 
-LOG = logging.getLogger(__name__)
+LOG = getLogger(__name__)
 
 
 class CommunityValidationInit(BaseCommand):
diff --git a/validations_libs/community/init_validation.py b/validations_libs/community/init_validation.py
index c35601df..99f075dd 100644
--- a/validations_libs/community/init_validation.py
+++ b/validations_libs/community/init_validation.py
@@ -15,7 +15,7 @@
 #   under the License.
 #
 
-import logging
+from validations_libs.logger import getLogger
 import re
 import os
 # @matbu backward compatibility for stable/train
@@ -26,7 +26,7 @@ except ImportError:
 
 from validations_libs import constants, utils
 
-LOG = logging.getLogger(__name__)
+LOG = getLogger(__name__)
 
 
 class CommunityValidation:
diff --git a/validations_libs/group.py b/validations_libs/group.py
index b868ddcc..5e5f4a64 100644
--- a/validations_libs/group.py
+++ b/validations_libs/group.py
@@ -13,10 +13,10 @@
 #   under the License.
 #
 
-import logging
+from validations_libs.logger import getLogger
 import yaml
 
-LOG = logging.getLogger(__name__ + ".Group")
+LOG = getLogger(__name__ + ".Group")
 
 
 class Group:
diff --git a/validations_libs/tests/test_ansible.py b/validations_libs/tests/test_ansible.py
index df44e149..882406ea 100644
--- a/validations_libs/tests/test_ansible.py
+++ b/validations_libs/tests/test_ansible.py
@@ -56,7 +56,7 @@ class TestAnsible(TestCase):
         self.run = Ansible()
         self.run.log = mock.MagicMock()
 
-    @mock.patch('logging.getLogger')
+    @mock.patch('validations_libs.ansible.getLogger')
     def test_ansible_init(self, mock_logger):
         """
         Test of Ansible init.
diff --git a/validations_libs/tests/test_validation_actions.py b/validations_libs/tests/test_validation_actions.py
index 951a0b3d..80b90617 100644
--- a/validations_libs/tests/test_validation_actions.py
+++ b/validations_libs/tests/test_validation_actions.py
@@ -536,7 +536,8 @@ class TestValidationActions(TestCase):
                                    '2019-11-25T13:40:14.404623Z',
                                    '0:00:03.753')])
 
-    @mock.patch('os.stat')
+    @mock.patch('validations_libs.validation_actions.getLogger')
+    @mock.patch('validations_libs.validation_actions.os.stat')
     @mock.patch('validations_libs.validation_logs.ValidationLogs.'
                 'get_all_logfiles',
                 return_value=[
@@ -546,7 +547,7 @@ class TestValidationActions(TestCase):
                 return_value=fakes.VALIDATIONS_LOGS_CONTENTS_LIST[0])
     @mock.patch('builtins.open')
     def test_show_history_most_recent(self, mock_open, mock_load,
-                                      mock_get_log, mock_stat):
+                                      mock_get_log, mock_stat, mock_logger):
 
         first_validation = mock.MagicMock()
         second_validation = mock.MagicMock()
diff --git a/validations_libs/validation.py b/validations_libs/validation.py
index eb18749e..65300b1b 100644
--- a/validations_libs/validation.py
+++ b/validations_libs/validation.py
@@ -13,12 +13,12 @@
 #   under the License.
 #
 
-import logging
+from validations_libs.logger import getLogger
 import os
 import yaml
 from collections import OrderedDict
 
-LOG = logging.getLogger(__name__ + ".validation")
+LOG = getLogger(__name__ + ".validation")
 
 
 class Validation:
diff --git a/validations_libs/validation_actions.py b/validations_libs/validation_actions.py
index 2ac923dc..a1275429 100644
--- a/validations_libs/validation_actions.py
+++ b/validations_libs/validation_actions.py
@@ -12,7 +12,7 @@
 #   License for the specific language governing permissions and limitations
 #   under the License.
 #
-import logging
+from validations_libs.logger import getLogger
 import os
 import sys
 import json
@@ -26,7 +26,7 @@ from validations_libs import constants
 from validations_libs import utils as v_utils
 from validations_libs.exceptions import ValidationRunException, ValidationShowException
 
-LOG = logging.getLogger(__name__ + ".validation_actions")
+LOG = getLogger(__name__ + ".validation_actions")
 
 
 class ValidationActions:
@@ -55,7 +55,7 @@ class ValidationActions:
                            (Defaults to ``constants.VALIDATIONS_LOG_BASEDIR``)
         :type log_path: ``string``
         """
-        self.log = logging.getLogger(__name__ + ".ValidationActions")
+        self.log = getLogger(__name__ + ".ValidationActions")
         self.validation_path = validation_path
         self.log_path = log_path
 
@@ -119,7 +119,7 @@ class ValidationActions:
            ['category2'],
            ['product2'])])
         """
-        self.log = logging.getLogger(__name__ + ".list_validations")
+        self.log = getLogger(__name__ + ".list_validations")
 
         validations = v_utils.parse_all_validations_on_disk(
             path=self.validation_path,
@@ -177,7 +177,7 @@ class ValidationActions:
          'Parameters': {'foo1': bar1}
         }
         """
-        self.log = logging.getLogger(__name__ + ".show_validations")
+        self.log = getLogger(__name__ + ".show_validations")
         # Get validation data:
         vlog = ValidationLogs(self.log_path)
         data = v_utils.get_validations_data(
@@ -415,7 +415,7 @@ class ValidationActions:
           'Unreachable_Hosts': '',
           'Validations': 'bar'}]
         """
-        self.log = logging.getLogger(__name__ + ".run_validations")
+        self.log = getLogger(__name__ + ".run_validations")
         playbooks = []
         validations_dir = (validations_dir if validations_dir
                            else self.validation_path)
diff --git a/validations_libs/validation_logs.py b/validations_libs/validation_logs.py
index fda5b762..539a1d87 100644
--- a/validations_libs/validation_logs.py
+++ b/validations_libs/validation_logs.py
@@ -14,14 +14,14 @@
 #
 import json
 import glob
-import logging
+from validations_libs.logger import getLogger
 import os
 import time
 from os.path import join
 
 from validations_libs import constants
 
-LOG = logging.getLogger(__name__ + ".validation_logs")
+LOG = getLogger(__name__ + ".validation_logs")
 
 
 class ValidationLog:
@@ -78,8 +78,8 @@ class ValidationLog:
                 self.uuid, _name = self.name.split('_', 1)
                 self.validation_id, self.datetime = _name.rsplit('_', 1)
             except ValueError:
-                logging.warning('Wrong log file format, it should be formed '
-                                'such as {uuid}_{validation-id}_{timestamp}')
+                LOG.warning('Wrong log file format, it should be formed '
+                            'such as {uuid}_{validation-id}_{timestamp}')
 
     def _get_content(self):
         try: