mirror of
https://github.com/kevingruesser/bootstrap-vz.git
synced 2025-08-22 09:50:37 +00:00
47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
![]() |
from base import Task
|
||
|
from common import phases
|
||
|
from common.exceptions import TaskError
|
||
|
|
||
|
|
||
|
class FormatVolume(Task):
|
||
|
description = 'Formatting the volume'
|
||
|
phase = phases.volume_preparation
|
||
|
after = []
|
||
|
|
||
|
def run(self, info):
|
||
|
import subprocess
|
||
|
from os import devnull
|
||
|
dev_path = info.bootstrap_device['path']
|
||
|
mkfs = '/sbin/mkfs.{fs}'.format(fs=info.manifest.volume['filesystem'])
|
||
|
try:
|
||
|
with open(devnull, 'w') as dev_null:
|
||
|
subprocess.check_call([mkfs, dev_path], stdout=dev_null, stderr=dev_null)
|
||
|
except subprocess.CalledProcessError:
|
||
|
raise TaskError('Unable to format the bootstrap device')
|
||
|
|
||
|
|
||
|
class TuneVolumeFS(Task):
|
||
|
description = 'Tuning the bootstrap volume filesystem'
|
||
|
phase = phases.volume_preparation
|
||
|
after = [FormatVolume]
|
||
|
|
||
|
def run(self, info):
|
||
|
import subprocess
|
||
|
from os import devnull
|
||
|
dev_path = info.bootstrap_device['path']
|
||
|
try:
|
||
|
with open(devnull, 'w') as dev_null:
|
||
|
subprocess.check_call(['/sbin/tune2fs', '-i', '0', dev_path], stdout=dev_null, stderr=dev_null)
|
||
|
except subprocess.CalledProcessError:
|
||
|
raise TaskError('Unable to disable the time based check interval for the bootstrap volume')
|
||
|
|
||
|
|
||
|
class AddXFSProgs(Task):
|
||
|
description = 'Adding `xfsprogs\' to the image packages'
|
||
|
phase = phases.preparation
|
||
|
after = []
|
||
|
|
||
|
def run(self, info):
|
||
|
include, exclude = info.img_packages
|
||
|
include.add('xfsprogs')
|