)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"84d58b8e7b7aa615ed1da62eff71f3bd16184b72","unresolved":false,"context_lines":[{"line_number":31,"context_line":"   The problem with this is it tightly couples the attributes that we"},{"line_number":32,"context_line":"   need to get up front to what the view builder is showing, and those"},{"line_number":33,"context_line":"   would have to be kept in sync if we ever expose new attributes on"},{"line_number":34,"context_line":"   the instance."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"2. When lazy-loading object attributes, use read_deleted\u003d\u0027yes\u0027. There"},{"line_number":37,"context_line":"   are two downsides to this:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_50766907","line":34,"updated":"2015-08-21 21:03:37.000000000","message":"I think the approach in this patch is sound and worth doing now.  Longer term I think a coordination between the view builder and the instance lookup makes sense.  Something like\n\n    attrs \u003d view_builder.get_exposed_instance_properties\n    objects.Instance.get_by_uuid(..., expected_attrs\u003dattrs)","commit_id":"27911265c81383e5bac648e6ff723a29d40f2d94"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"55cb7fae24844d6167b95df3111657cd7aa761a9","unresolved":false,"context_lines":[{"line_number":31,"context_line":"   The problem with this is it tightly couples the attributes that we"},{"line_number":32,"context_line":"   need to get up front to what the view builder is showing, and those"},{"line_number":33,"context_line":"   would have to be kept in sync if we ever expose new attributes on"},{"line_number":34,"context_line":"   the instance."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"2. When lazy-loading object attributes, use read_deleted\u003d\u0027yes\u0027. There"},{"line_number":37,"context_line":"   are two downsides to this:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_f05d3d7a","line":34,"in_reply_to":"fa1b9901_50766907","updated":"2015-08-21 21:06:39.000000000","message":"Heh, yeah, I just thought the same thing in IRC when you mentioned that.","commit_id":"27911265c81383e5bac648e6ff723a29d40f2d94"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7ef420047c1ed6c805fc26b18763973a68dd9703","unresolved":false,"context_lines":[{"line_number":31,"context_line":"   The problem with this is it tightly couples the attributes that we"},{"line_number":32,"context_line":"   need to get up front to what the view builder is showing, and those"},{"line_number":33,"context_line":"   would have to be kept in sync if we ever expose new attributes on"},{"line_number":34,"context_line":"   the instance."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"2. When lazy-loading object attributes, use read_deleted\u003d\u0027yes\u0027. There"},{"line_number":37,"context_line":"   are two downsides to this:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_377de4e7","line":34,"in_reply_to":"fa1b9901_f05d3d7a","updated":"2015-08-22 01:47:58.000000000","message":"Here is that alternative in a rough Friday night form:\n\nhttps://review.openstack.org/#/c/215859/","commit_id":"27911265c81383e5bac648e6ff723a29d40f2d94"}],"nova/api/openstack/compute/views/servers.py":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"84d58b8e7b7aa615ed1da62eff71f3bd16184b72","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                server_list.append(func(request, server)[\"server\"])"},{"line_number":158,"context_line":"            except exception.InstanceNotFound:"},{"line_number":159,"context_line":"                with excutils.save_and_reraise_exception() as ctxt:"},{"line_number":160,"context_line":"                    if all_tenants:"},{"line_number":161,"context_line":"                        filtered_servers.remove(server)"},{"line_number":162,"context_line":"                        ctxt.reraise \u003d False"},{"line_number":163,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_7045adb1","line":160,"updated":"2015-08-21 21:03:37.000000000","message":"I don\u0027t think it matters whether this was used with all_tenants or not.  If the instance was deleted before the list call finishes it should be filtered out.  Or use read_deleted\u003dyes.  But either way I think the behavior should be consistent whether or not all_tenants is used.\n\nAlso, I prefer this to using read_deleted\u003dyes.","commit_id":"27911265c81383e5bac648e6ff723a29d40f2d94"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"55cb7fae24844d6167b95df3111657cd7aa761a9","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                server_list.append(func(request, server)[\"server\"])"},{"line_number":158,"context_line":"            except exception.InstanceNotFound:"},{"line_number":159,"context_line":"                with excutils.save_and_reraise_exception() as ctxt:"},{"line_number":160,"context_line":"                    if all_tenants:"},{"line_number":161,"context_line":"                        filtered_servers.remove(server)"},{"line_number":162,"context_line":"                        ctxt.reraise \u003d False"},{"line_number":163,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_10c6b116","line":160,"in_reply_to":"fa1b9901_7045adb1","updated":"2015-08-21 21:06:39.000000000","message":"Yeah, I can\u0027t really think of a great reason to only do it for all_tenants.  I just had that in mind since the tempest test that failed was using all_tenants and that\u0027s probably the case that gives the highest probability of hitting this race, but if I\u0027m not an admin and just listing my instances, and one is deleted by the time we lazy-load here, then I don\u0027t really care to see it (since it\u0027s already gone).","commit_id":"27911265c81383e5bac648e6ff723a29d40f2d94"}]}
