/// <summary>
        /// <inheritdoc cref="TransportConfiguration"/>
        /// </summary>
        /// <param name="connectionPool"><inheritdoc cref="IConnectionPool"/></param>
        /// <param name="connection"><inheritdoc cref="IConnection"/></param>
        /// <param name="requestResponseSerializer"><inheritdoc cref="ITransportSerializer"/></param>
        /// <param name="productRegistration"><inheritdoc cref="IProductRegistration"/></param>
        protected TransportConfigurationBase(IConnectionPool connectionPool, IConnection connection, ITransportSerializer requestResponseSerializer, IProductRegistration productRegistration)
        {
            _connectionPool      = connectionPool;
            _connection          = connection ?? new HttpConnection();
            _productRegistration = productRegistration ?? ProductRegistration.Default;
            var serializer = requestResponseSerializer ?? new LowLevelRequestResponseSerializer();

            UseThisRequestResponseSerializer = new DiagnosticsSerializerProxy(serializer);

            _connectionLimit        = TransportConfiguration.DefaultConnectionLimit;
            _requestTimeout         = TransportConfiguration.DefaultTimeout;
            _dnsRefreshTimeout      = TransportConfiguration.DefaultDnsRefreshTimeout;
            _memoryStreamFactory    = TransportConfiguration.DefaultMemoryStreamFactory;
            _sniffOnConnectionFault = true;
            _sniffOnStartup         = true;
            _sniffLifeSpan          = TimeSpan.FromHours(1);

            _urlFormatter = new UrlFormatter(this);
            _statusCodeToResponseSuccess = (m, i) => _productRegistration.HttpStatusCodeClassifier(m, i);
            _userAgent = Elastic.Transport.UserAgent.Create(_productRegistration.Name, _productRegistration.GetType());

            if (connectionPool is CloudConnectionPool cloudPool)
            {
                _authenticationHeader  = cloudPool.AuthenticationHeader;
                _enableHttpCompression = true;
            }
        }
        /// <inheritdoc cref="IRequestPipeline"/>
        public RequestPipeline(
            TConfiguration configurationValues,
            IDateTimeProvider dateTimeProvider,
            IMemoryStreamFactory memoryStreamFactory,
            IRequestParameters requestParameters
            )
        {
            _settings            = configurationValues;
            _connectionPool      = _settings.ConnectionPool;
            _connection          = _settings.Connection;
            _dateTimeProvider    = dateTimeProvider;
            _memoryStreamFactory = memoryStreamFactory;
            _productRegistration = configurationValues.ProductRegistration;

            _nodePredicate = _settings.NodePredicate ?? _productRegistration.NodePredicate;

            RequestConfiguration     = requestParameters?.RequestConfiguration;
            PingRequestConfiguration = new RequestConfiguration
            {
                PingTimeout          = PingTimeout,
                RequestTimeout       = PingTimeout,
                AuthenticationHeader = _settings.AuthenticationHeader,
                EnableHttpPipelining = RequestConfiguration?.EnableHttpPipelining ?? _settings.HttpPipeliningEnabled,
                ForceNode            = RequestConfiguration?.ForceNode
            };
            StartedOn = dateTimeProvider.Now();
        }
 /// <summary> <inheritdoc cref="TransportConfiguration"/></summary>
 /// <param name="connectionPool"><inheritdoc cref="IConnectionPool"/></param>
 /// <param name="connection"><inheritdoc cref="IConnection"/></param>
 /// <param name="serializer"><inheritdoc cref="ITransportSerializer"/></param>
 /// <param name="productRegistration"><inheritdoc cref="IProductRegistration"/></param>
 public TransportConfiguration(
     IConnectionPool connectionPool,
     IConnection connection                   = null,
     ITransportSerializer serializer          = null,
     IProductRegistration productRegistration = null)
     : base(connectionPool, connection, serializer, productRegistration)
 {
 }
 public ProductImprovementController(
     ApplicationConfigurationService applicationConfigurationService,
     IProductRegistration productRegistration,
     AdminAppUserContext userContext)
 {
     _applicationConfigurationService = applicationConfigurationService;
     _productRegistration             = productRegistration;
     _userContext = userContext;
 }
