~gnuoy/charms/trusty/percona-cluster/use-dc-stable

« back to all changes in this revision

Viewing changes to tests/30-kill-9-mysqld.py

  • Committer: james.page at ubuntu
  • Date: 2015-04-20 10:53:43 UTC
  • mfrom: (51.2.22 percona-cluster)
  • Revision ID: james.page@ubuntu.com-20150420105343-3kljmjdzozpfg5tf
[freyes,r=james-page] Ensure VIP is tied to a good mysqld instance.

Re-license charm as GPL-2 for compatibility with bundled ocf script.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/python3
 
2
# test percona-cluster (3 nodes)
 
3
 
 
4
import basic_deployment
 
5
import time
 
6
 
 
7
 
 
8
class ThreeNode(basic_deployment.BasicDeployment):
 
9
    def __init__(self):
 
10
        super(ThreeNode, self).__init__(units=3)
 
11
 
 
12
    def run(self):
 
13
        super(ThreeNode, self).run()
 
14
        # we are going to kill the master
 
15
        old_master = self.master_unit
 
16
        print('kill-9 mysqld in %s' % str(self.master_unit.info))
 
17
        self.master_unit.run('sudo killall -9 mysqld')
 
18
 
 
19
        print('looking for the new master')
 
20
        i = 0
 
21
        changed = False
 
22
        while i < 10 and not changed:
 
23
            i += 1
 
24
            time.sleep(5)  # give some time to pacemaker to react
 
25
            new_master = self.find_master()
 
26
 
 
27
            if (new_master and new_master.info['unit_name'] !=
 
28
                    old_master.info['unit_name']):
 
29
                changed = True
 
30
 
 
31
        assert changed, "The master didn't change"
 
32
 
 
33
        assert self.is_port_open(address=self.vip), 'cannot connect to vip'
 
34
 
 
35
 
 
36
if __name__ == "__main__":
 
37
    t = ThreeNode()
 
38
    t.run()