From a4a0645f27b91ba26efac44c4af2c62c468286bc Mon Sep 17 00:00:00 2001 From: Marcus Hoff Date: Sun, 18 Oct 2020 14:22:50 +0200 Subject: [PATCH 01/10] Update serial_number and model Updated the match pattern of serial_number and model to the current 1.2/1.3 release of Vyos, maintained code for older versions --- napalm_vyos/vyos.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/napalm_vyos/vyos.py b/napalm_vyos/vyos.py index ddddf06..b2b441f 100644 --- a/napalm_vyos/vyos.py +++ b/napalm_vyos/vyos.py @@ -698,10 +698,15 @@ def get_facts(self): ver_str = [line for line in output if "Version" in line][0] version = self.parse_version(ver_str) - sn_str = [line for line in output if "S/N" in line][0] - snumber = self.parse_snumber(sn_str) + above_1_1 = True if version.startswith('1.0') or version.startswith(1.1) else False + if above_1_1: + sn_str = [line for line in output if "Hardware S/N" in line][0] + hwmodel_str = [line for line in output if "Hardware model" in line][0] + else: + sn_str = [line for line in output if "S/N" in line][0] + hwmodel_str = [line for line in output if "HW model" in line][0] - hwmodel_str = [line for line in output if "HW model" in line][0] + snumber = self.parse_snumber(sn_str) hwmodel = self.parse_hwmodel(hwmodel_str) output = self.device.send_command("show configuration") From a205b99ca587d852b0fc024b64ca33e482c4ee49 Mon Sep 17 00:00:00 2001 From: Marcus Hoff Date: Sun, 18 Oct 2020 15:06:58 +0200 Subject: [PATCH 02/10] Update serial_number and model Fixes my bugs --- napalm_vyos/vyos.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/napalm_vyos/vyos.py b/napalm_vyos/vyos.py index b2b441f..63cf313 100644 --- a/napalm_vyos/vyos.py +++ b/napalm_vyos/vyos.py @@ -698,7 +698,7 @@ def get_facts(self): ver_str = [line for line in output if "Version" in line][0] version = self.parse_version(ver_str) - above_1_1 = True if version.startswith('1.0') or version.startswith(1.1) else False + above_1_1 = False if version.startswith('1.0') or version.startswith('1.1') else True if above_1_1: sn_str = [line for line in output if "Hardware S/N" in line][0] hwmodel_str = [line for line in output if "Hardware model" in line][0] From 5ab6f4de211f8f8fcf73c140cc7ede4d00176cc5 Mon Sep 17 00:00:00 2001 From: Marcus Hoff Date: Wed, 21 Oct 2020 16:34:52 +0200 Subject: [PATCH 03/10] Add get_config method Supports all retrive options, where 'candidate' is the Napalm candidate. Either gets the boot config as 'startup' or output from 'show' in edit mode for 'running' Supports sanitized only for 'running'. Outputs the 'show' in op mode. --- napalm_vyos/vyos.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/napalm_vyos/vyos.py b/napalm_vyos/vyos.py index ddddf06..100ccb9 100644 --- a/napalm_vyos/vyos.py +++ b/napalm_vyos/vyos.py @@ -914,3 +914,42 @@ def ping(self, } return ping_result + + def get_config(self, retrieve="all", full=False, sanitized=False): + """ + Return the configuration of a device. + :param retrieve: String to determine which configuration type you want to retrieve, default is all of them. + The rest will be set to "". + :param full: Boolean to retrieve all the configuration. (Not supported) + :param sanitized: Boolean to remove secret data. (Only supported for 'running') + :return: The object returned is a dictionary with a key for each configuration store: + - running(string) - Representation of the native running configuration + - candidate(string) - Representation of the candidate configuration. + - startup(string) - Representation of the native startup configuration. + """ + if retrieve not in ["running", "candidate", "startup", "all"]: + raise Exception("ERROR: Not a valid option to retrieve.\nPlease select from 'running', 'candidate', " + "'startup', or 'all'") + else: + config_dict = { + "running": "", + "startup": "", + "candidate": "" + } + if retrieve in ["running", "all"]: + config_dict['running'] = self._get_running_config(sanitized) + if retrieve in ["startup", "all"]: + config_dict['startup'] = self.device.send_command(f"cat {self._BOOT_FILENAME}") + if retrieve in ["candidate", "all"]: + config_dict['candidate'] = self._new_config + + return config_dict + + def _get_running_config(self, sanitized): + if sanitized: + return self.device.send_command("show configuration") + self.device.config_mode() + config = self.device.send_command("show") + config = config[:config.rfind('\n')] + self.device.exit_config_mode() + return config From 7107560f844eb427e6b641f22422424206e228f6 Mon Sep 17 00:00:00 2001 From: Marcus Hoff Date: Thu, 22 Oct 2020 14:54:34 +0200 Subject: [PATCH 04/10] Add tests for get_config Add test cases for normal and sanitized versions. Add support for config mode in mock device. --- test/unit/conftest.py | 9 ++ .../normal/cat__config_config.boot.text | 123 +++++++++++++++++ .../normal/expected_result.json | 1 + .../test_get_config/normal/show.text | 124 ++++++++++++++++++ .../normal/cat__config_config.boot.text | 123 +++++++++++++++++ .../normal/expected_result.json | 1 + .../normal/show_configuration.text | 124 ++++++++++++++++++ 7 files changed, 505 insertions(+) create mode 100644 test/unit/mocked_data/test_get_config/normal/cat__config_config.boot.text create mode 100644 test/unit/mocked_data/test_get_config/normal/expected_result.json create mode 100644 test/unit/mocked_data/test_get_config/normal/show.text create mode 100644 test/unit/mocked_data/test_get_config_sanitized/normal/cat__config_config.boot.text create mode 100644 test/unit/mocked_data/test_get_config_sanitized/normal/expected_result.json create mode 100644 test/unit/mocked_data/test_get_config_sanitized/normal/show_configuration.text diff --git a/test/unit/conftest.py b/test/unit/conftest.py index 6960292..b75adde 100644 --- a/test/unit/conftest.py +++ b/test/unit/conftest.py @@ -51,7 +51,16 @@ def open(self): class FakeVyOSDevice(BaseTestDouble): """VyOS device test double.""" + def __init__(self): + self.mode_config = False + def send_command(self, command, **kwargs): filename = '{}.text'.format(self.sanitize_text(command)) full_path = self.find_file(filename) return self.read_txt_file(full_path) + + def config_mode(self): + self.mode_config = True + + def exit_config_mode(self): + self.mode_config = False diff --git a/test/unit/mocked_data/test_get_config/normal/cat__config_config.boot.text b/test/unit/mocked_data/test_get_config/normal/cat__config_config.boot.text new file mode 100644 index 0000000..6e06146 --- /dev/null +++ b/test/unit/mocked_data/test_get_config/normal/cat__config_config.boot.text @@ -0,0 +1,123 @@ +interfaces { + ethernet eth0 { + address dhcp + } + ethernet eth1 { + address 10.0.1.222/24 + } + loopback lo { + address 10.2.2.2/32 + address 8.8.8.8/32 + } +} +policy { + prefix-list EXPORT { + rule 1 { + action permit + prefix 172.16.2.0/24 + } + rule 65535 { + action permit + prefix 10.2.2.2/32 + } + } + route-map EXPORT-POLICY { + rule 1 { + action permit + match { + ip { + address { + prefix-list EXPORT + } + } + } + } + } +} +protocols { + bgp 65002 { + neighbor 10.0.1.100 { + remote-as 65001 + route-map { + export EXPORT-POLICY + } + } + redistribute { + connected { + route-map EXPORT-POLICY + } + } + } +} +service { + snmp { + community commro { + authorization ro + } + contact admin@foo.corp + location PL,Krakow + } + ssh { + disable-host-validation + port 22 + } +} +system { + config-management { + commit-revisions 20 + } + host-name vyos2 + login { + banner { + pre-login "My banner for all devices" + } + user vagrant { + authentication { + encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr. + plaintext-password "" + public-keys vagrant { + key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== + type ssh-rsa + } + } + level admin + } + user vyos { + authentication { + encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1 + plaintext-password "" + } + level admin + } + } + ntp { + server 10.0.1.100 { + } + } + package { + auto-sync 1 + repository community { + components main + distribution helium + password "" + url http://packages.vyos.net/vyos + username "" + } + } + syslog { + global { + facility all { + level notice + } + facility protocols { + level debug + } + } + } + time-zone UTC +} + + +/* Warning: Do not remove the following line. */ +/* === vyatta-config-version: "cluster@1:config-management@1:conntrack-sync@1:conntrack@1:cron@1:dhcp-relay@1:dhcp-server@4:firewall@5:ipsec@4:nat@4:qos@1:quagga@2:system@6:vrrp@1:wanloadbalance@3:webgui@1:webproxy@1:zone-policy@1" === */ +/* Release version: VyOS 1.1.7 */ diff --git a/test/unit/mocked_data/test_get_config/normal/expected_result.json b/test/unit/mocked_data/test_get_config/normal/expected_result.json new file mode 100644 index 0000000..4f7a109 --- /dev/null +++ b/test/unit/mocked_data/test_get_config/normal/expected_result.json @@ -0,0 +1 @@ +{"running": "interfaces {\n ethernet eth0 {\n address dhcp\n duplex auto\n smp_affinity auto\n speed auto\n }\n ethernet eth1 {\n address 10.0.1.222/24\n duplex auto\n smp_affinity auto\n speed auto\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr.\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}\n", "startup": "interfaces {\n ethernet eth0 {\n address dhcp\n }\n ethernet eth1 {\n address 10.0.1.222/24\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr.\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}\n\n\n/* Warning: Do not remove the following line. */\n/* === vyatta-config-version: \"cluster@1:config-management@1:conntrack-sync@1:conntrack@1:cron@1:dhcp-relay@1:dhcp-server@4:firewall@5:ipsec@4:nat@4:qos@1:quagga@2:system@6:vrrp@1:wanloadbalance@3:webgui@1:webproxy@1:zone-policy@1\" === */\n/* Release version: VyOS 1.1.7 */\n", "candidate": null} diff --git a/test/unit/mocked_data/test_get_config/normal/show.text b/test/unit/mocked_data/test_get_config/normal/show.text new file mode 100644 index 0000000..06701fe --- /dev/null +++ b/test/unit/mocked_data/test_get_config/normal/show.text @@ -0,0 +1,124 @@ +interfaces { + ethernet eth0 { + address dhcp + duplex auto + smp_affinity auto + speed auto + } + ethernet eth1 { + address 10.0.1.222/24 + duplex auto + smp_affinity auto + speed auto + } + loopback lo { + address 10.2.2.2/32 + address 8.8.8.8/32 + } +} +policy { + prefix-list EXPORT { + rule 1 { + action permit + prefix 172.16.2.0/24 + } + rule 65535 { + action permit + prefix 10.2.2.2/32 + } + } + route-map EXPORT-POLICY { + rule 1 { + action permit + match { + ip { + address { + prefix-list EXPORT + } + } + } + } + } +} +protocols { + bgp 65002 { + neighbor 10.0.1.100 { + remote-as 65001 + route-map { + export EXPORT-POLICY + } + } + redistribute { + connected { + route-map EXPORT-POLICY + } + } + } +} +service { + snmp { + community commro { + authorization ro + } + contact admin@foo.corp + location PL,Krakow + } + ssh { + disable-host-validation + port 22 + } +} +system { + config-management { + commit-revisions 20 + } + host-name vyos2 + login { + banner { + pre-login "My banner for all devices" + } + user vagrant { + authentication { + encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr. + plaintext-password "" + public-keys vagrant { + key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== + type ssh-rsa + } + } + level admin + } + user vyos { + authentication { + encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1 + plaintext-password "" + } + level admin + } + } + ntp { + server 10.0.1.100 { + } + } + package { + auto-sync 1 + repository community { + components main + distribution helium + password "" + url http://packages.vyos.net/vyos + username "" + } + } + syslog { + global { + facility all { + level notice + } + facility protocols { + level debug + } + } + } + time-zone UTC +} diff --git a/test/unit/mocked_data/test_get_config_sanitized/normal/cat__config_config.boot.text b/test/unit/mocked_data/test_get_config_sanitized/normal/cat__config_config.boot.text new file mode 100644 index 0000000..6e06146 --- /dev/null +++ b/test/unit/mocked_data/test_get_config_sanitized/normal/cat__config_config.boot.text @@ -0,0 +1,123 @@ +interfaces { + ethernet eth0 { + address dhcp + } + ethernet eth1 { + address 10.0.1.222/24 + } + loopback lo { + address 10.2.2.2/32 + address 8.8.8.8/32 + } +} +policy { + prefix-list EXPORT { + rule 1 { + action permit + prefix 172.16.2.0/24 + } + rule 65535 { + action permit + prefix 10.2.2.2/32 + } + } + route-map EXPORT-POLICY { + rule 1 { + action permit + match { + ip { + address { + prefix-list EXPORT + } + } + } + } + } +} +protocols { + bgp 65002 { + neighbor 10.0.1.100 { + remote-as 65001 + route-map { + export EXPORT-POLICY + } + } + redistribute { + connected { + route-map EXPORT-POLICY + } + } + } +} +service { + snmp { + community commro { + authorization ro + } + contact admin@foo.corp + location PL,Krakow + } + ssh { + disable-host-validation + port 22 + } +} +system { + config-management { + commit-revisions 20 + } + host-name vyos2 + login { + banner { + pre-login "My banner for all devices" + } + user vagrant { + authentication { + encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr. + plaintext-password "" + public-keys vagrant { + key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== + type ssh-rsa + } + } + level admin + } + user vyos { + authentication { + encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1 + plaintext-password "" + } + level admin + } + } + ntp { + server 10.0.1.100 { + } + } + package { + auto-sync 1 + repository community { + components main + distribution helium + password "" + url http://packages.vyos.net/vyos + username "" + } + } + syslog { + global { + facility all { + level notice + } + facility protocols { + level debug + } + } + } + time-zone UTC +} + + +/* Warning: Do not remove the following line. */ +/* === vyatta-config-version: "cluster@1:config-management@1:conntrack-sync@1:conntrack@1:cron@1:dhcp-relay@1:dhcp-server@4:firewall@5:ipsec@4:nat@4:qos@1:quagga@2:system@6:vrrp@1:wanloadbalance@3:webgui@1:webproxy@1:zone-policy@1" === */ +/* Release version: VyOS 1.1.7 */ diff --git a/test/unit/mocked_data/test_get_config_sanitized/normal/expected_result.json b/test/unit/mocked_data/test_get_config_sanitized/normal/expected_result.json new file mode 100644 index 0000000..b71ab3b --- /dev/null +++ b/test/unit/mocked_data/test_get_config_sanitized/normal/expected_result.json @@ -0,0 +1 @@ +{"running": "interfaces {\n ethernet eth0 {\n address dhcp\n duplex auto\n smp_affinity auto\n speed auto\n }\n ethernet eth1 {\n address 10.0.1.222/24\n duplex auto\n smp_affinity auto\n speed auto\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password **********\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password **********\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}\n", "startup": "interfaces {\n ethernet eth0 {\n address dhcp\n }\n ethernet eth1 {\n address 10.0.1.222/24\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr.\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}\n\n\n/* Warning: Do not remove the following line. */\n/* === vyatta-config-version: \"cluster@1:config-management@1:conntrack-sync@1:conntrack@1:cron@1:dhcp-relay@1:dhcp-server@4:firewall@5:ipsec@4:nat@4:qos@1:quagga@2:system@6:vrrp@1:wanloadbalance@3:webgui@1:webproxy@1:zone-policy@1\" === */\n/* Release version: VyOS 1.1.7 */\n", "candidate": null} diff --git a/test/unit/mocked_data/test_get_config_sanitized/normal/show_configuration.text b/test/unit/mocked_data/test_get_config_sanitized/normal/show_configuration.text new file mode 100644 index 0000000..ac02187 --- /dev/null +++ b/test/unit/mocked_data/test_get_config_sanitized/normal/show_configuration.text @@ -0,0 +1,124 @@ +interfaces { + ethernet eth0 { + address dhcp + duplex auto + smp_affinity auto + speed auto + } + ethernet eth1 { + address 10.0.1.222/24 + duplex auto + smp_affinity auto + speed auto + } + loopback lo { + address 10.2.2.2/32 + address 8.8.8.8/32 + } +} +policy { + prefix-list EXPORT { + rule 1 { + action permit + prefix 172.16.2.0/24 + } + rule 65535 { + action permit + prefix 10.2.2.2/32 + } + } + route-map EXPORT-POLICY { + rule 1 { + action permit + match { + ip { + address { + prefix-list EXPORT + } + } + } + } + } +} +protocols { + bgp 65002 { + neighbor 10.0.1.100 { + remote-as 65001 + route-map { + export EXPORT-POLICY + } + } + redistribute { + connected { + route-map EXPORT-POLICY + } + } + } +} +service { + snmp { + community commro { + authorization ro + } + contact admin@foo.corp + location PL,Krakow + } + ssh { + disable-host-validation + port 22 + } +} +system { + config-management { + commit-revisions 20 + } + host-name vyos2 + login { + banner { + pre-login "My banner for all devices" + } + user vagrant { + authentication { + encrypted-password ********** + plaintext-password "" + public-keys vagrant { + key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== + type ssh-rsa + } + } + level admin + } + user vyos { + authentication { + encrypted-password ********** + plaintext-password "" + } + level admin + } + } + ntp { + server 10.0.1.100 { + } + } + package { + auto-sync 1 + repository community { + components main + distribution helium + password "" + url http://packages.vyos.net/vyos + username "" + } + } + syslog { + global { + facility all { + level notice + } + facility protocols { + level debug + } + } + } + time-zone UTC +} From d970ad22c94623e702a472386052e354b3133c2a Mon Sep 17 00:00:00 2001 From: Marcus Hoff Date: Thu, 22 Oct 2020 16:51:57 +0200 Subject: [PATCH 05/10] Fixed tests Add missing case test_get_config_filtere Correct names of mock files --- ...boot.text => cat__config_config_boot.text} | 0 .../normal/cat__config_config_boot.text} | 0 .../normal/expected_result.json | 1 + .../test_get_config_filtered/normal/show.text | 124 ++++++++++++++++++ .../normal/cat__config_config_boot.text | 123 +++++++++++++++++ 5 files changed, 248 insertions(+) rename test/unit/mocked_data/test_get_config/normal/{cat__config_config.boot.text => cat__config_config_boot.text} (100%) rename test/unit/mocked_data/{test_get_config_sanitized/normal/cat__config_config.boot.text => test_get_config_filtered/normal/cat__config_config_boot.text} (100%) create mode 100644 test/unit/mocked_data/test_get_config_filtered/normal/expected_result.json create mode 100644 test/unit/mocked_data/test_get_config_filtered/normal/show.text create mode 100644 test/unit/mocked_data/test_get_config_sanitized/normal/cat__config_config_boot.text diff --git a/test/unit/mocked_data/test_get_config/normal/cat__config_config.boot.text b/test/unit/mocked_data/test_get_config/normal/cat__config_config_boot.text similarity index 100% rename from test/unit/mocked_data/test_get_config/normal/cat__config_config.boot.text rename to test/unit/mocked_data/test_get_config/normal/cat__config_config_boot.text diff --git a/test/unit/mocked_data/test_get_config_sanitized/normal/cat__config_config.boot.text b/test/unit/mocked_data/test_get_config_filtered/normal/cat__config_config_boot.text similarity index 100% rename from test/unit/mocked_data/test_get_config_sanitized/normal/cat__config_config.boot.text rename to test/unit/mocked_data/test_get_config_filtered/normal/cat__config_config_boot.text diff --git a/test/unit/mocked_data/test_get_config_filtered/normal/expected_result.json b/test/unit/mocked_data/test_get_config_filtered/normal/expected_result.json new file mode 100644 index 0000000..4f7a109 --- /dev/null +++ b/test/unit/mocked_data/test_get_config_filtered/normal/expected_result.json @@ -0,0 +1 @@ +{"running": "interfaces {\n ethernet eth0 {\n address dhcp\n duplex auto\n smp_affinity auto\n speed auto\n }\n ethernet eth1 {\n address 10.0.1.222/24\n duplex auto\n smp_affinity auto\n speed auto\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr.\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}\n", "startup": "interfaces {\n ethernet eth0 {\n address dhcp\n }\n ethernet eth1 {\n address 10.0.1.222/24\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr.\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}\n\n\n/* Warning: Do not remove the following line. */\n/* === vyatta-config-version: \"cluster@1:config-management@1:conntrack-sync@1:conntrack@1:cron@1:dhcp-relay@1:dhcp-server@4:firewall@5:ipsec@4:nat@4:qos@1:quagga@2:system@6:vrrp@1:wanloadbalance@3:webgui@1:webproxy@1:zone-policy@1\" === */\n/* Release version: VyOS 1.1.7 */\n", "candidate": null} diff --git a/test/unit/mocked_data/test_get_config_filtered/normal/show.text b/test/unit/mocked_data/test_get_config_filtered/normal/show.text new file mode 100644 index 0000000..06701fe --- /dev/null +++ b/test/unit/mocked_data/test_get_config_filtered/normal/show.text @@ -0,0 +1,124 @@ +interfaces { + ethernet eth0 { + address dhcp + duplex auto + smp_affinity auto + speed auto + } + ethernet eth1 { + address 10.0.1.222/24 + duplex auto + smp_affinity auto + speed auto + } + loopback lo { + address 10.2.2.2/32 + address 8.8.8.8/32 + } +} +policy { + prefix-list EXPORT { + rule 1 { + action permit + prefix 172.16.2.0/24 + } + rule 65535 { + action permit + prefix 10.2.2.2/32 + } + } + route-map EXPORT-POLICY { + rule 1 { + action permit + match { + ip { + address { + prefix-list EXPORT + } + } + } + } + } +} +protocols { + bgp 65002 { + neighbor 10.0.1.100 { + remote-as 65001 + route-map { + export EXPORT-POLICY + } + } + redistribute { + connected { + route-map EXPORT-POLICY + } + } + } +} +service { + snmp { + community commro { + authorization ro + } + contact admin@foo.corp + location PL,Krakow + } + ssh { + disable-host-validation + port 22 + } +} +system { + config-management { + commit-revisions 20 + } + host-name vyos2 + login { + banner { + pre-login "My banner for all devices" + } + user vagrant { + authentication { + encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr. + plaintext-password "" + public-keys vagrant { + key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== + type ssh-rsa + } + } + level admin + } + user vyos { + authentication { + encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1 + plaintext-password "" + } + level admin + } + } + ntp { + server 10.0.1.100 { + } + } + package { + auto-sync 1 + repository community { + components main + distribution helium + password "" + url http://packages.vyos.net/vyos + username "" + } + } + syslog { + global { + facility all { + level notice + } + facility protocols { + level debug + } + } + } + time-zone UTC +} diff --git a/test/unit/mocked_data/test_get_config_sanitized/normal/cat__config_config_boot.text b/test/unit/mocked_data/test_get_config_sanitized/normal/cat__config_config_boot.text new file mode 100644 index 0000000..6e06146 --- /dev/null +++ b/test/unit/mocked_data/test_get_config_sanitized/normal/cat__config_config_boot.text @@ -0,0 +1,123 @@ +interfaces { + ethernet eth0 { + address dhcp + } + ethernet eth1 { + address 10.0.1.222/24 + } + loopback lo { + address 10.2.2.2/32 + address 8.8.8.8/32 + } +} +policy { + prefix-list EXPORT { + rule 1 { + action permit + prefix 172.16.2.0/24 + } + rule 65535 { + action permit + prefix 10.2.2.2/32 + } + } + route-map EXPORT-POLICY { + rule 1 { + action permit + match { + ip { + address { + prefix-list EXPORT + } + } + } + } + } +} +protocols { + bgp 65002 { + neighbor 10.0.1.100 { + remote-as 65001 + route-map { + export EXPORT-POLICY + } + } + redistribute { + connected { + route-map EXPORT-POLICY + } + } + } +} +service { + snmp { + community commro { + authorization ro + } + contact admin@foo.corp + location PL,Krakow + } + ssh { + disable-host-validation + port 22 + } +} +system { + config-management { + commit-revisions 20 + } + host-name vyos2 + login { + banner { + pre-login "My banner for all devices" + } + user vagrant { + authentication { + encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr. + plaintext-password "" + public-keys vagrant { + key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== + type ssh-rsa + } + } + level admin + } + user vyos { + authentication { + encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1 + plaintext-password "" + } + level admin + } + } + ntp { + server 10.0.1.100 { + } + } + package { + auto-sync 1 + repository community { + components main + distribution helium + password "" + url http://packages.vyos.net/vyos + username "" + } + } + syslog { + global { + facility all { + level notice + } + facility protocols { + level debug + } + } + } + time-zone UTC +} + + +/* Warning: Do not remove the following line. */ +/* === vyatta-config-version: "cluster@1:config-management@1:conntrack-sync@1:conntrack@1:cron@1:dhcp-relay@1:dhcp-server@4:firewall@5:ipsec@4:nat@4:qos@1:quagga@2:system@6:vrrp@1:wanloadbalance@3:webgui@1:webproxy@1:zone-policy@1" === */ +/* Release version: VyOS 1.1.7 */ From 1200cf432867812bc112eec78003be660240a197 Mon Sep 17 00:00:00 2001 From: Marcus Hoff Date: Thu, 22 Oct 2020 18:28:34 +0200 Subject: [PATCH 06/10] Fix sanitized_test, Add str return to candidate Change the expected results of sanitized test. If candidate config is None return empty string --- napalm_vyos/vyos.py | 2 +- test/unit/mocked_data/test_get_config_filtered/normal/show.text | 1 + .../test_get_config_sanitized/normal/expected_result.json | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/napalm_vyos/vyos.py b/napalm_vyos/vyos.py index 100ccb9..4f6d06e 100644 --- a/napalm_vyos/vyos.py +++ b/napalm_vyos/vyos.py @@ -941,7 +941,7 @@ def get_config(self, retrieve="all", full=False, sanitized=False): if retrieve in ["startup", "all"]: config_dict['startup'] = self.device.send_command(f"cat {self._BOOT_FILENAME}") if retrieve in ["candidate", "all"]: - config_dict['candidate'] = self._new_config + config_dict['candidate'] = self._new_config or "" return config_dict diff --git a/test/unit/mocked_data/test_get_config_filtered/normal/show.text b/test/unit/mocked_data/test_get_config_filtered/normal/show.text index 06701fe..18da59f 100644 --- a/test/unit/mocked_data/test_get_config_filtered/normal/show.text +++ b/test/unit/mocked_data/test_get_config_filtered/normal/show.text @@ -122,3 +122,4 @@ system { } time-zone UTC } +[edit] diff --git a/test/unit/mocked_data/test_get_config_sanitized/normal/expected_result.json b/test/unit/mocked_data/test_get_config_sanitized/normal/expected_result.json index b71ab3b..1e6d3b9 100644 --- a/test/unit/mocked_data/test_get_config_sanitized/normal/expected_result.json +++ b/test/unit/mocked_data/test_get_config_sanitized/normal/expected_result.json @@ -1 +1 @@ -{"running": "interfaces {\n ethernet eth0 {\n address dhcp\n duplex auto\n smp_affinity auto\n speed auto\n }\n ethernet eth1 {\n address 10.0.1.222/24\n duplex auto\n smp_affinity auto\n speed auto\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password **********\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password **********\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}\n", "startup": "interfaces {\n ethernet eth0 {\n address dhcp\n }\n ethernet eth1 {\n address 10.0.1.222/24\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr.\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}\n\n\n/* Warning: Do not remove the following line. */\n/* === vyatta-config-version: \"cluster@1:config-management@1:conntrack-sync@1:conntrack@1:cron@1:dhcp-relay@1:dhcp-server@4:firewall@5:ipsec@4:nat@4:qos@1:quagga@2:system@6:vrrp@1:wanloadbalance@3:webgui@1:webproxy@1:zone-policy@1\" === */\n/* Release version: VyOS 1.1.7 */\n", "candidate": null} +{"running": "", "startup": "", "candidate": null} From 7e470df55e8e76c4d99897a71c34c34ef7ce92e2 Mon Sep 17 00:00:00 2001 From: Marcus Hoff Date: Fri, 23 Oct 2020 10:46:52 +0200 Subject: [PATCH 07/10] Fix expected results Fixed wrong output and new lines in expected results and corrected the show output for test_get_config --- .../mocked_data/test_get_config/normal/expected_result.json | 2 +- test/unit/mocked_data/test_get_config/normal/show.text | 1 + .../test_get_config_filtered/normal/expected_result.json | 2 +- .../test_get_config_sanitized/normal/expected_result.json | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/test/unit/mocked_data/test_get_config/normal/expected_result.json b/test/unit/mocked_data/test_get_config/normal/expected_result.json index 4f7a109..af3d7db 100644 --- a/test/unit/mocked_data/test_get_config/normal/expected_result.json +++ b/test/unit/mocked_data/test_get_config/normal/expected_result.json @@ -1 +1 @@ -{"running": "interfaces {\n ethernet eth0 {\n address dhcp\n duplex auto\n smp_affinity auto\n speed auto\n }\n ethernet eth1 {\n address 10.0.1.222/24\n duplex auto\n smp_affinity auto\n speed auto\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr.\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}\n", "startup": "interfaces {\n ethernet eth0 {\n address dhcp\n }\n ethernet eth1 {\n address 10.0.1.222/24\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr.\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}\n\n\n/* Warning: Do not remove the following line. */\n/* === vyatta-config-version: \"cluster@1:config-management@1:conntrack-sync@1:conntrack@1:cron@1:dhcp-relay@1:dhcp-server@4:firewall@5:ipsec@4:nat@4:qos@1:quagga@2:system@6:vrrp@1:wanloadbalance@3:webgui@1:webproxy@1:zone-policy@1\" === */\n/* Release version: VyOS 1.1.7 */\n", "candidate": null} +{"running": "interfaces {\n ethernet eth0 {\n address dhcp\n duplex auto\n smp_affinity auto\n speed auto\n }\n ethernet eth1 {\n address 10.0.1.222/24\n duplex auto\n smp_affinity auto\n speed auto\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr.\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}", "startup": "interfaces {\n ethernet eth0 {\n address dhcp\n }\n ethernet eth1 {\n address 10.0.1.222/24\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr.\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}\n\n\n/* Warning: Do not remove the following line. */\n/* === vyatta-config-version: \"cluster@1:config-management@1:conntrack-sync@1:conntrack@1:cron@1:dhcp-relay@1:dhcp-server@4:firewall@5:ipsec@4:nat@4:qos@1:quagga@2:system@6:vrrp@1:wanloadbalance@3:webgui@1:webproxy@1:zone-policy@1\" === */\n/* Release version: VyOS 1.1.7 */\n", "candidate": ""} diff --git a/test/unit/mocked_data/test_get_config/normal/show.text b/test/unit/mocked_data/test_get_config/normal/show.text index 06701fe..5d392fe 100644 --- a/test/unit/mocked_data/test_get_config/normal/show.text +++ b/test/unit/mocked_data/test_get_config/normal/show.text @@ -122,3 +122,4 @@ system { } time-zone UTC } +[edit] \ No newline at end of file diff --git a/test/unit/mocked_data/test_get_config_filtered/normal/expected_result.json b/test/unit/mocked_data/test_get_config_filtered/normal/expected_result.json index 4f7a109..a70a040 100644 --- a/test/unit/mocked_data/test_get_config_filtered/normal/expected_result.json +++ b/test/unit/mocked_data/test_get_config_filtered/normal/expected_result.json @@ -1 +1 @@ -{"running": "interfaces {\n ethernet eth0 {\n address dhcp\n duplex auto\n smp_affinity auto\n speed auto\n }\n ethernet eth1 {\n address 10.0.1.222/24\n duplex auto\n smp_affinity auto\n speed auto\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr.\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}\n", "startup": "interfaces {\n ethernet eth0 {\n address dhcp\n }\n ethernet eth1 {\n address 10.0.1.222/24\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr.\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}\n\n\n/* Warning: Do not remove the following line. */\n/* === vyatta-config-version: \"cluster@1:config-management@1:conntrack-sync@1:conntrack@1:cron@1:dhcp-relay@1:dhcp-server@4:firewall@5:ipsec@4:nat@4:qos@1:quagga@2:system@6:vrrp@1:wanloadbalance@3:webgui@1:webproxy@1:zone-policy@1\" === */\n/* Release version: VyOS 1.1.7 */\n", "candidate": null} +{"running": "", "startup": "", "candidate": ""} \ No newline at end of file diff --git a/test/unit/mocked_data/test_get_config_sanitized/normal/expected_result.json b/test/unit/mocked_data/test_get_config_sanitized/normal/expected_result.json index 1e6d3b9..e069e93 100644 --- a/test/unit/mocked_data/test_get_config_sanitized/normal/expected_result.json +++ b/test/unit/mocked_data/test_get_config_sanitized/normal/expected_result.json @@ -1 +1 @@ -{"running": "", "startup": "", "candidate": null} +{"running": "interfaces {\n ethernet eth0 {\n address dhcp\n duplex auto\n smp_affinity auto\n speed auto\n }\n ethernet eth1 {\n address 10.0.1.222/24\n duplex auto\n smp_affinity auto\n speed auto\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr.\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}\n", "startup": "interfaces {\n ethernet eth0 {\n address dhcp\n }\n ethernet eth1 {\n address 10.0.1.222/24\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr.\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}\n\n\n/* Warning: Do not remove the following line. */\n/* === vyatta-config-version: \"cluster@1:config-management@1:conntrack-sync@1:conntrack@1:cron@1:dhcp-relay@1:dhcp-server@4:firewall@5:ipsec@4:nat@4:qos@1:quagga@2:system@6:vrrp@1:wanloadbalance@3:webgui@1:webproxy@1:zone-policy@1\" === */\n/* Release version: VyOS 1.1.7 */\n", "candidate": ""} From 619fc3d32cc28ea7ff384043cb50ff176442a433 Mon Sep 17 00:00:00 2001 From: Marcus Hoff Date: Fri, 23 Oct 2020 11:21:13 +0200 Subject: [PATCH 08/10] Fix expected results for sanitized changed the return password to be hidden --- .../test_get_config_sanitized/normal/expected_result.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unit/mocked_data/test_get_config_sanitized/normal/expected_result.json b/test/unit/mocked_data/test_get_config_sanitized/normal/expected_result.json index e069e93..37d9ad3 100644 --- a/test/unit/mocked_data/test_get_config_sanitized/normal/expected_result.json +++ b/test/unit/mocked_data/test_get_config_sanitized/normal/expected_result.json @@ -1 +1 @@ -{"running": "interfaces {\n ethernet eth0 {\n address dhcp\n duplex auto\n smp_affinity auto\n speed auto\n }\n ethernet eth1 {\n address 10.0.1.222/24\n duplex auto\n smp_affinity auto\n speed auto\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr.\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}\n", "startup": "interfaces {\n ethernet eth0 {\n address dhcp\n }\n ethernet eth1 {\n address 10.0.1.222/24\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr.\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}\n\n\n/* Warning: Do not remove the following line. */\n/* === vyatta-config-version: \"cluster@1:config-management@1:conntrack-sync@1:conntrack@1:cron@1:dhcp-relay@1:dhcp-server@4:firewall@5:ipsec@4:nat@4:qos@1:quagga@2:system@6:vrrp@1:wanloadbalance@3:webgui@1:webproxy@1:zone-policy@1\" === */\n/* Release version: VyOS 1.1.7 */\n", "candidate": ""} +{"running": "interfaces {\n ethernet eth0 {\n address dhcp\n duplex auto\n smp_affinity auto\n speed auto\n }\n ethernet eth1 {\n address 10.0.1.222/24\n duplex auto\n smp_affinity auto\n speed auto\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password **********\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password **********\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}\n", "startup": "interfaces {\n ethernet eth0 {\n address dhcp\n }\n ethernet eth1 {\n address 10.0.1.222/24\n }\n loopback lo {\n address 10.2.2.2/32\n address 8.8.8.8/32\n }\n}\npolicy {\n prefix-list EXPORT {\n rule 1 {\n action permit\n prefix 172.16.2.0/24\n }\n rule 65535 {\n action permit\n prefix 10.2.2.2/32\n }\n }\n route-map EXPORT-POLICY {\n rule 1 {\n action permit\n match {\n ip {\n address {\n prefix-list EXPORT\n }\n }\n }\n }\n }\n}\nprotocols {\n bgp 65002 {\n neighbor 10.0.1.100 {\n remote-as 65001\n route-map {\n export EXPORT-POLICY\n }\n }\n redistribute {\n connected {\n route-map EXPORT-POLICY\n }\n }\n }\n}\nservice {\n snmp {\n community commro {\n authorization ro\n }\n contact admin@foo.corp\n location PL,Krakow\n }\n ssh {\n disable-host-validation\n port 22\n }\n}\nsystem {\n config-management {\n commit-revisions 20\n }\n host-name vyos2\n login {\n banner {\n pre-login \"My banner for all devices\"\n }\n user vagrant {\n authentication {\n encrypted-password $6$fcHhBu3T$WLmiu6/txlEfWK5uh4mKE8v7qocuftsoAN1oHqPIIoogXAX8zS.SKhB105EExYU6yBy4cKHUD/Q6Mm7CUbVTr.\n plaintext-password \"\"\n public-keys vagrant {\n key AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==\n type ssh-rsa\n }\n }\n level admin\n }\n user vyos {\n authentication {\n encrypted-password $1$yHIMnG/J$aWDkd3oDYSYps8twB5vpw1\n plaintext-password \"\"\n }\n level admin\n }\n }\n ntp {\n server 10.0.1.100 {\n }\n }\n package {\n auto-sync 1\n repository community {\n components main\n distribution helium\n password \"\"\n url http://packages.vyos.net/vyos\n username \"\"\n }\n }\n syslog {\n global {\n facility all {\n level notice\n }\n facility protocols {\n level debug\n }\n }\n }\n time-zone UTC\n}\n\n\n/* Warning: Do not remove the following line. */\n/* === vyatta-config-version: \"cluster@1:config-management@1:conntrack-sync@1:conntrack@1:cron@1:dhcp-relay@1:dhcp-server@4:firewall@5:ipsec@4:nat@4:qos@1:quagga@2:system@6:vrrp@1:wanloadbalance@3:webgui@1:webproxy@1:zone-policy@1\" === */\n/* Release version: VyOS 1.1.7 */\n", "candidate": ""} From d4e25b4e46934370515ba398ca4ee3669ddc1fd7 Mon Sep 17 00:00:00 2001 From: Marcus Hoff Date: Mon, 16 Nov 2020 09:27:15 +0100 Subject: [PATCH 09/10] Update file mode Default file mode i binary, updated to string --- napalm_vyos/vyos.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/napalm_vyos/vyos.py b/napalm_vyos/vyos.py index ddddf06..f650d74 100644 --- a/napalm_vyos/vyos.py +++ b/napalm_vyos/vyos.py @@ -126,7 +126,7 @@ def load_replace_candidate(self, filename=None, config=None): raise ReplaceConfigException('filename or config param must be provided.') if filename is None: - temp_file = tempfile.NamedTemporaryFile() + temp_file = tempfile.NamedTemporaryFile(mode='w+') temp_file.write(config) temp_file.flush() cfg_filename = temp_file.name @@ -165,7 +165,7 @@ def load_merge_candidate(self, filename=None, config=None): raise MergeConfigException('filename or config param must be provided.') if filename is None: - temp_file = tempfile.NamedTemporaryFile() + temp_file = tempfile.NamedTemporaryFile(mode='w+') temp_file.write(config) temp_file.flush() cfg_filename = temp_file.name From 27bc0c762397666dee5c880141156dc9a3589b5a Mon Sep 17 00:00:00 2001 From: Piotr Pieprzycki Date: Thu, 17 Dec 2020 22:16:09 +0100 Subject: [PATCH 10/10] Change version to 0.2.1 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 164a3b4..75987c5 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ setup( name="napalm-vyos", - version="0.2.0", + version="0.2.1", packages=find_packages(), author="Piotr Pieprzycki", author_email="piotr.pieprzycki@dreamlab.pl",