From 39cb6411b2b9146c264929279be1ef5a79fd6d41 Mon Sep 17 00:00:00 2001
From: seolmin <seolmin@megazone.com>
Date: Mon, 13 Jan 2025 21:16:34 +0900
Subject: [PATCH] fix: change filter when there is a global variable but no
 value

Signed-off-by: seolmin <seolmin@megazone.com>
---
 .../dashboard/manager/data_table_manager/__init__.py     | 9 +--------
 .../manager/data_table_manager/data_source_manager.py    | 4 ++++
 2 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/src/spaceone/dashboard/manager/data_table_manager/__init__.py b/src/spaceone/dashboard/manager/data_table_manager/__init__.py
index 53977fd..8404fae 100644
--- a/src/spaceone/dashboard/manager/data_table_manager/__init__.py
+++ b/src/spaceone/dashboard/manager/data_table_manager/__init__.py
@@ -285,9 +285,6 @@ def is_jinja_expression(self, expression: str) -> bool:
     def change_global_variables(self, expression: str, vars: dict):
         gv_type_map = {}
         if "global" in self.jinja_variables:
-            if not vars:
-                raise ERROR_NO_FIELDS_TO_GLOBAL_VARIABLES(vars=vars)
-
             exclude_keys = set(key for key in self.jinja_variables if key != "global")
             expression = expression.replace("global.", "")
 
@@ -297,11 +294,7 @@ def change_global_variables(self, expression: str, vars: dict):
             jinja_variables = meta.find_undeclared_variables(parsed_content)
 
             global_variables = jinja_variables - exclude_keys
-            for global_variable_key in global_variables:
-                if global_variable_key not in vars:
-                    raise ERROR_NOT_GLOBAL_VARIABLE_KEY(
-                        global_variable_key=global_variable_key
-                    )
+            for global_variable_key in global_variables and vars:
 
                 global_variable_value = vars[global_variable_key]
                 gv_type = type(global_variable_value)
diff --git a/src/spaceone/dashboard/manager/data_table_manager/data_source_manager.py b/src/spaceone/dashboard/manager/data_table_manager/data_source_manager.py
index d4c962e..5e4ac9c 100644
--- a/src/spaceone/dashboard/manager/data_table_manager/data_source_manager.py
+++ b/src/spaceone/dashboard/manager/data_table_manager/data_source_manager.py
@@ -347,6 +347,7 @@ def _make_query(
         if self.filter:
             for filter_info in self.filter:
                 query_value = filter_info.get("v") or filter_info.get("value")
+                query_key = filter_info.get("k") or filter_info.get("key")
                 if self.is_jinja_expression(query_value):
                     query_value, gv_type_map = self.change_global_variables(
                         query_value, vars
@@ -361,6 +362,9 @@ def _make_query(
                     elif isinstance(query_value, list):
                         filter_info["v"] = query_value
 
+                if query_key == query_value:
+                    self.filter = None
+
         return {
             "granularity": granularity,
             "start": start,