~abentley/juju-ci-tools/client-from-config-4

« back to all changes in this revision

Viewing changes to assess_recovery.py

  • Committer: Aaron Bentley
  • Date: 2016-07-05 14:15:26 UTC
  • mfrom: (1468.1.6 client-from-config-3)
  • Revision ID: aaron.bentley@canonical.com-20160705141526-v1gveg82a4swb3fb
Merged client-from-config-3 into client-from-config-4.

Show diffs side-by-side

added added

removed removed

Lines of Context:
49
49
    log.info("%s is ready to testing", client.env.environment)
50
50
 
51
51
 
52
 
def restore_present_state_server(admin_client, backup_file):
 
52
def restore_present_state_server(controller_client, backup_file):
53
53
    """juju-restore won't restore when the state-server is still present."""
54
54
    try:
55
 
        output = admin_client.restore_backup(backup_file)
 
55
        output = controller_client.restore_backup(backup_file)
56
56
    except CalledProcessError as e:
57
57
        log.info(
58
58
            "juju-restore correctly refused to restore "
97
97
    return deleted_machines
98
98
 
99
99
 
100
 
def restore_missing_state_server(client, admin_client, backup_file):
 
100
def restore_missing_state_server(client, controller_client, backup_file):
101
101
    """juju-restore creates a replacement state-server for the services."""
102
102
    log.info("Starting restore.")
103
103
    try:
104
 
        output = admin_client.restore_backup(backup_file)
 
104
        output = controller_client.restore_backup(backup_file)
105
105
    except CalledProcessError as e:
106
106
        log.info('Call of juju restore exited with an error\n')
107
107
        log.info('Call:  %r\n', e.cmd)
109
109
        log.exception(e)
110
110
        raise LoggedException(e)
111
111
    log.info(output)
112
 
    admin_client.wait_for_started(600).status
 
112
    controller_client.wait_for_started(600).status
113
113
    log.info("%s restored", client.env.environment)
114
114
    log.info("PASS")
115
115
 
147
147
    deploy_stack(client, charm_series)
148
148
    log.info("Setup complete.")
149
149
    log.info("Test started.")
150
 
    admin_client = client.get_admin_client()
 
150
    controller_client = client.get_controller_client()
151
151
    if strategy in ('ha', 'ha-backup'):
152
 
        admin_client.enable_ha()
153
 
        admin_client.wait_for_ha()
 
152
        controller_client.enable_ha()
 
153
        controller_client.wait_for_ha()
154
154
    if strategy in ('ha-backup', 'backup'):
155
 
        backup_file = admin_client.backup()
156
 
        restore_present_state_server(admin_client, backup_file)
 
155
        backup_file = controller_client.backup()
 
156
        restore_present_state_server(controller_client, backup_file)
157
157
    if strategy == 'ha':
158
158
        leader_only = True
159
159
    else:
160
160
        leader_only = False
161
161
    deleted_machine_ids = delete_controller_members(
162
 
        admin_client, leader_only=leader_only)
 
162
        controller_client, leader_only=leader_only)
163
163
    log.info("Deleted {}".format(deleted_machine_ids))
164
164
    for m_id in deleted_machine_ids:
165
165
        if bs_manager.known_hosts.get(m_id):
169
169
        log.info("HA recovered from leader failure.")
170
170
        log.info("PASS")
171
171
    else:
172
 
        restore_missing_state_server(client, admin_client, backup_file)
 
172
        restore_missing_state_server(client, controller_client, backup_file)
173
173
    log.info("Test complete.")
174
174
 
175
175