review comment fixes

pull/25028/head
Stanley Cheung 4 years ago
parent e4ebd44cd6
commit d04f80a156
  1. 51
      src/ruby/pb/test/xds_client.rb
  2. 2
      tools/internal_ci/linux/grpc_xds_ruby_test_in_docker.sh
  3. 6
      tools/run_tests/run_xds_tests.py

@ -39,6 +39,19 @@ require_relative '../src/proto/grpc/testing/empty_pb'
require_relative '../src/proto/grpc/testing/messages_pb'
require_relative '../src/proto/grpc/testing/test_services_pb'
class RpcConfig
def init(rpcs_to_send, metadata_to_send)
@rpcs_to_send = rpcs_to_send
@metadata_to_send = metadata_to_send
end
def rpcs_to_send
@rpcs_to_send
end
def metadata_to_send
@metadata_to_send
end
end
# Some global constant mappings
$RPC_MAP = {
'UnaryCall' => :UNARY_CALL,
@ -51,8 +64,8 @@ $watchers_mutex = Mutex.new
$watchers_cv = ConditionVariable.new
$shutdown = false
# These can be configured by the test runner dynamically
$rpcs_to_send = [:UNARY_CALL]
$metadata_to_send = {}
$rpc_config = RpcConfig.new
$rpc_config.init([:UNARY_CALL], {})
# These stats are shared across threads
$num_rpcs_started_by_method = {}
$num_rpcs_succeeded_by_method = {}
@ -92,7 +105,7 @@ class ConfigureTarget < Grpc::Testing::XdsUpdateClientConfigureService::Service
include Grpc::Testing
def configure(req, _call)
$rpcs_to_send = req['types'];
rpcs_to_send = req['types'];
metadata_to_send = {}
req['metadata'].each do |m|
rpc = m.type
@ -103,10 +116,12 @@ class ConfigureTarget < Grpc::Testing::XdsUpdateClientConfigureService::Service
metadata_value = m.value
metadata_to_send[rpc][metadata_key] = metadata_value
end
$metadata_to_send = metadata_to_send
GRPC.logger.info("Configuring new rpcs_to_send and metadata_to_send...")
GRPC.logger.info($rpcs_to_send)
GRPC.logger.info($metadata_to_send)
GRPC.logger.info(rpcs_to_send)
GRPC.logger.info(metadata_to_send)
new_rpc_config = RpcConfig.new
new_rpc_config.init(rpcs_to_send, metadata_to_send)
$rpc_config = new_rpc_config
ClientConfigureResponse.new();
end
end
@ -220,9 +235,10 @@ def run_test_loop(stub, target_seconds_between_rpcs, fail_on_failed_rpcs)
end
deadline = GRPC::Core::TimeConsts::from_relative_time(30) # 30 seconds
results = {}
$rpcs_to_send.each do |rpc|
$rpc_config.rpcs_to_send.each do |rpc|
# rpc is in the form of :UNARY_CALL or :EMPTY_CALL here
metadata = $metadata_to_send.key?(rpc) ? $metadata_to_send[rpc] : {}
metadata = $rpc_config.metadata_to_send.key?(rpc) ?
$rpc_config.metadata_to_send[rpc] : {}
$num_rpcs_started_by_method[rpc.to_s] += 1
num_started = $num_rpcs_started_by_method[rpc.to_s]
if num_started % 100 == 0
@ -341,14 +357,6 @@ def main
# The client just sends rpcs continuously in a regular interval
stub = create_stub(opts)
target_seconds_between_rpcs = (1.0 / opts['qps'].to_f)
rpcs_to_send = []
if opts['rpc']
rpcs_to_send = opts['rpc'].split(',')
end
if rpcs_to_send.size > 0
rpcs_to_send.map! { |rpc| $RPC_MAP[rpc] }
$rpcs_to_send = rpcs_to_send
end
# Convert 'metadata' input in the form of
# rpc1:k1:v1,rpc2:k2:v2,rpc1:k3:v3
# into
@ -361,6 +369,7 @@ def main
# 'k2' => 'v2'
# },
# }
rpcs_to_send = []
metadata_to_send = {}
if opts['metadata']
metadata_entries = opts['metadata'].split(',')
@ -373,7 +382,15 @@ def main
end
metadata_to_send[rpc_name][metadata_key] = metadata_value
end
$metadata_to_send = metadata_to_send
end
if opts['rpc']
rpcs_to_send = opts['rpc'].split(',')
end
if rpcs_to_send.size > 0
rpcs_to_send.map! { |rpc| $RPC_MAP[rpc] }
new_rpc_config = RpcConfig.new
new_rpc_config.init(rpcs_to_send, metadata_to_send)
$rpc_config = new_rpc_config
end
client_threads = Array.new
opts['num_channels'].times {

@ -60,7 +60,7 @@ touch "$TOOLS_DIR"/src/proto/grpc/health/v1/__init__.py
(cd src/ruby && bundle && rake compile)
GRPC_VERBOSITY=debug GRPC_TRACE=xds_client,xds_resolver,xds_cluster_manager_lb,cds_lb,priority_lb,xds_cluster_impl_lb,weighted_target_lb "$PYTHON" \
GRPC_VERBOSITY=debug GRPC_TRACE=xds_client,xds_resolver,xds_cluster_manager_lb,cds_lb,xds_cluster_resolver_lb,priority_lb,xds_cluster_impl_lb,weighted_target_lb "$PYTHON" \
tools/run_tests/run_xds_tests.py \
--test_case="all,path_matching,header_matching,circuit_breaking" \
--project_id=grpc-testing \

@ -1282,8 +1282,10 @@ def test_circuit_breaking(gcp, original_backend_service, instance_group,
logger.info('UNARY_CALL reached stable state after increase (%d)',
extra_backend_service_max_requests)
logger.info('success')
configure_client([
messages_pb2.ClientConfigureRequest.RpcType.UNARY_CALL], [])
# Avoid new RPCs being outstanding (some test clients create threads
# for sending RPCs) after restoring backend services.
configure_client(
[messages_pb2.ClientConfigureRequest.RpcType.UNARY_CALL], [])
finally:
patch_url_map_backend_service(gcp, original_backend_service)
patch_backend_service(gcp, original_backend_service, [instance_group])

Loading…
Cancel
Save