]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Warn about experimental and deprecated options
authorPetr Špaček <pspacek@isc.org>
Fri, 24 Jun 2022 07:55:01 +0000 (09:55 +0200)
committerPetr Špaček <pspacek@isc.org>
Fri, 1 Jul 2022 06:59:23 +0000 (08:59 +0200)
doc/arm/_ext/iscconf.py

index 06f3d6c9f55bc1fb0641005a554a150231f0801b..f4a74897e778bc798e019262f49d6badf9fab41c 100644 (file)
@@ -185,6 +185,23 @@ def domain_factory(domainname, domainlabel, todolist, grammar):
                 grammarnode += nodetype(text=grammar_txt)
                 return grammarnode
 
+            def format_warnings(self, flags):
+                """Return node with a warning box about deprecated and
+                experimental options"""
+                warn = nodes.warning()
+                if "deprecated" in flags:
+                    warn += nodes.paragraph(
+                        text=(
+                            "This option is deprecated and will be removed in a future"
+                            " version of BIND."
+                        )
+                    )
+                if "experimental" in flags:
+                    warn += nodes.paragraph(
+                        text="This option is experimental and subject to change."
+                    )
+                return warn
+
             def parse_nested_str(self, instr):
                 """Parse string as nested rst syntax and produce a node"""
                 raw = nodes.paragraph(text=instr)
@@ -214,10 +231,19 @@ def domain_factory(domainname, domainlabel, todolist, grammar):
 
                 grammars = iscconf.statement_grammar_groups[name]
                 multi_grammar = len(grammars) > 1
+                union_flags = set()
                 for grammar_grp in grammars:
+                    for one_grammar_dict in grammar_grp:
+                        union_flags = union_flags.union(
+                            set(one_grammar_dict.subgrammar.get("_flags", []))
+                        )
                     grammarnode = self.format_grammar(multi_grammar, grammar_grp)
                     contentnode.insert(0, grammarnode)
 
+                warn = self.format_warnings(union_flags)
+                if len(warn):
+                    contentnode.insert(0, warn)
+
         name = domainname
         label = domainlabel