Commit 19d44862 authored by nimrod's avatar nimrod
Browse files

Registry checks.

parent 5b6126d1
Loading
Loading
Loading
Loading
+3 −10
Original line number Diff line number Diff line
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__":

src/registry.py

0 → 100644
+15 −0
Original line number Diff line number Diff line
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")
+14 −1
Original line number Diff line number Diff line
@@ -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)