feat:
--Added Node Status Check
This commit is contained in:
1 parent
ded28ab88e
commit
8690f1ba27
1 file changed
+32
-14
@@ -5,6 +5,9 @@ from fastapi import FastAPI,Depends, Header, HTTPException, status
|
|||||||
import psycopg2
|
import psycopg2
|
||||||
from jwt import ExpiredSignatureError, InvalidTokenError
|
from jwt import ExpiredSignatureError, InvalidTokenError
|
||||||
import jwt
|
import jwt
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
|
||||||
load_dotenv()
|
load_dotenv()
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
@@ -12,6 +15,14 @@ SECRET_KEY = os.getenv("SECRET_KEY")
|
|||||||
ALGORITHM = os.getenv("ALGORITHM", "HS256")
|
ALGORITHM = os.getenv("ALGORITHM", "HS256")
|
||||||
|
|
||||||
|
|
||||||
|
class NodeStatusRequest(BaseModel):
|
||||||
|
node_name: str
|
||||||
|
host: str
|
||||||
|
port: int
|
||||||
|
dbname: str
|
||||||
|
user: str
|
||||||
|
password: str
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def verify_token(
|
def verify_token(
|
||||||
@@ -92,28 +103,35 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
DB_CONFIG = {
|
#{
|
||||||
"host": "172.16.10.178",
|
# "host": "172.16.10.178",
|
||||||
"port": 5444,
|
# "node_name = "node3",
|
||||||
"dbname": "postgres",
|
# "port": 5444,
|
||||||
"user": "postgres",
|
# "dbname": "postgres",
|
||||||
"password": "postgres",
|
# "user": "postgres",
|
||||||
"connect_timeout": 3,
|
# "password": "postgres",
|
||||||
}
|
# "connect_timeout": 3,
|
||||||
|
# }
|
||||||
NODE_NAME = "node3"
|
|
||||||
|
|
||||||
|
|
||||||
@app.get("/node/status")
|
@app.get("/node/status")
|
||||||
def node_status(token_data=Depends(verify_token)):
|
def node_status(data: NodeStatusRequest,token_data=Depends(verify_token)):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
conn = psycopg2.connect(**DB_CONFIG)
|
db_config = {
|
||||||
|
"host": data.host,
|
||||||
|
"port": data.port,
|
||||||
|
"dbname": data.dbname,
|
||||||
|
"user": data.user,
|
||||||
|
"password": data.password,
|
||||||
|
"connect_timeout": 3,
|
||||||
|
}
|
||||||
|
conn = psycopg2.connect(**db_config)
|
||||||
|
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"node": NODE_NAME,
|
"node": data.node_name,
|
||||||
"online": True,
|
"online": True,
|
||||||
"status": "online"
|
"status": "online"
|
||||||
}
|
}
|
||||||
@@ -121,7 +139,7 @@ def node_status(token_data=Depends(verify_token)):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"node": NODE_NAME,
|
"node": data.node_name,
|
||||||
"online": False,
|
"online": False,
|
||||||
"status": "offline",
|
"status": "offline",
|
||||||
"error": str(e)
|
"error": str(e)
|
||||||
|
|||||||
Reference in new issue
Block a user