From 00f64ea54e0e101bd82928c05adaf8521f022b83 Mon Sep 17 00:00:00 2001 From: khushal Date: Wed, 19 Feb 2025 13:45:20 +0530 Subject: [PATCH] (20250219) fml --- api/blueprints/software/auth.py | 5 +++-- controllers_v2/software/mikrotik/mikrotik_hostpot_1000.py | 5 ++++- utils_v2/mikrotik/controllers/async_mikrotik.py | 6 ++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/api/blueprints/software/auth.py b/api/blueprints/software/auth.py index bac29ad..06178b4 100644 --- a/api/blueprints/software/auth.py +++ b/api/blueprints/software/auth.py @@ -120,7 +120,7 @@ def init(blueprint_setup_state): attr_name = "logs_mongo", project = constants.PROJECT_NAME, log_type = constants.MODULE_NAME, - operation = "smsAuthApi", + operation = "softwareAuthApi", log_input = True, log_output = True, sensitive_keys = ["sessionToken", "X-Session-Token"] @@ -228,7 +228,8 @@ async def authorize_software_client( response = await current_app.mikrotik_hotspot_1000_controller.save_auth( sql_conn = current_app.sql_writer, mongo_data_conn = current_app.data_mongo, - mikrotik_auth = inbound_data.auth + mikrotik_auth = inbound_data.auth, + action_chain = kwargs.get("log_id") ) # Note down the results: diff --git a/controllers_v2/software/mikrotik/mikrotik_hostpot_1000.py b/controllers_v2/software/mikrotik/mikrotik_hostpot_1000.py index 27bc5cc..e9dda76 100644 --- a/controllers_v2/software/mikrotik/mikrotik_hostpot_1000.py +++ b/controllers_v2/software/mikrotik/mikrotik_hostpot_1000.py @@ -686,7 +686,8 @@ class MikroTikHotspot1000Controller(MikroTikController): self, sql_conn: AsyncMySQL, mongo_data_conn: AsyncMongo, - mikrotik_auth: MikroTikHotspot1000Auth + mikrotik_auth: MikroTikHotspot1000Auth, + action_chain: str | int = None ) -> MikroTikAuthResponse: """ @@ -695,6 +696,7 @@ class MikroTikHotspot1000Controller(MikroTikController): :param sql_conn: The database connection to use to perform this task. :param mongo_data_conn: The database connection to use to perform this task. :param mikrotik_auth: The set of credentials as received from the UI/API. + :param action_chain: A custom action chain to apply for logging the steps. :return: A structured response to indicate what happened during authorization. """ @@ -712,6 +714,7 @@ class MikroTikHotspot1000Controller(MikroTikController): http_client = None, action_log_conn = mongo_data_conn ) + mikrotik_client.new_action_chain(action_chain) # Try to configure the device: config_response = await self.quick_config(mikrotik_client, mikrotik_auth, use_https = False) diff --git a/utils_v2/mikrotik/controllers/async_mikrotik.py b/utils_v2/mikrotik/controllers/async_mikrotik.py index 44eb177..c7e3300 100644 --- a/utils_v2/mikrotik/controllers/async_mikrotik.py +++ b/utils_v2/mikrotik/controllers/async_mikrotik.py @@ -401,14 +401,16 @@ class AsyncMikroTik: ): return True else: return False - def new_action_chain(self) -> None: + def new_action_chain(self, action_chain: str | int = None) -> None: """ Generates a new random string to mark a new action chain and saves it in the local variable. + :param action_chain: A custom action chain to start using. A random string will be created if not provided. :return: None """ - self._action_log_chain = "".join(random.choices(string.ascii_letters + string.digits, k = 8)) + if action_chain: self._action_log_chain = action_chain + else: self._action_log_chain = "".join(random.choices(string.ascii_letters + string.digits, k = 8)) async def log_action( self,