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
This commit is contained in:
Jiri Podivin 2022-11-22 11:09:05 +01:00
parent 9a2bcee59f
commit 5a23115811
10 changed files with 27 additions and 26 deletions

View File

@ -14,7 +14,7 @@
# #
import ansible_runner import ansible_runner
import logging from validations_libs.logger import getLogger
import pkg_resources import pkg_resources
import pwd import pwd
import os import os
@ -27,7 +27,7 @@ import configparser
from validations_libs import constants from validations_libs import constants
from validations_libs import utils from validations_libs import utils
LOG = logging.getLogger(__name__ + ".ansible") LOG = getLogger(__name__ + ".ansible")
# NOTE(cloudnull): This is setting the FileExistsError for py2 environments. # NOTE(cloudnull): This is setting the FileExistsError for py2 environments.
# When we no longer support py2 (centos7) this should be # When we no longer support py2 (centos7) this should be
@ -48,7 +48,7 @@ class Ansible:
"""An Object for encapsulating an Ansible execution""" """An Object for encapsulating an Ansible execution"""
def __init__(self, uuid=None): def __init__(self, uuid=None):
self.log = logging.getLogger(__name__ + ".Ansible") self.log = getLogger(__name__ + ".Ansible")
self.uuid = uuid self.uuid = uuid
def _playbook_check(self, play, playbook_dir=None): def _playbook_check(self, play, playbook_dir=None):

View File

@ -17,7 +17,7 @@
from argparse import ArgumentDefaultsHelpFormatter from argparse import ArgumentDefaultsHelpFormatter
from cliff import _argparse from cliff import _argparse
import json import json
import logging from validations_libs.logger import getLogger
from prettytable import PrettyTable from prettytable import PrettyTable
import re import re
import sys import sys
@ -92,7 +92,7 @@ def write_output(output_log, results):
def write_junitxml(output_junitxml, results): def write_junitxml(output_junitxml, results):
"""Write output file as JUnitXML format""" """Write output file as JUnitXML format"""
if not JUNIT_XML_FOUND: 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 ' log.warning('junitxml output disabled: the `junit_xml` python module '
'is missing.') 'is missing.')
return return

View File

@ -14,7 +14,7 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
import logging from validations_libs.logger import getLogger
import os import os
from validations_libs import constants, utils from validations_libs import constants, utils
@ -22,7 +22,7 @@ from validations_libs.cli.base import BaseCommand
from validations_libs.community.init_validation import \ from validations_libs.community.init_validation import \
CommunityValidation as com_val CommunityValidation as com_val
LOG = logging.getLogger(__name__) LOG = getLogger(__name__)
class CommunityValidationInit(BaseCommand): class CommunityValidationInit(BaseCommand):

View File

@ -15,7 +15,7 @@
# under the License. # under the License.
# #
import logging from validations_libs.logger import getLogger
import re import re
import os import os
# @matbu backward compatibility for stable/train # @matbu backward compatibility for stable/train
@ -26,7 +26,7 @@ except ImportError:
from validations_libs import constants, utils from validations_libs import constants, utils
LOG = logging.getLogger(__name__) LOG = getLogger(__name__)
class CommunityValidation: class CommunityValidation:

View File

@ -13,10 +13,10 @@
# under the License. # under the License.
# #
import logging from validations_libs.logger import getLogger
import yaml import yaml
LOG = logging.getLogger(__name__ + ".Group") LOG = getLogger(__name__ + ".Group")
class Group: class Group:

View File

@ -56,7 +56,7 @@ class TestAnsible(TestCase):
self.run = Ansible() self.run = Ansible()
self.run.log = mock.MagicMock() self.run.log = mock.MagicMock()
@mock.patch('logging.getLogger') @mock.patch('validations_libs.ansible.getLogger')
def test_ansible_init(self, mock_logger): def test_ansible_init(self, mock_logger):
""" """
Test of Ansible init. Test of Ansible init.

View File

