Skip to content

Commit

Permalink
Create load_plugins func
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrew Leitsius committed Aug 1, 2017
1 parent 0b2a577 commit bcbfb3d
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 13 deletions.
17 changes: 4 additions & 13 deletions openregistry/api/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
gevent.monkey.patch_all()
import os
from logging import getLogger
from pkg_resources import iter_entry_points
from libnacl.sign import Signer, Verifier
from pyramid.authorization import ACLAuthorizationPolicy as AuthorizationPolicy
from pyramid.config import Configurator
Expand All @@ -15,7 +14,7 @@

from openregistry.api.auth import AuthenticationPolicy, authenticated_role, check_accreditation
from openregistry.api.database import set_api_security
from openregistry.api.utils import forbidden, request_params
from openregistry.api.utils import forbidden, request_params, load_plugins
from openregistry.api.constants import ROUTE_PREFIX

LOGGER = getLogger("{}.init".format(__name__))
Expand All @@ -41,10 +40,7 @@ def main(global_config, **settings):

# search for plugins
plugins = settings.get('plugins') and settings['plugins'].split(',')
for entry_point in iter_entry_points('openregistry.api.plugins'):
if not plugins or entry_point.name in plugins:
plugin = entry_point.load()
plugin(config)
load_plugins(config, group='openregistry.api.plugins', plugins=plugins)

# CouchDB connection
aserver, server, db = set_api_security(settings)
Expand All @@ -66,9 +62,7 @@ def main(global_config, **settings):

# migrate data
if not os.environ.get('MIGRATION_SKIP'):
for entry_point in iter_entry_points('openregistry.api.migrations'):
plugin = entry_point.load()
plugin(config.registry)
load_plugins(config.registry, group='openregistry.api.migrations')

config.registry.server_id = settings.get('id', '')

Expand All @@ -77,10 +71,7 @@ def main(global_config, **settings):
for k in subscribers_keys:
subscribers = settings[k].split(',')
for subscriber in subscribers:
for entry_point in iter_entry_points('openregistry.{}'.format(k), subscriber):
if entry_point:
plugin = entry_point.load()
plugin(config)
load_plugins(config, group='openregistry.{}'.format(k), name=subscriber)

config.registry.health_threshold = float(settings.get('health_threshold', 512))
config.registry.health_threshold_func = settings.get('health_threshold_func', 'all')
Expand Down
9 changes: 9 additions & 0 deletions openregistry/api/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from cornice.util import json_error
from cornice.resource import view
from webob.multidict import NestedMultiDict
from pkg_resources import iter_entry_points
from jsonpatch import make_patch, apply_patch as _apply_patch

from openregistry.api.events import ErrorDesctiptorEvent
Expand All @@ -19,6 +20,14 @@
json_view = partial(view, renderer='json')


def load_plugins(config, group, **kwargs):
plugins = kwargs.get('plugins')
for entry_point in iter_entry_points(group, kwargs.get('name')):
if not plugins or entry_point.name in plugins:
plugin = entry_point.load()
plugin(config)


def get_now():
return datetime.now(TZ)

Expand Down

0 comments on commit bcbfb3d

Please sign in to comment.