diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/conf_mode/nat.py | 1 | ||||
-rwxr-xr-x | src/helpers/teardown-config-session.py | 3 | ||||
-rwxr-xr-x | src/op_mode/image_installer.py | 11 |
3 files changed, 10 insertions, 5 deletions
diff --git a/src/conf_mode/nat.py b/src/conf_mode/nat.py index a938021ba..564438237 100755 --- a/src/conf_mode/nat.py +++ b/src/conf_mode/nat.py @@ -23,7 +23,6 @@ from vyos.base import Warning from vyos.config import Config from vyos.configdep import set_dependents, call_dependents from vyos.template import render -from vyos.template import is_ip_network from vyos.utils.kernel import check_kmod from vyos.utils.dict import dict_search from vyos.utils.dict import dict_search_args diff --git a/src/helpers/teardown-config-session.py b/src/helpers/teardown-config-session.py index c94876924..8d13e34cb 100755 --- a/src/helpers/teardown-config-session.py +++ b/src/helpers/teardown-config-session.py @@ -13,11 +13,8 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -# -# import sys -import os from vyos.vyconf_session import VyconfSession diff --git a/src/op_mode/image_installer.py b/src/op_mode/image_installer.py index 27371a18f..d1f670ae9 100755 --- a/src/op_mode/image_installer.py +++ b/src/op_mode/image_installer.py @@ -19,7 +19,7 @@ from argparse import ArgumentParser, Namespace from pathlib import Path -from shutil import copy, chown, rmtree, copytree +from shutil import copy, chown, rmtree, copytree, disk_usage from glob import glob from sys import exit from os import environ @@ -62,6 +62,7 @@ from vyos.version import get_version_data # define text messages MSG_ERR_NOT_LIVE: str = 'The system is already installed. Please use "add system image" instead.' MSG_ERR_LIVE: str = 'The system is in live-boot mode. Please use "install image" instead.' +MSG_ERR_NOT_ENOUGH_SPACE: str = 'Image upgrade requires at least 2GB of free drive space.' MSG_ERR_NO_DISK: str = 'No suitable disk was found. There must be at least one disk of 2GB or greater size.' MSG_ERR_IMPROPER_IMAGE: str = 'Missing sha256sum.txt.\nEither this image is corrupted, or of era 1.2.x (md5sum) and would downgrade image tools;\ndisallowed in either case.' MSG_ERR_INCOMPATIBLE_IMAGE: str = 'Image compatibility check failed, aborting installation.' @@ -976,6 +977,14 @@ def add_image(image_path: str, vrf: str = None, username: str = '', if image.is_live_boot(): exit(MSG_ERR_LIVE) + # Trying to upgrade with insufficient space can break the system. + # It's better to be on the safe side: + # our images are a bit below 1G, + # so one gigabyte to download the image plus one more to install it + # sounds like a sensible estimate. + if disk_usage('/').free < (2 * 1024**3): + exit(MSG_ERR_NOT_ENOUGH_SPACE) + environ['REMOTE_USERNAME'] = username environ['REMOTE_PASSWORD'] = password |