Пример #1
0
 def mess_up_mysql(self):
     """Ruin MySQL's ability to restart."""
     self.fix_mysql()  # kill files
     server = create_server_connection(self.instance_id)
     cmd = "sudo cp /dev/null /var/lib/mysql/ib_logfile%d"
     for index in range(2):
         server.execute(cmd % index)
Пример #2
0
 def mess_up_mysql(self):
     """Ruin MySQL's ability to restart."""
     server = create_server_connection(self.instance_id)
     cmd = "sudo cp /dev/null /var/lib/mysql/ib_logfile%d"
     instance_info.dbaas_admin.management.stop(self.instance_id)
     for index in range(2):
         server.execute(cmd % index)
Пример #3
0
 def check_slave_is_running():
     server = create_server_connection(slave_instance.id)
     cmd = ("mysqladmin extended-status "
            "| awk '/Slave_running/{print $4}'")
     stdout, stderr = server.execute(cmd)
     expected = "ON" if running else "OFF"
     return stdout.rstrip() == expected
Пример #4
0
 def check_slave_is_running():
     server = create_server_connection(slave_instance.id)
     cmd = ("mysqladmin extended-status "
            "| awk '/Slave_running/{print $4}'")
     stdout, stderr = server.execute(cmd)
     expected = "ON" if running else "OFF"
     return stdout.rstrip() == expected
Пример #5
0
 def mess_up_mysql(self):
     """Ruin MySQL's ability to restart."""
     self.fix_mysql()  # kill files
     server = create_server_connection(self.instance_id)
     cmd = "sudo cp /dev/null /var/lib/mysql/ib_logfile%d"
     for index in range(2):
         server.execute(cmd % index)
Пример #6
0
 def mess_up_mysql(self):
     """Ruin MySQL's ability to restart."""
     server = create_server_connection(self.instance_id)
     cmd = "sudo cp /dev/null /var/lib/mysql/data/ib_logfile%d"
     instance_info.dbaas_admin.management.stop(self.instance_id)
     for index in range(2):
         server.execute(cmd % index)
Пример #7
0
    def disable_master(self):
        if CONFIG.fake_mode:
            raise SkipTest("eject_replica_source not supported in fake mode")

        cmd = "sudo service trove-guestagent stop"
        server = create_server_connection(self._third_slave.id)
        stdout, stderr = server.execute(cmd)
        assert_equal(stdout, "1\n")
Пример #8
0
    def test_slave_is_not_read_only(self):
        if CONFIG.fake_mode:
            raise SkipTest("Test not_read_only not supported in fake mode")

        cmd = "mysql -BNq -e \\\'select @@read_only\\\'"
        server = create_server_connection(slave_instance.id)
        stdout, stderr = server.execute(cmd)
        assert_equal(stdout, "0\n")
Пример #9
0
 def check_not_read_only():
     cmd = "mysql -BNq -e \\\'select @@read_only\\\'"
     server = create_server_connection(slave_instance.id)
     stdout, stderr = server.execute(cmd)
     if (stdout.rstrip() != "0"):
         return False
     else:
         return True
Пример #10
0
 def check_not_read_only():
     cmd = "mysql -BNq -e \\\'select @@read_only\\\'"
     server = create_server_connection(slave_instance.id)
     stdout, stderr = server.execute(cmd)
     if (stdout.rstrip() != "0"):
         return False
     else:
         return True
Пример #11
0
    def test_slave_is_not_read_only(self):
        if CONFIG.fake_mode:
            raise SkipTest("Test not_read_only not supported in fake mode")

        cmd = "mysql -BNq -e \\\'select @@read_only\\\'"
        server = create_server_connection(slave_instance.id)
        stdout, stderr = server.execute(cmd)
        assert_equal(stdout, "0\n")
Пример #12
0
 def find_mysql_proc_on_instance(self):
     server = create_server_connection(self.instance_id)
     cmd = "ps aux | grep /usr/sbin/mysqld " "| awk '{print $2}'"
     stdout, stderr = server.execute(cmd)
     try:
         return int(stdout)
     except ValueError:
         return None
Пример #13
0
    def disable_master(self):
        if CONFIG.fake_mode:
            raise SkipTest("eject_replica_source not supported in fake mode")

        cmd = "sudo service trove-guestagent stop"
        server = create_server_connection(self._third_slave.id)
        stdout, stderr = server.execute(cmd)
        assert_equal(stdout, "1\n")
Пример #14
0
 def find_mysql_proc_on_instance(self):
     server = create_server_connection(self.instance_id)
     cmd = "ps acux | grep mysqld " \
           "| grep -v mysqld_safe | awk '{print $2}'"
     stdout, _ = server.execute(cmd)
     try:
         return int(stdout)
     except ValueError:
         return None
Пример #15
0
 def find_mysql_proc_on_instance(self):
     server = create_server_connection(self.instance_id)
     cmd = "ps acux | grep mysqld " \
           "| grep -v mysqld_safe | awk '{print $2}'"
     stdout, stderr = server.execute(cmd)
     try:
         return int(stdout)
     except ValueError:
         return None
