Kill the initalize() function. Nobody uses it except ec2

The boto debug messages are now silenced with a task.
This commit is contained in:
Anders Ingemann 2015-05-03 12:31:44 +02:00
parent 2ef9382a55
commit 989f33c226
7 changed files with 20 additions and 41 deletions

View file

@ -27,12 +27,12 @@ class Manifest(object):
if path is None and data is None:
raise ManifestError('`path\' or `data\' must be provided')
self.path = path
self.load(data)
self.initialize()
self.load_data(data)
self.load_modules()
self.validate()
self.parse()
def load(self, data=None):
def load_data(self, data=None):
"""Loads the manifest and performs a basic validation.
This function reads the manifest and performs some basic validation of
the manifest itself to ensure that the properties required for initalization are accessible
@ -47,12 +47,8 @@ class Manifest(object):
# Validate the manifest with the base validation function in __init__
validate_manifest(self.data, self.schema_validator, self.validation_error)
def initialize(self):
"""Initializes the provider and the plugins.
This function loads the specified provider and plugins.
Once the provider and plugins are loaded,
the initialize() function is called on each of them (if it exists).
The provider must have an initialize function.
def load_modules(self):
"""Loads the provider and the plugins.
"""
# Get the provider name from the manifest and load the corresponding module
provider_modname = 'bootstrapvz.providers.' + self.data['provider']['name']
@ -70,14 +66,6 @@ class Manifest(object):
plugin = importlib.import_module(modname)
self.modules['plugins'].append(plugin)
# Run the initialize function on the provider and plugins
self.modules['provider'].initialize()
for module in self.modules['plugins']:
# Plugins are not required to have an initialize function
init = getattr(module, 'initialize', None)
if callable(init):
init()
def validate(self):
"""Validates the manifest using the provider and plugin validation functions.
Plugins are not required to have a validate_manifest function
@ -141,7 +129,7 @@ class Manifest(object):
def __setstate__(self, state):
self.path = state['path']
self.load(state['data'])
self.initialize()
self.load_data(state['data'])
self.load_modules()
self.validate()
self.parse()

View file

@ -7,10 +7,6 @@ from bootstrapvz.common.tasks import initd
from bootstrapvz.common.tasks import ssh
def initialize():
pass
def validate_manifest(data, validator, error):
import os.path
schema_path = os.path.normpath(os.path.join(os.path.dirname(__file__), 'manifest-schema.yml'))

View file

@ -17,12 +17,6 @@ from bootstrapvz.common.tasks import loopback
from bootstrapvz.common.tasks import kernel
def initialize():
# Regardless of of loglevel, we don't want boto debug stuff, it's very noisy
import logging
logging.getLogger('boto').setLevel(logging.INFO)
def validate_manifest(data, validator, error):
import os.path
validator(data, os.path.join(os.path.dirname(__file__), 'manifest-schema.yml'))
@ -64,6 +58,7 @@ def resolve_tasks(taskset, manifest):
taskset.update([tasks.host.AddExternalCommands,
tasks.packages.DefaultPackages,
tasks.connection.SilenceBotoDebug,
tasks.connection.GetCredentials,
tasks.ami.AMIName,
tasks.connection.Connect,

View file

@ -3,9 +3,21 @@ from bootstrapvz.common import phases
import host
class SilenceBotoDebug(Task):
description = 'Silence boto debug logging'
phase = phases.preparation
@classmethod
def run(cls, info):
# Regardless of of loglevel, we don't want boto debug stuff, it's very noisy
import logging
logging.getLogger('boto').setLevel(logging.INFO)
class GetCredentials(Task):
description = 'Getting AWS credentials'
phase = phases.preparation
successors = [SilenceBotoDebug]
@classmethod
def run(cls, info):

View file

@ -15,10 +15,6 @@ from bootstrapvz.common.tasks import ssh
from bootstrapvz.common.tasks import volume
def initialize():
pass
def validate_manifest(data, validator, error):
import os.path
schema_path = os.path.normpath(os.path.join(os.path.dirname(__file__), 'manifest-schema.yml'))

View file

@ -5,10 +5,6 @@ from bootstrapvz.common.tasks import initd
from bootstrapvz.common.tasks import ssh
def initialize():
pass
def validate_manifest(data, validator, error):
import os.path
schema_path = os.path.normpath(os.path.join(os.path.dirname(__file__), 'manifest-schema.yml'))

View file

@ -3,10 +3,6 @@ import tasks.packages
from bootstrapvz.common.tasks import loopback
def initialize():
pass
def validate_manifest(data, validator, error):
import os.path
schema_path = os.path.normpath(os.path.join(os.path.dirname(__file__), 'manifest-schema.yml'))