mirror of
https://github.com/kevingruesser/bootstrap-vz.git
synced 2025-08-24 15:36:27 +00:00
Add new task: DeterminKernelVersion, this can potentially fix a lot of small problems
This commit is contained in:
parent
767b32d20e
commit
149db4c989
2 changed files with 32 additions and 1 deletions
|
@ -15,6 +15,7 @@ from tasks import locale
|
||||||
from tasks import network
|
from tasks import network
|
||||||
from tasks import initd
|
from tasks import initd
|
||||||
from tasks import ssh
|
from tasks import ssh
|
||||||
|
from tasks import kernel
|
||||||
|
|
||||||
|
|
||||||
def get_standard_groups(manifest):
|
def get_standard_groups(manifest):
|
||||||
|
@ -26,6 +27,7 @@ def get_standard_groups(manifest):
|
||||||
if 'boot' in manifest.volume['partitions']:
|
if 'boot' in manifest.volume['partitions']:
|
||||||
group.extend(boot_partition_group)
|
group.extend(boot_partition_group)
|
||||||
group.extend(mounting_group)
|
group.extend(mounting_group)
|
||||||
|
group.extend(kernel_group)
|
||||||
group.extend(get_fs_specific_group(manifest))
|
group.extend(get_fs_specific_group(manifest))
|
||||||
group.extend(get_network_group(manifest))
|
group.extend(get_network_group(manifest))
|
||||||
group.extend(get_apt_group(manifest))
|
group.extend(get_apt_group(manifest))
|
||||||
|
@ -76,6 +78,9 @@ mounting_group = [filesystem.CreateMountDir,
|
||||||
filesystem.DeleteMountDir,
|
filesystem.DeleteMountDir,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
kernel_group = [kernel.DetermineKernelVersion,
|
||||||
|
]
|
||||||
|
|
||||||
ssh_group = [ssh.AddOpenSSHPackage,
|
ssh_group = [ssh.AddOpenSSHPackage,
|
||||||
ssh.DisableSSHPasswordAuthentication,
|
ssh.DisableSSHPasswordAuthentication,
|
||||||
ssh.DisableSSHDNSLookup,
|
ssh.DisableSSHDNSLookup,
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
from bootstrapvz.base import Task
|
from bootstrapvz.base import Task
|
||||||
from .. import phases
|
from .. import phases
|
||||||
from ..tasks import packages
|
from ..tasks import packages
|
||||||
|
import logging
|
||||||
|
|
||||||
|
|
||||||
class AddDKMSPackages(Task):
|
class AddDKMSPackages(Task):
|
||||||
|
@ -22,5 +23,30 @@ class UpdateInitramfs(Task):
|
||||||
@classmethod
|
@classmethod
|
||||||
def run(cls, info):
|
def run(cls, info):
|
||||||
from bootstrapvz.common.tools import log_check_call
|
from bootstrapvz.common.tools import log_check_call
|
||||||
# Update initramfs (-u) for all currently installed kernel versions (-k all)
|
# Update initramfs (-u) for all currently installed kernel versions (-k all)
|
||||||
log_check_call(['chroot', info.root, 'update-initramfs', '-u', '-k', 'all'])
|
log_check_call(['chroot', info.root, 'update-initramfs', '-u', '-k', 'all'])
|
||||||
|
|
||||||
|
|
||||||
|
class DetermineKernelVersion(Task):
|
||||||
|
description = 'Determining kernel version'
|
||||||
|
phase = phases.package_installation
|
||||||
|
predecessors = [packages.InstallPackages]
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def run(cls, info):
|
||||||
|
# Snatched from `extlinux-update' in wheezy
|
||||||
|
# list the files in boot/ that match vmlinuz-*
|
||||||
|
# sort what the * matches, the first entry is the kernel version
|
||||||
|
import os.path
|
||||||
|
import re
|
||||||
|
regexp = re.compile('^vmlinuz-(?P<version>.+)$')
|
||||||
|
|
||||||
|
def get_kernel_version(vmlinuz_path):
|
||||||
|
vmlinux_basename = os.path.basename(vmlinuz_path)
|
||||||
|
return regexp.match(vmlinux_basename).group('version')
|
||||||
|
from glob import glob
|
||||||
|
boot = os.path.join(info.root, 'boot')
|
||||||
|
vmlinuz_paths = glob('{boot}/vmlinuz-*'.format(boot=boot))
|
||||||
|
kernels = map(get_kernel_version, vmlinuz_paths)
|
||||||
|
info.kernel_version = sorted(kernels, reverse=True)[0]
|
||||||
|
logging.getLogger(__name__).debug('Kernel version is {version}'.format(version=info.kernel_version))
|
||||||
|
|
Loading…
Add table
Reference in a new issue