|
|
|
@ -198,6 +198,7 @@ _WAIT_FOR_OPERATION_SEC = 300 |
|
|
|
|
_INSTANCE_GROUP_SIZE = args.instance_group_size |
|
|
|
|
_NUM_TEST_RPCS = 10 * args.qps |
|
|
|
|
_WAIT_FOR_STATS_SEC = 180 |
|
|
|
|
_WAIT_FOR_VALID_CONFIG_SEC = 60 |
|
|
|
|
_WAIT_FOR_URL_MAP_PATCH_SEC = 300 |
|
|
|
|
_CONNECTION_TIMEOUT_SEC = 60 |
|
|
|
|
_GCP_API_RETRIES = 5 |
|
|
|
@ -226,9 +227,9 @@ _BOOTSTRAP_TEMPLATE = """ |
|
|
|
|
# TODO(ericgribkoff) Add change_backend_service to this list once TD no longer |
|
|
|
|
# sends an update with no localities when adding the MIG to the backend service |
|
|
|
|
# can race with the URL map patch. |
|
|
|
|
# TODO(ericgribkoff) Add new_instance_group_receives_traffic, ping_pong, and |
|
|
|
|
# round_robin when empty update issue is resolved. |
|
|
|
|
_TESTS_TO_FAIL_ON_RPC_FAILURE = [] |
|
|
|
|
_TESTS_TO_FAIL_ON_RPC_FAILURE = [ |
|
|
|
|
'new_instance_group_receives_traffic', 'ping_pong', 'round_robin' |
|
|
|
|
] |
|
|
|
|
_TESTS_USING_SECONDARY_IG = [ |
|
|
|
|
'secondary_locality_gets_no_requests_on_partial_primary_failure', |
|
|
|
|
'secondary_locality_gets_requests_on_primary_failure' |
|
|
|
@ -1031,6 +1032,15 @@ def wait_for_healthy_backends(gcp, |
|
|
|
|
(timeout_sec, result)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def wait_for_config_propagation(gcp, instance_group, client_cmd, client_env): |
|
|
|
|
"""Use client to verify config propagation from GCP->TD->client""" |
|
|
|
|
instance_names = get_instance_names(gcp, instance_group) |
|
|
|
|
client_process = subprocess.Popen(shlex.split(client_cmd), env=client_env) |
|
|
|
|
wait_until_all_rpcs_go_to_given_backends(instance_names, |
|
|
|
|
_WAIT_FOR_VALID_CONFIG_SEC) |
|
|
|
|
client_process.terminate() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_instance_names(gcp, instance_group): |
|
|
|
|
instance_names = [] |
|
|
|
|
result = gcp.compute.instanceGroups().listInstances( |
|
|
|
@ -1215,6 +1225,13 @@ try: |
|
|
|
|
test_log_file = open(test_log_filename, 'w+') |
|
|
|
|
client_process = None |
|
|
|
|
if test_case in _TESTS_TO_FAIL_ON_RPC_FAILURE: |
|
|
|
|
wait_for_config_propagation( |
|
|
|
|
gcp, instance_group, |
|
|
|
|
args.client_cmd.format(server_uri=server_uri, |
|
|
|
|
stats_port=args.stats_port, |
|
|
|
|
qps=args.qps, |
|
|
|
|
fail_on_failed_rpc=False), |
|
|
|
|
client_env) |
|
|
|
|
fail_on_failed_rpc = '--fail_on_failed_rpc=true' |
|
|
|
|
else: |
|
|
|
|
fail_on_failed_rpc = '--fail_on_failed_rpc=false' |
|
|
|
|