diff options
author | Joshua Harlow <harlowja@yahoo-inc.com> | 2012-06-11 17:14:46 -0700 |
---|---|---|
committer | Joshua Harlow <harlowja@yahoo-inc.com> | 2012-06-11 17:14:46 -0700 |
commit | 3b964024040bed3c217b6d4f043af55d0dbc5469 (patch) | |
tree | df68268ee04ab110bb3bb522df7023f82e4b5e5f | |
parent | 70640d62e1dffeabceacf16b52a3122fe914c297 (diff) | |
download | vyos-cloud-init-3b964024040bed3c217b6d4f043af55d0dbc5469.tar.gz vyos-cloud-init-3b964024040bed3c217b6d4f043af55d0dbc5469.zip |
Adding in the base of a ubuntu distro subclass that can install pkgs (right now).
-rw-r--r-- | cloudinit/distros/ubuntu.py | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/cloudinit/distros/ubuntu.py b/cloudinit/distros/ubuntu.py index e69de29b..d19ef63e 100644 --- a/cloudinit/distros/ubuntu.py +++ b/cloudinit/distros/ubuntu.py @@ -0,0 +1,55 @@ +# vi: ts=4 expandtab +# +# Copyright (C) 2012 Canonical Ltd. +# Copyright (C) 2012 Hewlett-Packard Development Company, L.P. +# Copyright (C) 2012 Yahoo! Inc. +# +# Author: Scott Moser <scott.moser@canonical.com> +# Author: Juerg Haefliger <juerg.haefliger@hp.com> +# Author: Joshua Harlow <harlowja@yahoo-inc.com> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 3, as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +import os + +from cloudinit import distros +from cloudinit import log as logging +from cloudinit import util + +from cloudinit.settings import (PER_INSTANCE) + + +LOG = logging.getLogger(__name__) + + +class Distro(distros.Distro): + + def install_packages(self, pkglist): + self.update_package_sources() + self.apt_get('install', pkglist) + + def apply_network(self, settings): + pass + + # apt_get top level command (install, update...), and args to pass it + def apt_get(self, tlc, args=None): + e = os.environ.copy() + e['DEBIAN_FRONTEND'] = 'noninteractive' + cmd = ['apt-get', '--option', 'Dpkg::Options::=--force-confold', + '--assume-yes', tlc] + if args: + cmd.extend(args) + util.subp(cmd, env=e) + + def update_package_sources(self): + self.cloud.run("update-sources", self.apt_get, ["update"], freq=PER_INSTANCE)
\ No newline at end of file |