diff options
author | John Estabrook <jestabro@sentrium.io> | 2019-05-30 13:46:08 -0500 |
---|---|---|
committer | John Estabrook <jestabro@sentrium.io> | 2019-06-05 15:13:58 -0500 |
commit | 6763170830010c8cea2f17daee5f46b9203dab56 (patch) | |
tree | d64f009676f44f8d49a09b91655d81ec1f22ca08 /python/vyos/systemversions.py | |
parent | 1483288278060c62904ba1c9984aae841600e2f5 (diff) | |
download | vyos-1x-6763170830010c8cea2f17daee5f46b9203dab56.tar.gz vyos-1x-6763170830010c8cea2f17daee5f46b9203dab56.zip |
T1334: Migration script runner rewrite
Python script and support code to replace the
vyatta_config_migrate.pl script.
Diffstat (limited to 'python/vyos/systemversions.py')
-rw-r--r-- | python/vyos/systemversions.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/python/vyos/systemversions.py b/python/vyos/systemversions.py new file mode 100644 index 000000000..9b3f4f413 --- /dev/null +++ b/python/vyos/systemversions.py @@ -0,0 +1,39 @@ +# Copyright 2019 VyOS maintainers and contributors <maintainers@vyos.io> +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# 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 +import re +import sys +import vyos.defaults + +def get_system_versions(): + """ + Get component versions from running system; critical failure if + unable to read migration directory. + """ + system_versions = {} + + try: + version_info = os.listdir(vyos.defaults.directories['current']) + except OSError as err: + print("OS error: {}".format(err)) + sys.exit(1) + + for info in version_info: + if re.match(r'[\w,-]+@\d+', info): + pair = info.split('@') + system_versions[pair[0]] = int(pair[1]) + + return system_versions |