Exemple #1
0
 public EtcdController(IDataProvider <string> dataProvider,
                       EtcdClient etcdClient, IOptions <EtcdProviderOptions> etcdProviderOptions)
 {
     _dataProvider        = dataProvider;
     _etcdClient          = etcdClient;
     _etcdProviderOptions = etcdProviderOptions.Value;
 }
Exemple #2
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="logger">The <see cref="ILogger{EtcdDataProvider}"/> which will be used to log events by the provider.</param>
        /// <param name="dataSerializer">The <see cref="IDataProvider{T}"/> which will be used to serialize data from Etcd.</param>
        /// <param name="etcdProviderOptionsAccessor">The <see cref="IDataProviderOptions{T,TOptions}"/> which will be used to access options for the instance of the provider.</param>
        public EtcdDataProvider(ILogger <EtcdDataProvider <T> > logger,
                                IDataSerializer <T> dataSerializer,
                                IDataProviderOptions <T, EtcdProviderOptions> etcdProviderOptionsAccessor)
        {
            _logger              = logger;
            _dataSerializer      = dataSerializer;
            _etcdProviderOptions = etcdProviderOptionsAccessor.Value;

            _etcdClient = new EtcdClient(_etcdProviderOptions.ConnectionString, _etcdProviderOptions.Port,
                                         _etcdProviderOptions.Username, _etcdProviderOptions.Password, _etcdProviderOptions.CaCertificate,
                                         _etcdProviderOptions.ClientCertificate, _etcdProviderOptions.ClientKey,
                                         _etcdProviderOptions.IsPublicRootCa);

            if (!string.IsNullOrEmpty(_etcdProviderOptions.Username) &&
                !string.IsNullOrEmpty(_etcdProviderOptions.Password))
            {
                _metadata = new Metadata
                {
                    { "Authorization", $"Basic {_etcdProviderOptions.Username}:{_etcdProviderOptions.Password}" }
                };
            }
        }