93
97
patch.object(client, 'kill_controller', autospec=True).start()
94
98
patch.object(client, 'is_jes_enabled', autospec=True,
95
99
return_value=True).start()
96
patch.object(client, 'get_admin_client', autospec=True).start()
100
patch.object(client, 'get_admin_client', autospec=True,
101
return_value=client).start()
97
102
patch.object(client, 'iter_model_clients', autospec=True,
98
103
return_value=[client]).start()
107
class TestAssessRecovery(TestCase):
110
def assess_recovery_cxt(self, client):
113
def terminate(env, instance_ids):
114
for instance_id in instance_ids:
115
admin_model = client._backing_state.controller.admin_model
116
admin_model.remove_state_server(instance_id)
118
with patch('assess_recovery.terminate_instances',
119
side_effect=terminate):
120
with patch('deploy_stack.wait_for_port', autospec=True):
123
def test_backup(self):
124
client = FakeJujuClient()
125
bs_manager = Mock(client=client, known_hosts={})
126
with self.assess_recovery_cxt(client):
127
assess_recovery(bs_manager, 'backup', 'trusty')
130
client = FakeJujuClient()
131
bs_manager = Mock(client=client, known_hosts={})
132
with self.assess_recovery_cxt(client):
133
assess_recovery(bs_manager, 'ha', 'trusty')
135
def test_ha_backup(self):
136
client = FakeJujuClient()
137
bs_manager = Mock(client=client, known_hosts={})
138
with self.assess_recovery_cxt(client):
139
assess_recovery(bs_manager, 'ha-backup', 'trusty')
141
def test_admin_model_backup(self):
142
client = FakeJujuClient(jes_enabled=True)
143
bs_manager = Mock(client=client, known_hosts={})
144
with self.assess_recovery_cxt(client):
145
assess_recovery(bs_manager, 'backup', 'trusty')
147
def test_admin_model_ha(self):
148
client = FakeJujuClient(jes_enabled=True)
149
bs_manager = Mock(client=client, known_hosts={})
150
with self.assess_recovery_cxt(client):
151
assess_recovery(bs_manager, 'ha', 'trusty')
153
def test_admin_model_ha_backup(self):
154
client = FakeJujuClient(jes_enabled=True)
155
bs_manager = Mock(client=client, known_hosts={})
156
with self.assess_recovery_cxt(client):
157
assess_recovery(bs_manager, 'ha-backup', 'trusty')
102
160
@patch('assess_recovery.BootstrapManager.dump_all_logs', autospec=True)
103
161
@patch('assess_recovery.parse_new_state_server_from_error', autospec=True,
104
162
return_value='new_host')