~james-page/charms/trusty/percona-cluster/wily

« back to all changes in this revision

Viewing changes to tests/31-test-pause-and-resume.py

Merge lp:~tealeg/charms/trusty/percona-cluster/pause-and-resume [a=tealeg] [r=adam.collard, tribaal]

Add pause and resume actions.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/python3
 
2
# test percona-cluster pause and resum
 
3
 
 
4
import basic_deployment
 
5
from charmhelpers.contrib.amulet.utils import AmuletUtils
 
6
 
 
7
utils = AmuletUtils()
 
8
 
 
9
 
 
10
class PauseResume(basic_deployment.BasicDeployment):
 
11
 
 
12
    def run(self):
 
13
        super(PauseResume, self).run()
 
14
        uid = 'percona-cluster/0'
 
15
        unit = self.d.sentry.unit[uid]
 
16
        assert self.is_mysqld_running(unit), 'mysql not running: %s' % uid
 
17
        assert utils.status_get(unit)[0] == "unknown"
 
18
 
 
19
        action_id = utils.run_action(unit, "pause")
 
20
        assert utils.wait_on_action(action_id), "Pause action failed."
 
21
 
 
22
        # Note that is_mysqld_running will print an error message when
 
23
        # mysqld is not running.  This is by design but it looks odd
 
24
        # in the output.
 
25
        assert not self.is_mysqld_running(unit=unit), \
 
26
            "mysqld is still running!"
 
27
 
 
28
        assert utils.status_get(unit)[0] == "maintenance"
 
29
        action_id = utils.run_action(unit, "resume")
 
30
        assert utils.wait_on_action(action_id), "Resume action failed"
 
31
        assert utils.status_get(unit)[0] == "active"
 
32
        assert self.is_mysqld_running(unit=unit), \
 
33
            "mysqld not running after resume."
 
34
 
 
35
 
 
36
if __name__ == "__main__":
 
37
    p = PauseResume()
 
38
    p.run()