| 
					
				 | 
			
			
				@@ -39,6 +39,7 @@ from src.proto.grpc.testing import metrics_pb2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from src.proto.grpc.testing import test_pb2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from tests.interop import methods 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from tests.interop import resources 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from tests.qps import histogram 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from tests.stress import metrics_server 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from tests.stress import test_runner 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -71,6 +72,16 @@ def _args(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       '--metrics_port', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       help='the port to listen for metrics requests on', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       default=8081, type=int) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  parser.add_argument( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      '--use_test_ca', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      help='Whether to use our fake CA. Requires --use_tls=true', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      default=False, type=bool) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  parser.add_argument( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      '--use_tls', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      help='Whether to use TLS', default=False, type=bool) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  parser.add_argument( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      '--server_host_override', default="foo.test.google.fr", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      help='the server host to which to claim to connect', type=str) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return parser.parse_args() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -90,6 +101,19 @@ def _parse_weighted_test_cases(test_case_args): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     weighted_test_cases[test_case] = int(weight) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return weighted_test_cases 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def _get_channel(target, args): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if args.use_tls: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if args.use_test_ca: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      root_certificates = resources.test_root_certificates() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      root_certificates = None  # will load default roots. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    channel_credentials = grpc.ssl_channel_credentials( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        root_certificates=root_certificates) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    options = (('grpc.ssl_target_name_override', args.server_host_override,),) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return grpc.secure_channel( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        target, channel_credentials, options=options) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return grpc.insecure_channel(target) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def run_test(args): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   test_cases = _parse_weighted_test_cases(args.test_cases) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -108,7 +132,7 @@ def run_test(args): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   for test_server_target in test_server_targets: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     for _ in xrange(args.num_channels_per_server): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      channel = grpc.insecure_channel(test_server_target) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      channel = _get_channel(test_server_target, args) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       for _ in xrange(args.num_stubs_per_channel): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         stub = test_pb2.TestServiceStub(channel) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         runner = test_runner.TestRunner(stub, test_cases, hist, 
			 |