From e774a8b38983d9848f71efdb1bb0c41ba36039f3 Mon Sep 17 00:00:00 2001 From: Ole Troan Date: Thu, 2 Jan 2020 22:32:57 +0100 Subject: nat: add feature.yaml And add support for multiple maintainers in JSON schema. Type: docs Change-Id: Ice430927ceecf53526a3fdf46c075a95206bf0ac Signed-off-by: Ole Troan --- src/plugins/nat/FEATURE.yaml | 27 +++++++++++++++++++++++++++ src/scripts/fts.py | 18 +++++++++++++++--- 2 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 src/plugins/nat/FEATURE.yaml (limited to 'src') diff --git a/src/plugins/nat/FEATURE.yaml b/src/plugins/nat/FEATURE.yaml new file mode 100644 index 00000000000..65cd9590c69 --- /dev/null +++ b/src/plugins/nat/FEATURE.yaml @@ -0,0 +1,27 @@ +--- +name: Network Address Translation (NAT) +maintainer: + - Ole Troan + - Filip Varga +features: + - NAT44: + - 1:1 NAT + - 1:1 NAT with ports + - VRF awareness + - Multiple inside interfaces + - Hairpinning + - IPFIX + - Syslog + - Endpoint dependent NAT + - TCP MSS clamping + - Local bypass (DHCP) + - CGN - deterministic NAT + - NAT64 + - NAT66 + - DS-lite + - 464XLAT +description: "The NAT plugin offers a multiple address translation functions. + These can be used in a raft of different scenarios. CPE, CGN, + etc." +state: production +properties: [API, CLI, STATS, MULTITHREAD] diff --git a/src/scripts/fts.py b/src/scripts/fts.py index eb44be9a59a..f3165ced0cd 100755 --- a/src/scripts/fts.py +++ b/src/scripts/fts.py @@ -17,9 +17,9 @@ schema = { "properties": { "name": {"type": "string"}, "description": {"type": "string"}, - "maintainer": {"type": "string"}, + "maintainer": {"$ref": "#/definitions/maintainers"}, "state": {"type": "string", - "enum": ["production", "experimental"]}, + "enum": ["production", "experimental", "development"]}, "features": {"$ref": "#/definitions/features"}, "missing": {"$ref": "#/definitions/features"}, "properties": {"type": "array", @@ -30,6 +30,14 @@ schema = { }, "additionalProperties": False, "definitions": { + "maintainers": { + "anyof": [{ + "type": "array", + "items": {"type": "string"}, + "minItems": 1, + }, + {"type": "string"}], + }, "featureobject": { "type": "object", "patternProperties": { @@ -86,7 +94,11 @@ def output_features(indent, fl): def output_markdown(features): for k, v in features.items(): print('# {}'.format(v['name'])) - print('Maintainer: {} '.format(v['maintainer'])) + if type(v['maintainer']) is list: + print('Maintainers: ' + + ', '.join('{}'.format(m) for m in v['maintainer'])) + else: + print('Maintainer: {} '.format(v['maintainer'])) print('State: {}\n'.format(v['state'])) print('{}\n'.format(v['description'])) output_features(0, v['features']) -- cgit 1.2.3-korg