mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-11-04 04:38:02 +00:00 
			
		
		
		
	lfcli_base.py: adds logging logic that is distinct from lanforge_api.py but similar in function
this was checked with lf_help_check.bash and check_argparse.py. Signed-off-by: Jed Reynolds <jreynolds@candelatech.com>
This commit is contained in:
		@@ -11,6 +11,7 @@ import string
 | 
				
			|||||||
import datetime
 | 
					import datetime
 | 
				
			||||||
import argparse
 | 
					import argparse
 | 
				
			||||||
import re
 | 
					import re
 | 
				
			||||||
 | 
					import logging
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if sys.version_info[0] != 3:
 | 
					if sys.version_info[0] != 3:
 | 
				
			||||||
    print("This script requires Python 3")
 | 
					    print("This script requires Python 3")
 | 
				
			||||||
@@ -21,7 +22,10 @@ sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../../")))
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
debug_printer = pprint.PrettyPrinter(indent=2)
 | 
					debug_printer = pprint.PrettyPrinter(indent=2)
 | 
				
			||||||
LFRequest = importlib.import_module("py-json.LANforge.LFRequest")
 | 
					LFRequest = importlib.import_module("py-json.LANforge.LFRequest")
 | 
				
			||||||
 | 
					if os.environ.get("LF_USE_AUTOGEN") == 1:
 | 
				
			||||||
 | 
					    lanforge_api = importlib.import_module("lanforge_client.lanforge_api")
 | 
				
			||||||
 | 
					    LFSession = lanforge_api.LFSession
 | 
				
			||||||
 | 
					    Logg = lanforge_api.Logg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class LFCliBase:
 | 
					class LFCliBase:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -29,6 +33,13 @@ class LFCliBase:
 | 
				
			|||||||
    SHOULD_QUIT = 1     # indicates to quit loops, close files, send SIGQUIT to threads and return
 | 
					    SHOULD_QUIT = 1     # indicates to quit loops, close files, send SIGQUIT to threads and return
 | 
				
			||||||
    SHOULD_HALT = 2     # indicates to quit loops, send SIGABRT to threads and exit
 | 
					    SHOULD_HALT = 2     # indicates to quit loops, send SIGABRT to threads and exit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # - LOGGING -
 | 
				
			||||||
 | 
					    _logger = None
 | 
				
			||||||
 | 
					    if os.environ.get("LF_USE_AUTOGEN") == 1:
 | 
				
			||||||
 | 
					        _logger = Logg.logger
 | 
				
			||||||
 | 
					    _method_name_list = []
 | 
				
			||||||
 | 
					    _tag_list = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # do not use `super(LFCLiBase,self).__init__(self, host, port, _debug)
 | 
					    # do not use `super(LFCLiBase,self).__init__(self, host, port, _debug)
 | 
				
			||||||
    # that is py2 era syntax and will force self into the host variable, making you
 | 
					    # that is py2 era syntax and will force self into the host variable, making you
 | 
				
			||||||
    # very confused.
 | 
					    # very confused.
 | 
				
			||||||
