mirror of
https://github.com/napalm-automation-community/napalm-vyos.git
synced 2026-09-23 04:31:16 +00:00
Merge pull request #39 from marcushoff/get_config
Add get_config method
This commit is contained in:
@@ -919,3 +919,42 @@ class VyOSDriver(NetworkDriver):
|
||||
}
|
||||
|
||||
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 or ""
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user