def __init__(self, options=None): """Constructor """ if options is None: options = {} self.util_list = [] self.width = options.get('width', _MAX_WIDTH) self.util_path = get_util_path(options.get('utildir', '')) self.extra_utilities = options.get('add_util', {}) self.hide_utils = options.get('hide_util', False) self.program_usage = re.compile(RE_USAGE, re.S | re.M) self.program_options = re.compile(RE_OPTIONS, re.S | re.M) self.program_option = re.compile(RE_OPTION) self.program_name = re.compile(RE_ALIAS) self.util_cmd_dict = {} self.posible_utilities = {} self.posible_utilities.update(AVAILABLE_UTILITIES) if self.extra_utilities and self.hide_utils: self.posible_utilities = self.extra_utilities else: self.posible_utilities.update(self.extra_utilities) self.available_utilities = self.posible_utilities for util_name, ver_compatibility in self.posible_utilities.iteritems(): name_utility = "{0} utility".format(util_name) if ver_compatibility: min_v, max_v = ver_compatibility res = check_python_version(min_version=min_v, max_version=max_v, name=name_utility, print_on_fail=False, exit_on_fail=False, return_error_msg=True) else: res = check_python_version(name=name_utility, print_on_fail=False, exit_on_fail=False, return_error_msg=True) if isinstance(res, tuple): is_compat, error_msg = res if not is_compat: # pylint: disable=E1103 self.available_utilities.remove(util_name) print(WARNING_FAIL_TO_READ_OPTIONS.format(util_name)) print("ERROR: {0}\n".format(error_msg)) continue self._find_utility_cmd(util_name)
def __init__(self, options=None): """Constructor """ if options is None: options = {} self.util_list = [] self.width = options.get('width', _MAX_WIDTH) self.util_path = get_util_path(options.get('utildir', '')) self.extra_utilities = options.get('add_util', {}) self.hide_utils = options.get('hide_util', False) self.program_usage = re.compile(RE_USAGE, re.S | re.M) self.program_options = re.compile(RE_OPTIONS, re.S | re.M) self.program_option = re.compile(RE_OPTION) self.program_name = re.compile(RE_ALIAS) self.util_cmd_dict = {} self.posible_utilities = {} self.posible_utilities.update(AVAILABLE_UTILITIES) if self.extra_utilities and self.hide_utils: self.posible_utilities = self.extra_utilities else: self.posible_utilities.update(self.extra_utilities) self.available_utilities = self.posible_utilities for util_name, ver_compatibility in self.posible_utilities.iteritems(): name_utility = "{0} utility".format(util_name) if ver_compatibility: min_v, max_v = ver_compatibility res = check_python_version(min_version=min_v, max_version=max_v, name=name_utility, print_on_fail=False, exit_on_fail=False, return_error_msg=True) else: res = check_python_version(name=name_utility, print_on_fail=False, exit_on_fail=False, return_error_msg=True) if isinstance(res, tuple): is_compat, error_msg = res if not is_compat: self.available_utilities.remove(util_name) print(WARNING_FAIL_TO_READ_OPTIONS.format(util_name)) print("ERROR: {0}\n".format(error_msg)) continue self._find_utility_cmd(util_name)
def read(self, filenames): """Read and parse a filename or a list of filenames. Overridden from ConfigParser and modified so as to allow options which are not inside any section header filenames[in] The file names to read. Return list of successfully read files. """ # Get python version since we must use str() to read strings from # the file for older, 2.6 versions of Python py26 = check_python_version((2, 6, 0), (2, 6, 99), False, None, False, False, False) if isinstance(filenames, str): filenames = [filenames] read_ok = [] for priority, filename in enumerate(filenames): try: out_file = io.StringIO() for line in codecs.open(filename, encoding='utf-8'): line = line.strip() match_obj = self.OPTCRE.match(line) if not self.SECTCRE.match(line) and match_obj: optname, delimiter, optval = match_obj.group( 'option', 'vi', 'value') if optname and not optval and not delimiter: out_file.write(line + "=\n") else: out_file.write(line + '\n') else: out_file.write(line + '\n') out_file.seek(0) self._read(out_file, filename) except IOError: continue try: self._read(out_file, filename) for group in self._sections.keys(): try: self._options_dict[group] except KeyError: self._options_dict[group] = {} for option, value in self._sections[group].items(): if py26: self._options_dict[group][option] = (str(value), priority) else: self._options_dict[group][option] = (value, priority) self._sections = self._dict() except MissingSectionHeaderError: self._read(out_file, filename) out_file.close() read_ok.append(filename) return read_ok
def check_prerequisites(self): # Check Python version compatibility try: check_python_version(min_version=(2, 7, 0), max_version=(3, 0, 0), raise_exception_on_fail=True, name='audit_log_admin') except UtilError as e: raise MUTLibError(e.errmsg) # First, make sure the server to be clone has the audit log included. if not self.servers.get_server(0).supports_plugin("audit"): raise MUTLibError("Test requires a server with the audit log " "plug-in installed and enabled.") self.server1 = None self.need_servers = False if not self.check_num_servers(2): self.need_servers = True return self.check_num_servers(1)
add_verbosity, check_all, check_verbosity, add_changes_for, add_reverse, add_format_option, add_character_set_option, add_ssl_options, get_ssl_dict, setup_common_options, check_password_security, add_exclude, check_exclude_pattern) from mysql.utilities.common.server import connect_servers from mysql.utilities.common.sql_transform import (is_quoted_with_backticks, remove_backtick_quoting, quote_with_backticks) # Check Python version compatibility check_python_version() # Constants NAME = "MySQL Utilities - mysqldbcompare " DESCRIPTION = "mysqldbcompare - compare databases for consistency" USAGE = "%prog --server1=user:pass@host:port:socket " + \ "--server2=user:pass@host:port:socket db1:db2" PRINT_WIDTH = 75 # Check for connector/python if not check_connector_python(): sys.exit(1) if __name__ == '__main__': # Setup the command parser parser = setup_common_options(os.path.basename(sys.argv[0]),
# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # """ This file contains the audit log administration utility which allows users to manage the audit log (i.e., view/edit control variables; perform on-demand log file rotation, and copy log files to other locations). """ from mysql.utilities.common.tools import check_python_version # Check Python version compatibility check_python_version(min_version=(2, 7, 0), max_version=(3, 0, 0)) import optparse import os.path import sys from mysql.utilities.exception import UtilError, FormatError from mysql.utilities.common.options import parse_connection, add_verbosity from mysql.utilities.common.options import CaseInsensitiveChoicesOption from mysql.utilities.common.tools import show_file_statistics from mysql.utilities.command import audit_log from mysql.utilities.command.audit_log import AuditLog from mysql.utilities.command.audit_log import command_requires_value from mysql.utilities.command.audit_log import command_requires_log_name from mysql.utilities.command.audit_log import command_requires_server from mysql.utilities import VERSION_FRM
""" from mysql.utilities.command.grants import check_grants from mysql.utilities.common.ip_parser import parse_connection from mysql.utilities.common.options import (setup_common_options, add_verbosity, db_objects_list_to_dictionary) from mysql.utilities.common.tools import (check_python_version, check_connector_python, join_and_build_str) # Check Python version compatibility from mysql.utilities.exception import UtilError, FormatError check_python_version() import os import sys # Check for connector/python if not check_connector_python(): sys.exit(1) # Constants _VALID_PRIVS = set(["CREATE", "DROP", "GRANT OPTION", "LOCK TABLES", "REFERENCES", "EVENT", "ALTER", "DELETE", "INDEX", "INSERT", "SELECT", "UPDATE", "TRIGGER", "CREATE VIEW", "CREATE TEMPORARY TABLES", "SHOW VIEW", "ALTER ROUTINE", "CREATE ROUTINE", "EXECUTE", "FILE", "CREATE TABLESPACE", "CREATE USER", "PROCESS", "RELOAD", "REPLICATION CLIENT",
def check_prerequisites(self): try: check_python_version((2, 6, 0), (2, 6, 99), True) except: raise MUTLibError("Test requires Python 2.6") return True
# GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # """ This file contains the MySQL Utilities Test facility for running system tests on the MySQL Utilities. """ import sys from mysql.utilities.common.tools import check_python_version # Check Python version compatibility check_python_version(name='MySQL Utilities Test') import csv import datetime import optparse import os import re import time from mysql.utilities.common.server import Server, get_local_servers from mysql.utilities.common.tools import get_tool_path from mysql.utilities.common.options import parse_connection, add_verbosity from mysql.utilities.common.options import setup_common_options from mysql.utilities.exception import MUTLibError from mutlib.mutlib import Server_list # Constants
# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # """ This file contains the MySQL Utilities Test facility for running system tests on the MySQL Utilities. """ import sys from mysql.utilities.common.tools import check_python_version # Check Python version compatibility check_python_version(name='MySQL Utilities Test') import csv import datetime import optparse import os import re import time from mysql.utilities.common.server import Server, get_local_servers from mysql.utilities.common.tools import get_tool_path from mysql.utilities.common.options import parse_connection, add_verbosity from mysql.utilities.common.options import setup_common_options from mysql.utilities.exception import MUTLibError from mutlib.mutlib import Server_list # Constants
# GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # """ This file contains the audit log administration utility which allows users to manage the audit log (i.e., view/edit control variables; perform on-demand log file rotation, and copy log files to other locations). """ from mysql.utilities.common.tools import check_python_version # Check Python version compatibility check_python_version(min_version=(2, 7, 0), max_version=(3, 0, 0)) import optparse import os.path import sys from mysql.utilities.exception import UtilError, FormatError from mysql.utilities.common.options import parse_connection, add_verbosity from mysql.utilities.common.options import CaseInsensitiveChoicesOption from mysql.utilities.common.tools import show_file_statistics from mysql.utilities.command import audit_log from mysql.utilities.command.audit_log import AuditLog from mysql.utilities.command.audit_log import command_requires_value from mysql.utilities.command.audit_log import command_requires_log_name from mysql.utilities.command.audit_log import command_requires_server from mysql.utilities import VERSION_FRM
def check_prerequisites(self): if not check_python_version( (2, 6, 0), (2, 6, 99), False, None, False, False, False): raise MUTLibError("Test requires Python 2.6.") return failover.test.check_prerequisites(self)