Public bug reported:

I tried the following on VMware using the VMwareVCDriver with nova-
network:

1. Create an instance
2. Create and associate a floating IP with the instance

It failed and printed out the following messages in n-api logs:

2014-08-12 13:54:29.578 ERROR nova.api.openstack 
[req-86d8f466-cfae-42ac-8340-9eac36d6fc71 demo demo] Caught error: Cannot load 
'instance' in the base class
2014-08-12 13:54:29.578 TRACE nova.api.openstack Traceback (most recent call 
last):
2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/opt/stack/nova/nova/api/openstack/__init__.py", line 124, in __call__
2014-08-12 13:54:29.578 TRACE nova.api.openstack     return 
req.get_response(self.application)
2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1320, in send
2014-08-12 13:54:29.578 TRACE nova.api.openstack     application, 
catch_exc_info=False)
2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1284, in 
call_application
2014-08-12 13:54:29.578 TRACE nova.api.openstack     app_iter = 
application(self.environ, start_response)
2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2014-08-12 13:54:29.578 TRACE nova.api.openstack     return resp(environ, 
start_response)
2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token.py", line 
565, in __call__
2014-08-12 13:54:29.578 TRACE nova.api.openstack     return self._app(env, 
start_response)
2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2014-08-12 13:54:29.578 TRACE nova.api.openstack     return resp(environ, 
start_response)
2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2014-08-12 13:54:29.578 TRACE nova.api.openstack     return resp(environ, 
start_response)
2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/routes/middleware.py", line 131, in __call__
2014-08-12 13:54:29.578 TRACE nova.api.openstack     response = 
self.app(environ, start_response)
2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2014-08-12 13:54:29.578 TRACE nova.api.openstack     return resp(environ, 
start_response)
2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
2014-08-12 13:54:29.578 TRACE nova.api.openstack     resp = self.call_func(req, 
*args, **self.kwargs)
2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
2014-08-12 13:54:29.578 TRACE nova.api.openstack     return self.func(req, 
*args, **kwargs)
2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/opt/stack/nova/nova/api/openstack/wsgi.py", line 908, in __call__
2014-08-12 13:54:29.578 TRACE nova.api.openstack     content_type, body, accept)
2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/opt/stack/nova/nova/api/openstack/wsgi.py", line 974, in _process_stack
2014-08-12 13:54:29.578 TRACE nova.api.openstack     action_result = 
self.dispatch(meth, request, action_args)
2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/opt/stack/nova/nova/api/openstack/wsgi.py", line 1058, in dispatch
2014-08-12 13:54:29.578 TRACE nova.api.openstack     return method(req=request, 
**action_args)
2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/opt/stack/nova/nova/api/openstack/compute/contrib/floating_ips.py", line 146, 
in index
2014-08-12 13:54:29.578 TRACE nova.api.openstack     
self._normalize_ip(floating_ip)
2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/opt/stack/nova/nova/api/openstack/compute/contrib/floating_ips.py", line 117, 
in _normalize_ip
2014-08-12 13:54:29.578 TRACE nova.api.openstack     floating_ip['instance'] = 
fixed_ip['instance']
2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/opt/stack/nova/nova/objects/base.py", line 447, in __getitem__
2014-08-12 13:54:29.578 TRACE nova.api.openstack     return getattr(self, name)
2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/opt/stack/nova/nova/objects/base.py", line 67, in getter
2014-08-12 13:54:29.578 TRACE nova.api.openstack     self.obj_load_attr(name)
2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/opt/stack/nova/nova/objects/base.py", line 375, in obj_load_attr
2014-08-12 13:54:29.578 TRACE nova.api.openstack     _("Cannot load '%s' in the 
base class") % attrname)
2014-08-12 13:54:29.578 TRACE nova.api.openstack NotImplementedError: Cannot 
load 'instance' in the base class
2014-08-12 13:54:29.579 INFO nova.api.openstack 
[req-86d8f466-cfae-42ac-8340-9eac36d6fc71 demo demo] 
http://10.131.179.211:8774/v2/875c3f62ef75400487e4a68679f8e239/os-floating-ips 
returned with HTTP 500
2014-08-12 13:54:29.580 DEBUG nova.api.openstack.wsgi 
[req-86d8f466-cfae-42ac-8340-9eac36d6fc71 demo demo] Returning 500 to user: The 
server has either erred or is incapable of performing the requested operation. 
from (pid=12246) __call__ /opt/stack/nova/nova/api/openstack/wsgi.py:1200


With the switch to using FloatingIP objects, it is not longer necessary to call 
_normalize_ip in nova/api/openstack/compute/contrib/floating_ips.py.  The 
updated code in nova/network/floating_ips.py and 
nova/api/openstack/compute/contrib/floating_ips.py has logic to get the 
instance associated with the floating IP, i.e. get_instance_by_floating_ip_addr.

** Affects: nova
     Importance: Undecided
     Assignee: Thang Pham (thang-pham)
         Status: New


** Tags: api network vmware

-- 
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/1356051

Title:
  Cannot load 'instance' in the base class

Status in OpenStack Compute (Nova):
  New

Bug description:
  I tried the following on VMware using the VMwareVCDriver with nova-
  network:

  1. Create an instance
  2. Create and associate a floating IP with the instance

  It failed and printed out the following messages in n-api logs:

  2014-08-12 13:54:29.578 ERROR nova.api.openstack 
[req-86d8f466-cfae-42ac-8340-9eac36d6fc71 demo demo] Caught error: Cannot load 
'instance' in the base class
  2014-08-12 13:54:29.578 TRACE nova.api.openstack Traceback (most recent call 
last):
  2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/opt/stack/nova/nova/api/openstack/__init__.py", line 124, in __call__
  2014-08-12 13:54:29.578 TRACE nova.api.openstack     return 
req.get_response(self.application)
  2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1320, in send
  2014-08-12 13:54:29.578 TRACE nova.api.openstack     application, 
catch_exc_info=False)
  2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1284, in 
