From 0612987fec88712921d73a334b37f4cffcd6fcb7 Mon Sep 17 00:00:00 2001 From: Anders Ingemann Date: Sun, 29 Dec 2013 18:11:48 +0100 Subject: [PATCH] New task: AddDefaultSources --- common/task_sets.py | 3 ++- common/tasks/apt.py | 16 ++++++++++++++++ common/tasks/filesystem.py | 2 ++ plugins/admin_user/tasks.py | 2 ++ plugins/cloud_init/tasks.py | 3 ++- plugins/unattended_upgrades/tasks.py | 2 ++ providers/ec2/tasks/packages.py | 2 ++ providers/virtualbox/tasks/packages.py | 3 ++- 8 files changed, 30 insertions(+), 3 deletions(-) diff --git a/common/task_sets.py b/common/task_sets.py index 4402b00..a82f706 100644 --- a/common/task_sets.py +++ b/common/task_sets.py @@ -44,7 +44,8 @@ ssh_set = [security.DisableSSHPasswordAuthentication, cleanup.ShredHostkeys, ] -apt_set = [apt.WriteSources, +apt_set = [apt.AddDefaultSources, + apt.WriteSources, apt.DisableDaemonAutostart, apt.AptUpdate, apt.AptUpgrade, diff --git a/common/tasks/apt.py b/common/tasks/apt.py index bf1397a..3464fca 100644 --- a/common/tasks/apt.py +++ b/common/tasks/apt.py @@ -5,6 +5,22 @@ import locale import os +class AddDefaultSources(Task): + description = 'Adding default release sources' + phase = phases.preparation + + def run(self, info): + if info.source_lists.target_exists('{system.release}'): + import logging + msg = ('{system.release} target already exists').format(**info.manifest_vars) + logging.getLogger(__name__).info(msg) + else: + info.source_lists.add('main', 'deb {apt_mirror} {system.release} main') + info.source_lists.add('main', 'deb-src {apt_mirror} {system.release} main') + info.source_lists.add('main', 'deb {apt_mirror} {system.release}-updates main') + info.source_lists.add('main', 'deb-src {apt_mirror} {system.release}-updates main') + + class WriteSources(Task): description = 'Writing aptitude sources to disk' phase = phases.package_installation diff --git a/common/tasks/filesystem.py b/common/tasks/filesystem.py index ee5d55a..b072c39 100644 --- a/common/tasks/filesystem.py +++ b/common/tasks/filesystem.py @@ -2,6 +2,7 @@ from base import Task from common import phases from common.tools import log_check_call from bootstrap import Bootstrap +from common.tasks import apt import volume @@ -30,6 +31,7 @@ class TuneVolumeFS(Task): class AddXFSProgs(Task): description = 'Adding `xfsprogs\' to the image packages' phase = phases.preparation + predecessors = [apt.AddDefaultSources] def run(self, info): info.packages.add('xfsprogs') diff --git a/plugins/admin_user/tasks.py b/plugins/admin_user/tasks.py index 5f55690..381abbb 100644 --- a/plugins/admin_user/tasks.py +++ b/plugins/admin_user/tasks.py @@ -1,12 +1,14 @@ from base import Task from common import phases from common.tasks.initd import InstallInitScripts +from common.tasks import apt import os class AddSudoPackage(Task): description = 'Adding ``sudo\'\' to the image packages' phase = phases.preparation + predecessors = [apt.AddDefaultSources] def run(self, info): info.packages.add('sudo') diff --git a/plugins/cloud_init/tasks.py b/plugins/cloud_init/tasks.py index 1dbbc27..965179a 100644 --- a/plugins/cloud_init/tasks.py +++ b/plugins/cloud_init/tasks.py @@ -1,6 +1,7 @@ from base import Task from common import phases from common.tools import log_check_call +from common.tasks import apt import os.path @@ -21,7 +22,7 @@ class AddBackports(Task): class AddCloudInitPackages(Task): description = 'Adding cloud-init package and sudo' phase = phases.preparation - predecessors = [AddBackports] + predecessors = [apt.AddDefaultSources, AddBackports] def run(self, info): target = None diff --git a/plugins/unattended_upgrades/tasks.py b/plugins/unattended_upgrades/tasks.py index d66e644..a8e3dd5 100644 --- a/plugins/unattended_upgrades/tasks.py +++ b/plugins/unattended_upgrades/tasks.py @@ -1,10 +1,12 @@ from base import Task from common import phases +from common.tasks import apt class AddUnattendedUpgradesPackage(Task): description = 'Adding ``unattended-upgrades\'\' to the image packages' phase = phases.preparation + predecessors = [apt.AddDefaultSources] def run(self, info): info.packages.add('unattended-upgrades') diff --git a/providers/ec2/tasks/packages.py b/providers/ec2/tasks/packages.py index 13b11a4..71f962b 100644 --- a/providers/ec2/tasks/packages.py +++ b/providers/ec2/tasks/packages.py @@ -1,10 +1,12 @@ from base import Task from common import phases +from common.tasks import apt class DefaultPackages(Task): description = 'Adding image packages required for EC2' phase = phases.preparation + predecessors = [apt.AddDefaultSources] def run(self, info): info.packages.add('openssh-server') diff --git a/providers/virtualbox/tasks/packages.py b/providers/virtualbox/tasks/packages.py index ca4cb6d..b4dc817 100644 --- a/providers/virtualbox/tasks/packages.py +++ b/providers/virtualbox/tasks/packages.py @@ -1,11 +1,12 @@ from base import Task from common import phases -from common.tasks import packages +from common.tasks import apt class DefaultPackages(Task): description = 'Adding image packages required for virtualbox' phase = phases.preparation + predecessors = [apt.AddDefaultSources] def run(self, info): # Add some basic packages we are going to need