示例#1
0
    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)
示例#2
0
    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
示例#4
0
    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)
    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)
示例#6
0
                                            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
 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
示例#11
0
# 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
示例#12
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 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
示例#13
0
# 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
示例#14
0
 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)