Make Diagnostics and Sync API's optional

Change-Id: I55ddaa72b95a4b79bee644d0cc6ba8216307a3e8
This commit is contained in:
Kiall Mac Innes 2013-03-12 11:33:06 +00:00
parent b4aa98bf32
commit 0092df7f8a
6 changed files with 26 additions and 6 deletions

View File

@ -52,6 +52,9 @@ default_log_levels = amqplib=WARN, sqlalchemy=WARN, boto=WARN, suds=INFO, keysto
# Authentication strategy to use - can be either "noauth" or "keystone" # Authentication strategy to use - can be either "noauth" or "keystone"
#auth_strategy = noauth #auth_strategy = noauth
# Enabled API Version 1 extensions
#enabled_extensions_v1 = diagnostics, sync, import, export
#----------------------- #-----------------------
# Agent Service # Agent Service
#----------------------- #-----------------------

View File

@ -15,21 +15,36 @@
# under the License. # under the License.
import flask import flask
from stevedore import extension from stevedore import extension
from stevedore import named
from moniker.openstack.common import cfg
from moniker.openstack.common import log as logging from moniker.openstack.common import log as logging
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
cfg.CONF.register_opts([
cfg.ListOpt('enabled-extensions-v1', default=[],
help='Enabled API Extensions'),
], group='service:api')
def factory(global_config, **local_conf): def factory(global_config, **local_conf):
app = flask.Flask('moniker.api.v1') app = flask.Flask('moniker.api.v1')
# TODO(kiall): Ideally, we want to make use of the Plugin class here. # TODO(kiall): Ideally, we want to make use of the Plugin class here.
# This works for the moment though. # This works for the moment though.
mgr = extension.ExtensionManager('moniker.api.v1') def _register_blueprint(ext):
def _load_extension(ext):
app.register_blueprint(ext.plugin) app.register_blueprint(ext.plugin)
mgr.map(_load_extension) # Add all in-built APIs
mgr = extension.ExtensionManager('moniker.api.v1')
mgr.map(_register_blueprint)
# Add any (enabled) optional extensions
extensions = cfg.CONF['service:api'].enabled_extensions_v1
if len(extensions) > 0:
extmgr = named.NamedExtensionManager('moniker.api.v1.extensions',
names=extensions)
extmgr.map(_register_blueprint)
return app return app

View File

View File

@ -62,8 +62,10 @@ setup(
records = moniker.api.v1.records:blueprint records = moniker.api.v1.records:blueprint
servers = moniker.api.v1.servers:blueprint servers = moniker.api.v1.servers:blueprint
tsigkeys = moniker.api.v1.tsigkeys:blueprint tsigkeys = moniker.api.v1.tsigkeys:blueprint
diagnostics = moniker.api.v1.diagnostics:blueprint
sync = moniker.api.v1.sync:blueprint [moniker.api.v1.extensions]
diagnostics = moniker.api.v1.extensions.diagnostics:blueprint
sync = moniker.api.v1.extensions.sync:blueprint
[moniker.storage] [moniker.storage]
sqlalchemy = moniker.storage.impl_sqlalchemy:SQLAlchemyStorage sqlalchemy = moniker.storage.impl_sqlalchemy:SQLAlchemyStorage