示例#1
0
        public IObservable <ConsulState> ObserveDependencies(ConsulDependencies dependencies)
        {
            Dependencies = new Subject <ConsulState>();
            ObservingDependencies.Add(dependencies);

            return(Dependencies);
        }
示例#2
0
 public ConsulConfigurationProvider(IObservableConsul consulClient,
                                    IEmergencyCache emergencyCache,
                                    ConsulDependencies dependencies,
                                    ServiceConfigMappingCollection serviceConfigMappings,
                                    KVTreeConfigMappingCollection kvTreeConfigMappings,
                                    KVItemConfigMappingCollection kvItemConfigMappings,
                                    bool autoUpdate)
 {
     _consulClient          = consulClient;
     _emergencyCache        = emergencyCache;
     _dependencies          = dependencies;
     _serviceConfigMappings = serviceConfigMappings;
     _kvTreeConfigMappings  = kvTreeConfigMappings;
     _kvItemConfigMappings  = kvItemConfigMappings;
     _autoUpdate            = autoUpdate;
 }
示例#3
0
 public ConsulConfigurationProvider(IObservableConsul consulClient,
                                    IEmergencyCache emergencyCache,
                                    ConsulDependencies dependencies,
                                    ServiceConfigMappingCollection serviceConfigMappings,
                                    KVTreeConfigMappingCollection kvTreeConfigMappings,
                                    KVItemConfigMappingCollection kvItemConfigMappings,
                                    TimeSpan?retryDelay = null)
 {
     _consulClient          = consulClient;
     _emergencyCache        = emergencyCache;
     _dependencies          = dependencies;
     _serviceConfigMappings = serviceConfigMappings;
     _kvTreeConfigMappings  = kvTreeConfigMappings;
     _kvItemConfigMappings  = kvItemConfigMappings;
     _retryDelay            = retryDelay;
 }
        public ConsulDependencies AnalyzeDependencies(PropertyBag properties, ITemplateRenderer renderer)
        {
            AnalysisMode = true;
            try
            {
                Dependencies = new ConsulDependencies();
                Model        = new ConsulState();
                Properties   = properties ?? new PropertyBag();
                Renderer     = renderer;
                ExecuteAsync().GetAwaiter().GetResult();

                return(Dependencies);
            }
            finally
            {
                AnalysisMode = false;
            }
        }
示例#5
0
        public async Task GetDependenciesReturnsEntireStateOfAllDependencies()
        {
            var dependencies = new ConsulDependencies
            {
                KeyPrefixes = { "apps/myapp" },
                Keys        = { "shared/key1", "shared/missingkey" },
                Services    = { "MyService", "MyService2", "MissingService" }
            };

            var consulState = await _observableConsul.GetDependenciesAsync(dependencies);

            consulState.Services.Should().HaveCount(2);
            consulState.Services.Should().Contain(s => s.Name == "MyService");
            consulState.Services.Should().Contain(s => s.Name == "MyService2");

            consulState.KVStore.ContainsKey("shared/key1").Should().BeTrue();
            consulState.KVStore.ContainsKey("shared/missingkey").Should().BeFalse();
            var childKeys = consulState.KVStore.GetTree("apps/myapp");

            childKeys.Should().HaveCount(3);
        }
 public Task <ConsulState> GetDependenciesAsync(ConsulDependencies dependencies)
 {
     return(Task.FromResult(CurrentState));
 }