Esempio n. 1
0
 def _register_rpc_consumers(self, connection):
     """Allows an extension to receive notifications of updates made to
        items of interest.
     """
     endpoints = [resources_rpc.ResourcesPushRpcCallback()]
     for resource_type in self.SUPPORTED_RESOURCE_TYPES:
         # We assume that the neutron server always broadcasts the latest
         # version known to the agent
         registry.subscribe(self._handle_notification, resource_type)
         topic = resources_rpc.resource_type_versioned_topic(resource_type)
         connection.create_consumer(topic, endpoints, fanout=True)
Esempio n. 2
0
 def _register_rpc_consumers(self, connection):
     """Allows an extension to receive notifications of updates made to
        items of interest.
     """
     endpoints = [resources_rpc.ResourcesPushRpcCallback()]
     for resource_type in self.SUPPORTED_RESOURCE_TYPES:
         # We assume that the neutron server always broadcasts the latest
         # version known to the agent
         registry.subscribe(self._handle_notification, resource_type)
         topic = resources_rpc.resource_type_versioned_topic(resource_type)
         connection.create_consumer(topic, endpoints, fanout=True)
Esempio n. 3
0
    def __init__(self):
        registry.subscribe(self.handle_trunks, resources.TRUNK)
        registry.subscribe(self.handle_subports, resources.SUBPORT)

        self._connection = n_rpc.create_connection()
        endpoints = [resources_rpc.ResourcesPushRpcCallback()]
        topic = resources_rpc.resource_type_versioned_topic(resources.SUBPORT)
        self._connection.create_consumer(topic, endpoints, fanout=True)
        topic = resources_rpc.resource_type_versioned_topic(resources.TRUNK)
        self._connection.create_consumer(topic, endpoints, fanout=True)
        self._connection.consume_in_threads()
Esempio n. 4
0
    def initialize(self, connection, driver_type):
        """Perform Agent Extension initialization.

        """
        self.resource_rpc = resources_rpc.ResourcesPullRpcApi()
        self.qos_driver = manager.NeutronManager.load_class_for_provider(
            'neutron.qos.agent_drivers', driver_type)()
        self.qos_driver.initialize()

        self.policy_map = PortPolicyMap()

        registry.subscribe(self._handle_notification, resources.QOS_POLICY)
        self._register_rpc_consumers(connection)
Esempio n. 5
0
    def initialize(self, connection, driver_type):
        """Perform Agent Extension initialization.

        """
        self.resource_rpc = resources_rpc.ResourcesPullRpcApi()
        self.qos_driver = manager.NeutronManager.load_class_for_provider(
            'neutron.qos.agent_drivers', driver_type)()
        self.qos_driver.initialize()

        self.policy_map = PortPolicyMap()

        registry.subscribe(self._handle_notification, resources.QOS_POLICY)
        self._register_rpc_consumers(connection)
Esempio n. 6
0
    def initialize(self, connection, driver_type):
        """Perform Agent Extension initialization.

        """
        self.resource_rpc = resources_rpc.ResourcesPullRpcApi()
        self.qos_driver = manager.NeutronManager.load_class_for_provider("neutron.qos.agent_drivers", driver_type)()
        self.qos_driver.initialize()

        # we cannot use a dict of sets here because port dicts are not hashable
        self.qos_policy_ports = collections.defaultdict(dict)
        self.known_ports = set()

        registry.subscribe(self._handle_notification, resources.QOS_POLICY)
        self._register_rpc_consumers(connection)
Esempio n. 7
0
    def initialize(self, connection, driver_type):
        """Perform Agent Extension initialization.

        """
        self.resource_rpc = resources_rpc.ResourcesPullRpcApi()
        self.qos_driver = manager.NeutronManager.load_class_for_provider(
            'neutron.qos.agent_drivers', driver_type)()
        self.qos_driver.initialize()

        # we cannot use a dict of sets here because port dicts are not hashable
        self.qos_policy_ports = collections.defaultdict(dict)
        self.known_ports = set()

        registry.subscribe(self._handle_notification, resources.QOS_POLICY)
        self._register_rpc_consumers(connection)
Esempio n. 8
0
    def test_push(self, manager_mock):
        resource_type_ = object()
        resource_ = object()
        event_type_ = object()

        context = mock.Mock()
        callback1 = mock.Mock()
        callback2 = mock.Mock()
        legacy_callback = mock.Mock()
        registry.register(callback1, 'x')
        registry.register(callback2, 'x')
        registry.subscribe(legacy_callback, 'x')
        callbacks = {callback1, callback2, legacy_callback}
        manager_mock().get_callbacks.return_value = callbacks
        registry.push(context, resource_type_, [resource_], event_type_)
        for callback in (callback1, callback2):
            callback.assert_called_with(context, resource_type_, [resource_],
                                        event_type_)
        legacy_callback.assert_called_with([resource_], event_type_)
Esempio n. 9
0
    def test_push(self, manager_mock):
        resource_type_ = object()
        resource_ = object()
        event_type_ = object()

        context = mock.Mock()
        callback1 = mock.Mock()
        callback2 = mock.Mock()
        legacy_callback = mock.Mock()
        registry.register(callback1, 'x')
        registry.register(callback2, 'x')
        registry.subscribe(legacy_callback, 'x')
        callbacks = {callback1, callback2, legacy_callback}
        manager_mock().get_callbacks.return_value = callbacks
        registry.push(context, resource_type_, [resource_], event_type_)
        for callback in (callback1, callback2):
            callback.assert_called_with(context, resource_type_,
                                        [resource_], event_type_)
        legacy_callback.assert_called_with([resource_], event_type_)
Esempio n. 10
0
 def test_subscribe(self, manager_mock):
     callback = lambda: None
     registry.subscribe(callback, 'TYPE')
     manager_mock().register.assert_called_with(callback, 'TYPE')
Esempio n. 11
0
 def test_subscribe(self, manager_mock):
     callback = lambda: None
     registry.subscribe(callback, 'TYPE')
     manager_mock().register.assert_called_with(callback, 'TYPE')