)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"42949313e6d32b7556a0e9562215c4d5005d870e","unresolved":false,"context_lines":[{"line_number":4789,"context_line":"            is_volume_backed \u003d migrate_data.get(\u0027is_volume_backed\u0027, False)"},{"line_number":4790,"context_line":"            is_shared_storage \u003d migrate_data.get(\u0027is_shared_storage\u0027, True)"},{"line_number":4791,"context_line":"        if block_migration or (is_volume_backed and not is_shared_storage):"},{"line_number":4792,"context_line":"            self.compute_rpcapi.rollback_live_migration_at_destination(context,"},{"line_number":4793,"context_line":"                    instance, dest)"},{"line_number":4794,"context_line":""},{"line_number":4795,"context_line":"        self._notify_about_instance_usage(context, instance,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bad4c104_fbcde187","line":4792,"updated":"2014-04-29 15:42:27.000000000","message":"rollback_live_migration_at_destination() does not support instance objects.","commit_id":"648628d084c43f292cbe60463f0bb818e4ac251a"}],"nova/compute/rpcapi.py":[{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"29c68525f4df030808e2d03bb3353ea7dcde89cf","unresolved":false,"context_lines":[{"line_number":553,"context_line":"        else:"},{"line_number":554,"context_line":"            # NOTE(russellb) Havana compat"},{"line_number":555,"context_line":"            version \u003d self._get_compat_version(\u00273.0\u0027, \u00272.0\u0027)"},{"line_number":556,"context_line":"            instance \u003d jsonutils.to_primitive(instance)"},{"line_number":557,"context_line":"        cctxt \u003d self.client.prepare(server\u003dhost, version\u003dversion)"},{"line_number":558,"context_line":"        cctxt.cast(ctxt, \u0027live_migration\u0027, instance\u003dinstance,"},{"line_number":559,"context_line":"                   dest\u003ddest, block_migration\u003dblock_migration,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad9bd40_52b01943","line":556,"updated":"2014-05-05 11:24:11.000000000","message":"Not sure this matters but wanted to make sure. I have seen a few places where this conversion is done like\n\n instance \u003d jsonutils.to_primitive(objects_base.obj_to_primitive(instance))\n\nThis looks safer to me. Is it okay to use jsonutils.to_primitive() directly on objects?.","commit_id":"e4974769743d5967626c1f0415113683411a03a4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"25ef076ddf581afa9ba69c26462368371814f649","unresolved":false,"context_lines":[{"line_number":553,"context_line":"        else:"},{"line_number":554,"context_line":"            # NOTE(russellb) Havana compat"},{"line_number":555,"context_line":"            version \u003d self._get_compat_version(\u00273.0\u0027, \u00272.0\u0027)"},{"line_number":556,"context_line":"            instance \u003d jsonutils.to_primitive(instance)"},{"line_number":557,"context_line":"        cctxt \u003d self.client.prepare(server\u003dhost, version\u003dversion)"},{"line_number":558,"context_line":"        cctxt.cast(ctxt, \u0027live_migration\u0027, instance\u003dinstance,"},{"line_number":559,"context_line":"                   dest\u003ddest, block_migration\u003dblock_migration,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad9bd40_5d4ad8c5","line":556,"in_reply_to":"9ad9bd40_52b01943","updated":"2014-05-05 13:44:58.000000000","message":"Yep, we do it a lot. Since we support iteritems() it does the right thing.","commit_id":"e4974769743d5967626c1f0415113683411a03a4"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"9bfecd137b283b7ae55a2c9c94716ec75dea4524","unresolved":false,"context_lines":[{"line_number":553,"context_line":"        else:"},{"line_number":554,"context_line":"            # NOTE(russellb) Havana compat"},{"line_number":555,"context_line":"            version \u003d self._get_compat_version(\u00273.0\u0027, \u00272.0\u0027)"},{"line_number":556,"context_line":"            instance \u003d jsonutils.to_primitive(instance)"},{"line_number":557,"context_line":"        cctxt \u003d self.client.prepare(server\u003dhost, version\u003dversion)"},{"line_number":558,"context_line":"        cctxt.cast(ctxt, \u0027live_migration\u0027, instance\u003dinstance,"},{"line_number":559,"context_line":"                   dest\u003ddest, block_migration\u003dblock_migration,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad9bd40_1855be4f","line":556,"in_reply_to":"9ad9bd40_5d4ad8c5","updated":"2014-05-05 14:29:02.000000000","message":"Great, thanks!","commit_id":"e4974769743d5967626c1f0415113683411a03a4"}],"nova/tests/compute/test_compute.py":[{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"d782355b9be566477e9b59c26da05d39d2838f10","unresolved":false,"context_lines":[{"line_number":5478,"context_line":"                        \u0027compute.instance.live_migration.rollback.dest.end\u0027)"},{"line_number":5479,"context_line":""},{"line_number":5480,"context_line":"        # cleanup"},{"line_number":5481,"context_line":"        db.instance_destroy(c, instance.uuid)"},{"line_number":5482,"context_line":""},{"line_number":5483,"context_line":"    def test_run_kill_vm(self):"},{"line_number":5484,"context_line":"        # Detect when a vm is terminated behind the scenes."}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad9bd40_9e72bf7a","line":5481,"updated":"2014-05-02 20:21:11.000000000","message":"this destroy isn\u0027t actually needed at all.","commit_id":"e4974769743d5967626c1f0415113683411a03a4"}]}
