120 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
# The following environment variables must be set:
 | 
						|
#
 | 
						|
# maxscale_sshkey       The ssh key to the MaxScale VM
 | 
						|
# maxscale_access_user  The username on the VM
 | 
						|
# maxscale_IP           The IP address of the MaxScale VM
 | 
						|
# node_000_network      IP address of the
 | 
						|
#
 | 
						|
# The Vagrant setup is located in ~/mdbci/my-test-build/. Vagrant is used
 | 
						|
# for SSH access to the machines.
 | 
						|
 | 
						|
# This is the VM name where the replication-manager is installed
 | 
						|
mrm=galera_000
 | 
						|
 | 
						|
# Helper functions for ssh and scp
 | 
						|
function do_ssh() {
 | 
						|
    cd ~/mdbci/my-test-build/
 | 
						|
    vagrant ssh $1 -c "$2"
 | 
						|
    cd - > /dev/null
 | 
						|
}
 | 
						|
 | 
						|
# Helper functions for ssh and scp
 | 
						|
function do_scp() {
 | 
						|
    cd ~/mdbci/my-test-build/
 | 
						|
    local dest=$(vagrant ssh-config $1|grep HostName|sed 's/.*HostName //')
 | 
						|
    scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no  $2 vagrant@$dest:~
 | 
						|
    cd - > /dev/null
 | 
						|
}
 | 
						|
 | 
						|
function stop_node() {
 | 
						|
    do_ssh $1 "sudo /etc/init.d/mysql stop"
 | 
						|
}
 | 
						|
 | 
						|
function start_node() {
 | 
						|
    do_ssh $1 "sudo /etc/init.d/mysql start"
 | 
						|
}
 | 
						|
 | 
						|
function do_test() {
 | 
						|
    mysql -v -u skysql -pskysql -h $maxscale_IP -P $maxscale_port <<EOF
 | 
						|
BEGIN;
 | 
						|
INSERT INTO test.t1 (data) VALUES (now());
 | 
						|
SELECT * FROM test.t1;
 | 
						|
SELECT @@gtid_current_pos, @@server_id, @@hostname;
 | 
						|
COMMIT;
 | 
						|
EOF
 | 
						|
 | 
						|
    do_ssh maxscale "sudo maxadmin list servers"
 | 
						|
}
 | 
						|
 | 
						|
# This is the port MaxScale is listening on
 | 
						|
maxscale_port=4006
 | 
						|
 | 
						|
###############################
 | 
						|
# The actual demo starts here #
 | 
						|
###############################
 | 
						|
 | 
						|
# Create a table
 | 
						|
mysql -v -u skysql -pskysql -h $maxscale_IP -P $maxscale_port <<EOF
 | 
						|
CREATE OR REPLACE TABLE test.t1(id int auto_increment primary key, data datetime);
 | 
						|
EOF
 | 
						|
 | 
						|
do_test
 | 
						|
 | 
						|
# Stop node-000 and node-001
 | 
						|
 | 
						|
echo "Press Enter to Stop node-001"
 | 
						|
read
 | 
						|
 | 
						|
stop_node node_001
 | 
						|
echo "Waiting 15 seconds"
 | 
						|
sleep 15
 | 
						|
do_test
 | 
						|
 | 
						|
echo "Press Enter to Stop node-000"
 | 
						|
read
 | 
						|
 | 
						|
stop_node node_000
 | 
						|
echo "Waiting 15 seconds"
 | 
						|
sleep 15
 | 
						|
do_test
 | 
						|
 | 
						|
echo "Press Enter to Start node-001"
 | 
						|
read
 | 
						|
 | 
						|
# Start node-000 and node-001
 | 
						|
 | 
						|
start_node node_001
 | 
						|
echo "Waiting 15 seconds"
 | 
						|
sleep 15
 | 
						|
do_test
 | 
						|
 | 
						|
echo "Press Enter to Start node-000"
 | 
						|
read
 | 
						|
 | 
						|
start_node node_000
 | 
						|
echo "Waiting 15 seconds"
 | 
						|
sleep 15
 | 
						|
do_test
 | 
						|
 | 
						|
# Stop node-002
 | 
						|
 | 
						|
echo "Press Enter to Stop node-002"
 | 
						|
read
 | 
						|
 | 
						|
stop_node node_002
 | 
						|
echo "Waiting 15 seconds"
 | 
						|
sleep 15
 | 
						|
do_test
 | 
						|
 | 
						|
echo "Press Enter to Start node-002"
 | 
						|
read
 | 
						|
 | 
						|
start_node node_002
 | 
						|
echo "Waiting 15 seconds"
 | 
						|
sleep 15
 | 
						|
do_test
 | 
						|
 | 
						|
echo "Done!"
 |