Comment 3 for bug 981263

Revision history for this message
Morgan Fainberg (mdrnstm) wrote : Re: [Bug 981263] Re: Nova API should present deleted flavors (instance_types) in some cases

Thanks for the info! I have found that there are some other issues I
am trying to solve before submitting to gerrit. I did sign the CLA so
that I can contribute it. Hopefully this week will make sense to
submit it.

Actually, perhaps you have a bit of advice on this. The fix in that
patch makes it so that horizon cannot create new flavors (because of
the way it detects the "highest" number flavorId); when dealing with
problems like this that span projects with strange side effects, does
it make sense to make the bug "affect" the other project and try and
submit a patch for both (via gerrit) on the same bug? I am trying to
wade through the best practices of OpenStack for this type of stuff
and any advice would be welcome!

Thanks!
Morgan Fainberg

Sent from my iPad (please excuse any inane typos any autocorrect lameness)

On Apr 21, 2012, at 5:35, Russell Bryant <email address hidden> wrote:

> Thanks for the patch! It needs to be submitted through gerrit, though.
>
> http://wiki.openstack.org/HowToContribute
>
> See "If you're a developer, start here:"
>
> ** Changed in: nova
> Status: New => Triaged
>
> ** Changed in: nova
> Importance: Undecided => Medium
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/981263
>
> Title:
> Nova API should present deleted flavors (instance_types) in some cases
>
> Status in OpenStack Compute (Nova):
> Triaged
>
> Bug description:
> In certain cases Nova API should return instance flavors
> (instance_types) that are deleted. Notably if there is an instance
> that is "active" and the flavor has been deleted, we need to pull the
> instance_type data down to ensure that we can apply network specifics
> attached to that instance_type on startup of nova-compute.
>
> The second case that a deleted flavor should be returned is if the
> instance_type is being requested by ID, as IDs should not be reused.
> This is important for Horizon to be able to properly retrieve
> "instances" for a given project (in Nova Dashboard and Syspanel
> Dashboard).
>
> Example traceback you can see if you delete a flavor and restart nova
> compute:
>
> resource: 'NoneType' object is not subscriptable
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi Traceback (most recent call last):
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 851, in _process_stack
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi action_result = self.dispatch(meth, request, action_args)
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 926, in dispatch
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi return method(req=request, **action_args)
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi File "/opt/stack/nova/nova/api/openstack/compute/servers.py", line 382, in detail
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi servers = self._get_servers(req, is_detail=True)
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi File "/opt/stack/nova/nova/api/openstack/compute/servers.py", line 465, in _get_servers
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi return self._view_builder.detail(req, limited_list)
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi File "/opt/stack/nova/nova/api/openstack/compute/views/servers.py", line 123, in detail
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi return self._list_view(self.show, request, instances)
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi File "/opt/stack/nova/nova/api/openstack/compute/views/servers.py", line 127, in _list_view
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi server_list = [func(request, server)["server"] for server in servers]
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi File "/opt/stack/nova/nova/api/openstack/compute/views/servers.py", line 61, in wrapped
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi return func(self, request, instance)
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi File "/opt/stack/nova/nova/api/openstack/compute/views/servers.py", line 97, in show
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi "flavor": self._get_flavor(request, instance),
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi File "/opt/stack/nova/nova/api/openstack/compute/views/servers.py", line 172, in _get_flavor
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi flavor_id = instance["instance_type"]["flavorid"]
> 2012-04-13 19:31:18 TRACE nova.api.openstack.wsgi TypeError: 'NoneType' object is not subscriptable
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/nova/+bug/981263/+subscriptions