def __init__(self, server, config, hist): # Create the stub if config.HasField('security_params'): creds = grpc.ssl_channel_credentials( resources.test_root_certificates()) channel = test_common.test_secure_channel( server, creds, config.security_params.server_host_override) else: channel = grpc.insecure_channel(server) # waits for the channel to be ready before we start sending messages grpc.channel_ready_future(channel).result() if config.payload_config.WhichOneof('payload') == 'simple_params': self._generic = False self._stub = benchmark_service_pb2_grpc.BenchmarkServiceStub( channel) payload = messages_pb2.Payload( body=bytes(b'\0' * config.payload_config.simple_params.req_size)) self._request = messages_pb2.SimpleRequest( payload=payload, response_size=config.payload_config.simple_params.resp_size) else: self._generic = True self._stub = GenericStub(channel) self._request = bytes(b'\0' * config.payload_config.bytebuf_params.req_size) self._hist = hist self._response_callbacks = []
def __init__(self, address: str, config: control_pb2.ClientConfig, hist: histogram.Histogram): # Disables underlying reuse of subchannels unique_option = (('iv', random.random()),) # Parses the channel argument from config channel_args = tuple( (arg.name, arg.str_value) if arg.HasField('str_value') else ( arg.name, int(arg.int_value)) for arg in config.channel_args) # Creates the channel if config.HasField('security_params'): channel_credentials = grpc.ssl_channel_credentials( resources.test_root_certificates(),) server_host_override_option = (( 'grpc.ssl_target_name_override', config.security_params.server_host_override, ),) self._channel = aio.secure_channel( address, channel_credentials, unique_option + channel_args + server_host_override_option) else: self._channel = aio.insecure_channel(address, options=unique_option + channel_args) # Creates the stub if config.payload_config.WhichOneof('payload') == 'simple_params': self._generic = False self._stub = benchmark_service_pb2_grpc.BenchmarkServiceStub( self._channel) payload = messages_pb2.Payload( body=b'\0' * config.payload_config.simple_params.req_size) self._request = messages_pb2.SimpleRequest( payload=payload, response_size=config.payload_config.simple_params.resp_size) else: self._generic = True self._stub = GenericStub(self._channel) self._request = b'\0' * config.payload_config.bytebuf_params.req_size self._hist = hist self._response_callbacks = [] self._concurrency = config.outstanding_rpcs_per_channel