From 4856a1056b3fc932126fff15cefba3527a698118 Mon Sep 17 00:00:00 2001 From: iromli Date: Sat, 27 Apr 2024 00:31:49 +0700 Subject: [PATCH 1/3] fix(docker-jans-persistence-loader): handle missing data type for overriden column Signed-off-by: iromli --- docker-jans-persistence-loader/scripts/spanner_setup.py | 3 +++ docker-jans-persistence-loader/scripts/sql_setup.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/docker-jans-persistence-loader/scripts/spanner_setup.py b/docker-jans-persistence-loader/scripts/spanner_setup.py index 0569db7205e..51e7c22419f 100644 --- a/docker-jans-persistence-loader/scripts/spanner_setup.py +++ b/docker-jans-persistence-loader/scripts/spanner_setup.py @@ -46,6 +46,9 @@ def get_data_type(self, attr, table=None): type_ = type_def.get(self.client.dialect) + if not type_: + continue + if table in type_.get("tables", {}): type_ = type_["tables"][table] diff --git a/docker-jans-persistence-loader/scripts/sql_setup.py b/docker-jans-persistence-loader/scripts/sql_setup.py index f2abb54d6b5..f030844d4ba 100644 --- a/docker-jans-persistence-loader/scripts/sql_setup.py +++ b/docker-jans-persistence-loader/scripts/sql_setup.py @@ -54,6 +54,9 @@ def get_data_type(self, attr, table=None): type_ = type_def.get(self.client.dialect) or type_def["mysql"] + if not type_: + continue + if table in type_.get("tables", {}): type_ = type_["tables"][table] From 28dcc0890b54ebf63c8e7e7ef15fe51c182f6a30 Mon Sep 17 00:00:00 2001 From: iromli Date: Sat, 27 Apr 2024 05:20:46 +0700 Subject: [PATCH 2/3] fix: handle scripts properties changes Signed-off-by: iromli --- docker-jans-persistence-loader/scripts/upgrade.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/docker-jans-persistence-loader/scripts/upgrade.py b/docker-jans-persistence-loader/scripts/upgrade.py index 8f359b12f2a..86962ad4000 100644 --- a/docker-jans-persistence-loader/scripts/upgrade.py +++ b/docker-jans-persistence-loader/scripts/upgrade.py @@ -369,9 +369,7 @@ def update_scripts_entries(self): else: props = agama_entry.attrs["jansConfProperty"] - if self.backend.type != "couchbase": - # try converting to mapping - props = [json.loads(prop) for prop in props] + props = [json.loads(prop) for prop in props] # filter out unwanted properties new_props = [ @@ -380,8 +378,7 @@ def update_scripts_entries(self): ] if new_props != props: - if self.backend.type != "couchbase": - new_props = [json.dumps(prop) for prop in new_props] + new_props = [json.dumps(prop) for prop in new_props] if self.backend.type == "sql" and self.backend.client.dialect == "mysql": agama_entry.attrs["jansConfProperty"]["v"] = new_props From 13ac2d120a395fb9f6a8df634c118d1fd1f8ce4b Mon Sep 17 00:00:00 2001 From: iromli Date: Sat, 27 Apr 2024 12:19:45 +0700 Subject: [PATCH 3/3] fix: handle non-collection properties Signed-off-by: iromli --- docker-jans-persistence-loader/scripts/upgrade.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docker-jans-persistence-loader/scripts/upgrade.py b/docker-jans-persistence-loader/scripts/upgrade.py index 86962ad4000..870d6f4cfe8 100644 --- a/docker-jans-persistence-loader/scripts/upgrade.py +++ b/docker-jans-persistence-loader/scripts/upgrade.py @@ -369,6 +369,9 @@ def update_scripts_entries(self): else: props = agama_entry.attrs["jansConfProperty"] + if not isinstance(props, list): + props = [props] + props = [json.loads(prop) for prop in props] # filter out unwanted properties