Пример #16
0
def _get_user_count(server_info):
    cmd = ('mysql -BNq -e \\\'select count\\(*\\) from mysql.user'
           ' where user like \\\"slave_%\\\"\\\'')
    server = create_server_connection(server_info.id)

    try:
        stdout = server.execute(cmd)
        return int(stdout)
    except Exception as e:
        fail("Failed to execute command: %s, error: %s" % (cmd, str(e)))
Пример #17
0
 def fix_mysql(self):
     """Fix MySQL's ability to restart."""
     if not FAKE_MODE:
         server = create_server_connection(self.instance_id)
         cmd = "sudo rm /var/lib/mysql/data/ib_logfile%d"
         # We want to stop mysql so that upstart does not keep trying to
         # respawn it and block the guest agent from accessing the logs.
         instance_info.dbaas_admin.management.stop(self.instance_id)
         for index in range(2):
             server.execute(cmd % index)
Пример #18
0
 def fix_mysql(self):
     """Fix MySQL's ability to restart."""
     if not FAKE_MODE:
         server = create_server_connection(self.instance_id)
         cmd = "sudo rm /var/lib/mysql/ib_logfile%d"
         # We want to stop mysql so that upstart does not keep trying to
         # respawn it and block the guest agent from accessing the logs.
         instance_info.dbaas_admin.management.stop(self.instance_id)
         for index in range(2):
             server.execute(cmd % index)
Пример #19
0
    def test_slave_is_read_only(self):
        cmd = "mysql -BNq -e \\\'select @@read_only\\\'"
        server = create_server_connection(slave_instance.id)

        try:
            stdout = server.execute(cmd)
            stdout = int(stdout.rstrip())
        except Exception as e:
            fail("Failed to execute command %s, error: %s" % (cmd, str(e)))

        assert_equal(stdout, 1)
Пример #20
0
        def check_not_read_only():
            cmd = "mysql -BNq -e \\\'select @@read_only\\\'"
            server = create_server_connection(slave_instance.id)

            try:
                stdout = server.execute(cmd)
                stdout = int(stdout)
            except Exception:
                return False

            return stdout == 0
Пример #21
0
def _get_user_count(server_info):
    cmd = (
        'docker exec -e MYSQL_PWD=$(sudo cat /var/lib/mysql/conf.d/root.cnf | '
        'grep password | awk "{print \$3}") database mysql -uroot -N -e '
        '"select count(*) from mysql.user where user like \\"slave_%\\""')
    server = create_server_connection(server_info.id)

    try:
        stdout = server.execute(cmd)
        return int(stdout.rstrip())
    except Exception as e:
        fail("Failed to execute command: %s, error: %s" % (cmd, str(e)))
Пример #22
0
    def prepare_test(self):
        """Connect to swift, clean up containers."""
        self.server = create_server_connection(instance_info.id)

        user = test_config.users.find_user(
            Requirements(is_admin=False, services=["swift"]))
        self.swift_client = swiftclient.client.Connection(
            authurl=test_config.nova_client['auth_url'],
            user=user.auth_user,
            key=user.auth_key,
            tenant_name=user.tenant,
            auth_version='2')
        self.cleanup_swift()
Пример #23
0
    def check_slave_is_running():
        server = create_server_connection(slave_instance.id)
        cmd = ("mysqladmin extended-status "
               "| awk '/Slave_running/{print $4}'")

        try:
            stdout = server.execute(cmd)
            stdout = stdout.rstrip()
        except Exception as e:
            fail("Failed to execute command %s, error: %s" % (cmd, str(e)))

        expected = b"ON" if running else b"OFF"
        return stdout == expected
Пример #24
0
    def prepare_test(self):
        """Connect to swift, clean up containers."""
        self.server = create_server_connection(instance_info.id)

        user = test_config.users.find_user(
            Requirements(is_admin=False, services=["swift"]))
        self.swift_client = swiftclient.client.Connection(
            authurl=test_config.nova_client['auth_url'],
            user=user.auth_user,
            key=user.auth_key,
            tenant_name=user.tenant,
            auth_version='2')
        self.cleanup_swift()
Пример #25
0
    def mess_up_mysql(self):
        """Ruin MySQL's ability to restart."""
        server = create_server_connection(self.instance_id,
                                          self.instance_mgmt_address)
        cmd_template = "sudo cp /dev/null /var/lib/mysql/data/ib_logfile%d"
        instance_info.dbaas_admin.management.stop(self.instance_id)

        for index in range(2):
            cmd = cmd_template % index
            try:
                server.execute(cmd)
            except Exception as e:
                asserts.fail("Failed to execute command %s, error: %s" %
                             (cmd, str(e)))
Пример #26
0
        def check_not_read_only():
            cmd = ('docker exec -e MYSQL_PWD=$(sudo cat '
                   '/var/lib/mysql/conf.d/root.cnf | grep password | '
                   'awk "{print \$3}") database mysql -uroot -NBq -e '
                   '"select @@read_only"')
            server = create_server_connection(slave_instance.id)

            try:
                stdout = server.execute(cmd)
                stdout = int(stdout)
            except Exception:
                return False

            return stdout == 0
