From 5b263743b76d13d7fb6dac159d95fb29e30316dd Mon Sep 17 00:00:00 2001 From: bhargav Date: Wed, 15 Dec 2021 22:18:52 +0530 Subject: [PATCH] feat: add API to return table info --- chaos_genius/views/data_source_view.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/chaos_genius/views/data_source_view.py b/chaos_genius/views/data_source_view.py index 87814d576..546704af0 100644 --- a/chaos_genius/views/data_source_view.py +++ b/chaos_genius/views/data_source_view.py @@ -466,3 +466,26 @@ def get_schema_views(datasource_id, schema_name): return jsonify({"message":message, "status":status, "view_names":view_names}) +@blueprint.route("/table-info",methods=["GET"]) +def get_table_info(): + status = "" + message = "" + table_info = {} + try: + data = request.get_json() + datasource_id = data["datasource_id"] + schema = data["schema"] + table_name = data["table_name"] + data_source_obj = DataSource.get_by_id(datasource_id) + if data_source_obj: + table_info["columns"] = data_source_obj.get_columns(table_name, schema) + table_info["primary_key"] = data_source_obj.get_primary_key(table_name, schema) + status = "success" + else: + status = "failure" + message = "Unable fetch datasource matching the provided id" + except Exception as e: + status = "failure" + message = "Error in fetching table info: {}".format(e) + table_info = {} + return jsonify({"table_info":table_info, "status":status, "message":message})