diff --git a/src/gitlab.py b/src/gitlab.py index d012691ebce932a69cc1e4c0bcb0e7ac488450ec..0395fda283cd421db76ba4929796899309ccd9ec 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 0000000000000000000000000000000000000000..950b5acd6f92374d08003e3ecd64bb245164211b --- /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 4ff09527836c0f68226bde052bca3be980d6d478..cc2ad0088dc1e243edab3be066fb695caf8ede15 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)