Beispiel #1
0
 def push(self, context, resource, event_type):
     resource_obj = obj_base.NeutronObject.clean_obj_from_primitive(
         resource)
     LOG.debug("Resources notification (%(event_type)s): %(resource)s",
               {'event_type': event_type, 'resource': repr(resource_obj)})
     resource_type = resources.get_resource_type(resource_obj)
     cons_registry.push(resource_type, resource_obj, event_type)
Beispiel #2
0
 def push(self, context, resource, event_type):
     resource_obj = obj_base.NeutronObject.clean_obj_from_primitive(
         resource)
     LOG.debug("Resources notification (%(event_type)s): %(resource)s",
               {'event_type': event_type, 'resource': repr(resource_obj)})
     resource_type = resources.get_resource_type(resource_obj)
     cons_registry.push(resource_type, resource_obj, event_type)
Beispiel #3
0
 def push(self, context, resource, event_type):
     resource_type = resources.get_resource_type(resource)
     _validate_resource_type(resource_type)
     cctxt = self._prepare_object_fanout_context(resource)
     #TODO(QoS): Push notifications for every known version once we have
     #           multiple of those
     dehydrated_resource = resource.obj_to_primitive()
     cctxt.cast(context, 'push',
                resource=dehydrated_resource,
                event_type=event_type)
Beispiel #4
0
 def push(self, context, resource, event_type):
     resource_type = resources.get_resource_type(resource)
     _validate_resource_type(resource_type)
     versions = version_manager.get_resource_versions(resource_type)
     for version in versions:
         cctxt = self._prepare_object_fanout_context(resource, version)
         dehydrated_resource = resource.obj_to_primitive(
             target_version=version)
         cctxt.cast(context, 'push',
                    resource=dehydrated_resource,
                    event_type=event_type)
Beispiel #5
0
 def push(self, context, resource, event_type):
     resource_type = resources.get_resource_type(resource)
     _validate_resource_type(resource_type)
     versions = version_manager.get_resource_versions(resource_type)
     for version in versions:
         cctxt = self._prepare_object_fanout_context(resource, version)
         dehydrated_resource = resource.obj_to_primitive(
             target_version=version)
         cctxt.cast(context, 'push',
                    resource=dehydrated_resource,
                    event_type=event_type)
Beispiel #6
0
 def push(self, context, resource, event_type):
     resource_type = resources.get_resource_type(resource)
     _validate_resource_type(resource_type)
     cctxt = self._prepare_object_fanout_context(resource)
     #TODO(QoS): Push notifications for every known version once we have
     #           multiple of those
     dehydrated_resource = resource.obj_to_primitive()
     cctxt.cast(context,
                'push',
                resource=dehydrated_resource,
                event_type=event_type)
Beispiel #7
0
    def push(self, context, **kwargs):
        """Push receiver, will always receive resources of the same type."""
        resource_list = kwargs['resource_list']
        event_type = kwargs['event_type']

        resource_objs = [
            obj_base.NeutronObject.clean_obj_from_primitive(resource)
            for resource in resource_list]

        resource_type = resources.get_resource_type(resource_objs[0])
        cons_registry.push(context, resource_type, resource_objs, event_type)
Beispiel #8
0
    def test__prepare_object_fanout_context(self):
        expected_topic = topics.RESOURCE_TOPIC_PATTERN % {
            'resource_type': resources.get_resource_type(
                self.resource_objs[0]),
            'version': TEST_VERSION}

        observed = self.rpc._prepare_object_fanout_context(
            self.resource_objs[0], self.resource_objs[0].VERSION, '1.0')

        self.rpc.client.prepare.assert_called_once_with(
            fanout=True, topic=expected_topic, version='1.0')
        self.assertEqual(self.cctxt_mock, observed)
Beispiel #9
0
    def test__prepare_object_fanout_context(self):
        expected_topic = topics.RESOURCE_TOPIC_PATTERN % {
            'resource_type': resources.get_resource_type(
                self.resource_objs[0]),
            'version': TEST_VERSION}

        observed = self.rpc._prepare_object_fanout_context(
            self.resource_objs[0], self.resource_objs[0].VERSION, '1.0')

        self.rpc.client.prepare.assert_called_once_with(
            fanout=True, topic=expected_topic, version='1.0')
        self.assertEqual(self.cctxt_mock, observed)
