Many Chanegs

master
Sebastian Serfling 2023-08-15 11:53:38 +02:00
parent ba7de6d4e2
commit 501e0765d3
3 changed files with 53 additions and 19 deletions

View File

@ -1,5 +1,32 @@
from pydantic import BaseModel from pydantic import BaseModel
class CL_Ping_Set(BaseModel):
## Test
name: str
ipadress: str
class CL_Database_get(BaseModel): class CL_Database_get(BaseModel):
name: str name: str
class CL_Diskusage(BaseModel):
function: str
value: str
class CL_CPUinfo(BaseModel):
name: str
class CL_Systeminfo_set(BaseModel):
ram: str
prozessor: int
cpu: str
ipaddress: str
single_free_hdd: str
single_used_hdd: str
single_total_hdd: str
total_free_hdd: int
total_used_hdd: int
total_total_hdd: int
class CL_Systeminfo_get(BaseModel):
ipaddress: str

35
main.py
View File

@ -3,6 +3,11 @@ from pydantic import BaseModel
import mysql.connector import mysql.connector
from datetime import datetime from datetime import datetime
import Classes.main_classes as CL ## Importiert Classes import Classes.main_classes as CL ## Importiert Classes
import uvicorn
import logging
logging.basicConfig(level=logging.DEBUG) # add this line
logger = logging.getLogger("foo")
## uvicorn.exe main:app --reload Startet den API-Server ## uvicorn.exe main:app --reload Startet den API-Server
@ -41,24 +46,36 @@ def database(query,name,user):
mydb.commit() mydb.commit()
mydb.close() mydb.close()
app = FastAPI() app = FastAPI()
class Ping_Set(BaseModel):
## Test
name: str
ipadress: str
@app.post("/ping") @app.post("/ping")
async def ping(ping: Ping_Set): async def ping(ping: CL.CL_Ping_Set):
database(f"INSERT INTO `Ping-Server` VALUES ('{datetime.now()}','{ping.name}','{ping.ipadress}')","Stines-GmbH","") database(f"INSERT INTO `Ping-Server` VALUES ('{datetime.now()}','{ping.name}','{ping.ipadress}')","Stines-GmbH","")
return f"ADD Ping from {ping.name} to Server" return f"ADD Ping from {ping.name} to Server"
## Get Database from Server ## Get Database from Server
@app.post("/database_get/") @app.post("/dbget")
async def database_get(get: CL.CL_Database_get): async def database_get(get: CL.CL_Database_get):
get_database = database("SHOW DATABASES","","") get_database = database("SHOW DATABASES","","")
if get.name in f"({get_database},)": if get.name in f"({get_database},)":
return True return True
else: else:
return False return False
@app.post("/cpu_info")
async def cpu_info(get: CL.CL_CPUinfo):
return database(f"SELECT `Prozessor-Anzahl` FROM `CPU-Liste` WHERE `CPU-Name`='{get.name}'","Stines-GmbH","")
@app.post("/systeminfo_set")
async def systeminfo_set(get: CL.CL_Systeminfo_set):
database(f"UPDATE `Kunden-Server` SET RAM={get.ram}, Prozessor={get.prozessor}, CPU='{get.cpu}',single_free_hdd='{get.single_free_hdd}',single_used_hdd='{get.single_used_hdd}',single_total_hdd='{get.single_total_hdd}',total_free_hdd='{get.total_free_hdd}',total_used_hdd='{get.total_used_hdd}',total_total_hdd='{get.total_total_hdd}' WHERE `IP-Adresse`='{get.ipaddress}'","Stines-GmbH","")
return f"Server was UPDATE RAM={get.ram}, Prozessor={get.prozessor}, CPU={get.cpu}, IP-Adresse={get.ipaddress}"
@app.post("/systeminfo_get")
async def systeminfo_set(get: CL.CL_Systeminfo_get):
return database("SELECT * FROM `Stines-GmbH`.`Kunden-Server` WHERE `IP-Adresse` = ""'{}'""".format(get.ipaddress),"","")
## Startet den API-Server
if __name__ == '__main__':
uvicorn.run("main:app", host='0.0.0.0', port=8000, reload=True, log_level="debug")

View File

@ -1,10 +0,0 @@
##### Für API-Tests
import requests
def request(function,variable):
url = (f"http://127.0.0.1:8000/{function}/")
response = requests.post(url,json = variable)
return response
print(request("database_get", {'name':'Jaehler-GmbH'}).text)