def __init__(self, config=None, reactor=None): NativeWorkerSession.__init__(self, config, reactor) # factory for producing (per-realm) routers self._router_factory = RouterFactory() # factory for producing router sessions self._router_session_factory = RouterSessionFactory(self._router_factory) # map: realm ID -> RouterRealm self.realms = {} # map: realm URI -> realm ID self.realm_to_id = {} # map: component ID -> RouterComponent self.components = {} # "global" shared between all components self.components_shared = { u'reactor': reactor } # map: transport ID -> RouterTransport self.transports = {}
def __init__(self, config=None, reactor=None): NativeWorkerSession.__init__(self, config, reactor) # map: component ID -> ContainerComponent self.components = {} # "global" shared between all components self.components_shared = {u'reactor': reactor}
def __init__(self, config=None, reactor=None): NativeWorkerSession.__init__(self, config, reactor) # map: component ID -> ContainerComponent self.components = {} # when shall we exit? self._exit_mode = (config.extra.shutdown or self.SHUTDOWN_MANUAL) # "global" shared between all components self.components_shared = { u'reactor': reactor }
def onJoin(self, details): """ Called when worker process has joined the node's management realm. """ yield NativeWorkerSession.onJoin(self, details, publish_ready=False) # the procedures registered procs = [ 'get_websocket_testee_transport', 'start_websocket_testee_transport', 'stop_websocket_testee_transport', ] dl = [] for proc in procs: uri = '{}.{}'.format(self._uri_prefix, proc) self.log.debug("Registering management API procedure {proc}", proc=uri) dl.append( self.register(getattr(self, proc), uri, options=RegisterOptions(details_arg='details'))) regs = yield DeferredList(dl) self.log.debug("Registered {cnt} management API procedures", cnt=len(regs)) # NativeWorkerSession.publish_ready() yield self.publish_ready()
def onJoin(self, details): """ Called when worker process has joined the node's management realm. """ yield NativeWorkerSession.onJoin(self, details, publish_ready=False) # map: component ID -> ContainerComponent self.components = {} # the procedures registered procs = [ "get_container_components", "start_container_component", "stop_container_component", "stop_container", "restart_container_component", ] dl = [] for proc in procs: uri = "{}.{}".format(self._uri_prefix, proc) self.log.debug("Registering management API procedure {proc}", proc=uri) dl.append(self.register(getattr(self, proc), uri, options=RegisterOptions(details_arg="details"))) regs = yield DeferredList(dl) self.log.debug("Registered {cnt} management API procedures", cnt=len(regs)) # NativeWorkerSession.publish_ready() yield self.publish_ready()
def onJoin(self, details): """ Called when worker process has joined the node's management realm. """ yield NativeWorkerSession.onJoin(self, details, publish_ready=False) # map: component ID -> ContainerComponent self.components = {} # the procedures registered procs = [ 'get_container_components', 'start_container_component', 'stop_container_component', 'restart_container_component' ] dl = [] for proc in procs: uri = '{}.{}'.format(self._uri_prefix, proc) if self.debug: log.msg("Registering procedure '{}'".format(uri)) dl.append(self.register(getattr(self, proc), uri, options=RegisterOptions(details_arg='details'))) regs = yield DeferredList(dl) if self.debug: log.msg("ContainerWorker registered {} procedures".format(len(regs))) # NativeWorkerSession.publish_ready() yield self.publish_ready()
def onJoin(self, details): """ Called when worker process has joined the node's management realm. """ yield NativeWorkerSession.onJoin(self, details, publish_ready=False) # the procedures registered procs = [ 'get_websocket_testee_transport', 'start_websocket_testee_transport', 'stop_websocket_testee_transport', ] dl = [] for proc in procs: uri = '{}.{}'.format(self._uri_prefix, proc) self.log.debug("Registering management API procedure {proc}", proc=uri) dl.append(self.register(getattr(self, proc), uri, options=RegisterOptions(details_arg='details'))) regs = yield DeferredList(dl) self.log.debug("Registered {cnt} management API procedures", cnt=len(regs)) # NativeWorkerSession.publish_ready() yield self.publish_ready()
def onJoin(self, details): """ Called when worker process has joined the node's management realm. """ yield NativeWorkerSession.onJoin(self, details, publish_ready=False) # map: component ID -> ContainerComponent self.components = {} # the procedures registered procs = [ 'get_container_components', 'start_container_component', 'stop_container_component', 'restart_container_component' ] dl = [] for proc in procs: uri = '{}.{}'.format(self._uri_prefix, proc) if self.debug: log.msg("Registering procedure '{}'".format(uri)) dl.append( self.register(getattr(self, proc), uri, options=RegisterOptions(details_arg='details'))) regs = yield DeferredList(dl) if self.debug: log.msg("ContainerWorker registered {} procedures".format( len(regs))) # NativeWorkerSession.publish_ready() yield self.publish_ready()
def onJoin(self, details): """ Called when worker process has joined the node's management realm. """ yield NativeWorkerSession.onJoin(self, details, publish_ready=False) # factory for producing (per-realm) routers self._router_factory = RouterFactory(self._node_id) # factory for producing router sessions self._router_session_factory = RouterSessionFactory(self._router_factory) # map: realm ID -> RouterRealm self.realms = {} # map: realm URI -> realm ID self.realm_to_id = {} # map: component ID -> RouterComponent self.components = {} # map: transport ID -> RouterTransport self.transports = {} # the procedures registered procs = [ 'get_router_realms', 'start_router_realm', 'stop_router_realm', 'get_router_realm_roles', 'start_router_realm_role', 'stop_router_realm_role', 'get_router_realm_uplinks', 'start_router_realm_uplink', 'stop_router_realm_uplink', 'get_router_components', 'start_router_component', 'stop_router_component', 'get_router_transports', 'start_router_transport', 'stop_router_transport', ] dl = [] for proc in procs: uri = '{}.{}'.format(self._uri_prefix, proc) self.log.debug("Registering management API procedure {proc}", proc=uri) dl.append(self.register(getattr(self, proc), uri, options=RegisterOptions(details_arg='details'))) regs = yield DeferredList(dl) self.log.debug("Registered {cnt} management API procedures", cnt=len(regs)) # NativeWorkerSession.publish_ready() yield self.publish_ready()
def onJoin(self, details): """ Called when worker process has joined the node's management realm. """ yield NativeWorkerSession.onJoin(self, details, publish_ready=False) # NativeWorkerSession.publish_ready() yield self.publish_ready()
def onJoin(self, details): """ Called when worker process has joined the node's management realm. """ self.log.info('Container worker "{worker_id}" session {session_id} initializing ..', worker_id=self._worker_id, session_id=details.session) yield NativeWorkerSession.onJoin(self, details, publish_ready=False) self.log.info('Container worker "{worker_id}" session ready', worker_id=self._worker_id) # NativeWorkerSession.publish_ready() yield self.publish_ready()
def onJoin(self, details): """ Called when worker process has joined the node's management realm. """ self.log.info('Router worker "{worker_id}" session {session_id} initializing ..', worker_id=self._worker_id, session_id=details.session) yield NativeWorkerSession.onJoin(self, details, publish_ready=False) # the procedures registered procs = [ u'get_router_realms', u'start_router_realm', u'stop_router_realm', u'get_router_realm_roles', u'start_router_realm_role', u'stop_router_realm_role', u'get_router_realm_uplinks', u'start_router_realm_uplink', u'stop_router_realm_uplink', u'get_router_components', u'start_router_component', u'stop_router_component', u'get_router_transports', u'start_router_transport', u'stop_router_transport', ] dl = [] for proc in procs: uri = u'{}.{}'.format(self._uri_prefix, proc) self.log.debug('Registering management API procedure <{proc}>', proc=uri) dl.append(self.register(getattr(self, proc), uri, options=RegisterOptions(details_arg='details'))) regs = yield DeferredList(dl) self.log.debug('Ok, registered {cnt} management API procedures', cnt=len(regs)) self.log.info('Router worker "{worker_id}" session ready', worker_id=self._worker_id) # NativeWorkerSession.publish_ready() yield self.publish_ready()
def onJoin(self, details): """ Called when worker process has joined the node's management realm. """ self.log.info('ContainerWorkerSession: {}'.format(details)) yield NativeWorkerSession.onJoin(self, details, publish_ready=False) # the procedures registered procs = [ 'get_container_components', 'start_container_component', 'stop_container_component', 'stop_container', 'restart_container_component' ] dl = [] for proc in procs: uri = '{}.{}'.format(self._uri_prefix, proc) self.log.debug("Registering management API procedure {proc}", proc=uri) dl.append( self.register(getattr(self, proc), uri, options=RegisterOptions(details_arg='details'))) regs = yield DeferredList(dl) self.log.debug("Registered {cnt} management API procedures", cnt=len(regs)) # NativeWorkerSession.publish_ready() try: yield self.publish_ready() except: self.log.failure( 'Failed to publish container worker ready: {log_failure.value}' )
def onJoin(self, details): """ Called when worker process has joined the node's management realm. """ yield NativeWorkerSession.onJoin(self, details, publish_ready=False) # Jinja2 templates for Web (like WS status page et al) # templates_dir = os.path.abspath(pkg_resources.resource_filename("crossbar", "web/templates")) self.log.debug("Using Web templates from {templates_dir}", templates_dir=templates_dir) self._templates = jinja2.Environment(loader=jinja2.FileSystemLoader(templates_dir)) # factory for producing (per-realm) routers self._router_factory = RouterFactory() # factory for producing router sessions self._router_session_factory = RouterSessionFactory(self._router_factory) # map: realm ID -> RouterRealm self.realms = {} # map: realm URI -> realm ID self.realm_to_id = {} # map: transport ID -> RouterTransport self.transports = {} # map: link ID -> RouterLink self.links = {} # map: component ID -> RouterComponent self.components = {} # the procedures registered procs = [ 'get_router_realms', 'start_router_realm', 'stop_router_realm', 'get_router_realm_roles', 'start_router_realm_role', 'stop_router_realm_role', 'get_router_components', 'start_router_component', 'stop_router_component', 'get_router_transports', 'start_router_transport', 'stop_router_transport', 'get_router_links', 'start_router_link', 'stop_router_link' ] dl = [] for proc in procs: uri = '{}.{}'.format(self._uri_prefix, proc) self.log.debug("Registering management API procedure {proc}", proc=uri) dl.append(self.register(getattr(self, proc), uri, options=RegisterOptions(details_arg='details'))) regs = yield DeferredList(dl) self.log.debug("Registered {cnt} management API procedures", cnt=len(regs)) # NativeWorkerSession.publish_ready() yield self.publish_ready()
def onJoin(self, details): """ Called when worker process has joined the node's management realm. """ yield NativeWorkerSession.onJoin(self, details, publish_ready=False) # Jinja2 templates for Web (like WS status page et al) # templates_dir = os.path.abspath( pkg_resources.resource_filename("crossbar", "web/templates")) if self.debug: log.msg("Using Web templates from {}".format(templates_dir)) self._templates = jinja2.Environment( loader=jinja2.FileSystemLoader(templates_dir)) # factory for producing (per-realm) routers self._router_factory = RouterFactory() # factory for producing router sessions self._router_session_factory = RouterSessionFactory( self._router_factory) # map: realm ID -> RouterRealm self.realms = {} # map: realm URI -> realm ID self.realm_to_id = {} # map: transport ID -> RouterTransport self.transports = {} # map: link ID -> RouterLink self.links = {} # map: component ID -> RouterComponent self.components = {} # the procedures registered procs = [ 'get_router_realms', 'start_router_realm', 'stop_router_realm', 'get_router_realm_roles', 'start_router_realm_role', 'stop_router_realm_role', 'get_router_components', 'start_router_component', 'stop_router_component', 'get_router_transports', 'start_router_transport', 'stop_router_transport', 'get_router_links', 'start_router_link', 'stop_router_link' ] dl = [] for proc in procs: uri = '{}.{}'.format(self._uri_prefix, proc) self.log.debug("Registering management API procedure {proc}", proc=uri) dl.append( self.register(getattr(self, proc), uri, options=RegisterOptions(details_arg='details'))) regs = yield DeferredList(dl) self.log.debug("Registered {cnt} management API procedures", cnt=len(regs)) # NativeWorkerSession.publish_ready() yield self.publish_ready()