Beispiel #10
0
    def push(self, context, **kwargs):
        """Push receiver, will always receive resources of the same type."""
        resource_list = kwargs['resource_list']
        event_type = kwargs['event_type']

        resource_objs = [
            obj_base.NeutronObject.clean_obj_from_primitive(resource)
            for resource in resource_list
        ]

        resource_type = resources.get_resource_type(resource_objs[0])
        cons_registry.push(context, resource_type, resource_objs, event_type)
Beispiel #11
0
    def test__prepare_object_fanout_context(self):
        expected_topic = topics.RESOURCE_TOPIC_PATTERN % {
            'resource_type': resources.get_resource_type(self.resource_obj),
            'version': self.resource_obj.VERSION}

        with mock.patch.object(resources_rpc.resources, 'get_resource_cls',
                return_value=FakeResource):
            observed = self.rpc._prepare_object_fanout_context(
                self.resource_obj)

        self.rpc.client.prepare.assert_called_once_with(
            fanout=True, topic=expected_topic)
        self.assertEqual(self.cctxt_mock, observed)
    def test__prepare_object_fanout_context(self):
        expected_topic = topics.RESOURCE_TOPIC_PATTERN % {
            'resource_type': resources.get_resource_type(self.resource_obj),
            'version': self.resource_obj.VERSION}

        with mock.patch.object(resources_rpc.resources, 'get_resource_cls',
                return_value=FakeResource):
            observed = self.rpc._prepare_object_fanout_context(
                self.resource_obj, self.resource_obj.VERSION)

        self.rpc.client.prepare.assert_called_once_with(
            fanout=True, topic=expected_topic)
        self.assertEqual(self.cctxt_mock, observed)
Beispiel #13
0
    def push(self, context, **kwargs):
        """Push receiver, will always receive resources of the same type."""
        # TODO(mangelajo): accept single 'resource' parameter for backwards
        #                  compatibility during Newton, remove in Ocata
        resource_list = ([kwargs['resource']] if 'resource' in kwargs else
                         kwargs['resource_list'])
        event_type = kwargs['event_type']

        resource_objs = [
            obj_base.NeutronObject.clean_obj_from_primitive(resource)
            for resource in resource_list]

        resource_type = resources.get_resource_type(resource_objs[0])
        cons_registry.push(resource_type, resource_objs, event_type)
Beispiel #14
0
    def push(self, context, **kwargs):
        """Push receiver, will always receive resources of the same type."""
        # TODO(mangelajo): accept single 'resource' parameter for backwards
        #                  compatibility during Newton, remove in Ocata
        resource_list = ([kwargs['resource']] if 'resource' in kwargs else
                         kwargs['resource_list'])
        event_type = kwargs['event_type']

        resource_objs = [
            obj_base.NeutronObject.clean_obj_from_primitive(resource)
            for resource in resource_list]

        resource_type = resources.get_resource_type(resource_objs[0])
        cons_registry.push(context, resource_type, resource_objs, event_type)
Beispiel #15
0
 def test_get_resource_type(self):
     # we could use any other registered NeutronObject type here
     self.assertEqual(policy.QosPolicy.obj_name(),
                      resources.get_resource_type(policy.QosPolicy()))
Beispiel #16
0
 def test_get_resource_type_wrong_type(self):
     self.assertIsNone(resources.get_resource_type(object()))
Beispiel #17
0
 def test_get_resource_type_none(self):
     self.assertIsNone(resources.get_resource_type(None))
Beispiel #18
0
 def _classify_resources_by_type(resource_list):
     resources_by_type = collections.defaultdict(list)
     for resource in resource_list:
         resource_type = resources.get_resource_type(resource)
         resources_by_type[resource_type].append(resource)
     return resources_by_type
Beispiel #19
0
 def test_get_resource_type_none(self):
     self.assertIsNone(resources.get_resource_type(None))
Beispiel #20
0
 def _classify_resources_by_type(resource_list):
     resources_by_type = collections.defaultdict(list)
     for resource in resource_list:
         resource_type = resources.get_resource_type(resource)
         resources_by_type[resource_type].append(resource)
     return resources_by_type
Beispiel #21
0
 def test_get_resource_type(self):
     # we could use any other registered NeutronObject type here
     self.assertEqual(policy.QosPolicy.obj_name(),
                      resources.get_resource_type(policy.QosPolicy()))
Beispiel #22
0
 def test_get_resource_type_wrong_type(self):
     self.assertIsNone(resources.get_resource_type(object()))