)]}'
{"nova/compute/api.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"115a08bcf40fd2206f04db21c154d3ac162ff68b","unresolved":false,"context_lines":[{"line_number":3347,"context_line":"            reqspec \u003d objects.RequestSpec.get_by_instance_uuid("},{"line_number":3348,"context_line":"                context, instance.uuid)"},{"line_number":3349,"context_line":"            reqspec.flavor \u003d instance.old_flavor"},{"line_number":3350,"context_line":"            reqspec.save()"},{"line_number":3351,"context_line":"        except exception.RequestSpecNotFound:"},{"line_number":3352,"context_line":"            # TODO(mriedem): Make this a failure in Stein when we drop"},{"line_number":3353,"context_line":"            # compatibility for missing request specs."}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_cc902546","line":3350,"updated":"2018-09-10 22:12:20.000000000","message":"I had been thinking, what if the revert_resize fails, we end up with a wrong request spec. But, this is no different or worse than what we\u0027re currently doing for resize (we update the request spec to the new flavor before we cast to compute and do nothing to restore it in the case of failure). And revert_resize is also a cast to compute, so we can\u0027t know whether it failed here. And we can\u0027t restore the request spec in compute because that would be an up-call to the API database that will not work in a multi-cell split MQ deployment.","commit_id":"ef3849e2da1c94df519debcb14ba15af9bd01a60"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dfffdc1912cd7aa416c1bd96b2517aeaf7658ad5","unresolved":false,"context_lines":[{"line_number":3347,"context_line":"            reqspec \u003d objects.RequestSpec.get_by_instance_uuid("},{"line_number":3348,"context_line":"                context, instance.uuid)"},{"line_number":3349,"context_line":"            reqspec.flavor \u003d instance.old_flavor"},{"line_number":3350,"context_line":"            reqspec.save()"},{"line_number":3351,"context_line":"        except exception.RequestSpecNotFound:"},{"line_number":3352,"context_line":"            # TODO(mriedem): Make this a failure in Stein when we drop"},{"line_number":3353,"context_line":"            # compatibility for missing request specs."}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_f54c7d40","line":3350,"in_reply_to":"3f79a3b5_cc902546","updated":"2018-09-13 17:17:15.000000000","message":"We could always do something janky like spawn a thread that polls the instance task_state (or whatever) to wait for the operation to be done and if it fails, we revert the request spec change, but that would be a separate change - and likely something we\u0027d want to write generically since it\u0027s a common problem.","commit_id":"ef3849e2da1c94df519debcb14ba15af9bd01a60"}]}
