)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ba22574a20ca48c4d873dcd5654410459a6e4c66","unresolved":false,"context_lines":[{"line_number":5577,"context_line":"        # pause/suspend/terminate do not work."},{"line_number":5578,"context_line":"        try:"},{"line_number":5579,"context_line":"            self.compute_rpcapi.post_live_migration_at_destination(ctxt,"},{"line_number":5580,"context_line":"                    instance, block_migration, dest, migrate_data)"},{"line_number":5581,"context_line":"        except Exception as error:"},{"line_number":5582,"context_line":"            # We don\u0027t want to break _post_live_migration() if"},{"line_number":5583,"context_line":"            # post_live_migration_at_destination() fails as it should never"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_1e0468be","line":5580,"updated":"2016-12-20 16:18:19.000000000","message":"This is the problem here, you need to add this extra arg into compute_rpcapi","commit_id":"276882f0389dcfac2e2a38733d46ba173461bd62"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"4a46addd6202ca276b074d6a1ddf8cd55772f2a4","unresolved":false,"context_lines":[{"line_number":5587,"context_line":"            LOG.exception(_LE(\"Post live migration at destination %s failed\"),"},{"line_number":5588,"context_line":"                    dest, instance\u003dinstance, error\u003derror)"},{"line_number":5589,"context_line":""},{"line_number":5590,"context_line":"        if migrate_data.compute_min_version \u003e 15:"},{"line_number":5591,"context_line":"            # NOTE(tr3buchet): tear down networks on source host"},{"line_number":5592,"context_line":"            self.network_api.setup_networks_on_host(ctxt, instance, self.host,"},{"line_number":5593,"context_line":"                                                    teardown\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a461143_41da007a","line":5590,"range":{"start_line":5590,"start_character":10,"end_line":5590,"end_character":43},"updated":"2017-01-26 14:00:25.000000000","message":"what if compute_min_version is just unset? nullable\u003dtrue doesn\u0027t helps here and this will fail with exception:\n\u003e\u003e\u003e migrate_data.compute_min_version\nTraceback (most recent call last):\n  File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\n  File \"/home/tdurakov/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_versionedobjects/base.py\", line 67, in getter\n    self.obj_load_attr(name)\n  File \"/home/tdurakov/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_versionedobjects/base.py\", line 603, in obj_load_attr\n    _(\"Cannot load \u0027%s\u0027 in the base class\") % attrname)\nNotImplementedError: Cannot load \u0027compute_min_version\u0027 in the base class\n\u003e\u003e\u003e migrate_data.compute_min_version \u003d 12\n\u003e\u003e\u003e migrate_data.compute_min_version\n12","commit_id":"0b18cc0fce025f31f9051c6ad2ae3e693f590ca1"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"4a46addd6202ca276b074d6a1ddf8cd55772f2a4","unresolved":false,"context_lines":[{"line_number":5651,"context_line":"        :param context: security context"},{"line_number":5652,"context_line":"        :param instance: Instance dict"},{"line_number":5653,"context_line":"        :param block_migration: if true, prepare for block migration"},{"line_number":5654,"context_line":"        ::param migrate_data: if not None, it is a dict which has data"},{"line_number":5655,"context_line":""},{"line_number":5656,"context_line":"        \"\"\""},{"line_number":5657,"context_line":"        LOG.info(_LI(\u0027Post operation of migration started\u0027),"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a461143_e1c92cae","line":5654,"range":{"start_line":5654,"start_character":43,"end_line":5654,"end_character":70},"updated":"2017-01-26 14:00:25.000000000","message":"it\u0027s not a dict, right?","commit_id":"0b18cc0fce025f31f9051c6ad2ae3e693f590ca1"}],"nova/compute/rpcapi.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ba22574a20ca48c4d873dcd5654410459a6e4c66","unresolved":false,"context_lines":[{"line_number":700,"context_line":"        cctxt.cast(ctxt, \u0027pause_instance\u0027, instance\u003dinstance)"},{"line_number":701,"context_line":""},{"line_number":702,"context_line":"    def post_live_migration_at_destination(self, ctxt, instance,"},{"line_number":703,"context_line":"            block_migration, host):"},{"line_number":704,"context_line":"        client \u003d self.router.by_host(ctxt, host)"},{"line_number":705,"context_line":"        version \u003d \u00274.14\u0027"},{"line_number":706,"context_line":"        kwargs \u003d {\u0027migrate_data\u0027: None}"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_1ebf08fc","line":703,"updated":"2016-12-20 16:18:19.000000000","message":"why is migrate data not passed into here?","commit_id":"276882f0389dcfac2e2a38733d46ba173461bd62"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ba22574a20ca48c4d873dcd5654410459a6e4c66","unresolved":false,"context_lines":[{"line_number":703,"context_line":"            block_migration, host):"},{"line_number":704,"context_line":"        client \u003d self.router.by_host(ctxt, host)"},{"line_number":705,"context_line":"        version \u003d \u00274.14\u0027"},{"line_number":706,"context_line":"        kwargs \u003d {\u0027migrate_data\u0027: None}"},{"line_number":707,"context_line":"        if not client.can_send_version(version):"},{"line_number":708,"context_line":"            version \u003d \u00274.0\u0027"},{"line_number":709,"context_line":"            kwargs.pop(\u0027migrate_data\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_3eba040b","line":706,"range":{"start_line":706,"start_character":34,"end_line":706,"end_character":38},"updated":"2016-12-20 16:18:19.000000000","message":"Should this not be migrate_data passed in here.","commit_id":"276882f0389dcfac2e2a38733d46ba173461bd62"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"6a165d512431189e5375679a5907aa0ba72a3690","unresolved":false,"context_lines":[{"line_number":318,"context_line":"        existing methods in 4.x after that point should be done so that they"},{"line_number":319,"context_line":"        can handle the version_cap being set to 4.13"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        * 4.14 - Ad migrate_data to post_live_migration"},{"line_number":322,"context_line":"    \u0027\u0027\u0027"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    VERSION_ALIASES \u003d {"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a461143_b81480f5","line":321,"range":{"start_line":321,"start_character":17,"end_line":321,"end_character":19},"updated":"2017-01-26 15:04:48.000000000","message":"s/ad/add","commit_id":"0b18cc0fce025f31f9051c6ad2ae3e693f590ca1"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"6a165d512431189e5375679a5907aa0ba72a3690","unresolved":false,"context_lines":[{"line_number":709,"context_line":"            kwargs.pop(\u0027migrate_data\u0027)"},{"line_number":710,"context_line":""},{"line_number":711,"context_line":"        cctxt \u003d client.prepare(server\u003dhost, version\u003dversion)"},{"line_number":712,"context_line":"        cctxt.cast(ctxt, \u0027post_live_migration_at_destination\u0027,"},{"line_number":713,"context_line":"            instance\u003dinstance, block_migration\u003dblock_migration, **kwargs)"},{"line_number":714,"context_line":""},{"line_number":715,"context_line":"    def pre_live_migration(self, ctxt, instance, block_migration, disk,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a461143_d33f6d23","line":712,"range":{"start_line":712,"start_character":14,"end_line":712,"end_character":18},"updated":"2017-01-26 15:04:48.000000000","message":"why is it cast again?","commit_id":"0b18cc0fce025f31f9051c6ad2ae3e693f590ca1"}],"nova/objects/migrate_data.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"66aa4bf937c3a88375a422849d168a4ff5052d9c","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        \u0027bdms\u0027: fields.ListOfObjectsField(\u0027LibvirtLiveMigrateBDMInfo\u0027),"},{"line_number":131,"context_line":"        \u0027target_connect_addr\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":132,"context_line":"        \u0027supported_perf_events\u0027: fields.ListOfStringsField(),"},{"line_number":133,"context_line":"        \u0027version\u0027: fields.StringField(nullable\u003dTrue)"},{"line_number":134,"context_line":"    }"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def obj_make_compatible(self, primitive, target_version):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_4ea033a6","line":133,"range":{"start_line":133,"start_character":9,"end_line":133,"end_character":16},"updated":"2016-11-30 10:02:18.000000000","message":"compute_min_version might be a better name for this? To stop any confusion with VERSION","commit_id":"9507266bf0b2b866f158020814be742aefaba13a"}]}
