summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-09-11 09:50:52 +0000
committerGerrit Code Review <review@openstack.org>2014-09-11 09:50:52 +0000
commit43801e85da2df930cf64ed441b77cc0ce4a420a0 (patch)
tree4cf8166133f125750a1c5db19cdccdc5562e1921
parent2f8928a3279eea4396ce964f41290c5196dabfb2 (diff)
parentb4250c05f91647f8cac821d294cf08b27fe308b8 (diff)
downloadtrove-43801e85da2df930cf64ed441b77cc0ce4a420a0.tar.gz
Merge "Marks mysql slave read-only"
-rw-r--r--trove/guestagent/strategies/replication/mysql_binlog.py1
-rw-r--r--trove/tests/api/replication.py17
2 files changed, 18 insertions, 0 deletions
diff --git a/trove/guestagent/strategies/replication/mysql_binlog.py b/trove/guestagent/strategies/replication/mysql_binlog.py
index c51fbf27..604b516e 100644
--- a/trove/guestagent/strategies/replication/mysql_binlog.py
+++ b/trove/guestagent/strategies/replication/mysql_binlog.py
@@ -39,6 +39,7 @@ SLAVE_CONFIG = """
[mysqld]
log_bin = /var/lib/mysql/mysql-bin.log
relay_log = /var/lib/mysql/mysql-relay-bin.log
+read_only = true
"""
REPL_BACKUP_NAMESPACE = 'trove.guestagent.strategies.backup.mysql_impl'
diff --git a/trove/tests/api/replication.py b/trove/tests/api/replication.py
index 05a76c35..e60a29c7 100644
--- a/trove/tests/api/replication.py
+++ b/trove/tests/api/replication.py
@@ -116,6 +116,13 @@ class VerifySlave(object):
poll_until(slave_is_running())
@test(depends_on=[test_correctly_started_replication])
+ 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")
+
+ @test(depends_on=[test_slave_is_read_only])
def test_create_db_on_master(self):
databases = [{'name': slave_instance.replicated_db}]
instance_info.dbaas.databases.create(instance_info.id, databases)
@@ -174,6 +181,16 @@ class DetachReplica(object):
poll_until(slave_is_running(False))
+ @test(depends_on=[test_detach_replica])
+ 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")
+
@test(groups=[GROUP],
depends_on=[WaitForCreateSlaveToFinish],