from Exceptions import *
import utils
+import systeminfo
import BootServerRequest
import BootAPI
bs_request = BootServerRequest.BootServerRequest(vars)
+ # in upgrade mode, since we skip InstallPartitionDisks
+ # we need to run this
+ if upgrade:
+ log.write("Upgrade mode init : Scanning for devices\n")
+ systeminfo.get_block_devices_dict(vars, log)
+ utils.sysexec_noerr("vgscan --mknodes", log)
+ utils.sysexec_noerr("vgchange -ay", log)
+
+ # debugging info - show in either mode
+ utils.display_disks_status(PARTITIONS, "In InstallBootstrapFS", log)
+
+ utils.breakpoint("we need to make /dev/mapper/* appear")
+
log.write("turning on swap space\n")
utils.sysexec("swapon {}".format(PARTITIONS["swap"]), log)
def CleanupSysimgBeforeUpgrade(sysimg, target_nodefamily, log):
areas_to_cleanup = [
- '/usr/lib',
+ '/boot',
+ '/usr',
'/var',
'/etc',
- '/boot',
+ '/run',
+ '/vsys',
]
target_pldistro, target_fcdistro, target_arch = target_nodefamily.split('-')
with open("{}/etc/planetlab/virt".format(sysimg)) as infile:
installed_virt = infile.read().strip()
except Exception as e:
- print_exc()
+ traceback.print_exc()
raise BootManagerException("Could not retrieve data about previous installation - cannot upgrade")
# moving from vservers to lxc also means another filesystem
# so plain reinstall is the only option
if installed_virt != 'lxc':
- raise BootManagerException("Can only upgrade nodes running lxc containers (vservers not supported)")
+ message = """Can only upgrade nodes already running lxc containers
+a node running vservers has its /vservers/ partition formatted as ext3
+and we need btrfs to move to containers
+your only option here is reinstall"""
+ raise BootManagerException(message)
# changing arch is not reasonable either
if target_arch != installed_arch: