Francesco Banconi has proposed merging lp:~frankban/launchpad/setuplxc-add-apt-repository into lp:launchpad with lp:~benji/launchpad/add-sudoers-to-lxcsetup as a prerequisite.
Requested reviews: Launchpad Yellow Squad (yellow) For more details, see: https://code.launchpad.net/~frankban/launchpad/setuplxc-add-apt-repository/+merge/94761 == Changes == - add-apt-repository is now used to set up APT repositories to be used by the container. - Apt --allow-unauthenticated no longer needed. - Backported a fix to `get_args_from_namespace`: actions are now correctly parsed. -- https://code.launchpad.net/~frankban/launchpad/setuplxc-add-apt-repository/+merge/94761 Your team Launchpad Yellow Squad is requested to review the proposed merge of lp:~frankban/launchpad/setuplxc-add-apt-repository into lp:launchpad.
=== modified file 'utilities/setuplxc.py' --- utilities/setuplxc.py 2012-02-27 13:13:49 +0000 +++ utilities/setuplxc.py 2012-02-27 13:13:50 +0000 @@ -39,7 +39,13 @@ import sys import time - +APT_REPOSITORIES = ( + 'deb http://archive.ubuntu.com/ubuntu {distro} multiverse', + 'deb http://archive.ubuntu.com/ubuntu {distro}-updates multiverse', + 'deb http://archive.ubuntu.com/ubuntu {distro}-security multiverse', + 'ppa:launchpad/ppa', + 'ppa:bzr/ppa', + ) DEPENDENCIES_DIR = '~/dependencies' DHCP_FILE = '/etc/dhcp/dhclient.conf' HOST_PACKAGES = ['ssh', 'lxc', 'libvirt-bin', 'bzr', 'language-pack-en'] @@ -81,16 +87,6 @@ lxc.network.flags = up """ LXC_PATH = '/var/lib/lxc/' -LXC_REPOS = ( - 'deb http://archive.ubuntu.com/ubuntu ' - 'lucid main universe multiverse', - 'deb http://archive.ubuntu.com/ubuntu ' - 'lucid-updates main universe multiverse', - 'deb http://archive.ubuntu.com/ubuntu ' - 'lucid-security main universe multiverse', - 'deb http://ppa.launchpad.net/launchpad/ppa/ubuntu lucid main', - 'deb http://ppa.launchpad.net/bzr/ppa/ubuntu lucid main', - ) RESOLV_FILE = '/etc/resolv.conf' @@ -297,7 +293,7 @@ sshcmd = ( 'ssh', '-t', - '-t', # Yes, this second -t is deliberate. See `man ssh`. + '-t', # Yes, this second -t is deliberate. See `man ssh`. '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', location, @@ -373,8 +369,9 @@ if option_strings: args.append(option_strings[0]) if isinstance(value, list): - value = ','.join(value) - args.append(value) + args.extend(value) + elif not isinstance(value, bool): + args.append(value) return args def _validate(self, namespace): @@ -727,8 +724,8 @@ uid = pwd.getpwnam(user)[2] script.write('#!/bin/sh\n') script.write( - 'lxc-execute -n lptests --' # Run the named LXC container. - ' /usr/bin/sudo -u#{} -i'.format(uid)+ # Drop root privileges. + 'lxc-execute -n lptests --' # Run the named LXC container. + ' /usr/bin/sudo -u#{} -i'.format(uid) + # Drop root privileges. ' make -C /var/lib/buildbot/lp schema\n') os.chmod(build_script_file, 0555) # Add a file to sudoers.d that will let the buildbot user run the above. @@ -812,9 +809,11 @@ root_sshcall = ssh(lxcname) sshcall = ssh(lxcname, user) # APT repository update. - sources = get_container_path(lxcname, '/etc/apt/sources.list') - with open(sources, 'w') as f: - f.write('\n'.join(LXC_REPOS)) + for apt_reposirory in APT_REPOSITORIES: + repository = apt_reposirory.format(distro=LXC_GUEST_OS) + assume_yes = '' if LXC_GUEST_OS == 'lucid' else '-y' + root_sshcall('add-apt-repository {} "{}"'.format( + assume_yes, repository)) # XXX frankban 2012-01-13 - Bug 892892: upgrading mountall in LXC # containers currently does not work. root_sshcall("echo 'mountall hold' | dpkg --set-selections") @@ -822,10 +821,10 @@ root_sshcall( 'apt-get update && ' 'DEBIAN_FRONTEND=noninteractive ' - 'apt-get -y --allow-unauthenticated install language-pack-en') + 'apt-get -y install language-pack-en') root_sshcall( 'DEBIAN_FRONTEND=noninteractive apt-get -y ' - '--allow-unauthenticated install {}'.format(LP_DEB_DEPENDENCIES)) + 'install {}'.format(LP_DEB_DEPENDENCIES)) # We install lxc in the guest so that lxc-execute will work on the # container. We use --no-install-recommends at the recommendation # of the Canonical lxc maintainers because all we need is a file @@ -843,8 +842,8 @@ # Set up Launchpad dependencies. checkout_dir = os.path.join(directory, LP_CHECKOUT) sshcall( - 'cd {} && utilities/update-sourcecode --use-http "{}/sourcecode"'.format( - checkout_dir, dependencies_dir)) + 'cd {} && utilities/update-sourcecode --use-http ' + '"{}/sourcecode"'.format(checkout_dir, dependencies_dir)) sshcall( 'cd {} && utilities/link-external-sourcecode "{}"'.format( checkout_dir, dependencies_dir))
-- Mailing list: https://launchpad.net/~yellow Post to : [email protected] Unsubscribe : https://launchpad.net/~yellow More help : https://help.launchpad.net/ListHelp

