def start(self): # start resolution for the missing URI's for key, uri in self.services.iteritems(): if not uri: if self.remote: if not self.sda: self.sda = ServiceDiscovery( debug=self.debug) # singleton # this might cause several service-resolved callbacks per service, # one per network interface # the URI is the same, so just act on the first one self.sda.connect('service-resolved', self.service_resolved) self.sda.connect('service-removed', self.service_removed) domain = 'local' self.sda.add_service_type(avahi.IF_UNSPEC, avahi.PROTO_INET, "_%s._sub._machinekit._tcp" % key, domain, key=key) self.emit('log', levels.DEBUG, "zeroconf-resolving %s" % key) else: # use IPC socket self.emit( 'uri-resolved', key, "ipc://%s/%d.%s.%s" % (self.dir, self.hal_instance, key, self.instance_uuid)) else: # URI explicitly set self.emit('uri-resolved', key, uri)
def factory(ws, params=None): parameters = {} data = None if params: parameters.update(params) if ServiceDiscoveryJuristek.PARAMETER_OAB in params and params.get( ServiceDiscoveryJuristek.PARAMETER_OAB): data = "SELECT FROM 'INFO'.'INFO' WHERE 'TIPO_CONSULTA' = 'OAB'" if not data: data = "SELECT FROM 'INFO'.'INFO'" parameters.update({'data': data}) return ServiceDiscovery( ws, ws.post("SELECT FROM 'JURISTEK'.'INFO'", parameters))