예제 #1
0
        public static async Task <MicClient> CreateMicClient(string hostname, CancellationToken cancelToken)
        {
            HttpClientHandler httpHandler = new HttpClientHandler();

            if (useProxy)
            {
                httpHandler.Proxy    = new WebProxy("http://localhost:8888/");
                httpHandler.UseProxy = true;
            }

            MicClient micClient;

            if (useLambdaClient)
            {
                MicManifest manifest;
                using (var httpClient = new HttpClient(httpHandler))
                {
                    manifest = await MicManifest.GetMicManifest(hostname, httpClient, cancelToken);
                }
                micClient = new MicLambdaClient(manifest);
            }
            else
            {
                micClient = await MicRestClient.CreateFromHostname(hostname, httpHandler, cancelToken);
            }

            if (useProxy)
            {
                micClient.Config.ProxyHost = "localhost";
                micClient.Config.ProxyPort = 8888;
            }

            return(micClient);
        }
예제 #2
0
 private static void AssertMicManifest(MicManifest manifest)
 {
     Assert.NotNull(manifest);
     foreach (var pi in manifest.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance))
     {
         object pv = pi.GetValue(manifest);
     }
 }
예제 #3
0
        public static async Task <MicLambdaClient> CreateFromHostname(
            string hostname, CancellationToken cancelToken = default)
        {
            var manifest = await MicManifest.GetMicManifest(hostname, cancelToken)
                           .ConfigureAwait(continueOnCapturedContext: false);

            return(new MicLambdaClient(manifest));
        }
예제 #4
0
 public static void GetMicManifestWithCancelledTokenThrows(string hostname)
 {
     Assert.Throws <TaskCanceledException>(() =>
     {
         var cts = new CancellationTokenSource();
         cts.Cancel();
         MicManifest.GetMicManifest(hostname, cts.Token)
         .GetAwaiter().GetResult();
     });
 }
예제 #5
0
        private static async Task <MicRestClient> CreateFromHostname(string hostname, string apiKey, HttpClient httpClient, CancellationToken cancelToken)
        {
            var manifest = await MicManifest.GetMicManifest(hostname, httpClient, cancelToken)
                           .ConfigureAwait(continueOnCapturedContext: false);

            //string apiKey = manifest.ApiKeyId;
            var micClient = new MicRestClient(manifest, apiKey, httpClient);

            return(micClient);
        }
예제 #6
0
        public static async Task GetMicManifestForHostname(string hostname)
        {
            var manifest = await MicManifest.GetMicManifest(hostname);

            AssertMicManifest(manifest);
        }
예제 #7
0
 private MicRestClient(MicManifest manifest, string apiKey, HttpClient httpClient) : this(manifest, httpClient)
 {
     ApiKey = apiKey.ThrowIfNullOrWhiteSpace(nameof(apiKey));
 }
예제 #8
0
 private MicRestClient(MicManifest manifest, HttpClient httpClient) : base(manifest)
 {
     apiGatewayEndpoint = manifest.GetApiGatewayBaseEndpoint();
     this.httpClient    = httpClient;
 }
예제 #9
0
 public MicLambdaClient(MicManifest manifest) : base(manifest)
 {
     lambdaClient = new AmazonLambdaClient(AwsCredentials, Config.Create <AmazonLambdaConfig>());
 }