def set_log_level(log_level): """ Set logging level of this module. The module using `logbook <https://logbook.readthedocs.io/en/stable/>`__ module for logging. :param int log_level: One of the log level of the `logbook <https://logbook.readthedocs.io/en/stable/api/base.html>`__. Disabled logging if the ``log_level`` is ``logbook.NOTSET``. :raises LookupError: If ``log_level`` is an invalid value. """ # validate log level logbook.get_level_name(log_level) if log_level == logger.level: return if log_level == logbook.NOTSET: set_logger(is_enable=False) else: set_logger(is_enable=True) logger.level = log_level subprocrunner.set_log_level(log_level)
def main(): options = parse_option() initialize_cli(options) if is_execute_tc_command(options.tc_command_output): check_tc_command_installation() try: check_execution_authority() except PermissionError as e: logger.error(e) return errno.EPERM is_delete_all = options.is_delete_all else: subprocrunner.SubprocessRunner.default_is_dry_run = True is_delete_all = True set_logger(False) try: verify_network_interface(options.device) except NetworkInterfaceNotFoundError as e: logger.error(e) return errno.EINVAL subprocrunner.SubprocessRunner.clear_history() tc = create_tc_obj(options) if options.log_level == logbook.INFO: subprocrunner.set_log_level(logbook.ERROR) normalize_tc_value(tc) return_code = 0 try: if is_delete_all: return_code = tc.delete_all_tc() else: return_code = tc.delete_tc() except NetworkInterfaceNotFoundError as e: logger.error(e) return errno.EINVAL command_history = "\n".join(tc.get_command_history()) if options.tc_command_output == TcCommandOutput.STDOUT: print(command_history) return return_code elif options.tc_command_output == TcCommandOutput.SCRIPT: set_logger(True) write_tc_script(Tc.Command.TCDEL, command_history, filename_suffix=options.device) return return_code logger.debug("command history\n{}".format(command_history)) return return_code
def main(): options = parse_option() set_log_level(options.log_level) subprocrunner.Which("tc").verify() try: verify_network_interface(options.device) except NetworkInterfaceNotFoundError as e: logger.error(e) return errno.EINVAL tc = TrafficControl(options.device) if options.log_level == logbook.INFO: subprocrunner.set_log_level(logbook.ERROR) subprocrunner.SubprocessRunner.is_save_history = True if options.tc_command_output != TcCoomandOutput.NOT_SET: subprocrunner.SubprocessRunner.default_is_dry_run = True if options.tc_command_output != TcCoomandOutput.NOT_SET: set_logger(False) try: return_code = tc.delete_tc() except NetworkInterfaceNotFoundError as e: logger.debug(e) return 0 command_history = "\n".join(tc.get_command_history()) if options.tc_command_output == TcCoomandOutput.STDOUT: print(command_history) return return_code if options.tc_command_output == TcCoomandOutput.SCRIPT: set_logger(True) write_tc_script("tcdel", command_history, filename_suffix=options.device) return return_code logger.debug("command history\n{}".format(command_history)) return return_code
def set_log_level(log_level): """ Set logging level of this module. The module using `logbook <http://logbook.readthedocs.io/en/stable/>`__ module for logging. :param int log_level: One of the log level of the `logbook <http://logbook.readthedocs.io/en/stable/api/base.html>`__. Disabled logging if the ``log_level`` is ``logbook.NOTSET``. """ subprocrunner.set_log_level(log_level) if log_level == logbook.NOTSET: set_logger(is_enable=False) else: set_logger(is_enable=True) logger.level = log_level
def run(self, is_delete_all): return_code_list = [] for tc_target in self._fetch_tc_targets(): tc = self.__create_tc_obj(tc_target) if self._options.log_level == logbook.INFO: spr.set_log_level(logbook.ERROR) normalize_tc_value(tc) try: if is_delete_all: return_code_list.append(tc.delete_all_tc()) else: return_code_list.append(tc.delete_tc()) except NetworkInterfaceNotFoundError as e: logger.error(e) return errno.EINVAL self._dump_history(tc, Tc.Command.TCDEL) return self._get_return_code(return_code_list)
def main(): options = parse_option() set_log_level(options.log_level) subprocrunner.Which("tc").verify() try: verify_network_interface(options.device) except NetworkInterfaceNotFoundError as e: logger.error(e) return 1 tc = TrafficControl(options.device) if options.log_level == logbook.INFO: subprocrunner.set_log_level(logbook.ERROR) try: return tc.delete_tc() except NetworkInterfaceNotFoundError as e: logger.debug(e) return 0 return 1
def main(): options = parse_option() initialize_cli(options) if is_execute_tc_command(options.tc_command_output): check_execution_authority("tc") if not options.use_docker: try: verify_network_interface(options.device, options.tc_command_output) except NetworkInterfaceNotFoundError as e: logger.error(e) return errno.EINVAL is_delete_all = options.is_delete_all else: spr.SubprocessRunner.default_is_dry_run = True is_delete_all = True set_logger(False) spr.SubprocessRunner.clear_history() if options.use_docker: dclient = DockerClient(options.tc_command_output) container = options.device dclient.verify_container(container, exit_on_exception=True) dclient.create_veth_table(container) tc_target_list = dclient.fetch_veth_list(dclient.get_container_info(container).name) else: tc_target_list = [options.device] for tc_target in tc_target_list: tc = create_tc_obj(tc_target, options) if options.log_level == logbook.INFO: spr.set_log_level(logbook.ERROR) normalize_tc_value(tc) return_code = 0 try: if is_delete_all: return_code = tc.delete_all_tc() else: return_code = tc.delete_tc() except NetworkInterfaceNotFoundError as e: logger.error(e) return errno.EINVAL command_history = "\n".join(tc.get_command_history()) if options.tc_command_output == TcCommandOutput.STDOUT: print(command_history) return return_code elif options.tc_command_output == TcCommandOutput.SCRIPT: set_logger(True) write_tc_script(Tc.Command.TCDEL, command_history, filename_suffix=tc_target) return return_code logger.debug("command history\n{}".format(command_history)) return return_code