)]}'
{"nova/exception.py":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"60dfeb408726ba7a22a2c30840e32721bc48d6a7","unresolved":false,"context_lines":[{"line_number":1783,"context_line":""},{"line_number":1784,"context_line":"class MigrationContextNotFound(NotFound):"},{"line_number":1785,"context_line":"    msg_fmt \u003d _(\"Instance %(instance_uuid)s does not specify a migration \""},{"line_number":1786,"context_line":"                \"context at this time.\")"},{"line_number":1787,"context_line":""},{"line_number":1788,"context_line":""},{"line_number":1789,"context_line":"class SocketPortRangeExhaustedException(NovaException):"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_697668d8","line":1786,"updated":"2015-08-31 16:29:56.000000000","message":"nit: \"at this time\" sounds like they just have to wait a little bit and it should work. Just say \"...does not specify a migration context.\"","commit_id":"05e45e25433601d3f619b54ea299a9627da440ea"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"dce45e9d4d4aea2ec6d4a28fdccb136b1b310b81","unresolved":false,"context_lines":[{"line_number":1783,"context_line":""},{"line_number":1784,"context_line":"class MigrationContextNotFound(NotFound):"},{"line_number":1785,"context_line":"    msg_fmt \u003d _(\"Instance %(instance_uuid)s does not specify a migration \""},{"line_number":1786,"context_line":"                \"context at this time.\")"},{"line_number":1787,"context_line":""},{"line_number":1788,"context_line":""},{"line_number":1789,"context_line":"class SocketPortRangeExhaustedException(NovaException):"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_bf8d91d4","line":1786,"in_reply_to":"da20952f_697668d8","updated":"2015-08-31 17:46:05.000000000","message":"OK fair enough.","commit_id":"05e45e25433601d3f619b54ea299a9627da440ea"}],"nova/objects/migration_context.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6301c52e685c8ef66e74f16a2a5133208772a28c","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    fields \u003d {"},{"line_number":39,"context_line":"        \u0027instance_uuid\u0027: fields.UUIDField(),"},{"line_number":40,"context_line":"        \u0027migration_id\u0027: fields.IntegerField(),"},{"line_number":41,"context_line":"        \u0027new_numa_topology\u0027: fields.ObjectField(\u0027InstanceNUMATopology\u0027,"},{"line_number":42,"context_line":"                                                nullable\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_86597037","line":39,"updated":"2015-08-31 14:34:50.000000000","message":"I know we always store this, but I don\u0027t know that we really need it here, do we?","commit_id":"287e68fa6abb7469327dea6e7c3a9068fa1d68c3"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"16150e8da97e6c64a04fef1f808f5351ef402732","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    fields \u003d {"},{"line_number":39,"context_line":"        \u0027instance_uuid\u0027: fields.UUIDField(),"},{"line_number":40,"context_line":"        \u0027migration_id\u0027: fields.IntegerField(),"},{"line_number":41,"context_line":"        \u0027new_numa_topology\u0027: fields.ObjectField(\u0027InstanceNUMATopology\u0027,"},{"line_number":42,"context_line":"                                                nullable\u003dTrue),"},{"line_number":43,"context_line":"        \u0027old_numa_topology\u0027: fields.ObjectField(\u0027InstanceNUMATopology\u0027,"},{"line_number":44,"context_line":"                                                nullable\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_da7d4fb2","line":41,"updated":"2015-08-28 13:44:05.000000000","message":"hmm, I am trying to work out why we would not just add these into the migration record:\nhttps://github.com/openstack/nova/blob/master/nova/objects/migration.py#L46","commit_id":"287e68fa6abb7469327dea6e7c3a9068fa1d68c3"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ae9b0415c2713f5d6e94f3b7a5c785c5b4d118a8","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    fields \u003d {"},{"line_number":39,"context_line":"        \u0027instance_uuid\u0027: fields.UUIDField(),"},{"line_number":40,"context_line":"        \u0027migration_id\u0027: fields.IntegerField(),"},{"line_number":41,"context_line":"        \u0027new_numa_topology\u0027: fields.ObjectField(\u0027InstanceNUMATopology\u0027,"},{"line_number":42,"context_line":"                                                nullable\u003dTrue),"},{"line_number":43,"context_line":"        \u0027old_numa_topology\u0027: fields.ObjectField(\u0027InstanceNUMATopology\u0027,"},{"line_number":44,"context_line":"                                                nullable\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_60afb294","line":41,"in_reply_to":"da20952f_da7d4fb2","updated":"2015-08-28 14:12:31.000000000","message":"ah, so to avoid loads of data being in the DB for too long, thats a good reason:\nhttps://review.openstack.org/#/c/163440/","commit_id":"287e68fa6abb7469327dea6e7c3a9068fa1d68c3"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6301c52e685c8ef66e74f16a2a5133208772a28c","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        payload \u003d jsonutils.dumps(primitive)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        values \u003d {\u0027migration_context\u0027: payload}"},{"line_number":63,"context_line":"        db.instance_extra_update_by_uuid(self._context, self.instance_uuid,"},{"line_number":64,"context_line":"                                         values)"},{"line_number":65,"context_line":"        self.obj_reset_changes()"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_c67a0888","line":63,"updated":"2015-08-31 14:34:50.000000000","message":"Hmm, because of this I guess.","commit_id":"287e68fa6abb7469327dea6e7c3a9068fa1d68c3"}],"nova/tests/unit/objects/test_migration_context.py":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"60dfeb408726ba7a22a2c30840e32721bc48d6a7","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    def _test_get_by_instance_uuid(self, db_data):"},{"line_number":74,"context_line":"        mig_context \u003d objects.MigrationContext.get_by_instance_uuid("},{"line_number":75,"context_line":"            self.context, fake_db_context[\u0027instance_uuid\u0027])"},{"line_number":76,"context_line":"        if mig_context:"},{"line_number":77,"context_line":"            self.assertEqual(fake_db_context[\u0027instance_uuid\u0027],"},{"line_number":78,"context_line":"                            mig_context.instance_uuid)"},{"line_number":79,"context_line":"        expected_mig_context \u003d db_data and db_data.get(\u0027migration_context\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_04779302","line":76,"updated":"2015-08-31 16:29:56.000000000","message":"I don\u0027t understand the need for this \u0027if\u0027 and the one below. If there is no such migration context, an exception will be raised, and these lines will never be reached. Otherwise, there will be a migration context obj with content.","commit_id":"05e45e25433601d3f619b54ea299a9627da440ea"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"dce45e9d4d4aea2ec6d4a28fdccb136b1b310b81","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    def _test_get_by_instance_uuid(self, db_data):"},{"line_number":74,"context_line":"        mig_context \u003d objects.MigrationContext.get_by_instance_uuid("},{"line_number":75,"context_line":"            self.context, fake_db_context[\u0027instance_uuid\u0027])"},{"line_number":76,"context_line":"        if mig_context:"},{"line_number":77,"context_line":"            self.assertEqual(fake_db_context[\u0027instance_uuid\u0027],"},{"line_number":78,"context_line":"                            mig_context.instance_uuid)"},{"line_number":79,"context_line":"        expected_mig_context \u003d db_data and db_data.get(\u0027migration_context\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_c27bcabc","line":76,"in_reply_to":"da20952f_04779302","updated":"2015-08-31 17:46:05.000000000","message":"exception is raised only if there is no row in the DB, but if the actuall fild in the row is None then this branch gets triggered and basically confirms that the method also returns None.\n\nWill refactor the test to make it less confusing though.","commit_id":"05e45e25433601d3f619b54ea299a9627da440ea"}]}
