From 56f8b3393eebb58e501fdec40fe015ecae74b798 Mon Sep 17 00:00:00 2001 From: "Doroszlai, Attila" Date: Sat, 4 Apr 2026 18:17:00 +0200 Subject: [PATCH 1/3] HDDS-14976. xml_to_md.py does not handle generated XML files --- dev-support/ci/xml_to_md.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/dev-support/ci/xml_to_md.py b/dev-support/ci/xml_to_md.py index 54e885c28337..75da5d40faf5 100644 --- a/dev-support/ci/xml_to_md.py +++ b/dev-support/ci/xml_to_md.py @@ -31,7 +31,7 @@ def extract_xml_from_jar(jar_path, xml_filename): xml_files = [] with zipfile.ZipFile(jar_path, 'r') as jar: for file_info in jar.infolist(): - if file_info.filename.endswith(xml_filename): + if file_info.filename.endswith(xml_filename) and 'network-topology-default.xml' != file_info.filename: with jar.open(file_info.filename) as xml_file: xml_files.append(xml_file.read()) return xml_files @@ -137,11 +137,13 @@ def main(): raise ValueError("SNAPSHOT directory not found in the specified base path.") extract_path = os.path.join(snapshot_dir, 'share', 'ozone', 'lib') - xml_filename = 'ozone-default.xml' + xml_filename = '-default.xml' property_map = {} for file_name in os.listdir(extract_path): - if file_name.startswith('hdds-common-') and file_name.endswith('.jar'): + if (file_name.startswith('hdds-') or file_name.startswith('ozone-')) \ + and not file_name.startswith('ozone-filesystem-hadoop') \ + and file_name.endswith('.jar'): jar_path = os.path.join(extract_path, file_name) xml_contents = extract_xml_from_jar(jar_path, xml_filename) for xml_content in xml_contents: From d9888ac8747792ea077f84a29ce985ee873e2f51 Mon Sep 17 00:00:00 2001 From: "Doroszlai, Attila" Date: Sat, 4 Apr 2026 19:03:10 +0200 Subject: [PATCH 2/3] join multi-line default value --- dev-support/ci/xml_to_md.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/dev-support/ci/xml_to_md.py b/dev-support/ci/xml_to_md.py index 75da5d40faf5..3d9013f233ad 100644 --- a/dev-support/ci/xml_to_md.py +++ b/dev-support/ci/xml_to_md.py @@ -107,13 +107,20 @@ def generate_markdown(properties): """ placeholder_pattern = re.compile(r'(\$)?\{([^}]+)\}') + multi_space_pattern = re.compile(r' +') for prop in sorted(properties.values(), key=lambda p: p.name): # Escape pipe characters and wrap {placeholders} in backticks description = prop.description.replace('|', '\\|') description = placeholder_pattern.sub(r'`\1{\2}`', description) - value = prop.value.replace('|', '\\|') if prop.value else '' - value = placeholder_pattern.sub(r'`\1{\2}`', value) if value else '' + + value = prop.value + if value: + value = value.strip() + value = value.replace('|', '\\|') + value = placeholder_pattern.sub(r'`\1{\2}`', value) + value = value.replace('\n', ' ') + value = multi_space_pattern.sub(' ', value) markdown += f"| `{prop.name}` | {value} | {prop.tag} | {description} |\n" From f34ee8212cfeff747e7743b9238268861d8edb04 Mon Sep 17 00:00:00 2001 From: "Doroszlai, Attila" Date: Sun, 5 Apr 2026 08:45:03 +0200 Subject: [PATCH 3/3] also trim name --- dev-support/ci/xml_to_md.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/dev-support/ci/xml_to_md.py b/dev-support/ci/xml_to_md.py index 3d9013f233ad..a059e00672c8 100644 --- a/dev-support/ci/xml_to_md.py +++ b/dev-support/ci/xml_to_md.py @@ -65,8 +65,8 @@ def parse_xml_file(xml_content, properties): tag = prop.findtext('tag', '') properties[name] = Property( - name=name, - value=prop.findtext('value', ''), + name=name.strip(), + value=prop.findtext('value', '').strip(), tag=tag, description=' '.join(description.split()).strip() ) @@ -116,7 +116,6 @@ def generate_markdown(properties): value = prop.value if value: - value = value.strip() value = value.replace('|', '\\|') value = placeholder_pattern.sub(r'`\1{\2}`', value) value = value.replace('\n', ' ')