Skip to content

Commit 4936687

Browse files
committed
Add support for the new gets_restored metadata introduced in redpanda-data/redpanda#25105
1 parent db15af2 commit 4936687

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

tools/property-extractor/json-to-asciidoc/generate_docs.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,10 @@ def generate_property_doc(key, value):
251251
restart = "Yes" if value.get("needs_restart", False) else "No"
252252
lines.append(f"*Requires restart:* {restart}\n\n")
253253

254+
if "gets_restored" in value:
255+
restored = "Yes" if value.get("gets_restored", False) else "No"
256+
lines.append(f"*Gets restored during cluster restore:* {restored}\n\n")
257+
254258
visibility = value.get("visibility") or "user"
255259
lines.append(f"*Visibility:* `{visibility}`\n\n")
256260

tools/property-extractor/property_extractor.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ def transform_files_with_properties(files_with_properties):
9494
IsNullableTransformer(),
9595
IsArrayTransformer(type_transformer),
9696
NeedsRestartTransformer(),
97+
GetsRestoredTransformer(),
9798
VisibilityTransformer(),
9899
DeprecatedTransformer(),
99100
IsSecretTransformer(),
@@ -132,7 +133,7 @@ def merge_properties_and_definitions(properties, definitions):
132133
# guard against missing "type"
133134
prop_type = property.get("type")
134135
if prop_type and prop_type in definitions:
135-
properties[name]["type"] = f"#/definitions/{prop_type}"
136+
properties[name]["type"] = "#/definitions/{prop_type}"
136137
elif (
137138
prop_type == "array"
138139
and property.get("items", {}).get("type") in definitions

tools/property-extractor/transformers.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,22 @@ def parse(self, property, info, file_pair):
6262
)
6363
property["needs_restart"] = needs_restart != "no" # True by default, unless we find "no"
6464

65+
class GetsRestoredTransformer:
66+
def accepts(self, info, file_pair):
67+
# only run if the third param blob exists and has our flag
68+
return (
69+
len(info.get("params", [])) > 2
70+
and isinstance(info["params"][2].get("value"), dict)
71+
and "gets_restored" in info["params"][2]["value"]
72+
)
73+
74+
def parse(self, property, info, file_pair):
75+
raw = info["params"][2]["value"]["gets_restored"]
76+
# strip off e.g. "gets_restored::no" → "no"
77+
flag = re.sub(r"^.*::", "", raw)
78+
# store as boolean
79+
property["gets_restored"] = (flag != "no")
80+
6581

6682
class VisibilityTransformer:
6783
def accepts(self, info, file_pair):

0 commit comments

Comments
 (0)