コード例 #1
0
            private static async Task <string> GetFlatContainerUriAsync(Uri serviceDiscoveryUri)
            {
                var serviceDiscoveryClient = new ServiceDiscoveryClient(serviceDiscoveryUri);
                var result = await serviceDiscoveryClient.GetEndpointsForResourceType("PackageBaseAddress/3.0.0");

                return(result.First().AbsoluteUri.TrimEnd('/'));
            }
コード例 #2
0
 /// <summary>
 /// Disposes of this instance.
 /// </summary>
 public void Dispose()
 {
     if (_sdClient != null)
     {
         _sdClient.Dispose();
         _sdClient = null;
     }
 }
コード例 #3
0
        public AutoCompleteServiceQuery(IAppConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            _serviceDiscoveryClient          = new ServiceDiscoveryClient(configuration.ServiceDiscoveryUri);
            _autocompleteServiceResourceType = configuration.AutocompleteServiceResourceType;
            _httpClient = new RetryingHttpClientWrapper(new HttpClient());
        }
コード例 #4
0
        private static ServiceDiscoveryClient GetServiceDiscoveryClient()
        {
            var serviceDiscoveryConfiguration = new ServiceDiscoveryConfiguration();

            serviceDiscoveryConfiguration.ServiceUrl = "http://localhost:5000/service-discovery";
            var settings               = Options.Create(serviceDiscoveryConfiguration);
            var restClient             = new RestClient.RestClient();
            var serviceDiscoveryClient = new ServiceDiscoveryClient(settings);

            return(serviceDiscoveryClient);
        }
コード例 #5
0
        public AutocompleteServiceQuery(IAppConfiguration configuration, IResilientSearchClient resilientSearchClient, IFeatureFlagService featureFlagService)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            _serviceDiscoveryClient          = new ServiceDiscoveryClient(configuration.ServiceDiscoveryUri);
            _autocompleteServiceResourceType = configuration.AutocompleteServiceResourceType;
            _httpClientToDeprecate           = new RetryingHttpClientWrapper(new HttpClient(), QuietLog.LogHandledException);
            _resilientSearchClient           = resilientSearchClient;
            _featureFlagService = featureFlagService ?? throw new ArgumentNullException(nameof(featureFlagService));
        }
        private async Task GivenApplicationIsRegistered(string serviceId)
        {
            var options = new ServiceDiscoveryOptions();

            options.ServiceOptions.Id              = serviceId;
            options.ServiceOptions.Name            = "Fake name";
            options.ServiceOptions.Address         = "10.1.1.1";
            options.ServiceOptions.Port            = 5555;
            options.ServiceOptions.HttpHealthCheck = string.Empty;
            options.ServiceOptions.Tags            = new List <string>();
            options.ServerOptions.Address          = "http://127.0.0.1:8500";

            var serviceDiscovery = new ServiceDiscoveryClient(null);
            await serviceDiscovery.RegisterAsync(options);
        }
コード例 #7
0
ファイル: Startup.cs プロジェクト: ready1/net-core-ws-fed
        private HttpClient CreateUpmClient(IConfiguration configuration)
        {
            var envOptions = new EnvironmentOptions();

            configuration.GetSection("dimensionData:environment").Bind(envOptions);
            IServiceDiscoveryClient serviceDiscoveryClient = new ServiceDiscoveryClient(Options.Create(envOptions));

            string upmKey      = Configuration["dimensionData:ui:keys:upm"];
            var    baseAddress = serviceDiscoveryClient.FindGlobalApiService(upmKey).Result;

            return(new HttpClientBuilder()
                   .SetBaseAddress(baseAddress)
                   .SetRetryPolicy(3, TimeSpan.FromSeconds(1), 2)
                   .Build());
        }
コード例 #8
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
            services.AddMemoryCache();

            var config     = JsonConvert.DeserializeObject <AppConfiguration>(File.ReadAllText("config.json"));
            var httpClient = new HttpClient {
                Timeout = TimeSpan.FromSeconds(15D)
            };
            var serviceDiscoveryClient = new ServiceDiscoveryClient(config, httpClient);

            serviceDiscoveryClient.GetServices().GetAwaiter();
            services.AddSingleton <IBlobStorageConfiguration>(config);
            services.AddSingleton <IClientConfiguration>(config);
            services.AddSingleton(serviceDiscoveryClient);
            services.AddSingleton <ServiceDiscoveryService>();
        }
        private async Task WhenUserRegisterApplicationWithIdAndAddress(string serviceId, string serviceAddress)
        {
            try
            {
                var options = new ServiceDiscoveryOptions();
                options.ServiceOptions.Id              = serviceId;
                options.ServiceOptions.Name            = "Fake name";
                options.ServiceOptions.Address         = serviceAddress;
                options.ServiceOptions.Port            = 5555;
                options.ServiceOptions.HttpHealthCheck = string.Empty;
                options.ServiceOptions.Tags            = new List <string>();
                options.ServerOptions.Address          = "http://127.0.0.1:8500";

                var serviceDiscovery = new ServiceDiscoveryClient(null);
                await serviceDiscovery.RegisterAsync(options);

                _result = true;
            }
            catch (Exception)
            {
                _result = false;
            }
        }
