bootstrap-vz/bootstrapvz/common/tasks/loopback.py
2018-02-25 04:12:24 +00:00

32 lines
1 KiB
Python

from bootstrapvz.base import Task
from bootstrapvz.common import phases
from . import host
from . import volume
class AddRequiredCommands(Task):
description = 'Adding commands required for creating loopback volumes'
phase = phases.validation
successors = [host.CheckExternalCommands]
@classmethod
def run(cls, info):
from ..fs.loopbackvolume import LoopbackVolume
from ..fs.qemuvolume import QEMUVolume
if isinstance(info.volume, LoopbackVolume):
info.host_dependencies['losetup'] = 'mount'
info.host_dependencies['truncate'] = 'coreutils'
if isinstance(info.volume, QEMUVolume):
info.host_dependencies['qemu-img'] = 'qemu-utils'
class Create(Task):
description = 'Creating a loopback volume'
phase = phases.volume_creation
successors = [volume.Attach]
@classmethod
def run(cls, info):
import os.path
image_path = os.path.join(info.workspace, 'volume.' + info.volume.extension)
info.volume.create(image_path)