Beispiel #1
0
        public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonGlueConfig config = new AmazonGlueConfig();

            config.RegionEndpoint = region;
            ConfigureClient(config);
            AmazonGlueClient client = new AmazonGlueClient(creds, config);

            ListWorkflowsResponse resp = new ListWorkflowsResponse();

            do
            {
                ListWorkflowsRequest req = new ListWorkflowsRequest
                {
                    NextToken = resp.NextToken
                    ,
                    MaxResults = maxItems
                };

                resp = client.ListWorkflows(req);
                CheckError(resp.HttpStatusCode, "200");

                foreach (var obj in resp.Workflows)
                {
                    AddObject(obj);
                }
            }while (!string.IsNullOrEmpty(resp.NextToken));
        }
Beispiel #2
0
        private async Task TestLaunchJob()
        {
            //ARRANGE

            StartJobRunRequest Request = new StartJobRunRequest()
            {
                JobName   = "CUR File ETL",
                Timeout   = 1440, // 24 Hours
                Arguments = new Dictionary <string, string>()
                {
                    { "--table", "2018-10-01" },
                    { "--database", "billingdata" },
                    { "--destination_bucket", $"{User}-billing-formatted" }
                }
            };

            IAmazonGlue GlueClient;

            if (Creds != null)
            {
                GlueClient = new AmazonGlueClient(Creds);
            }
            else
            {
                GlueClient = new AmazonGlueClient();
            }

            // ACT
            StartJobRunResponse Response = await GlueClient.StartJobRunAsync(Request);

            // ASSERT

            Assert.NotNull(Response);
            Assert.Equal(HttpStatusCode.OK, Response.HttpStatusCode);
        }
Beispiel #3
0
        protected IAmazonGlue CreateClient(AWSCredentials credentials, RegionEndpoint region)
        {
            var config = new AmazonGlueConfig {
                RegionEndpoint = region
            };

            Amazon.PowerShell.Utils.Common.PopulateConfig(this, config);
            this.CustomizeClientConfig(config);
            var client = new AmazonGlueClient(credentials, config);

            client.BeforeRequestEvent += RequestEventHandler;
            client.AfterResponseEvent += ResponseEventHandler;
            return(client);
        }
Beispiel #4
0
        public static async Task <IActionResult> GetGlueDatabases([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
                                                                  ILogger log)
        {
            try
            {
                string           requestBody = await new StreamReader(req.Body).ReadToEndAsync();
                AwsCred          awsCred     = JsonConvert.DeserializeObject <AwsCred>(requestBody);
                AmazonGlueClient c           = new AmazonGlueClient(awsCred.awsAccessKeyId, awsCred.awsSecretAccessKey, Amazon.RegionEndpoint.GetBySystemName(awsCred.region));
                var databases = await c.GetDatabasesAsync(new Amazon.Glue.Model.GetDatabasesRequest());

                return(new OkObjectResult(databases.DatabaseList));
            }
            catch (Exception e)
            {
                return(new BadRequestObjectResult(e.StackTrace));
            }
        }
Beispiel #5
0
        private async Task TestNonExistentGlueTable()
        {
            // ARRANGE

            IAmazonGlue GlueClient;

            if (Creds != null)
            {
                GlueClient = new AmazonGlueClient(Creds);
            }
            else
            {
                GlueClient = new AmazonGlueClient();
            }

            GetTableRequest Request = new GetTableRequest()
            {
                DatabaseName = "test",
                Name         = "test"
            };

            // ACT / ASSERT
            await Assert.ThrowsAsync <EntityNotFoundException>(async() => await GlueClient.GetTableAsync(Request));
        }