Example #1
0
    def plc_init(self):
        # Init self and container
        annName = 'cc_announce'
        self.ann_name = self.get_scoped_name('system', annName)
        self.start_time = pu.currenttime_ms()
        self.containers = {}
        self.contalive = {}
        self.last_identify = 0

        # Declare CC announcement name
        messaging = {'name_type':'fanout', 'args':{'scope':'system'}}
        yield Container.configure_messaging(self.ann_name, messaging)
        logging.info("Declared CC anounce name: "+str(self.ann_name))

        # Attach to CC announcement name
        annReceiver = Receiver(annName+'.'+self.receiver.label, self.ann_name)
        annReceiver.group = self.receiver.group
        self.ann_receiver = annReceiver
        self.ann_receiver.handle(self.receive)
        self.add_receiver(self.ann_receiver)
        annid = yield spawn(self.ann_receiver)
        logging.info("Listening to CC anouncements: "+str(annid))

        # Start with an identify request. Will lead to an announce by myself
        #@TODO - Can not send a message to a base process which is not initialized!
        yield self.send(self.ann_name, 'identify', 'started', {'quiet':True})

        # Convenience HACK: Add a few functions to container shell
        self._augment_shell()
Example #2
0
    def plc_init(self):
        # Init self and container
        annName = 'cc_announce'
        self.ann_name = self.get_scoped_name('system', annName)
        self.start_time = pu.currenttime_ms()
        self.containers = {}
        self.contalive = {}
        self.last_identify = 0

        # Declare CC announcement name
        messaging = {'name_type': 'fanout', 'args': {'scope': 'system'}}
        yield Container.configure_messaging(self.ann_name, messaging)
        logging.info("Declared CC anounce name: " + str(self.ann_name))

        # Attach to CC announcement name
        annReceiver = Receiver(annName + '.' + self.receiver.label,
                               self.ann_name)
        annReceiver.group = self.receiver.group
        self.ann_receiver = annReceiver
        self.ann_receiver.handle(self.receive)
        self.add_receiver(self.ann_receiver)
        annid = yield spawn(self.ann_receiver)
        logging.info("Listening to CC anouncements: " + str(annid))

        # Start with an identify request. Will lead to an announce by myself
        #@TODO - Can not send a message to a base process which is not initialized!
        yield self.send(self.ann_name, 'identify', 'started', {'quiet': True})

        # Convenience HACK: Add a few functions to container shell
        self._augment_shell()
Example #3
0
    def __init__(self, receiver=None, spawnArgs=None):
        """
        Initializes base service. The default service name is taken from the
        service declaration, a different service name can be provided in the
        spawnargs using the 'servicename' attribute. The service name, in its
        qualified form prefixed by the system name is the public name of the
        service inbound queue that is shared among all service processes with
        the same name
        """
        BaseProcess.__init__(self, receiver, spawnArgs)

        # Determine public service messaging name either from spawn args or
        # use default name from service declaration
        #default_svcname = self.declare['name'] + '_' + self.declare['version']
        default_svcname = self.declare['name']
        self.svc_name = self.spawn_args.get('servicename', default_svcname)
        assert self.svc_name, "Service must have a declare with a valid name"

        # Scope (prefix) the service name with the system name
        msgName = self.get_scoped_name('system', self.svc_name)

        # Create a receiver (inbound queue consumer) for service name
        svcReceiver = Receiver(self.svc_name + '.' + self.receiver.label,
                               msgName)
        if hasattr(self.receiver, 'group'):
            svcReceiver.group = self.receiver.group
        self.svc_receiver = svcReceiver
        self.svc_receiver.handle(self.receive)
        self.add_receiver(self.svc_receiver)
    def __init__(self, receiver=None, spawnArgs=None):
        """
        Initializes base service. The default service name is taken from the
        service declaration, a different service name can be provided in the
        spawnargs using the 'servicename' attribute. The service name, in its
        qualified form prefixed by the system name is the public name of the
        service inbound queue that is shared among all service processes with
        the same name
        """
        BaseProcess.__init__(self, receiver, spawnArgs)

        # Determine public service messaging name either from spawn args or
        # use default name from service declaration
        #default_svcname = self.declare['name'] + '_' + self.declare['version']
        default_svcname = self.declare['name']
        self.svc_name = self.spawn_args.get('servicename', default_svcname)
        assert self.svc_name, "Service must have a declare with a valid name"

        # Scope (prefix) the service name with the system name
        msgName = self.get_scoped_name('system', self.svc_name)

        # Create a receiver (inbound queue consumer) for service name
        svcReceiver = Receiver(self.svc_name+'.'+self.receiver.label, msgName)
        if hasattr(self.receiver, 'group'):
            svcReceiver.group = self.receiver.group
        self.svc_receiver = svcReceiver
        self.svc_receiver.handle(self.receive)
        self.add_receiver(self.svc_receiver)
Example #5
0
    def __init__(self, receiver=None, spawnArgs=None):
        """
        Initializes base service. The service name is taken from the service
        declaration
        """
        BaseProcess.__init__(self, receiver, spawnArgs)

        # Determine service known messging name either from spawn args or
        # if not given from service declaration
        self.svc_name = self.spawnArgs.get('servicename', self.declare['name'])
        assert self.svc_name, "Service must have a declare with a valid name"

        msgName = self.get_scoped_name('system', self.svc_name)
        svcReceiver = Receiver(self.svc_name+'.'+self.receiver.label, msgName)
        if hasattr(self.receiver, 'group'):
            svcReceiver.group = self.receiver.group
        self.svc_receiver = svcReceiver
        self.svc_receiver.handle(self.receive)
        self.add_receiver(self.svc_receiver)