)]}'
{"nova/virt/xenapi/vmops.py":[{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"9586ef0b9c29bd4bd5429435b2209d80576c5567","unresolved":false,"context_lines":[{"line_number":1004,"context_line":"        vbd_refs \u003d self._session.call_xenapi(\"VM.get_VBDs\", vm_ref)"},{"line_number":1005,"context_line":""},{"line_number":1006,"context_line":"        if len(vbd_refs) \u003d\u003d 0:"},{"line_number":1007,"context_line":"            raise Exception(_(\"Unable to find VBD for VM\"))"},{"line_number":1008,"context_line":"        elif len(vbd_refs) \u003d\u003d 1:"},{"line_number":1009,"context_line":"            # If we only have one VBD, assume it\u0027s the root fs"},{"line_number":1010,"context_line":"            vbd_ref \u003d vbd_refs[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAD3%2F%2F74M%3D","line":1007,"updated":"2012-01-20 23:43:24.000000000","message":"This will raise all of the way back to compute manager, which doesn\u0027t catch it.  It\u0027ll leave the instance in a \u0027rescuing\u0027 task_state (set in compute/api).  I don\u0027t think that\u0027s desirable, but I\u0027m not sure what would be.  Setting the instance vm_state to ERROR might be overboard... not sure.  Maybe task_state just gets reset to None and we make sure to add something to the instance_faults table?","commit_id":"ab252806c97c2983921ed045bc790b5db984da68"},{"author":{"_account_id":475,"name":"Rick Harris","email":"rick.harris@rackspace.com","username":"rconradharris"},"change_message_id":"7a2dfcd70cc12cd04d828762e6343065f12fd0d4","unresolved":false,"context_lines":[{"line_number":1004,"context_line":"        vbd_refs \u003d self._session.call_xenapi(\"VM.get_VBDs\", vm_ref)"},{"line_number":1005,"context_line":""},{"line_number":1006,"context_line":"        if len(vbd_refs) \u003d\u003d 0:"},{"line_number":1007,"context_line":"            raise Exception(_(\"Unable to find VBD for VM\"))"},{"line_number":1008,"context_line":"        elif len(vbd_refs) \u003d\u003d 1:"},{"line_number":1009,"context_line":"            # If we only have one VBD, assume it\u0027s the root fs"},{"line_number":1010,"context_line":"            vbd_ref \u003d vbd_refs[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAD3%2F%2F734%3D","line":1007,"in_reply_to":"AAAAD3%2F%2F74M%3D","updated":"2012-01-21 00:27:51.000000000","message":"Really can\u0027t think of anything that we can do that other than just erroring out the instance, giving the user a chance to delete the failed instance.\n\nThe unrescue-fix patch has been modified to handle rescue as well (as well as using a contextmanger to DRY up the code). So once both merge, should all be good.","commit_id":"ab252806c97c2983921ed045bc790b5db984da68"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"9586ef0b9c29bd4bd5429435b2209d80576c5567","unresolved":false,"context_lines":[{"line_number":1011,"context_line":"        else:"},{"line_number":1012,"context_line":"            # If we have more than one VBD, swap will be first by convention"},{"line_number":1013,"context_line":"            # with the root fs coming second"},{"line_number":1014,"context_line":"            vbd_ref \u003d vbd_refs[1]"},{"line_number":1015,"context_line":""},{"line_number":1016,"context_line":"        vdi_ref \u003d self._session.call_xenapi(\"VBD.get_record\", vbd_ref)[\"VDI\"]"},{"line_number":1017,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAD3%2F%2F74Q%3D","line":1014,"updated":"2012-01-20 23:43:24.000000000","message":"Curious why swap is always first?","commit_id":"ab252806c97c2983921ed045bc790b5db984da68"},{"author":{"_account_id":475,"name":"Rick Harris","email":"rick.harris@rackspace.com","username":"rconradharris"},"change_message_id":"7a2dfcd70cc12cd04d828762e6343065f12fd0d4","unresolved":false,"context_lines":[{"line_number":1011,"context_line":"        else:"},{"line_number":1012,"context_line":"            # If we have more than one VBD, swap will be first by convention"},{"line_number":1013,"context_line":"            # with the root fs coming second"},{"line_number":1014,"context_line":"            vbd_ref \u003d vbd_refs[1]"},{"line_number":1015,"context_line":""},{"line_number":1016,"context_line":"        vdi_ref \u003d self._session.call_xenapi(\"VBD.get_record\", vbd_ref)[\"VDI\"]"},{"line_number":1017,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAD3%2F%2F72w%3D","line":1014,"in_reply_to":"AAAAD3%2F%2F74Q%3D","updated":"2012-01-21 00:27:51.000000000","message":"Honestly not sure, agree it\u0027s a bit of a troubling assumption. Safer would be to use name-labels to guarantee we\u0027re getting root vs swap fs.\n\nHowever, the code has made this assumption for quite a while, so my vote would be to stay the course with a separate tix to investigate this dubiousness.","commit_id":"ab252806c97c2983921ed045bc790b5db984da68"}]}
