← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1616827] [NEW] Network topology fail if router service is disabled

 

Public bug reported:

In neutron, L3 service is disable.

In horizon, I disabled router features in local_setting

OPENSTACK_NEUTRON_NETWORK = {
    'enable_distributed_router': False,
    'enable_firewall': False,
    'enable_ha_router': False,
    'enable_lb': True,
    'enable_quotas': True,
    'enable_security_group': True,
    'enable_vpn': False,
    'profile_support': None,
    'enable_router': False,
    'enable_ipv6': False,
}

But network topology fail because neutron return 404 when horizon GET on
/v2.0/routers.json

Horizon trace :

2016-08-25 09:21:02,416 5007 ERROR django.request Internal Server Error: /dashboard/project/network_topology/
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib/python2.7/site-packages/horizon/decorators.py", line 36, in dec
    return view_func(request, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/horizon/decorators.py", line 52, in dec
    return view_func(request, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/horizon/decorators.py", line 36, in dec
    return view_func(request, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/horizon/decorators.py", line 84, in dec
    return view_func(request, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/django/views/generic/base.py", line 71, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/django/views/generic/base.py", line 89, in dispatch
    return handler(request, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/django/views/generic/base.py", line 158, in get
    context = self.get_context_data(**kwargs)
  File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/dashboards/project/network_topology/views.py", line 204, in get_context_data
    context['instance_quota_exceeded'] = self._quota_exceeded('instances')
  File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/dashboards/project/network_topology/views.py", line 194, in _quota_exceeded
    usages = quotas.tenant_quota_usages(self.request)
  File "/usr/lib/python2.7/site-packages/horizon/utils/memoized.py", line 90, in wrapped
    value = cache[key] = func(*args, **kwargs)
  File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/usage/quotas.py", line 376, in tenant_quota_usages
    _get_tenant_network_usages(request, usages, disabled_quotas, tenant_id)
  File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/usage/quotas.py", line 333, in _get_tenant_network_usages
    routers = neutron.router_list(request)
  File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/api/neutron.py", line 950, in router_list
    routers = neutronclient(request).list_routers(**params).get('routers')
  File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 97, in with_params
    ret = self.function(instance, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 750, in list_routers
    **_params)
  File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 373, in list
    for r in self._pagination(collection, path, **params):
  File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 388, in _pagination
    res = self.get(path, params=params)
  File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 358, in get
    headers=headers, params=params)
  File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 335, in retry_request
    headers=headers, params=params)
  File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 298, in do_request
    self._handle_fault_response(status_code, replybody, resp)
  File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 273, in _handle_fault_response
    exception_handler_v20(status_code, error_body)
  File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 84, in exception_handler_v20
    request_ids=request_ids)
NotFound: 404 Not Found

The resource could not be found.


Neutron logs :

"GET /v2.0/routers.json HTTP/1.1" 404 266 0.004036


I guess when  'enable_router': False,  we need to disable router features in network topology.

** Affects: horizon
     Importance: Undecided
         Status: New

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

Title:
  Network topology fail if router service is disabled

Status in OpenStack Dashboard (Horizon):
  New

Bug description:
  In neutron, L3 service is disable.

  In horizon, I disabled router features in local_setting

  OPENSTACK_NEUTRON_NETWORK = {
      'enable_distributed_router': False,
      'enable_firewall': False,
      'enable_ha_router': False,
      'enable_lb': True,
      'enable_quotas': True,
      'enable_security_group': True,
      'enable_vpn': False,
      'profile_support': None,
      'enable_router': False,
      'enable_ipv6': False,
  }

  But network topology fail because neutron return 404 when horizon GET
  on /v2.0/routers.json

  Horizon trace :

  2016-08-25 09:21:02,416 5007 ERROR django.request Internal Server Error: /dashboard/project/network_topology/
  Traceback (most recent call last):
    File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 132, in get_response
      response = wrapped_callback(request, *callback_args, **callback_kwargs)
    File "/usr/lib/python2.7/site-packages/horizon/decorators.py", line 36, in dec
      return view_func(request, *args, **kwargs)
    File "/usr/lib/python2.7/site-packages/horizon/decorators.py", line 52, in dec
      return view_func(request, *args, **kwargs)
    File "/usr/lib/python2.7/site-packages/horizon/decorators.py", line 36, in dec
      return view_func(request, *args, **kwargs)
    File "/usr/lib/python2.7/site-packages/horizon/decorators.py", line 84, in dec
      return view_func(request, *args, **kwargs)
    File "/usr/lib/python2.7/site-packages/django/views/generic/base.py", line 71, in view
      return self.dispatch(request, *args, **kwargs)
    File "/usr/lib/python2.7/site-packages/django/views/generic/base.py", line 89, in dispatch
      return handler(request, *args, **kwargs)
    File "/usr/lib/python2.7/site-packages/django/views/generic/base.py", line 158, in get
      context = self.get_context_data(**kwargs)
    File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/dashboards/project/network_topology/views.py", line 204, in get_context_data
      context['instance_quota_exceeded'] = self._quota_exceeded('instances')
    File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/dashboards/project/network_topology/views.py", line 194, in _quota_exceeded
      usages = quotas.tenant_quota_usages(self.request)
    File "/usr/lib/python2.7/site-packages/horizon/utils/memoized.py", line 90, in wrapped
      value = cache[key] = func(*args, **kwargs)
    File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/usage/quotas.py", line 376, in tenant_quota_usages
      _get_tenant_network_usages(request, usages, disabled_quotas, tenant_id)
    File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/usage/quotas.py", line 333, in _get_tenant_network_usages
      routers = neutron.router_list(request)
    File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/api/neutron.py", line 950, in router_list
      routers = neutronclient(request).list_routers(**params).get('routers')
    File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 97, in with_params
      ret = self.function(instance, *args, **kwargs)
    File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 750, in list_routers
      **_params)
    File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 373, in list
      for r in self._pagination(collection, path, **params):
    File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 388, in _pagination
      res = self.get(path, params=params)
    File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 358, in get
      headers=headers, params=params)
    File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 335, in retry_request
      headers=headers, params=params)
    File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 298, in do_request
      self._handle_fault_response(status_code, replybody, resp)
    File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 273, in _handle_fault_response
      exception_handler_v20(status_code, error_body)
    File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 84, in exception_handler_v20
      request_ids=request_ids)
  NotFound: 404 Not Found

  The resource could not be found.

  
  Neutron logs :

  "GET /v2.0/routers.json HTTP/1.1" 404 266 0.004036

  
  I guess when  'enable_router': False,  we need to disable router features in network topology.

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


Follow ups