@@ -165,6 +176,41 @@ class LFCliBase:
 | 
				
			|||||||
    def clear_test_results(self):
 | 
					    def clear_test_results(self):
 | 
				
			||||||
        self.test_results.clear()
 | 
					        self.test_results.clear()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # - LOGGING - we want to remove old logging code
 | 
				
			||||||
 | 
					    def log_register_method_name(self, method_name=None):
 | 
				
			||||||
 | 
					        if not method_name:
 | 
				
			||||||
 | 
					            return
 | 
				
			||||||
 | 
					        if os.environ.get("LF_USE_AUTOGEN") == 1:
 | 
				
			||||||
 | 
					            Logg.register_method_name(method_name=method_name)
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            if method_name not in self._method_name_list:
 | 
				
			||||||
 | 
					                self._method_name_list.append(method_name)
 | 
				
			||||||
 | 
					        if method_name not in self._tag_list:
 | 
				
			||||||
 | 
					            self._tag_list.append(method_name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def log_register_tag(self, tag=None):
 | 
				
			||||||
 | 
					        if not tag:
 | 
				
			||||||
 | 
					            return
 | 
				
			||||||
 | 
					        if os.environ.get("LF_USE_AUTOGEN") == 1:
 | 
				
			||||||
 | 
					            Logg.register_tag(tag=tag)
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            if tag not in self._tag_list:
 | 
				
			||||||
 | 
					                self._tag_list.append(tag)
 | 
				
			||||||
 | 
					            self._logger.register_method_name(tag=tag)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def log_enable(self, reserved_tag=None):
 | 
				
			||||||
 | 
					        if os.environ.get("LF_USE_AUTOGEN") == 1:
 | 
				
			||||||
 | 
					            Logg.enable(reserved_tag=reserved_tag)
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            self.log_register_tag(reserved_tag)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def log_set_filename(self, filename=None):
 | 
				
			||||||
 | 
					        if not filename:
 | 
				
			||||||
 | 
					            return
 | 
				
			||||||
 | 
					        logging.basicConfig(filename=filename)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # - END LOGGING -
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def json_post(self, _req_url, _data, debug_=False, suppress_related_commands_=None, response_json_list_=None):
 | 
					    def json_post(self, _req_url, _data, debug_=False, suppress_related_commands_=None, response_json_list_=None):
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        send json to the LANforge client
 | 
					        send json to the LANforge client
 | 
				
			||||||
@@ -602,14 +648,30 @@ class LFCliBase:
 | 
				
			|||||||
        optional.add_argument('--test_id',
 | 
					        optional.add_argument('--test_id',
 | 
				
			||||||
                              default="webconsole",
 | 
					                              default="webconsole",
 | 
				
			||||||
                              help='Test ID (intended to use for ws events)')
 | 
					                              help='Test ID (intended to use for ws events)')
 | 
				
			||||||
        optional.add_argument('--debug',
 | 
					        optional.add_argument('-d',
 | 
				
			||||||
 | 
					                              '--debug',
 | 
				
			||||||
                              default=False,
 | 
					                              default=False,
 | 
				
			||||||
                              action="store_true",
 | 
					                              action="store_true",
 | 
				
			||||||
                              help='Enable debugging')
 | 
					                              help='Enable debugging')
 | 
				
			||||||
        optional.add_argument('--proxy',
 | 
					        optional.add_argument('--proxy',
 | 
				
			||||||
                              nargs='?',
 | 
					                              nargs='?',
 | 
				
			||||||
                              default=None,
 | 
					                              default=None,
 | 
				
			||||||
                              help='Connection proxy like http://proxy.localnet:80 or https://user:pass@proxy.localnet:3128')
 | 
					                              help="Connection proxy like http://proxy.localnet:80 \n"
 | 
				
			||||||
 | 
					                                   + " or https://user:pass@proxy.localnet:3128")
 | 
				
			||||||
 | 
					        optional.add_argument('--debugging',
 | 
				
			||||||
 | 
					                              nargs="+",
 | 
				
			||||||
 | 
					                              action="append",
 | 
				
			||||||
 | 
					                              help="Indicate what areas you would like express debug output:\n"
 | 
				
			||||||
 | 
					                                   + " - digest - print terse indications of lanforge_api calls\n"
 | 
				
			||||||
 | 
					                                   + " - json - print url and json data\n"
 | 
				
			||||||
 | 
					                                   + " - http - print HTTP headers\n"
 | 
				
			||||||
 | 
					                                   + " - gui - ask the GUI for extra debugging in responses\n"
 | 
				
			||||||
 | 
					                                   + " - method:method_name - enable by_method() debugging (if present)\n"
 | 
				
			||||||
 | 
					                                   + " - tag:tagname - enable matching by_tag() debug output\n"
 | 
				
			||||||
 | 
					                              )
 | 
				
			||||||
 | 
					        optional.add_argument('--debug_log',
 | 
				
			||||||
 | 
					                              default=None,
 | 
				
			||||||
 | 
					                              help="Specify a file to send debug output to")
 | 
				
			||||||
        if more_optional is not None:
 | 
					        if more_optional is not None:
 | 
				
			||||||
           for argument in more_optional:
 | 
					           for argument in more_optional:
 | 
				
			||||||
               if 'default' in argument.keys():
 | 
					               if 'default' in argument.keys():
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user