summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2021-08-19 14:30:32 -0500
committerJohn Estabrook <jestabro@vyos.io>2021-08-20 14:14:59 -0500
commit1a498915efdc433dda7bd6e5fcc08703a48560c6 (patch)
tree82a1ad507250b2c47ba77444761a36d068507280
parentf7e3f5562458da4d80b272f1524c27727799e57b (diff)
downloadvyos-1x-1a498915efdc433dda7bd6e5fcc08703a48560c6.tar.gz
vyos-1x-1a498915efdc433dda7bd6e5fcc08703a48560c6.zip
T1950: write component versions to json file during migration
-rw-r--r--python/vyos/defaults.py3
-rw-r--r--python/vyos/migrator.py12
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: