got httpclient working, spoke heartbeat is working
This commit is contained in:
@ -4,12 +4,9 @@
|
||||
from nanoid import generate
|
||||
from flask import current_app
|
||||
from typing import List
|
||||
from capsulflask.hub_model import HTTPResult
|
||||
|
||||
class OnlineHost:
|
||||
def __init__(self, id: str, url: str):
|
||||
self.id = id
|
||||
self.url = url
|
||||
from capsulflask.shared import OnlineHost
|
||||
|
||||
|
||||
class DBModel:
|
||||
#def __init__(self, connection: Psycopg2Connection, cursor: Psycopg2Cursor):
|
||||
@ -277,15 +274,19 @@ class DBModel:
|
||||
# ------ HOSTS ---------
|
||||
|
||||
def authorized_for_host(self, id, token) -> bool:
|
||||
self.cursor.execute("SELECT id FROM hosts WHERE id = %s token = %s", (id, token))
|
||||
self.cursor.execute("SELECT id FROM hosts WHERE id = %s AND token = %s", (id, token))
|
||||
return self.cursor.fetchone() != None
|
||||
|
||||
def host_heartbeat(self, id) -> None:
|
||||
self.cursor.execute("UPDATE hosts SET last_health_check = NOW() WHERE id = %s", (id,))
|
||||
self.connection.commit()
|
||||
|
||||
def get_all_hosts(self) -> List[OnlineHost]:
|
||||
self.cursor.execute("SELECT id, https_url FROM hosts")
|
||||
return list(map(lambda x: OnlineHost(id=x[0], url=x[1]), self.cursor.fetchall()))
|
||||
|
||||
def get_online_hosts(self) -> List[OnlineHost]:
|
||||
self.cursor.execute("SELECT id, https_url FROM hosts WHERE last_health_check > NOW() - INTERVAL '10 seconds'")
|
||||
self.cursor.execute("SELECT id, https_url FROM hosts WHERE last_health_check > NOW() - INTERVAL '20 seconds'")
|
||||
return list(map(lambda x: OnlineHost(id=x[0], url=x[1]), self.cursor.fetchall()))
|
||||
|
||||
def create_operation(self, online_hosts: List[OnlineHost], email: str, payload: str) -> int:
|
||||
|
Reference in New Issue
Block a user