From d3ab01f88f892ee834e70ce724532eb19bfe730a Mon Sep 17 00:00:00 2001 From: Anders Ingemann Date: Mon, 1 Jul 2013 20:56:38 +0200 Subject: [PATCH] Implement initialize() fn for providers and plugins ,silence boto debug --- base/manifest.py | 12 ++++++++++-- providers/ec2/__init__.py | 6 ++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/base/manifest.py b/base/manifest.py index a5584f0..24c8910 100644 --- a/base/manifest.py +++ b/base/manifest.py @@ -5,7 +5,12 @@ log = logging.getLogger(__name__) def load_manifest(path): data = load_json(path) - provider = __import__('providers.{module}'.format(module=data['provider']), fromlist=['providers']) + provider_name = data['provider'] + provider = __import__('providers.{module}'.format(module=provider_name), fromlist=['providers']) + init = getattr(provider, 'initialize', None) + if callable(init): + init() + log.debug('Loaded provider `%s\'', provider_name) manifest = provider.Manifest(path) manifest.validate(data) @@ -56,7 +61,10 @@ class Manifest(object): if plugin_data['enabled']: modname = 'plugins.{plugin_name}'.format(plugin_name=plugin_name) plugin = __import__(modname, fromlist=['plugins']) - log.debug('Loaded plugin %s', plugin_name) + init = getattr(plugin, 'initialize', None) + if callable(init): + init() + log.debug('Loaded plugin `%s\'', plugin_name) self.loaded_plugins.append(plugin) validate = getattr(plugin, 'validate_manifest', None) if callable(validate): diff --git a/providers/ec2/__init__.py b/providers/ec2/__init__.py index c741131..9092bbd 100644 --- a/providers/ec2/__init__.py +++ b/providers/ec2/__init__.py @@ -1,4 +1,5 @@ from manifest import Manifest +import logging from tasks import packages from tasks import connection from tasks import host @@ -7,6 +8,11 @@ from tasks import filesystem from tasks import bootstrap +def initialize(): + # Regardless of of loglevel, we don't want boto debug stuff, it's very noisy + logging.getLogger('boto').setLevel(logging.INFO) + + def tasks(tasklist, manifest): tasklist.add(packages.HostPackages(), packages.ImagePackages(), host.CheckPackages(), connection.GetCredentials(), host.GetInfo(), connection.Connect())