mirror of
https://github.com/kevingruesser/bootstrap-vz.git
synced 2025-08-24 07:26:29 +00:00
Move AddBackports
to common.tasks.apt
The `AddBackports` task is needed by many different plugins, so is better if it is available as a common task. This closes #96.
This commit is contained in:
parent
210999ff5d
commit
8f43ee1dc7
7 changed files with 30 additions and 38 deletions
|
@ -2,9 +2,26 @@ from bootstrapvz.base import Task
|
||||||
from .. import phases
|
from .. import phases
|
||||||
from ..tools import log_check_call
|
from ..tools import log_check_call
|
||||||
import locale
|
import locale
|
||||||
|
import logging
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
|
||||||
|
class AddBackports(Task):
|
||||||
|
description = 'Adding backports to the apt sources'
|
||||||
|
phase = phases.preparation
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def run(cls, info):
|
||||||
|
if info.source_lists.target_exists('{system.release}-backports'):
|
||||||
|
msg = ('{system.release}-backports target already exists').format(**info.manifest_vars)
|
||||||
|
logging.getLogger(__name__).info(msg)
|
||||||
|
elif info.release_codename == 'sid':
|
||||||
|
logging.getLogger(__name__).info('There are no backports for sid/unstable')
|
||||||
|
else:
|
||||||
|
info.source_lists.add('backports', 'deb {apt_mirror} {system.release}-backports main')
|
||||||
|
info.source_lists.add('backports', 'deb-src {apt_mirror} {system.release}-backports main')
|
||||||
|
|
||||||
|
|
||||||
class AddManifestSources(Task):
|
class AddManifestSources(Task):
|
||||||
description = 'Adding sources from the manifest'
|
description = 'Adding sources from the manifest'
|
||||||
phase = phases.preparation
|
phase = phases.preparation
|
||||||
|
|
|
@ -7,14 +7,14 @@ def validate_manifest(data, validator, error):
|
||||||
|
|
||||||
|
|
||||||
def resolve_tasks(taskset, manifest):
|
def resolve_tasks(taskset, manifest):
|
||||||
import tasks
|
|
||||||
import bootstrapvz.providers.ec2.tasks.initd as initd_ec2
|
import bootstrapvz.providers.ec2.tasks.initd as initd_ec2
|
||||||
|
from bootstrapvz.common.tasks import apt
|
||||||
from bootstrapvz.common.tasks import initd
|
from bootstrapvz.common.tasks import initd
|
||||||
from bootstrapvz.common.tasks import ssh
|
from bootstrapvz.common.tasks import ssh
|
||||||
|
|
||||||
from bootstrapvz.common.tools import get_codename
|
from bootstrapvz.common.tools import get_codename
|
||||||
if get_codename(manifest.system['release']) == 'wheezy':
|
if get_codename(manifest.system['release']) == 'wheezy':
|
||||||
taskset.add(tasks.AddBackports)
|
taskset.add(apt.AddBackports)
|
||||||
|
|
||||||
taskset.update([tasks.SetMetadataSource,
|
taskset.update([tasks.SetMetadataSource,
|
||||||
tasks.AddCloudInitPackages,
|
tasks.AddCloudInitPackages,
|
||||||
|
|
|
@ -7,24 +7,10 @@ import logging
|
||||||
import os.path
|
import os.path
|
||||||
|
|
||||||
|
|
||||||
class AddBackports(Task):
|
|
||||||
description = 'Adding backports to the apt sources'
|
|
||||||
phase = phases.preparation
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def run(cls, info):
|
|
||||||
if info.source_lists.target_exists('{system.release}-backports'):
|
|
||||||
msg = ('{system.release}-backports target already exists').format(**info.manifest_vars)
|
|
||||||
logging.getLogger(__name__).info(msg)
|
|
||||||
else:
|
|
||||||
info.source_lists.add('backports', 'deb {apt_mirror} {system.release}-backports main')
|
|
||||||
info.source_lists.add('backports', 'deb-src {apt_mirror} {system.release}-backports main')
|
|
||||||
|
|
||||||
|
|
||||||
class AddCloudInitPackages(Task):
|
class AddCloudInitPackages(Task):
|
||||||
description = 'Adding cloud-init package and sudo'
|
description = 'Adding cloud-init package and sudo'
|
||||||
phase = phases.preparation
|
phase = phases.preparation
|
||||||
predecessors = [apt.AddDefaultSources, AddBackports]
|
predecessors = [apt.AddDefaultSources, apt.AddBackports]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def run(cls, info):
|
def run(cls, info):
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
import tasks
|
|
||||||
import os.path
|
import os.path
|
||||||
|
import tasks
|
||||||
|
from bootstrapvz.common.tasks import apt
|
||||||
|
from bootstrapvz.common.tools import get_codename
|
||||||
|
|
||||||
|
|
||||||
def validate_manifest(data, validator, error):
|
def validate_manifest(data, validator, error):
|
||||||
schema_path = os.path.normpath(os.path.join(os.path.dirname(__file__), 'manifest-schema.yml'))
|
schema_path = os.path.normpath(os.path.join(os.path.dirname(__file__), 'manifest-schema.yml'))
|
||||||
validator(data, schema_path)
|
validator(data, schema_path)
|
||||||
from bootstrapvz.common.tools import get_codename
|
|
||||||
if get_codename(data['system']['release']) == 'wheezy':
|
if get_codename(data['system']['release']) == 'wheezy':
|
||||||
# prefs is a generator of apt preferences across files in the manifest
|
# prefs is a generator of apt preferences across files in the manifest
|
||||||
prefs = (item for vals in data.get('packages', {}).get('preferences', {}).values() for item in vals)
|
prefs = (item for vals in data.get('packages', {}).get('preferences', {}).values() for item in vals)
|
||||||
|
@ -15,6 +16,8 @@ def validate_manifest(data, validator, error):
|
||||||
|
|
||||||
|
|
||||||
def resolve_tasks(taskset, manifest):
|
def resolve_tasks(taskset, manifest):
|
||||||
|
if get_codename(manifest.system['release']) == 'wheezy':
|
||||||
|
taskset.add(apt.AddBackports)
|
||||||
taskset.add(tasks.AddDockerDeps)
|
taskset.add(tasks.AddDockerDeps)
|
||||||
taskset.add(tasks.AddDockerBinary)
|
taskset.add(tasks.AddDockerBinary)
|
||||||
taskset.add(tasks.AddDockerInit)
|
taskset.add(tasks.AddDockerInit)
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import tasks
|
|
||||||
|
|
||||||
|
|
||||||
def resolve_tasks(taskset, manifest):
|
def resolve_tasks(taskset, manifest):
|
||||||
|
from bootstrapvz.common.tasks import apt
|
||||||
from bootstrapvz.common.tools import get_codename
|
from bootstrapvz.common.tools import get_codename
|
||||||
if get_codename(manifest.system['release']) == 'wheezy':
|
if get_codename(manifest.system['release']) == 'wheezy':
|
||||||
taskset.add(tasks.AddBackports)
|
taskset.add(apt.AddBackports)
|
||||||
taskset.update([tasks.AddONEContextPackage])
|
taskset.update([tasks.AddONEContextPackage])
|
||||||
|
|
|
@ -3,25 +3,10 @@ from bootstrapvz.common.tasks import apt
|
||||||
from bootstrapvz.common import phases
|
from bootstrapvz.common import phases
|
||||||
|
|
||||||
|
|
||||||
class AddBackports(Task):
|
|
||||||
description = 'Adding backports to the apt sources'
|
|
||||||
phase = phases.preparation
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def run(cls, info):
|
|
||||||
if info.source_lists.target_exists('{system.release}-backports'):
|
|
||||||
import logging
|
|
||||||
msg = ('{system.release}-backports target already exists').format(**info.manifest_vars)
|
|
||||||
logging.getLogger(__name__).info(msg)
|
|
||||||
else:
|
|
||||||
info.source_lists.add('backports', 'deb {apt_mirror} {system.release}-backports main')
|
|
||||||
info.source_lists.add('backports', 'deb-src {apt_mirror} {system.release}-backports main')
|
|
||||||
|
|
||||||
|
|
||||||
class AddONEContextPackage(Task):
|
class AddONEContextPackage(Task):
|
||||||
description = 'Adding the OpenNebula context package'
|
description = 'Adding the OpenNebula context package'
|
||||||
phase = phases.preparation
|
phase = phases.preparation
|
||||||
predecessors = [apt.AddDefaultSources, AddBackports]
|
predecessors = [apt.AddDefaultSources, apt.AddBackports]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def run(cls, info):
|
def run(cls, info):
|
||||||
|
|
|
@ -5,6 +5,7 @@ import tasks.configuration
|
||||||
import tasks.image
|
import tasks.image
|
||||||
import tasks.host
|
import tasks.host
|
||||||
import tasks.packages
|
import tasks.packages
|
||||||
|
from bootstrapvz.common.tasks import apt
|
||||||
from bootstrapvz.common.tasks import loopback
|
from bootstrapvz.common.tasks import loopback
|
||||||
from bootstrapvz.common.tasks import initd
|
from bootstrapvz.common.tasks import initd
|
||||||
from bootstrapvz.common.tasks import ssh
|
from bootstrapvz.common.tasks import ssh
|
||||||
|
@ -25,7 +26,7 @@ def validate_manifest(data, validator, error):
|
||||||
def resolve_tasks(taskset, manifest):
|
def resolve_tasks(taskset, manifest):
|
||||||
taskset.update(task_groups.get_standard_groups(manifest))
|
taskset.update(task_groups.get_standard_groups(manifest))
|
||||||
|
|
||||||
taskset.update([bootstrapvz.plugins.cloud_init.tasks.AddBackports,
|
taskset.update([apt.AddBackports,
|
||||||
loopback.AddRequiredCommands,
|
loopback.AddRequiredCommands,
|
||||||
loopback.Create,
|
loopback.Create,
|
||||||
tasks.apt.SetPackageRepositories,
|
tasks.apt.SetPackageRepositories,
|
||||||
|
|
Loading…
Add table
Reference in a new issue