diff options
author | John Estabrook <jestabro@vyos.io> | 2021-08-19 14:30:32 -0500 |
---|---|---|
committer | John Estabrook <jestabro@vyos.io> | 2021-08-20 14:14:59 -0500 |
commit | 1a498915efdc433dda7bd6e5fcc08703a48560c6 (patch) | |
tree | 82a1ad507250b2c47ba77444761a36d068507280 /python/vyos | |
parent | f7e3f5562458da4d80b272f1524c27727799e57b (diff) | |
download | vyos-1x-1a498915efdc433dda7bd6e5fcc08703a48560c6.tar.gz vyos-1x-1a498915efdc433dda7bd6e5fcc08703a48560c6.zip |
T1950: write component versions to json file during migration
Diffstat (limited to 'python/vyos')
-rw-r--r-- | python/vyos/defaults.py | 3 | ||||
-rw-r--r-- | python/vyos/migrator.py | 12 |
2 files changed, 15 insertions, 0 deletions
diff --git a/python/vyos/defaults.py b/python/vyos/defaults.py index 2c24e007f..dacdbdef2 100644 --- a/python/vyos/defaults.py +++ b/python/vyos/defaults.py @@ -13,6 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with this library. If not, see <http://www.gnu.org/licenses/>. +import os directories = { "data": "/usr/share/vyos/", @@ -34,6 +35,8 @@ cfg_vintage = 'vyos' commit_lock = '/opt/vyatta/config/.lock' +component_version_json = os.path.join(directories['data'], 'component-versions.json') + https_data = { 'listen_addresses' : { '*': ['_'] } } diff --git a/python/vyos/migrator.py b/python/vyos/migrator.py index 9a5fdef2f..37c4e5902 100644 --- a/python/vyos/migrator.py +++ b/python/vyos/migrator.py @@ -15,6 +15,7 @@ import sys import os +import json import subprocess import vyos.version import vyos.defaults @@ -165,6 +166,14 @@ class Migrator(object): versions_string, os_version_string) + def save_json_record(self, component_versions: dict): + """ + Write component versions to a json file + """ + version_file = vyos.defaults.component_version_json + with open(version_file, 'w') as f: + f.write(json.dumps(component_versions, indent=2, sort_keys=True)) + def run(self): """ Gather component versions from config file and system. @@ -182,6 +191,9 @@ class Migrator(object): sys_versions = systemversions.get_system_versions() + # save system component versions in json file for easy reference + self.save_json_record(sys_versions) + rev_versions = self.run_migration_scripts(cfg_versions, sys_versions) if rev_versions != cfg_versions: |