call_application
  2014-08-12 13:54:29.578 TRACE nova.api.openstack     app_iter = 
application(self.environ, start_response)
  2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2014-08-12 13:54:29.578 TRACE nova.api.openstack     return resp(environ, 
start_response)
  2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token.py", line 
565, in __call__
  2014-08-12 13:54:29.578 TRACE nova.api.openstack     return self._app(env, 
start_response)
  2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2014-08-12 13:54:29.578 TRACE nova.api.openstack     return resp(environ, 
start_response)
  2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2014-08-12 13:54:29.578 TRACE nova.api.openstack     return resp(environ, 
start_response)
  2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/routes/middleware.py", line 131, in __call__
  2014-08-12 13:54:29.578 TRACE nova.api.openstack     response = 
self.app(environ, start_response)
  2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2014-08-12 13:54:29.578 TRACE nova.api.openstack     return resp(environ, 
start_response)
  2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
  2014-08-12 13:54:29.578 TRACE nova.api.openstack     resp = 
self.call_func(req, *args, **self.kwargs)
  2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
  2014-08-12 13:54:29.578 TRACE nova.api.openstack     return self.func(req, 
*args, **kwargs)
  2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/opt/stack/nova/nova/api/openstack/wsgi.py", line 908, in __call__
  2014-08-12 13:54:29.578 TRACE nova.api.openstack     content_type, body, 
accept)
  2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/opt/stack/nova/nova/api/openstack/wsgi.py", line 974, in _process_stack
  2014-08-12 13:54:29.578 TRACE nova.api.openstack     action_result = 
self.dispatch(meth, request, action_args)
  2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/opt/stack/nova/nova/api/openstack/wsgi.py", line 1058, in dispatch
  2014-08-12 13:54:29.578 TRACE nova.api.openstack     return 
method(req=request, **action_args)
  2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/opt/stack/nova/nova/api/openstack/compute/contrib/floating_ips.py", line 146, 
in index
  2014-08-12 13:54:29.578 TRACE nova.api.openstack     
self._normalize_ip(floating_ip)
  2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/opt/stack/nova/nova/api/openstack/compute/contrib/floating_ips.py", line 117, 
in _normalize_ip
  2014-08-12 13:54:29.578 TRACE nova.api.openstack     floating_ip['instance'] 
= fixed_ip['instance']
  2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/opt/stack/nova/nova/objects/base.py", line 447, in __getitem__
  2014-08-12 13:54:29.578 TRACE nova.api.openstack     return getattr(self, 
name)
  2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/opt/stack/nova/nova/objects/base.py", line 67, in getter
  2014-08-12 13:54:29.578 TRACE nova.api.openstack     self.obj_load_attr(name)
  2014-08-12 13:54:29.578 TRACE nova.api.openstack   File 
"/opt/stack/nova/nova/objects/base.py", line 375, in obj_load_attr
  2014-08-12 13:54:29.578 TRACE nova.api.openstack     _("Cannot load '%s' in 
the base class") % attrname)
  2014-08-12 13:54:29.578 TRACE nova.api.openstack NotImplementedError: Cannot 
load 'instance' in the base class
  2014-08-12 13:54:29.579 INFO nova.api.openstack 
[req-86d8f466-cfae-42ac-8340-9eac36d6fc71 demo demo] 
http://10.131.179.211:8774/v2/875c3f62ef75400487e4a68679f8e239/os-floating-ips 
returned with HTTP 500
  2014-08-12 13:54:29.580 DEBUG nova.api.openstack.wsgi 
[req-86d8f466-cfae-42ac-8340-9eac36d6fc71 demo demo] Returning 500 to user: The 
server has either erred or is incapable of performing the requested operation. 
from (pid=12246) __call__ /opt/stack/nova/nova/api/openstack/wsgi.py:1200

  
  With the switch to using FloatingIP objects, it is not longer necessary to 
call _normalize_ip in nova/api/openstack/compute/contrib/floating_ips.py.  The 
updated code in nova/network/floating_ips.py and 
nova/api/openstack/compute/contrib/floating_ips.py has logic to get the 
instance associated with the floating IP, i.e. get_instance_by_floating_ip_addr.

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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to