| rfc9644v6.txt | rfc9644.txt | |||
|---|---|---|---|---|
| skipping to change at line 3183 ¶ | skipping to change at line 3183 ¶ | |||
| import requests_cache | import requests_cache | |||
| from io import StringIO | from io import StringIO | |||
| from datetime import datetime | from datetime import datetime | |||
| # Metadata for the four YANG modules produced by this script | # Metadata for the four YANG modules produced by this script | |||
| MODULES = [ | MODULES = [ | |||
| { | { | |||
| "csv_url": "https://www.iana.org/assignments/ssh-parameters/\ | "csv_url": "https://www.iana.org/assignments/ssh-parameters/\ | |||
| ssh-parameters-17.csv", | ssh-parameters-17.csv", | |||
| "spaced_name": "encryption", | "spaced_name": "encryption", | |||
| "hypenated_name": "encryption", | "hyphenated_name": "encryption", | |||
| "prefix": "sshea", | "prefix": "sshea", | |||
| "description": """ "This module defines enumerations for \ | "description": """ "This module defines enumerations for \ | |||
| the encryption algorithms | the encryption algorithms | |||
| defined in the 'Encryption Algorithm Names' registry of the | defined in the 'Encryption Algorithm Names' registry of the | |||
| 'Secure Shell (SSH) Protocol Parameters' registry group | 'Secure Shell (SSH) Protocol Parameters' registry group | |||
| maintained by IANA.""", | maintained by IANA.""", | |||
| }, | }, | |||
| { | { | |||
| "csv_url": "https://www.iana.org/assignments/ssh-parameters/\ | "csv_url": "https://www.iana.org/assignments/ssh-parameters/\ | |||
| ssh-parameters-19.csv", | ssh-parameters-19.csv", | |||
| "spaced_name": "public key", | "spaced_name": "public key", | |||
| "hypenated_name": "public-key", | "hyphenated_name": "public-key", | |||
| "prefix": "sshpka", | "prefix": "sshpka", | |||
| "description": """ "This module defines enumerations for \ | "description": """ "This module defines enumerations for \ | |||
| the public key algorithms | the public key algorithms | |||
| defined in the 'Public Key Algorithm Names' registry of the | defined in the 'Public Key Algorithm Names' registry of the | |||
| 'Secure Shell (SSH) Protocol Parameters' registry group | 'Secure Shell (SSH) Protocol Parameters' registry group | |||
| maintained by IANA.""" | maintained by IANA.""" | |||
| }, | }, | |||
| { | { | |||
| "csv_url": "https://www.iana.org/assignments/ssh-parameters/\ | "csv_url": "https://www.iana.org/assignments/ssh-parameters/\ | |||
| ssh-parameters-18.csv", | ssh-parameters-18.csv", | |||
| "spaced_name": "mac", | "spaced_name": "mac", | |||
| "hypenated_name": "mac", | "hyphenated_name": "mac", | |||
| "prefix": "sshma", | "prefix": "sshma", | |||
| "description": """ "This module defines enumerations for \ | "description": """ "This module defines enumerations for \ | |||
| the MAC algorithms | the MAC algorithms | |||
| defined in the 'MAC Algorithm Names' registry of the | defined in the 'MAC Algorithm Names' registry of the | |||
| 'Secure Shell (SSH) Protocol Parameters' registry group | 'Secure Shell (SSH) Protocol Parameters' registry group | |||
| maintained by IANA.""" | maintained by IANA.""" | |||
| }, | }, | |||
| { | { | |||
| "csv_url": "https://www.iana.org/assignments/ssh-parameters/\ | "csv_url": "https://www.iana.org/assignments/ssh-parameters/\ | |||
| ssh-parameters-16.csv", | ssh-parameters-16.csv", | |||
| "spaced_name": "key exchange", | "spaced_name": "key exchange", | |||
| "hypenated_name": "key-exchange", | "hyphenated_name": "key-exchange", | |||
| "prefix": "sshkea", | "prefix": "sshkea", | |||
| "description": """ "This module defines enumerations for \ | "description": """ "This module defines enumerations for \ | |||
| the key exchange algorithms | the key exchange algorithms | |||
| defined in the 'Key Exchange Method Names' registry of the | defined in the 'Key Exchange Method Names' registry of the | |||
| 'Secure Shell (SSH) Protocol Parameters' registry group | 'Secure Shell (SSH) Protocol Parameters' registry group | |||
| maintained by IANA.""" | maintained by IANA.""" | |||
| }, | }, | |||
| ] | ] | |||
| def create_module_begin(module, f): | def create_module_begin(module, f): | |||
| skipping to change at line 3286 ¶ | skipping to change at line 3286 ¶ | |||
| } | } | |||
| typedef ssh-HNAME-algorithm { | typedef ssh-HNAME-algorithm { | |||
| type enumeration { | type enumeration { | |||
| """ | """ | |||
| # Replacements | # Replacements | |||
| rep = { | rep = { | |||
| "DATE": datetime.today().strftime('%Y-%m-%d'), | "DATE": datetime.today().strftime('%Y-%m-%d'), | |||
| "YEAR": datetime.today().strftime('%Y'), | "YEAR": datetime.today().strftime('%Y'), | |||
| "SNAME": module["spaced_name"], | "SNAME": module["spaced_name"], | |||
| "HNAME": module["hypenated_name"], | "HNAME": module["hyphenated_name"], | |||
| "PREFIX": module["prefix"], | "PREFIX": module["prefix"], | |||
| "DESCRIPTION": module["description"] | "DESCRIPTION": module["description"] | |||
| } | } | |||
| # Do the replacement | # Do the replacement | |||
| rep = dict((re.escape(k), v) for k, v in rep.items()) | rep = dict((re.escape(k), v) for k, v in rep.items()) | |||
| pattern = re.compile("|".join(rep.keys())) | pattern = re.compile("|".join(rep.keys())) | |||
| text = pattern.sub(lambda m: rep[re.escape(m.group(0))], PREAMBL\ | text = pattern.sub(lambda m: rep[re.escape(m.group(0))], PREAMBL\ | |||
| E_TEMPLATE) | E_TEMPLATE) | |||
| skipping to change at line 3445 ¶ | skipping to change at line 3445 ¶ | |||
| f.write(" }\n") | f.write(" }\n") | |||
| f.write('\n') | f.write('\n') | |||
| f.write('}\n') | f.write('}\n') | |||
| def create_module(module): | def create_module(module): | |||
| # Install cache for 8x speedup | # Install cache for 8x speedup | |||
| requests_cache.install_cache() | requests_cache.install_cache() | |||
| # Ascertain YANG module's name | # Ascertain YANG module's name | |||
| yang_module_name = "iana-ssh-" + module["hypenated_name"] + "-al\ | yang_module_name = "iana-ssh-" + module["hyphenated_name"] + "-a\ | |||
| gs.yang" | lgs.yang" | |||
| # Create YANG module file | # Create YANG module file | |||
| with open(yang_module_name, "w") as f: | with open(yang_module_name, "w") as f: | |||
| create_module_begin(module, f) | create_module_begin(module, f) | |||
| create_module_body(module, f) | create_module_body(module, f) | |||
| create_module_end(module, f) | create_module_end(module, f) | |||
| def main(): | def main(): | |||
| for module in MODULES: | for module in MODULES: | |||
| create_module(module) | create_module(module) | |||
| End of changes. 6 change blocks. | ||||
| 7 lines changed or deleted | 7 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||