Esempio n. 1
0
    def _push(self, context, resource_type, resource_list, event_type):
        """Push an event and list of resources of the same type to agents."""
        _validate_resource_type(resource_type)
        compat_call = len(resource_list) == 1

        for version in version_manager.get_resource_versions(resource_type):
            cctxt = self._prepare_object_fanout_context(
                resource_list[0], version,
                rpc_version='1.0' if compat_call else '1.1')

            dehydrated_resources = [
                resource.obj_to_primitive(target_version=version)
                for resource in resource_list]

            if compat_call:
                #TODO(mangelajo): remove in Ocata, backwards compatibility
                #                 for agents expecting a single element as
                #                 a single element instead of a list, this
                #                 is only relevant to the QoSPolicy topic queue
                cctxt.cast(context, 'push',
                           resource=dehydrated_resources[0],
                           event_type=event_type)
            else:
                cctxt.cast(context, 'push',
                           resource_list=dehydrated_resources,
                           event_type=event_type)
Esempio n. 2
0
    def _push(self, context, resource_type, resource_list, event_type):
        """Push an event and list of resources of the same type to agents."""
        _validate_resource_type(resource_type)
        compat_call = len(resource_list) == 1

        for version in version_manager.get_resource_versions(resource_type):
            cctxt = self._prepare_object_fanout_context(
                resource_list[0], version,
                rpc_version='1.0' if compat_call else '1.1')

            dehydrated_resources = [
                resource.obj_to_primitive(target_version=version)
                for resource in resource_list]

            if compat_call:
                #TODO(mangelajo): remove in Ocata, backwards compatibility
                #                 for agents expecting a single element as
                #                 a single element instead of a list, this
                #                 is only relevant to the QoSPolicy topic queue
                cctxt.cast(context, 'push',
                           resource=dehydrated_resources[0],
                           event_type=event_type)
            else:
                cctxt.cast(context, 'push',
                           resource_list=dehydrated_resources,
                           event_type=event_type)
Esempio n. 3
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)
Esempio n. 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)
Esempio n. 5
0
    def _push(self, context, resource_type, resource_list, event_type):
        """Push an event and list of resources of the same type to agents."""
        _validate_resource_type(resource_type)

        for version in version_manager.get_resource_versions(resource_type):
            cctxt = self._prepare_object_fanout_context(
                resource_list[0], version, rpc_version='1.1')

            dehydrated_resources = [
                resource.obj_to_primitive(target_version=version)
                for resource in resource_list]

            cctxt.cast(context, 'push',
                       resource_list=dehydrated_resources,
                       event_type=event_type)
Esempio n. 6
0
    def _push(self, context, resource_type, resource_list, event_type):
        """Push an event and list of resources of the same type to agents."""
        _validate_resource_type(resource_type)

        for version in version_manager.get_resource_versions(resource_type):
            cctxt = self._prepare_object_fanout_context(resource_list[0],
                                                        version,
                                                        rpc_version='1.1')

            dehydrated_resources = [
                resource.obj_to_primitive(target_version=version)
                for resource in resource_list
            ]

            cctxt.cast(context,
                       'push',
                       resource_list=dehydrated_resources,
                       event_type=event_type)