about summary refs log tree commit diff
path: root/src/cli/nomad_allocs.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/cli/nomad_allocs.py')
-rwxr-xr-xsrc/cli/nomad_allocs.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/cli/nomad_allocs.py b/src/cli/nomad_allocs.py
new file mode 100755
index 0000000..f2369bb
--- /dev/null
+++ b/src/cli/nomad_allocs.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python3
+
+import sys
+
+import click
+import requests
+
+
+@click.command()
+@click.argument("job")
+@click.option("--dc", default="bom1", help="Name of the data center")
+@click.option("--token", help="Token for Nomad")
+def cli(job, dc, token):
+    if token is None:
+        print("you need to pass a valid token")
+        sys.exit(1)
+
+    headers = {"Authorization": f"Bearer {token}"}
+    url = f"https://{dc}-nomad.simulprod.com/v1/job/{job}/allocations"
+    try:
+        resp = requests.get(url, headers=headers)
+        resp.raise_for_status
+    except Exception as e:
+        print("return {}".format(str(e)))
+
+    running_tasks = []
+    terminated_tasks = []
+    for task in resp.json():
+        task_name = list(task["TaskStates"].keys())[0]
+        if task["TaskStates"][task_name]["State"] == "running":
+            running_tasks.append(
+                f"https://{dc}-nomad.simulprod.com/ui/allocations/{task['ID']}/{task_name}/logs"
+            )
+        else:
+            terminated_tasks.append(
+                f"https://{dc}-nomad.simulprod.com/ui/allocations/{task['ID']}/{task_name}/logs"
+            )
+
+    if len(running_tasks) > 0:
+        print("running tasks")
+        for t in running_tasks:
+            print(f"→ {t}")
+
+    if len(terminated_tasks) > 0:
+        print("terminated tasks")
+        for t in terminated_tasks:
+            print(f"→ {t}")
+
+
+if __name__ == "__main__":
+    cli()