def test_drain_hosts_timed_out_wait(self, _, mock_drain_hosts, mock_maintenance_status): fake_maintenance_status_response = Response( responseCode=ResponseCode.OK, result=Result(maintenanceStatusResult=MaintenanceStatusResult( set([ HostStatus(host=TEST_HOSTNAMES[0], mode=MaintenanceMode.SCHEDULED), HostStatus(host=TEST_HOSTNAMES[1], mode=MaintenanceMode.SCHEDULED), HostStatus(host=TEST_HOSTNAMES[2], mode=MaintenanceMode.SCHEDULED) ])))) mock_drain_hosts.return_value = Response(responseCode=ResponseCode.OK) mock_maintenance_status.return_value = fake_maintenance_status_response test_hosts = Hosts(set(TEST_HOSTNAMES)) maintenance = HostMaintenance(DEFAULT_CLUSTER, 'quiet') maintenance.MAX_STATUS_WAIT = Amount(1, Time.MILLISECONDS) not_drained_hostnames = maintenance._drain_hosts(test_hosts) assert TEST_HOSTNAMES == sorted(not_drained_hostnames) assert mock_maintenance_status.call_count == 1 mock_drain_hosts.assert_called_once_with(test_hosts) mock_maintenance_status.assert_called_once_with( (Hosts(set(TEST_HOSTNAMES))))
def test_drain_hosts_timed_out_wait(self, _, mock_drain_hosts, mock_maintenance_status, mock_log): fake_maintenance_status_response = Response( responseCode=ResponseCode.OK, result=Result(maintenanceStatusResult=MaintenanceStatusResult(set([ HostStatus(host=TEST_HOSTNAMES[0], mode=MaintenanceMode.SCHEDULED), HostStatus(host=TEST_HOSTNAMES[1], mode=MaintenanceMode.SCHEDULED), HostStatus(host=TEST_HOSTNAMES[2], mode=MaintenanceMode.SCHEDULED) ])))) mock_drain_hosts.return_value = Response(responseCode=ResponseCode.OK) mock_maintenance_status.return_value = fake_maintenance_status_response test_hosts = Hosts(set(TEST_HOSTNAMES)) maintenance = HostMaintenance(DEFAULT_CLUSTER, 'quiet') maintenance.MAX_STATUS_WAIT = Amount(1, Time.MILLISECONDS) not_drained_hostnames = maintenance._drain_hosts(test_hosts) assert TEST_HOSTNAMES == sorted(not_drained_hostnames) assert mock_maintenance_status.call_count == 1 mock_drain_hosts.assert_called_once_with(test_hosts) mock_maintenance_status.assert_called_once_with((Hosts(set(TEST_HOSTNAMES)))) assert mock_log.mock_calls == [mock.call(textwrap.dedent("""\ Failed to move all hosts into DRAINED within 1 ms: \tHost:us-west-001.example.com\tStatus:SCHEDULED \tHost:us-west-002.example.com\tStatus:SCHEDULED \tHost:us-west-003.example.com\tStatus:SCHEDULED"""))]
def test_drain_hosts_timed_out_wait(self, _, mock_drain_hosts, mock_maintenance_status): fake_maintenance_status_response = Response( responseCode=ResponseCode.OK, result=Result(maintenanceStatusResult=MaintenanceStatusResult(set([ HostStatus(host=TEST_HOSTNAMES[0], mode=MaintenanceMode.SCHEDULED), HostStatus(host=TEST_HOSTNAMES[1], mode=MaintenanceMode.SCHEDULED), HostStatus(host=TEST_HOSTNAMES[2], mode=MaintenanceMode.SCHEDULED) ])))) mock_drain_hosts.return_value = Response(responseCode=ResponseCode.OK) mock_maintenance_status.return_value = fake_maintenance_status_response test_hosts = Hosts(set(TEST_HOSTNAMES)) maintenance = HostMaintenance(DEFAULT_CLUSTER, 'quiet') maintenance.MAX_STATUS_WAIT = Amount(1, Time.MILLISECONDS) not_drained_hostnames = maintenance._drain_hosts(test_hosts) assert TEST_HOSTNAMES == sorted(not_drained_hostnames) assert mock_maintenance_status.call_count == 1 mock_drain_hosts.assert_called_once_with(test_hosts) mock_maintenance_status.assert_called_once_with((Hosts(set(TEST_HOSTNAMES))))