aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjwansek <eddie.atten.ea29@gmail.com>2026-03-02 19:04:04 +0000
committerjwansek <eddie.atten.ea29@gmail.com>2026-03-02 19:04:04 +0000
commit55a069d1de00d5cceb8a6e6978ef2e30bc434fe1 (patch)
treedc891f0adb4895448e1e9458fe2b4f63ed57eacf
parentd6bf03230346e504a18f238668bf6370f5f2068c (diff)
downloadboymoder.blog-55a069d1de00d5cceb8a6e6978ef2e30bc434fe1.tar.gz
boymoder.blog-55a069d1de00d5cceb8a6e6978ef2e30bc434fe1.zip
Added fetching uptimes on services pageHEADmaster
-rw-r--r--edaweb/services.py18
-rw-r--r--edaweb/templates/services.html.j22
2 files changed, 17 insertions, 3 deletions
diff --git a/edaweb/services.py b/edaweb/services.py
index 50eed45..b01bee2 100644
--- a/edaweb/services.py
+++ b/edaweb/services.py
@@ -324,12 +324,24 @@ def get_docker_containers(host, ssh_key_path):
).run('docker ps -a -s --format "table {{.Names}};{{.Status}};{{.Image}}"', hide = True)
return [line.split(";") for line in result.stdout.split("\n")[1:-1]]
+def get_uptimes(host, ssh_key_path):
+ return fabric.Connection(
+ host = host,
+ user = "root",
+ connect_kwargs = {
+ "key_filename": ssh_key_path,
+ "look_for_keys": False
+ }
+ ).run('uptime -p', hide = True).stdout.strip()
+
def cache_all_docker_containers(ssh_key_path):
containers = {}
containers["containers"] = {}
+ containers["uptimes"] = {}
for host, name in CONFIG["docker_hosts"].items():
- print(host)
+ print(host, name)
containers["containers"][(host, name)] = get_docker_containers(host, ssh_key_path)
+ containers["uptimes"][(host, name)] = get_uptimes(host, ssh_key_path)
containers["cachetime"] = "Docker information last updated at %s" % str(datetime.datetime.now())
with open("/tmp/docker-cache.json", "wb") as f:
@@ -402,8 +414,10 @@ def get_recent_commits(db, max_per_repo = 3):
return sorted(out, key = lambda a: a["datetime"], reverse = True)
if __name__ == "__main__":
- print(scrape_whispa(CONFIG.get("qnas", "url")))
+ # print(scrape_whispa(CONFIG.get("qnas", "url")))
# import database
+ print(cache_all_docker_containers(os.path.join(os.path.dirname(__file__), "..", "edaweb-docker.pem")))
+ print(get_all_docker_containers())
# with database.Database() as db:
# print(json.dumps(get_recent_commits(db), indent=4))
diff --git a/edaweb/templates/services.html.j2 b/edaweb/templates/services.html.j2
index 9f42c7f..c336990 100644
--- a/edaweb/templates/services.html.j2
+++ b/edaweb/templates/services.html.j2
@@ -5,7 +5,7 @@
<h2>docker</h2>
<ul>
{% for host, containers in docker["containers"].items() %}
- <h4>{{ "%s - %s" % (host[0], host[1]) }}</h4>
+ <h4>{{ "%s - %s - %s" % (host[0], host[1], docker["uptimes"][host]) }}</h4>
<table>
{% for name, status, image in containers %}
<tr>