Skip to content

Commit

Permalink
Workertypes (#1369)
Browse files Browse the repository at this point in the history
use personality to access worker type check functions
  • Loading branch information
oberstet committed Jul 29, 2018
1 parent d338133 commit 5662e7e
Showing 1 changed file with 12 additions and 18 deletions.
30 changes: 12 additions & 18 deletions crossbar/common/checkconfig.py
Expand Up @@ -2984,7 +2984,7 @@ def check_guest(personality, guest):
check_process_env(options['env'])


def check_worker(personality, worker, ignore=[]):
def check_worker(personality, worker):
"""
Check a node worker configuration item.
Expand All @@ -3002,27 +3002,21 @@ def check_worker(personality, worker, ignore=[]):

worker_type = worker['type']

valid_worker_types = ['router', 'container', 'guest', 'websocket-testee'] + ignore
if worker_type not in valid_worker_types:
raise InvalidConfigException("invalid attribute value '{}' for attribute 'type' in worker item (valid items are: {})\n\n{}".format(worker_type, valid_worker_types))

if worker_type == 'router':
personality.check_router(personality, worker)
valid_worker_types = ['guest'] + list(personality.native_workers.keys())

elif worker_type == 'container':
personality.check_container(personality, worker)
if worker_type not in valid_worker_types:
raise InvalidConfigException('invalid worker type "{}" in worker configuration item (valid types are: {})'.format(worker_type, valid_worker_types))

elif worker_type == 'guest':
# handle all non-native worker types (currently only "guest")
if worker_type == 'guest':
personality.check_guest(personality, worker)

elif worker_type == 'websocket-testee':
personality.check_websocket_testee(personality, worker)

elif worker_type in ignore:
pass

else:
raise InvalidConfigException('logic error')
# all native worker types:
# default: router, container, websocket-testee
# but also (crossbarfx): proxy, hostmonitor, xbr, ..
worker_plugin = personality.native_workers[worker_type]
check_worker = worker_plugin['checkconfig_item']
check_worker(personality, worker)


def check_controller_options(personality, options, ignore=[]):
Expand Down

0 comments on commit 5662e7e

Please sign in to comment.