mirror of
https://github.com/kevingruesser/bootstrap-vz.git
synced 2025-08-22 09:50:37 +00:00

Up until now I didn't see the point of using spaces for indentation. However, the previous commit (a18bec3) was quite eye opening. Given that python is an indentation aware language, the amount of mistakes that went unnoticed because tabs and spaces were used at the same time (tabs for indentation and spaces for alignment) were unacceptable. E101,W191 have been re-enable in the tox flake8 checker and the documentation has been modified accordingly. The following files have been left as-is: * bootstrapvz/common/assets/extlinux/extlinux.conf * bootstrapvz/common/assets/init.d/expand-root * bootstrapvz/common/assets/init.d/generate-ssh-hostkeys * bootstrapvz/common/assets/init.d/squeeze/generate-ssh-hostkeys * bootstrapvz/plugins/docker_daemon/assets/init.d/docker * bootstrapvz/providers/ec2/assets/bin/growpart * bootstrapvz/providers/ec2/assets/grub.d/40_custom * bootstrapvz/providers/ec2/assets/init.d/ec2-get-credentials * bootstrapvz/providers/ec2/assets/init.d/ec2-run-user-data * docs/_static/taskoverview.coffee * docs/_static/taskoverview.less * tests/unit/subprocess.sh
29 lines
913 B
Python
29 lines
913 B
Python
from bootstrapvz.base.fs.volume import Volume
|
|
from ..tools import log_check_call
|
|
|
|
|
|
class LoopbackVolume(Volume):
|
|
|
|
extension = 'raw'
|
|
|
|
def create(self, image_path):
|
|
self.fsm.create(image_path=image_path)
|
|
|
|
def _before_create(self, e):
|
|
self.image_path = e.image_path
|
|
size_opt = '--size={mib}M'.format(mib=self.size.bytes.get_qty_in('MiB'))
|
|
log_check_call(['truncate', size_opt, self.image_path])
|
|
|
|
def _before_attach(self, e):
|
|
[self.loop_device_path] = log_check_call(['losetup', '--show', '--find', self.image_path])
|
|
self.device_path = self.loop_device_path
|
|
|
|
def _before_detach(self, e):
|
|
log_check_call(['losetup', '--detach', self.loop_device_path])
|
|
del self.loop_device_path
|
|
self.device_path = None
|
|
|
|
def _before_delete(self, e):
|
|
from os import remove
|
|
remove(self.image_path)
|
|
del self.image_path
|