Пример #1
0
def base_disk_delete():
    base_disk_path = cvb.get_base_disk_path()

    if vm.disk_registered(base_disk_path):
        # Remove users of base disk
        logger.info("Unregistering and removing all disks attached to"
                    " base disk path.")
        disk_delete_child_vms(base_disk_path)
        logger.info("Unregistering old base disk.")
        vm.disk_unregister(base_disk_path)

    logger.info("Removing old base disk.")
    try:
        os.remove(base_disk_path)
    except OSError as err:
        if err.errno != errno.ENOENT:
            raise
Пример #2
0
def disk_delete_child_vms(disk):
    if not vm.disk_registered(disk):
        logger.warn("Disk not registered with VirtualBox:\n\t%s", disk)
        return 0

    while True:
        child_disk_uuid = vm.get_next_child_disk_uuid(disk)
        if not child_disk_uuid:
            break
        child_disk_path = vm.disk_to_path(child_disk_uuid)
        vm_name = vm.disk_to_vm(child_disk_uuid)
        if vm_name:
            logger.info("Deleting VM %s.", vm_name)
            vm.vm_delete(vm_name)
        else:
            logger.info("Unregistering and deleting:\n\t%s", child_disk_path)
            vm.disk_unregister(child_disk_uuid)
            os.remove(child_disk_path)