diff options
author | Ole Troan <ot@cisco.com> | 2020-01-02 22:32:57 +0100 |
---|---|---|
committer | Paul Vinciguerra <pvinci@vinciconsulting.com> | 2020-01-03 03:57:29 +0000 |
commit | e774a8b38983d9848f71efdb1bb0c41ba36039f3 (patch) | |
tree | eae174f6c8ca10d8fa6e72060f09ba6a3fa39251 | |
parent | 8ef8f8f7937ba2939ea0550e832eaa77d0c73203 (diff) |
nat: add feature.yaml
And add support for multiple maintainers in JSON schema.
Type: docs
Change-Id: Ice430927ceecf53526a3fdf46c075a95206bf0ac
Signed-off-by: Ole Troan <ot@cisco.com>
-rw-r--r-- | src/plugins/nat/FEATURE.yaml | 27 | ||||
-rwxr-xr-x | src/scripts/fts.py | 18 |
2 files changed, 42 insertions, 3 deletions
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 <ot@cisco.com> + - Filip Varga <fivarga@cisco.com> +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']) |