@ -536,7 +536,8 @@ class TestValidationActions(TestCase):
'2019-11-25T13:40:14.404623Z', '2019-11-25T13:40:14.404623Z',
'0:00:03.753')]) '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.' @mock.patch('validations_libs.validation_logs.ValidationLogs.'
'get_all_logfiles', 'get_all_logfiles',
return_value=[ return_value=[
@ -546,7 +547,7 @@ class TestValidationActions(TestCase):
return_value=fakes.VALIDATIONS_LOGS_CONTENTS_LIST[0]) return_value=fakes.VALIDATIONS_LOGS_CONTENTS_LIST[0])
@mock.patch('builtins.open') @mock.patch('builtins.open')
def test_show_history_most_recent(self, mock_open, mock_load, 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() first_validation = mock.MagicMock()
second_validation = mock.MagicMock() second_validation = mock.MagicMock()

View File

@ -13,12 +13,12 @@
# under the License. # under the License.
# #
import logging from validations_libs.logger import getLogger
import os import os
import yaml import yaml
from collections import OrderedDict from collections import OrderedDict
LOG = logging.getLogger(__name__ + ".validation") LOG = getLogger(__name__ + ".validation")
class Validation: class Validation:

View File

@ -12,7 +12,7 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
# #
import logging from validations_libs.logger import getLogger
import os import os
import sys import sys
import json import json
@ -26,7 +26,7 @@ from validations_libs import constants
from validations_libs import utils as v_utils from validations_libs import utils as v_utils
from validations_libs.exceptions import ValidationRunException, ValidationShowException from validations_libs.exceptions import ValidationRunException, ValidationShowException
LOG = logging.getLogger(__name__ + ".validation_actions") LOG = getLogger(__name__ + ".validation_actions")
class ValidationActions: class ValidationActions:
@ -55,7 +55,7 @@ class ValidationActions:
(Defaults to ``constants.VALIDATIONS_LOG_BASEDIR``) (Defaults to ``constants.VALIDATIONS_LOG_BASEDIR``)
:type log_path: ``string`` :type log_path: ``string``
""" """
self.log = logging.getLogger(__name__ + ".ValidationActions") self.log = getLogger(__name__ + ".ValidationActions")
self.validation_path = validation_path self.validation_path = validation_path
self.log_path = log_path self.log_path = log_path
@ -119,7 +119,7 @@ class ValidationActions:
['category2'], ['category2'],
['product2'])]) ['product2'])])
""" """
self.log = logging.getLogger(__name__ + ".list_validations") self.log = getLogger(__name__ + ".list_validations")
validations = v_utils.parse_all_validations_on_disk( validations = v_utils.parse_all_validations_on_disk(
path=self.validation_path, path=self.validation_path,
@ -177,7 +177,7 @@ class ValidationActions:
'Parameters': {'foo1': bar1} 'Parameters': {'foo1': bar1}
} }
""" """
self.log = logging.getLogger(__name__ + ".show_validations") self.log = getLogger(__name__ + ".show_validations")
# Get validation data: # Get validation data:
vlog = ValidationLogs(self.log_path) vlog = ValidationLogs(self.log_path)
data = v_utils.get_validations_data( data = v_utils.get_validations_data(
@ -415,7 +415,7 @@ class ValidationActions:
'Unreachable_Hosts': '', 'Unreachable_Hosts': '',
'Validations': 'bar'}] 'Validations': 'bar'}]
""" """
self.log = logging.getLogger(__name__ + ".run_validations") self.log = getLogger(__name__ + ".run_validations")
playbooks = [] playbooks = []
validations_dir = (validations_dir if validations_dir validations_dir = (validations_dir if validations_dir
else self.validation_path) else self.validation_path)

View File

@ -14,14 +14,14 @@
# #
import json import json
import glob import glob
import logging from validations_libs.logger import getLogger
import os import os
import time import time
from os.path import join from os.path import join
from validations_libs import constants from validations_libs import constants
LOG = logging.getLogger(__name__ + ".validation_logs") LOG = getLogger(__name__ + ".validation_logs")
class ValidationLog: class ValidationLog:
@ -78,8 +78,8 @@ class ValidationLog:
self.uuid, _name = self.name.split('_', 1) self.uuid, _name = self.name.split('_', 1)
self.validation_id, self.datetime = _name.rsplit('_', 1) self.validation_id, self.datetime = _name.rsplit('_', 1)
except ValueError: except ValueError:
logging.warning('Wrong log file format, it should be formed ' LOG.warning('Wrong log file format, it should be formed '
'such as {uuid}_{validation-id}_{timestamp}') 'such as {uuid}_{validation-id}_{timestamp}')
def _get_content(self): def _get_content(self):
try: try: