On Thu, Feb 19, 2015 at 12:12 AM, Ben Pfaff <b...@nicira.com> wrote:
> This should make it harder to forget documentation.
>
> Signed-off-by: Ben Pfaff <b...@nicira.com>
Nice!
Acked-by: Gurucharan Shetty <gshe...@nicira.com>
> ---
> ovsdb/ovsdb-doc | 23 ++++++++++++++++++++---
> 1 file changed, 20 insertions(+), 3 deletions(-)
>
> diff --git a/ovsdb/ovsdb-doc b/ovsdb/ovsdb-doc
> index 6200915..b670452 100755
> --- a/ovsdb/ovsdb-doc
> +++ b/ovsdb/ovsdb-doc
> @@ -152,7 +152,7 @@ def typeAndConstraintsToNroff(column):
> type += " (must be unique within table)"
> return type
>
> -def columnGroupToNroff(table, groupXml):
> +def columnGroupToNroff(table, groupXml, documented_columns):
> introNodes = []
> columnNodes = []
> for node in groupXml.childNodes:
> @@ -172,6 +172,7 @@ def columnGroupToNroff(table, groupXml):
> for node in columnNodes:
> if node.tagName == 'column':
> name = node.attributes['name'].nodeValue
> + documented_columns.add(name)
> column = table.columns[name]
> if node.hasAttribute('key'):
> key = node.attributes['key'].nodeValue
> @@ -219,7 +220,8 @@ def columnGroupToNroff(table, groupXml):
> summary += [('column', nameNroff, typeNroff)]
> elif node.tagName == 'group':
> title = node.attributes["title"].nodeValue
> - subSummary, subIntro, subBody = columnGroupToNroff(table, node)
> + subSummary, subIntro, subBody = columnGroupToNroff(
> + table, node, documented_columns)
> summary += [('group', title, subSummary)]
> body += '.ST "%s:"\n' % textToNroff(title)
> body += subIntro + subBody
> @@ -242,15 +244,24 @@ def tableToNroff(schema, tableXml):
> tableName = tableXml.attributes['name'].nodeValue
> table = schema.tables[tableName]
>
> + documented_columns = set()
> s = """.bp
> .SH "%s TABLE"
> """ % tableName
> - summary, intro, body = columnGroupToNroff(table, tableXml)
> + summary, intro, body = columnGroupToNroff(table, tableXml,
> + documented_columns)
> s += intro
> s += '.SS "Summary:\n'
> s += tableSummaryToNroff(summary)
> s += '.SS "Details:\n'
> s += body
> +
> + schema_columns = set(table.columns.keys())
> + undocumented_columns = schema_columns - documented_columns
> + for column in undocumented_columns:
> + raise error.Error("table %s has undocumented column %s"
> + % (tableName, column))
> +
> return s
>
> def docsToNroff(schemaFile, xmlFile, erFile, title=None, version=None):
> @@ -306,6 +317,12 @@ def docsToNroff(schemaFile, xmlFile, erFile, title=None,
> version=None):
> else:
> introNodes += [dbNode]
>
> + documented_tables = set((name for (name, title) in summary))
> + schema_tables = set(schema.tables.keys())
> + undocumented_tables = schema_tables - documented_tables
> + for table in undocumented_tables:
> + raise error.Error("undocumented table %s" % table)
> +
> s += blockXmlToNroff(introNodes) + "\n"
>
> s += r"""
> --
> 2.1.3
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev