)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":5371,"name":"Mathew Odden","email":"locke105@gmail.com","username":"locke105"},"change_message_id":"3701203b226ba9bdb5d56d7cdcc8b30a636b642e","unresolved":false,"context_lines":[{"line_number":466,"context_line":"        if instance[\u0027task_state\u0027] \u003d\u003d task_states.RESIZE_MIGRATING:"},{"line_number":467,"context_line":"            # We crashed during resize/migration, so roll back for safety"},{"line_number":468,"context_line":"            try:"},{"line_number":469,"context_line":"                self.driver.finish_revert_migration("},{"line_number":470,"context_line":"                    instance, self._legacy_nw_info(net_info),"},{"line_number":471,"context_line":"                    self._get_instance_volume_block_device_info(context,"},{"line_number":472,"context_line":"                                                                instance))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2BnDk%3D","line":469,"updated":"2013-02-25 22:36:31.000000000","message":"if we crashed during migration, do we know that the \"new\" instance will get deleted on the destination host? In the good path revert, compute manager calls destroy on the \"new\" instance on the destination system, followed by a finish_revert_migration to turn the old one back on at the source (assuming that is where this is running.)\n\nI\u0027m guessing since this is in init_instance for such an instance on this host, we can assume that the DB entry thinks it should be here, so that is OK. It might be prudent to verify the destination cleans up the failed migration on its end.","commit_id":"d4616ff4677bdf198d4392219c9d06f22b026bb0"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":4468,"name":"Wangpan","email":"hzwangpan@corp.netease.com","username":"hzwangpan"},"change_message_id":"7d90fad82a90567c9404644eb32039b25ee5f1ff","unresolved":false,"context_lines":[{"line_number":3500,"context_line":"        \"\"\"Make sure that a failed migrate doesn\u0027t prevent us from rolling"},{"line_number":3501,"context_line":"        back in a revert.\"\"\""},{"line_number":3502,"context_line":"        inst_base \u003d libvirt_utils.get_instance_path(instance)"},{"line_number":3503,"context_line":"        inst_base_resize \u003d inst_base + \"_resize\""},{"line_number":3504,"context_line":"        if os.path.exists(inst_base):"},{"line_number":3505,"context_line":"            shutil.rmtree(inst_base)"},{"line_number":3506,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2Bmj4%3D","line":3503,"updated":"2013-02-26 02:58:49.000000000","message":"May you remove this unused parameter?","commit_id":"095884fb6d89f945c3910b1ba41523c75bc7710a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"619aa668e5c21dbcd2e27e3e3d82d81d0c33e93c","unresolved":false,"context_lines":[{"line_number":3500,"context_line":"        \"\"\"Make sure that a failed migrate doesn\u0027t prevent us from rolling"},{"line_number":3501,"context_line":"        back in a revert.\"\"\""},{"line_number":3502,"context_line":"        inst_base \u003d libvirt_utils.get_instance_path(instance)"},{"line_number":3503,"context_line":"        inst_base_resize \u003d inst_base + \"_resize\""},{"line_number":3504,"context_line":"        if os.path.exists(inst_base):"},{"line_number":3505,"context_line":"            shutil.rmtree(inst_base)"},{"line_number":3506,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2Bl7Y%3D","line":3503,"in_reply_to":"AAAAM3%2F%2Bmj4%3D","updated":"2013-02-26 14:57:03.000000000","message":"Heh, oops, thanks :)","commit_id":"095884fb6d89f945c3910b1ba41523c75bc7710a"}],"nova/virt/powervm/driver.py":[{"author":{"_account_id":5371,"name":"Mathew Odden","email":"locke105@gmail.com","username":"locke105"},"change_message_id":"5b407f5c1a9a80c47c079cb608657c72ab7e64c7","unresolved":false,"context_lines":[{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        # Make sure we don\u0027t have a failed same-host migration still"},{"line_number":300,"context_line":"        # hanging around"},{"line_number":301,"context_line":"        self._powervm.destroy(instance[\u0027name\u0027])"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        # undo instance rename and start"},{"line_number":304,"context_line":"        new_name \u003d self._get_resize_name(instance[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Bk7Q%3D","line":301,"updated":"2013-02-26 22:30:51.000000000","message":"if instance[\u0027name\u0027] doesn\u0027t exist (like as expected) this will throw a PowerVMInstanceNotFound and that should be gracefully caught and handled\n\nthis could also be tucked inside an if like so to avoid the exception\n\n if self.instance_exists(instance[\u0027name\u0027]):","commit_id":"6b1aa4410f0c7b0089eb5d8328337f974b805938"},{"author":{"_account_id":5371,"name":"Mathew Odden","email":"locke105@gmail.com","username":"locke105"},"change_message_id":"a5d3cd75c6b75e38b3a3b4e113b1631ed5a11166","unresolved":false,"context_lines":[{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        # Make sure we don\u0027t have a failed same-host migration still"},{"line_number":300,"context_line":"        # hanging around"},{"line_number":301,"context_line":"        self._powervm.destroy(instance[\u0027name\u0027])"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        # undo instance rename and start"},{"line_number":304,"context_line":"        new_name \u003d self._get_resize_name(instance[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Bk2M%3D","line":301,"in_reply_to":"AAAAM3%2F%2Bk6E%3D","updated":"2013-02-26 23:04:44.000000000","message":"Right. Nevermind then, I missed that try except when I was scanning through _cleanup() in that same module.","commit_id":"6b1aa4410f0c7b0089eb5d8328337f974b805938"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9a3bb07e66c962019aec36ccc21c02375a94a87c","unresolved":false,"context_lines":[{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        # Make sure we don\u0027t have a failed same-host migration still"},{"line_number":300,"context_line":"        # hanging around"},{"line_number":301,"context_line":"        self._powervm.destroy(instance[\u0027name\u0027])"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        # undo instance rename and start"},{"line_number":304,"context_line":"        new_name \u003d self._get_resize_name(instance[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Bk6E%3D","line":301,"in_reply_to":"AAAAM3%2F%2Bk6Y%3D","updated":"2013-02-26 22:34:55.000000000","message":"So the reason I left this bare is because in operator.py, destroy() has a try..except around it for a not found exception. Are you saying that the PowerVMLPARInstanceNotFound is different than PowerVMInstanceNotFound?","commit_id":"6b1aa4410f0c7b0089eb5d8328337f974b805938"},{"author":{"_account_id":5371,"name":"Mathew Odden","email":"locke105@gmail.com","username":"locke105"},"change_message_id":"ca13e691da6e206fdf3164085966d344e2924030","unresolved":false,"context_lines":[{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        # Make sure we don\u0027t have a failed same-host migration still"},{"line_number":300,"context_line":"        # hanging around"},{"line_number":301,"context_line":"        self._powervm.destroy(instance[\u0027name\u0027])"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        # undo instance rename and start"},{"line_number":304,"context_line":"        new_name \u003d self._get_resize_name(instance[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Bk6M%3D","line":301,"in_reply_to":"AAAAM3%2F%2Bk6Y%3D","updated":"2013-02-26 22:34:54.000000000","message":"actually I guess the first would work and probably be more concise if just doing the delete call inside the if\n\nI need more caffeine :(","commit_id":"6b1aa4410f0c7b0089eb5d8328337f974b805938"},{"author":{"_account_id":5371,"name":"Mathew Odden","email":"locke105@gmail.com","username":"locke105"},"change_message_id":"9c8b4c2dd138f5693a25701e37ad6eb038071752","unresolved":false,"context_lines":[{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        # Make sure we don\u0027t have a failed same-host migration still"},{"line_number":300,"context_line":"        # hanging around"},{"line_number":301,"context_line":"        self._powervm.destroy(instance[\u0027name\u0027])"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        # undo instance rename and start"},{"line_number":304,"context_line":"        new_name \u003d self._get_resize_name(instance[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Bk6Y%3D","line":301,"in_reply_to":"AAAAM3%2F%2Bk7Q%3D","updated":"2013-02-26 22:32:59.000000000","message":"whops... if not self.instance_exists :)","commit_id":"6b1aa4410f0c7b0089eb5d8328337f974b805938"}],"nova/virt/xenapi/vmops.py":[{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"6701f98a30d298455d752c027b17d815d675cbd5","unresolved":false,"context_lines":[{"line_number":214,"context_line":"        # as might be the case in a failed migrate-to-same-host situation"},{"line_number":215,"context_line":"        new_ref \u003d vm_utils.lookup(self._session, instance[\u0027name\u0027])"},{"line_number":216,"context_line":"        if new_ref is not None:"},{"line_number":217,"context_line":"            self._destroy(instance, new_ref)"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        # NOTE(sirp): the original vm was suffixed with \u0027-orig\u0027; find it using"},{"line_number":220,"context_line":"        # the old suffix, remove the suffix, then power it back on."}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAANH%2F%2F%2B7U%3D","line":217,"updated":"2013-02-28 17:03:23.000000000","message":"Yeah, this should be below the lookup of the \u0027-orig\u0027 VM name label.... to make sure it actually exists.  If it does not exist, we could potentially be blowing away the original VM that we want to keep.","commit_id":"6b1aa4410f0c7b0089eb5d8328337f974b805938"}]}
