def test_find_connectable_master_one_failure( mock_check_ssh_and_sudo_on_master): masters = [ '192.0.2.1', '192.0.2.2', '192.0.2.3', ] timeout = 6.0 # iter() is a workaround # (http://lists.idyll.org/pipermail/testing-in-python/2013-April/005527.html) # for a bug in mock (http://bugs.python.org/issue17826) create_connection_side_effects = iter([ (False, "something bad"), (True, 'unused'), (True, 'unused'), ]) mock_check_ssh_and_sudo_on_master.side_effect = create_connection_side_effects mock_check_ssh_and_sudo_on_master.return_value = True actual = utils.find_connectable_master(masters) assert mock_check_ssh_and_sudo_on_master.call_count == 2 mock_check_ssh_and_sudo_on_master.assert_any_call(masters[0], timeout=timeout) mock_check_ssh_and_sudo_on_master.assert_any_call(masters[1], timeout=timeout) assert actual == ('192.0.2.2', None)
def test_find_connectable_master_happy_path(mock_check_ssh_on_master): masters = ["192.0.2.1", "192.0.2.2", "192.0.2.3"] timeout = 6.0 mock_check_ssh_on_master.return_value = (True, None) actual = utils.find_connectable_master(masters) expected = (masters[0], None) assert mock_check_ssh_on_master.call_count == 1 mock_check_ssh_on_master.assert_called_once_with(masters[0], timeout=timeout) assert actual == expected
def get_any_mesos_master(cluster): system_paasta_config = load_system_paasta_config() masters, output = calculate_remote_masters(cluster, system_paasta_config) if not masters: print 'ERROR: %s' % output sys.exit(1) mesos_master, output = find_connectable_master(masters) if not mesos_master: print 'ERROR: could not find connectable master in cluster %s\nOutput: %s' % (cluster, output) sys.exit(1) return mesos_master
def get_any_mesos_master(cluster, system_paasta_config): masters, output = calculate_remote_masters(cluster, system_paasta_config) if not masters: paasta_print('ERROR: %s' % output) sys.exit(1) mesos_master, output = find_connectable_master(masters) if not mesos_master: paasta_print( 'ERROR: could not find connectable master in cluster %s\nOutput: %s' % (cluster, output)) sys.exit(1) return mesos_master
def test_find_connectable_master_all_failures(mock_check_ssh_on_master): masters = ["192.0.2.1", "192.0.2.2", "192.0.2.3"] timeout = 6.0 mock_check_ssh_on_master.return_value = (255, "timeout") actual = utils.find_connectable_master(masters) assert mock_check_ssh_on_master.call_count == 3 mock_check_ssh_on_master.assert_any_call((masters[0]), timeout=timeout) mock_check_ssh_on_master.assert_any_call((masters[1]), timeout=timeout) mock_check_ssh_on_master.assert_any_call((masters[2]), timeout=timeout) assert actual[0] is None assert "timeout" in actual[1]
def get_any_mesos_master(cluster, system_paasta_config): masters, output = calculate_remote_masters(cluster, system_paasta_config) if not masters: print("ERROR: %s" % output) sys.exit(1) mesos_master, output = find_connectable_master(masters) if not mesos_master: print( f"ERROR: could not find connectable master in cluster {cluster}\nOutput: {output}" ) sys.exit(1) return mesos_master
def test_find_connectable_master_happy_path(mock_check_ssh_and_sudo_on_master): masters = [ '192.0.2.1', '192.0.2.2', '192.0.2.3', ] timeout = 6.0 mock_check_ssh_and_sudo_on_master.return_value = (True, None) actual = utils.find_connectable_master(masters) expected = (masters[0], None) assert mock_check_ssh_and_sudo_on_master.call_count == 1 mock_check_ssh_and_sudo_on_master.assert_called_once_with(masters[0], timeout=timeout) assert actual == expected
def test_find_connectable_master_all_failures(mock_check_ssh_and_sudo_on_master): masters = [ '192.0.2.1', '192.0.2.2', '192.0.2.3', ] timeout = 6.0 mock_check_ssh_and_sudo_on_master.return_value = (255, "timeout") actual = utils.find_connectable_master(masters) assert mock_check_ssh_and_sudo_on_master.call_count == 3 mock_check_ssh_and_sudo_on_master.assert_any_call((masters[0]), timeout=timeout) mock_check_ssh_and_sudo_on_master.assert_any_call((masters[1]), timeout=timeout) mock_check_ssh_and_sudo_on_master.assert_any_call((masters[2]), timeout=timeout) assert actual[0] is None assert 'timeout' in actual[1]
def test_find_connectable_master_one_failure(mock_check_ssh_and_sudo_on_master): masters = [ '192.0.2.1', '192.0.2.2', '192.0.2.3', ] timeout = 6.0 # iter() is a workaround # (http://lists.idyll.org/pipermail/testing-in-python/2013-April/005527.html) # for a bug in mock (http://bugs.python.org/issue17826) create_connection_side_effects = iter([ (False, "something bad"), (True, 'unused'), (True, 'unused'), ]) mock_check_ssh_and_sudo_on_master.side_effect = create_connection_side_effects mock_check_ssh_and_sudo_on_master.return_value = True actual = utils.find_connectable_master(masters) assert mock_check_ssh_and_sudo_on_master.call_count == 2 mock_check_ssh_and_sudo_on_master.assert_any_call(masters[0], timeout=timeout) mock_check_ssh_and_sudo_on_master.assert_any_call(masters[1], timeout=timeout) assert actual == ('192.0.2.2', None)