diff options
author | Joshua Harlow <harlowja@yahoo-inc.com> | 2012-06-11 17:13:19 -0700 |
---|---|---|
committer | Joshua Harlow <harlowja@yahoo-inc.com> | 2012-06-11 17:13:19 -0700 |
commit | 70640d62e1dffeabceacf16b52a3122fe914c297 (patch) | |
tree | 579f96e483ff2126d445761c20cd7e51775f763a /cloudinit/distros | |
parent | 6a58c8ee7345c53dda47ae0845b0e8cae0043dd4 (diff) | |
download | vyos-cloud-init-70640d62e1dffeabceacf16b52a3122fe914c297.tar.gz vyos-cloud-init-70640d62e1dffeabceacf16b52a3122fe914c297.zip |
Adding in the root distro class + a util function to fetch various distros.
Diffstat (limited to 'cloudinit/distros')
-rw-r--r-- | cloudinit/distros/__init__.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py index e69de29b..f7f48d1f 100644 --- a/cloudinit/distros/__init__.py +++ b/cloudinit/distros/__init__.py @@ -0,0 +1,45 @@ +# 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 contextlib + +from cloudinit import importer + + +class Distro(object): + def __init__(self, cloud): + self.cloud = cloud + + def install_packages(self, pkglist): + raise NotImplementedError() + + def apply_network(self, settings): + raise NotImplementedError() + + +def fetch(cfg, cloud): + sys_info = cfg.get('system_info', {}) + distro = sys_info.get('distro', 'ubuntu') + mod_name = "%s.%s" % (__name__, distro) + mod = importer.import_module(mod_name) + distro_cls = getattr(mod, 'Distro') + return distro_cls(cloud)
\ No newline at end of file |