From 6ce5769e5ad685974210466340e0f0ca24b64307 Mon Sep 17 00:00:00 2001 From: Alexandr Bogomyakov Date: Sat, 16 Mar 2024 00:22:05 +0200 Subject: [PATCH] Bump --- .gitignore | 3 +++ lib.py | 6 +++++- main.py | 22 ++++++++++++++-------- templates/base.html | 2 +- templates/sync.html | 9 ++++++++- 5 files changed, 31 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 6e303d8..a51b144 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,6 @@ __pycache__/ sync.log main.py .vscode/launch.json +*.swp +*.swo +*.swn diff --git a/lib.py b/lib.py index 8c70ff3..cdbf006 100644 --- a/lib.py +++ b/lib.py @@ -56,6 +56,9 @@ class Server: "keys": self.client.get_keys(), } self.log = logging.getLogger(f'OutFleet.server[{self.data["name"]}]') +# self.log.info(f"KEY ON {self.data['name']} {self.data['keys'][0]}") +# for key in self.data['keys']: +# print(key) def info(self) -> ServerDict: return self.data @@ -121,8 +124,9 @@ class Server: ) def create_key(self, key_name): + self.client.create_key(key_id=key_name, name=key_name) self.log.info("New key created: %s", key_name) - return self.client.create_key(name=key_name) + return True def rename_key(self, key_id, new_name): self.log.info("Key %s renamed: %s", key_id, new_name) diff --git a/main.py b/main.py index 21f34f1..d668582 100644 --- a/main.py +++ b/main.py @@ -31,7 +31,7 @@ log = logging.getLogger("OutFleet") SERVERS = list() CLIENTS = dict() -VERSION = '1' +VERSION = '2' HOSTNAME = "" app = Flask(__name__) CORS(app) @@ -132,6 +132,7 @@ def clients(): "clients.html", SERVERS=SERVERS, CLIENTS=CLIENTS, + VERSION=VERSION, nt=request.args.get("nt"), nl=request.args.get("nl"), selected_client=request.args.get("selected_client"), @@ -199,8 +200,9 @@ def del_server(): config = yaml.safe_load(file) or {} local_server_id = request.form.get("local_server_id") + server_name = None try: - config["servers"].pop(local_server_id) + server_name = config["servers"].pop(local_server_id)["name"] except KeyError as e: pass for client_id, client_config in config["clients"].items(): @@ -211,9 +213,9 @@ def del_server(): with open(CFG_PATH, "w") as file: yaml.safe_dump(config, file) - log.info("Deleting server %s", request.form.get("local_server_id")) + log.info("Deleting server %s [%s]", server_name, request.form.get("local_server_id")) update_state() - return redirect(url_for("index", nt="server has been deleted")) + return redirect(url_for("index", nt=f"Server {server_name} has been deleted")) @app.route("/add_client", methods=["POST"]) @@ -380,6 +382,11 @@ def sync(): ) if request.method == "POST": log = logging.getLogger("sync") + if request.form.get("wipe") == 'all': + for server in SERVERS: + log.info("Wiping all keys on [%s]", server.data["name"]) + for client in server.data['keys']: + server.delete_key(client.key_id) file_handler = logging.FileHandler("sync.log") file_handler.setLevel(logging.DEBUG) formatter = logging.Formatter( @@ -392,21 +399,20 @@ def sync(): for server in SERVERS: server_hash[server.data["local_server_id"]] = server for key, client in CLIENTS.items(): - log.info(f"Sync client `{client['name']}`") for u_server_id in client["servers"]: if u_server_id in server_hash: if not server_hash[u_server_id].check_client(client["name"]): log.warning( - f"Client `{client['name']}` absent on `{server_hash[u_server_id].data['name']}`" + f"Client {client['name']} absent on {server_hash[u_server_id].data['name']}" ) server_hash[u_server_id].create_key(client["name"]) else: log.info( - f"Client `{client['name']}` already present on `{server_hash[u_server_id].data['name']}`" + f"Client {client['name']} already present on {server_hash[u_server_id].data['name']}" ) else: log.info( - f"Client `{client['name']}` incorrect server_id `{u_server_id}`" + f"Client {client['name']} incorrect server_id {u_server_id}" ) update_state() return redirect(url_for("sync")) diff --git a/templates/base.html b/templates/base.html index 432f302..8502e96 100644 --- a/templates/base.html +++ b/templates/base.html @@ -15,7 +15,7 @@ Menu