Пример #27
0
    def disable_master(self):
        if CONFIG.fake_mode:
            raise SkipTest("eject_replica_source not supported in fake mode")

        cmd = "sudo service trove-guestagent stop"
        server = create_server_connection(self._third_slave.id)

        try:
            stdout = server.execute(cmd)
            stdout = int(stdout.rstrip())
        except Exception as e:
            fail("Failed to execute command %s, error: %s" % (cmd, str(e)))

        assert_equal(stdout, 1)
Пример #28
0
    def find_mysql_proc_on_instance(self):
        server = create_server_connection(
            self.instance_id, ip_address=self.instance_mgmt_address)
        cmd = "sudo ps acux | grep mysqld " \
              "| grep -v mysqld_safe | awk '{print $2}'"

        try:
            stdout = server.execute(cmd)
            return int(stdout)
        except ValueError:
            return None
        except Exception as e:
            asserts.fail("Failed to execute command: %s, error: %s" %
                         (cmd, str(e)))
Пример #29
0
    def test_slave_is_read_only(self):
        """test_slave_is_read_only"""
        cmd = ('docker exec -e MYSQL_PWD=$(sudo cat '
               '/var/lib/mysql/conf.d/root.cnf | grep password | '
               'awk "{print \$3}") database mysql -uroot -NBq -e '
               '"select @@read_only"')
        server = create_server_connection(slave_instance.id)

        try:
            stdout = server.execute(cmd)
            stdout = int(stdout.rstrip())
        except Exception as e:
            fail("Failed to execute command %s, error: %s" % (cmd, str(e)))

        assert_equal(stdout, 1)
Пример #30
0
    def check_slave_is_running():
        server = create_server_connection(slave_instance.id)
        cmd = ('docker exec -e MYSQL_PWD=$(sudo cat '
               '/var/lib/mysql/conf.d/root.cnf | grep password '
               '| awk "{print \$3}") database mysql -uroot -N -e '
               '"SELECT SERVICE_STATE FROM '
               'performance_schema.replication_connection_status"')

        try:
            stdout = server.execute(cmd)
            stdout = stdout.rstrip()
        except Exception as e:
            fail("Failed to execute command %s, error: %s" % (cmd, str(e)))

        expected = b"ON" if running else b""
        return stdout == expected
Пример #31
0
    def fix_mysql(self):
        """Fix MySQL's ability to restart."""
        if not FAKE_MODE:
            server = create_server_connection(self.instance_id,
                                              self.instance_mgmt_address)
            cmd_template = "sudo rm /var/lib/mysql/data/ib_logfile%d"
            # We want to stop mysql so that upstart does not keep trying to
            # respawn it and block the guest agent from accessing the logs.
            instance_info.dbaas_admin.management.stop(self.instance_id)

            for index in range(2):
                cmd = cmd_template % index
                try:
                    server.execute(cmd)
                except Exception as e:
                    asserts.fail("Failed to execute command %s, error: %s" %
                                 (cmd, str(e)))
Пример #32
0
    def find_mysql_proc_on_instance(self):
        server = create_server_connection(
            self.instance_id, ip_address=self.instance_mgmt_address)
        container_exist_cmd = 'sudo docker ps -q'
        pid_cmd = "sudo docker inspect database -f '{{.State.Pid}}'"

        try:
            server.execute(container_exist_cmd)
        except Exception as err:
            asserts.fail("Failed to execute command: %s, error: %s" %
                         (container_exist_cmd, str(err)))

        try:
            stdout = server.execute(pid_cmd)
            return int(stdout)
        except ValueError:
            return None
        except Exception as err:
            asserts.fail("Failed to execute command: %s, error: %s" %
                         (pid_cmd, str(err)))
Пример #33
0
 def test_slave_is_read_only(self):
     cmd = "mysql -BNq -e \\\'select @@read_only\\\'"
     server = create_server_connection(slave_instance.id)
     stdout, stderr = server.execute(cmd)
     assert_equal(stdout, "1\n")
Пример #34
0
def _get_user_count(server_info):
    cmd = ('mysql -BNq -e \\\'select count\\(*\\) from mysql.user'
           ' where user like \\\"slave_%\\\"\\\'')
    server = create_server_connection(server_info.id)
    stdout, stderr = server.execute(cmd)
    return int(stdout.rstrip())
Пример #35
0
 def slave_is_running():
     server = create_server_connection(slave_instance.id)
     cmd = ("mysqladmin extended-status "
            "| awk '/Slave_running/{print $4}'")
     stdout, stderr = server.execute(cmd)
     return stdout == "ON\n"
Пример #36
0
 def test_slave_is_read_only(self):
     cmd = "mysql -BNq -e \\\'select @@read_only\\\'"
     server = create_server_connection(slave_instance.id)
     stdout, stderr = server.execute(cmd)
     assert_equal(stdout, "1\n")
Пример #37
0
def _get_user_count(server_info):
    cmd = ('mysql -BNq -e \\\'select count\\(*\\) from mysql.user'
           ' where user like \\\"slave_%\\\"\\\'')
    server = create_server_connection(server_info.id)
    stdout, stderr = server.execute(cmd)
    return int(stdout.rstrip())