def get_routers(self, router_id=None): """Make a remote process call to retrieve the sync data for routers.""" router_id = [router_id] if router_id else None # yes the plural is intended for havana compliance retval = self.call(context.get_admin_context(), self.make_msg('sync_routers', host=self.host, router_ids=router_id), # plural topic=self.topic) return retval
def get_routers(self, router_id=None): """Make a remote process call to retrieve the sync data for routers.""" router_id = [router_id] if router_id else None # yes the plural is intended for havana compliance retval = self.call( context.get_admin_context(), self.make_msg('sync_routers', host=self.host, router_ids=router_id), # plural topic=self.topic) return retval
def __enter__(self): LOG.debug('setting up notification sender for %s to %s', self.topic, self.amqp_url) # Pre-pack the context in the format used by # openstack.common.rpc.amqp.pack_context(). Since we always # use the same context, there is no reason to repack it every # time we get a new message. self._context = context.get_admin_context() self._packed_context = dict( ('_context_%s' % key, value) for (key, value) in self._context.to_dict().iteritems() ) # We expect to be created in one process and then used in # another, so we delay creating any actual AMQP connections or # other resources until we're going to use them. conn_info = urlparse.urlparse(self.amqp_url) self._connection = kombu.connection.BrokerConnection( hostname=conn_info.hostname, userid=conn_info.username, password=conn_info.password, virtual_host=conn_info.path, port=conn_info.port, ) self._connection.connect() self._channel = self._connection.channel() # Use the same exchange where we're receiving notifications self._notifications_exchange = kombu.entity.Exchange( name=self.exchange_name, type='topic', durable=False, auto_delete=False, internal=False, channel=self._channel, ) self._producer = kombu.Producer( channel=self._channel, exchange=self._notifications_exchange, routing_key=self.topic, ) return self
def __enter__(self): LOG.debug('setting up notification sender for %s to %s', self.topic, self.amqp_url) # Pre-pack the context in the format used by # openstack.common.rpc.amqp.pack_context(). Since we always # use the same context, there is no reason to repack it every # time we get a new message. self._context = context.get_admin_context() self._packed_context = dict( ('_context_%s' % key, value) for (key, value) in self._context.to_dict().iteritems()) # We expect to be created in one process and then used in # another, so we delay creating any actual AMQP connections or # other resources until we're going to use them. conn_info = urlparse.urlparse(self.amqp_url) self._connection = kombu.connection.BrokerConnection( hostname=conn_info.hostname, userid=conn_info.username, password=conn_info.password, virtual_host=conn_info.path, port=conn_info.port, ) self._connection.connect() self._channel = self._connection.channel() # Use the same exchange where we're receiving notifications self._notifications_exchange = kombu.entity.Exchange( name=self.exchange_name, type='topic', durable=False, auto_delete=False, internal=False, channel=self._channel, ) self._producer = kombu.Producer( channel=self._channel, exchange=self._notifications_exchange, routing_key=self.topic, ) return self