← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1075089] Re: Exception message muted in quantum/db/l3_db.py

 

** Changed in: neutron
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1075089

Title:
  Exception message muted in quantum/db/l3_db.py

Status in OpenStack Neutron (virtual network service):
  Fix Released

Bug description:
  The message in the BadRequest exception raised in line 557 is being
  muted in the logfile by line 575 since the BadRequest is catched and
  writes its own log message.

  A InvalidExternalNetwork exception should be defined and it should be
  catched in the try-catch statement.

          try:
              with context.session.begin(subtransactions=True):
                  # This external port is never exposed to the tenant.
                  # it is used purely for internal system and admin use when
                  # managing floating IPs.
                  external_port = self.create_port(context.elevated(), {
                      'port':
                      {'tenant_id': '', # tenant intentionally not set
                       'network_id': f_net_id,
                       'mac_address': attributes.ATTR_NOT_SPECIFIED,
                       'fixed_ips': attributes.ATTR_NOT_SPECIFIED,
                       'admin_state_up': True,
                       'device_id': fip_id,
                       'device_owner': DEVICE_OWNER_FLOATINGIP,
                       'name': ''}})
                  # Ensure IP addresses are allocated on external port
                  if not external_port['fixed_ips']:
                      msg = "Unable to find any IP address on external network"
                      raise q_exc.BadRequest(resource='floatingip', msg=msg) <----- raised

                  floating_fixed_ip = external_port['fixed_ips'][0]
                  floating_ip_address = floating_fixed_ip['ip_address']
                  floatingip_db = FloatingIP(
                      id=fip_id,
                      tenant_id=tenant_id,
                      floating_network_id=fip['floating_network_id'],
                      floating_ip_address=floating_ip_address,
                      floating_port_id=external_port['id'])
                  fip['tenant_id'] = tenant_id
                  # Update association with internal port
                  # and define external IP address
                  self._update_fip_assoc(context, fip,
                                         floatingip_db, external_port)
                  context.session.add(floatingip_db)
          # TODO(salvatore-orlando): Avoid broad catch
          # Maybe by introducing base class for L3 exceptions
          except q_exc.BadRequest: <----------------------------------------------- caught
              LOG.exception("Unable to create Floating ip due to a "
                            "malformed request")
              raise
          except Exception:
              LOG.exception("Floating IP association failed")
              raise

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