← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1575285] [NEW] _BroadcastMessage._send_response raises TypeError

 

Public bug reported:

The class _BaseMessage defines a method named _send_json_responses,
which takes a named parameter neighbor_only. Later on in the same class,
another method _send_response makes a call to _send_json_responses (on
line 285), setting neighbor_only explicitly.

However, a subclass of _BaseMessage, _BroadcastMessage overrides
_send_json_responses with a definition that does not have neighbor_only
as a named parameter. Therefore if _send_response is ever called on an
object of type _BroadcastMessage, a TypeError will be raised.

One option would be to change the definition of
_BroadcastMessage._send_json_reponses to allow neighbour_only to be
passed even though it is not required.

    def _send_json_responses(self, json_responses,neighbour_only=None):
        """Responses to broadcast messages always need to go to the
        neighbor cell from which we received this message.  That
        cell aggregates the responses and makes sure to forward them
        to the correct source.
        """
        return super(_BroadcastMessage, self)._send_json_responses(
                json_responses, neighbor_only=True, fanout=True)

** Affects: nova
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1575285

Title:
  _BroadcastMessage._send_response raises TypeError

Status in OpenStack Compute (nova):
  New

Bug description:
  The class _BaseMessage defines a method named _send_json_responses,
  which takes a named parameter neighbor_only. Later on in the same
  class, another method _send_response makes a call to
  _send_json_responses (on line 285), setting neighbor_only explicitly.

  However, a subclass of _BaseMessage, _BroadcastMessage overrides
  _send_json_responses with a definition that does not have
  neighbor_only as a named parameter. Therefore if _send_response is
  ever called on an object of type _BroadcastMessage, a TypeError will
  be raised.

  One option would be to change the definition of
  _BroadcastMessage._send_json_reponses to allow neighbour_only to be
  passed even though it is not required.

      def _send_json_responses(self, json_responses,neighbour_only=None):
          """Responses to broadcast messages always need to go to the
          neighbor cell from which we received this message.  That
          cell aggregates the responses and makes sure to forward them
          to the correct source.
          """
          return super(_BroadcastMessage, self)._send_json_responses(
                  json_responses, neighbor_only=True, fanout=True)

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1575285/+subscriptions


Follow ups