Exemplo n.º 5
0
 public MyClientConfiguration(
     IConnectionPool connectionPool = null,
     IConnection connection         = null,
     ITransportSerializer requestResponseSerializer = null,
     IProductRegistration productRegistration       = null)
     : base(
         connectionPool ?? new SingleNodeConnectionPool(new Uri("http://default-endpoint.example"))
         , connection, requestResponseSerializer, productRegistration)
 {
 }
 public IdentityController(ApplicationConfigurationService applicationConfiguration, RegisterCommand registerCommand, EditUserRoleCommand editUserRoleCommand, IGetOdsInstanceRegistrationsQuery getOdsInstanceRegistrationsQuery,
                           SignInManager <AdminAppUser> signInManager,
                           UserManager <AdminAppUser> userManager,
                           IProductRegistration productRegistration,
                           AdminAppIdentityDbContext identity)
 {
     _applicationConfiguration         = applicationConfiguration;
     _registerCommand                  = registerCommand;
     _editUserRoleCommand              = editUserRoleCommand;
     _getOdsInstanceRegistrationsQuery = getOdsInstanceRegistrationsQuery;
     _signInManager       = signInManager;
     _userManager         = userManager;
     _productRegistration = productRegistration;
     _identity            = identity;
 }
Exemplo n.º 7
0
        /// <summary>
        /// Transport coordinates the client requests over the connection pool nodes and is in charge of falling over on different nodes
        /// </summary>
        /// <param name="configurationValues">The connection settings to use for this transport</param>
        /// <param name="pipelineProvider">In charge of create a new pipeline, safe to pass null to use the default</param>
        /// <param name="dateTimeProvider">The date time proved to use, safe to pass null to use the default</param>
        /// <param name="memoryStreamFactory">The memory stream provider to use, safe to pass null to use the default</param>
        public Transport(
            TConnectionSettings configurationValues,
            IRequestPipelineFactory pipelineProvider,
            IDateTimeProvider dateTimeProvider,
            IMemoryStreamFactory memoryStreamFactory
            )
        {
            configurationValues.ThrowIfNull(nameof(configurationValues));
            configurationValues.ConnectionPool.ThrowIfNull(nameof(configurationValues.ConnectionPool));
            configurationValues.Connection.ThrowIfNull(nameof(configurationValues.Connection));
            configurationValues.RequestResponseSerializer.ThrowIfNull(nameof(configurationValues.RequestResponseSerializer));

            _productRegistration = configurationValues.ProductRegistration;
            Settings             = configurationValues;
            PipelineProvider     = pipelineProvider ?? new RequestPipelineFactory();
            DateTimeProvider     = dateTimeProvider ?? Elastic.Transport.DateTimeProvider.Default;
            MemoryStreamFactory  = memoryStreamFactory ?? configurationValues.MemoryStreamFactory;
        }
 /// <summary>
 /// Sets up the client to communicate to Elastic Cloud using <paramref name="cloudId"/>,
 /// <para><see cref="CloudConnectionPool"/> documentation for more information on how to obtain your Cloud Id</para>
 /// </summary>
 public TransportConfiguration(string cloudId, Base64ApiKey credentials, IProductRegistration productRegistration = null)
     : this(new CloudConnectionPool(cloudId, credentials), productRegistration : productRegistration)
 {
 }
 public TransportConfiguration(Uri uri = null, IProductRegistration productRegistration = null)
     : this(new SingleNodeConnectionPool(uri ?? new Uri("http://localhost:9200")), productRegistration : productRegistration)
 {
 }
Exemplo n.º 10
0
 protected ConnectionConfigurationBase(IConnectionPool connectionPool, IConnection connection, ITransportSerializer serializer,
                                       IProductRegistration registration = null)
     : base(connectionPool, connection, serializer, registration ?? ElasticsearchProductRegistration.Default) =>