From 63e0620f0c104e2d02005d95e055b1fb55669f83 Mon Sep 17 00:00:00 2001 From: Brian Martin Date: Fri, 3 Jan 2020 01:33:31 -0500 Subject: [PATCH] add remove bot and client --- bumper/confserver.py | 30 ++++++++++++++++++++- bumper/db.py | 8 +++++- data/web/templates/home.jinja2 | 48 ++++++++++++++++++---------------- tests/test_confserver.py | 10 +++++++ tests/test_db.py | 5 +++- 5 files changed, 76 insertions(+), 25 deletions(-) diff --git a/bumper/confserver.py b/bumper/confserver.py index 25e9e6d..c9e5339 100644 --- a/bumper/confserver.py +++ b/bumper/confserver.py @@ -58,7 +58,9 @@ class ConfServer: self.app.add_routes( [ - web.get("", self.handle_base), + web.get("", self.handle_base), + web.get("/bot/remove/{did}", self.handle_RemoveBot, name='remove-bot'), + web.get("/client/remove/{resource}", self.handle_RemoveClient, name='remove-client'), web.get("/restart_{service}", self.handle_RestartService, name='restart-service'), web.get( "/{apiversion}/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/login", @@ -381,6 +383,32 @@ class ConfServer: confserverlog.exception("{}".format(e)) pass + async def handle_RemoveBot(self, request): + try: + did = request.match_info.get("did", "") + bumper.bot_remove(did) + if bumper.bot_get(did): + return web.json_response({"status": "failed to remove bot"}) + else: + return web.json_response({"status": "successfully removed bot"}) + + except Exception as e: + confserverlog.exception("{}".format(e)) + pass + + async def handle_RemoveClient(self, request): + try: + resource = request.match_info.get("resource", "") + bumper.client_remove(resource) + if bumper.client_get(resource): + return web.json_response({"status": "failed to remove client"}) + else: + return web.json_response({"status": "successfully removed client"}) + + except Exception as e: + confserverlog.exception("{}".format(e)) + pass + async def handle_login(self, request): try: user_devid = request.match_info.get("devid", "") diff --git a/bumper/db.py b/bumper/db.py index 52f6ba1..71c158a 100644 --- a/bumper/db.py +++ b/bumper/db.py @@ -286,7 +286,8 @@ def bot_add(sn, did, devclass, resource, company): def bot_remove(did): bots = db_get().table("bots") bot = bot_get(did) - bots.remove(doc_ids=[bot.doc_id]) + if bot: + bots.remove(doc_ids=[bot.doc_id]) def bot_get(did): @@ -344,6 +345,11 @@ def client_add(userid, realm, resource): bumperlog.info("Adding new client with resource {}".format(newclient.resource)) client_full_upsert(newclient.asdict()) +def client_remove(resource): + clients = db_get().table("clients") + client = client_get(resource) + if client: + clients.remove(doc_ids=[client.doc_id]) def client_get(resource): clients = db_get().table("clients") diff --git a/data/web/templates/home.jinja2 b/data/web/templates/home.jinja2 index 238463b..5e74303 100644 --- a/data/web/templates/home.jinja2 +++ b/data/web/templates/home.jinja2 @@ -5,41 +5,43 @@ Bumper