diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/vyos/migrator.py | 2 | ||||
| -rw-r--r-- | python/vyos/systemversions.py | 7 | ||||
| -rw-r--r-- | python/vyos/xml/__init__.py | 4 | ||||
| -rw-r--r-- | python/vyos/xml/definition.py | 9 | 
4 files changed, 15 insertions, 7 deletions
diff --git a/python/vyos/migrator.py b/python/vyos/migrator.py index 4574bb6d1..a2e0daabd 100644 --- a/python/vyos/migrator.py +++ b/python/vyos/migrator.py @@ -195,7 +195,7 @@ class Migrator(object):              # This will force calling all migration scripts:              cfg_versions = {} -        sys_versions = systemversions.get_system_versions() +        sys_versions = systemversions.get_system_component_version()          # save system component versions in json file for easy reference          self.save_json_record(sys_versions) diff --git a/python/vyos/systemversions.py b/python/vyos/systemversions.py index 9b3f4f413..f2da76d4f 100644 --- a/python/vyos/systemversions.py +++ b/python/vyos/systemversions.py @@ -17,7 +17,10 @@ import os  import re  import sys  import vyos.defaults +from vyos.xml import component_version +# legacy version, reading from the file names in +# /opt/vyatta/etc/config-migrate/current  def get_system_versions():      """      Get component versions from running system; critical failure if @@ -37,3 +40,7 @@ def get_system_versions():              system_versions[pair[0]] = int(pair[1])      return system_versions + +# read from xml cache +def get_system_component_version(): +    return component_version() diff --git a/python/vyos/xml/__init__.py b/python/vyos/xml/__init__.py index e0eacb2d1..6db446a40 100644 --- a/python/vyos/xml/__init__.py +++ b/python/vyos/xml/__init__.py @@ -46,8 +46,8 @@ def is_tag(lpath):  def is_leaf(lpath, flat=True):      return load_configuration().is_leaf(lpath, flat) -def component_versions(): -    return load_configuration().component_versions() +def component_version(): +    return load_configuration().component_version()  def defaults(lpath, flat=False):      return load_configuration().defaults(lpath, flat) diff --git a/python/vyos/xml/definition.py b/python/vyos/xml/definition.py index 5e0d5282c..bc3892b42 100644 --- a/python/vyos/xml/definition.py +++ b/python/vyos/xml/definition.py @@ -249,10 +249,11 @@ class XML(dict):      # @lru_cache(maxsize=100)      # XXX: need to use cachetool instead - for later -    def component_versions(self) -> dict: -        sort_component = sorted(self[kw.component_version].items(), -                                key = lambda kv: kv[0]) -        return dict(sort_component) +    def component_version(self) -> dict: +        d = {} +        for k in sorted(self[kw.component_version]): +            d[k] = int(self[kw.component_version][k]) +        return d      def defaults(self, lpath, flat):          d = self[kw.default]  | 