コード例 #10
0
 public ServiceDiscoveryService(ServiceDiscoveryClient serviceDiscoveryClient, IMemoryCache memoryCache)
 {
     this.serviceDiscoveryClient = serviceDiscoveryClient;
     this.memoryCache            = memoryCache;
 }
コード例 #11
0
 internal OpticalDiscService(ServiceInstance instance, ServiceDiscoveryClient sdClient)
 {
     _sdClient = sdClient;
     _instance = instance;
 }
コード例 #12
0
 /// <summary>
 /// Initializes a new instance of the OpticalDiscServiceClient class.
 /// </summary>
 public OpticalDiscServiceClient()
 {
     _sdClient = new ServiceDiscoveryClient();
 }
コード例 #13
0
 public AutocompleteServicePackageVersionsQuery(IAppConfiguration configuration)
 {
     _serviceDiscoveryClient          = new ServiceDiscoveryClient(configuration.ServiceDiscoveryUri);
     _autocompleteServiceResourceType = configuration.AutocompleteServiceResourceType;
     _httpClient = new RetryingHttpClientWrapper(new HttpClient());
 }
コード例 #14
0
        public static int Main(String [] args)
        {
            _stopwatch = new Stopwatch();
            _stopwatch.Start();

            Log.WriteHeader();

            try {
                //retrieve the parameters from the commant line.
                var settings = new Parameters(args);
                if (settings.DisplayHelp)
                {
                    Console.WriteLine(Resources.Usage);
                    return(0);
                }

                var sdIp    = ConfigurationManager.Server.ServiceDiscovery.IpAddress;
                var sdPortS = ConfigurationManager.Server.ServiceDiscovery.Port;
                int sdPort  = 0;

                if (int.TryParse(sdPortS, out sdPort))
                {
                    var sdNodeEndPoint = CreateEndpoint(sdIp, Convert.ToInt32(sdPort));

                    //register service with service discovery
                    var serviceDiscoveryAssemblyName = ConfigurationManager.Server.ServiceDiscovery.AssemblyName;
                    var serviceDiscoveryType         = ConfigurationManager.Server.ServiceDiscovery.Type;

                    if (!string.IsNullOrWhiteSpace(serviceDiscoveryAssemblyName))
                    {
                        try {
                            //assembly name specified so load the assembly
                            var serviceDiscovery = new ServiceDiscoveryClient(serviceDiscoveryAssemblyName, serviceDiscoveryType, sdNodeEndPoint);

                            Log.Info(string.Format("Registering GAF Evaluation Server with Service Discovery at address {0}.", sdNodeEndPoint.ToString()));

                            var serviceId = string.Format("GAF-Server:{0}:{1}", settings.EndPoint.Address, settings.EndPoint.Port);
                            serviceDiscovery.RegisterService(serviceId, settings.EndPoint, settings.EndPoint);
                        } catch (Exception ex) {
                            while (ex.InnerException != null)
                            {
                                ex = ex.InnerException;
                            }
                            Log.Warning(string.Format("Service Discovery Registration Failed [{0}].", ex.Message));
                        }
                    }
                    else
                    {
                        Log.Warning("Service Discovery not defined... skipped.");
                    }
                }

                var fitnessAssemblyName = ConfigurationManager.Server.Fitness.AssemblyName;

                Network.EvaluationServer evaluationServer = new GAF.Network.EvaluationServer(fitnessAssemblyName);
                evaluationServer.OnEvaluationComplete += OnEvaluationComplete;
                //evaluationServer.OnLogging += (object sender, GAF.Network.LoggingEventArgs e) => {
                //	Log (e.Message);
                //};

                //start the server
                evaluationServer.Start(settings.EndPoint);
            } catch (Exception ex) {
                Log.Error(ex);
            }

            //program should never return so if we get here it must be an exception
            return(-1);
        }