Skip to content

Commit

Permalink
Glue: batch_get_crawlers (#5896)
Browse files Browse the repository at this point in the history
  • Loading branch information
szemek authored Feb 2, 2023
1 parent 75059fd commit 985bf4f
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 0 deletions.
7 changes: 7 additions & 0 deletions moto/glue/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -738,6 +738,13 @@ def batch_delete_partition(self, database_name, table_name, parts):
)
return errors_output

def batch_get_crawlers(self, crawler_names):
crawlers = []
for crawler in self.get_crawlers():
if crawler.as_dict()["Name"] in crawler_names:
crawlers.append(crawler.as_dict())
return crawlers


class FakeDatabase(BaseModel):
def __init__(self, database_name, database_input):
Expand Down
13 changes: 13 additions & 0 deletions moto/glue/responses.py
Original file line number Diff line number Diff line change
Expand Up @@ -498,3 +498,16 @@ def update_schema(self):
description = self._get_param("Description")
schema = self.glue_backend.update_schema(schema_id, compatibility, description)
return json.dumps(schema)

def batch_get_crawlers(self):
crawler_names = self._get_param("CrawlerNames")
crawlers = self.glue_backend.batch_get_crawlers(crawler_names)
crawlers_not_found = list(
set(crawler_names) - set(map(lambda crawler: crawler["Name"], crawlers))
)
return json.dumps(
{
"Crawlers": crawlers,
"CrawlersNotFound": crawlers_not_found,
}
)
13 changes: 13 additions & 0 deletions tests/test_glue/test_glue.py
Original file line number Diff line number Diff line change
Expand Up @@ -401,3 +401,16 @@ def test_untag_glue_crawler():
resp = client.get_tags(ResourceArn=resource_arn)

resp.should.have.key("Tags").equals({"key1": "value1", "key3": "value3"})


@mock_glue
def test_batch_get_crawlers():
client = create_glue_client()
crawler_name = create_test_crawler(client)

response = client.batch_get_crawlers(
CrawlerNames=[crawler_name, "crawler-not-found"]
)

response["Crawlers"].should.have.length_of(1)
response["CrawlersNotFound"].should.have.length_of(1)

0 comments on commit 985bf4f

Please sign in to comment.