diff options
author | John Estabrook <jestabro@vyos.io> | 2020-03-29 16:28:49 -0500 |
---|---|---|
committer | John Estabrook <jestabro@vyos.io> | 2020-03-29 16:33:06 -0500 |
commit | a2771180be5cc98e5b361734602da91632d93b41 (patch) | |
tree | f85cf4e21afa1b9fb1b1cc3bcf7a3350ab290ebd /python/vyos/config.py | |
parent | 5c0908bab363152a19f6aaf023b4852bd54a47ac (diff) | |
download | vyos-1x-a2771180be5cc98e5b361734602da91632d93b41.tar.gz vyos-1x-a2771180be5cc98e5b361734602da91632d93b41.zip |
vyos.config: T2180: ignore CLI edit level in show_config
Diffstat (limited to 'python/vyos/config.py')
-rw-r--r-- | python/vyos/config.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/python/vyos/config.py b/python/vyos/config.py index 2342f7021..75055a603 100644 --- a/python/vyos/config.py +++ b/python/vyos/config.py @@ -238,6 +238,19 @@ class Config(object): str: working configuration """ + # show_config should be independent of CLI edit level. + # Set the CLI edit environment to the top level, and + # restore original on exit. + save_env = self.__session_env + + env_str = self._run(self._make_command('getEditResetEnv', '')) + env_list = re.findall(r'([A-Z_]+)=\'([^;\s]+)\'', env_str) + root_env = os.environ + for k, v in env_list: + root_env[k] = v + + self.__session_env = root_env + # FIXUP: by default, showConfig will give you a diff # if there are uncommitted changes. # The config parser obviously cannot work with diffs, @@ -253,8 +266,10 @@ class Config(object): path = " ".join(path) try: out = self._run(self._make_command('showConfig', path)) + self.__session_env = save_env return out except VyOSError: + self.__session_env = save_env return(default) def get_config_dict(self, path=[], effective=False): |