From 19d448629d0cb173d9abb8687fd4a0b756c3687b Mon Sep 17 00:00:00 2001 From: Adar Nimrod <nimrod@shore.co.il> Date: Fri, 30 Apr 2021 20:40:52 +0300 Subject: [PATCH] Registry checks. --- src/gitlab.py | 13 +++---------- src/registry.py | 15 +++++++++++++++ src/utils.py | 15 ++++++++++++++- 3 files changed, 32 insertions(+), 11 deletions(-) create mode 100644 src/registry.py diff --git a/src/gitlab.py b/src/gitlab.py index d012691..0395fda 100644 --- a/src/gitlab.py +++ b/src/gitlab.py @@ -1,4 +1,4 @@ -from utils import check_url, publish +from utils import check_urls def handler(event, context): # pylint: disable=unused-argument @@ -6,16 +6,9 @@ def handler(event, context): # pylint: disable=unused-argument checks = [ {"url": "http://git.shore.co.il/", "codes": [301, 302]}, {"url": "https://git.shore.co.il/", "codes": [301, 302]}, - {"url": "https://git.shore.co.il/explore/", "codes": [200]}, + {"url": "https://git.shore.co.il/explore/"}, ] - - for check in checks: - if not check_url(check["url"], valid_codes=check["codes"]): - message = f"Failed check for {check['url']}." - print(message) - publish(message) - else: - print(f"{check['url']} is OK.") + check_urls(checks) if __name__ == "__main__": diff --git a/src/registry.py b/src/registry.py new file mode 100644 index 0000000..950b5ac --- /dev/null +++ b/src/registry.py @@ -0,0 +1,15 @@ +from utils import check_urls + + +def handler(event, context): # pylint: disable=unused-argument + """Lambda event handler.""" + checks = [ + {"url": "http://registry.shore.co.il/", "codes": [301, 302]}, + {"url": "https://registry.shore.co.il/"}, + {"url": "https://registry.shore.co.il/v2/_catalog"}, + ] + check_urls(checks) + + +if __name__ == "__main__": + handler("event", "context") diff --git a/src/utils.py b/src/utils.py index 4ff0952..cc2ad00 100644 --- a/src/utils.py +++ b/src/utils.py @@ -14,7 +14,7 @@ def publish(message): def check_url(url, method="GET", valid_codes=(200)): - """Checks URL for validity. + """Checks validaty of a URL. Allows specifying the HTTP method and a list of valid codes.""" try: @@ -22,3 +22,16 @@ def check_url(url, method="GET", valid_codes=(200)): return response.status_code in valid_codes except Exception: # pylint: disable=broad-except return False + + +def check_urls(checks): + """Check a list of URLs.""" + for check in checks: + if check_url( + check["url"], check.get("method", "GET"), check.get("codes", [200]) + ): + print(f"{check['url']} is OK.") + else: + message = f"Failed check for {check['url']}." + print(message) + publish(message) -- GitLab