Implemented apt-upgrade

This commit is contained in:
Anders Ingemann 2013-07-01 22:51:28 +02:00
parent 435084983d
commit fd4a08c8b5
2 changed files with 27 additions and 1 deletions

View file

@ -7,6 +7,7 @@ from tasks import ebs
from tasks import filesystem from tasks import filesystem
from tasks import bootstrap from tasks import bootstrap
from tasks import config from tasks import config
from tasks import apt
def initialize(): def initialize():
@ -37,7 +38,8 @@ def tasks(tasklist, manifest):
filesystem.MountSpecials(), filesystem.MountSpecials(),
config.GenerateLocale(), config.GenerateLocale(),
config.SetTimezone(), config.SetTimezone(),
config.AptSources()) config.AptSources(),
apt.AptUpgrade())
from common.tasks import TriggerRollback from common.tasks import TriggerRollback
tasklist.add(TriggerRollback()) tasklist.add(TriggerRollback())

View file

@ -0,0 +1,24 @@
from base import Task
from common import phases
from common.tools import log_check_call
import os
from config import AptSources
class AptUpgrade(Task):
description = 'Upgrading packages and fixing broken dependencies'
phase = phases.system_modification
after = [AptSources]
def run(self, info):
rc_policy_path = os.path.join(info.root, 'usr/sbin/policy-rc.d')
with open(rc_policy_path, 'w') as rc_policy:
rc_policy.write('#!/bin/sh\nexit 101')
import stat
os.chmod(rc_policy_path,
stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR |
stat.S_IRGRP | stat.S_IXGRP |
stat.S_IROTH | stat.S_IXOTH)
log_check_call(['chroot', info.root, 'apt-get', 'update'])
log_check_call(['chroot', info.root, 'apt-get', '-f', '-y', 'install'])
log_check_call(['chroot', info.root, 'apt-get', '-y', 'upgrade'])