)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"21d1f2ecdab8994ea2708ceb8c094300726335bb","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     zhangbailin \u003czhangbailin@inspur.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-09-11 10:59:14 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add operator user_id/project_id to the migrations"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add ``user_id`` and ``project_id`` to the migrations, to record who"},{"line_number":10,"context_line":"operators *that* instance."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5faad753_3ae184d1","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":49},"updated":"2019-09-11 13:13:41.000000000","message":"Set user_id/project_id from context when creating a Migration","commit_id":"6ca7d0130990ae9ebf0b7a842e93af2d5b387be2"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"a869d67541b07c8c50a0af9b8b136412daa53104","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     zhangbailin \u003czhangbailin@inspur.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-09-11 10:59:14 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add operator user_id/project_id to the migrations"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add ``user_id`` and ``project_id`` to the migrations, to record who"},{"line_number":10,"context_line":"operators *that* instance."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5faad753_a8351c48","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":49},"in_reply_to":"5faad753_3ae184d1","updated":"2019-09-12 02:08:00.000000000","message":"Done","commit_id":"6ca7d0130990ae9ebf0b7a842e93af2d5b387be2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"21d1f2ecdab8994ea2708ceb8c094300726335bb","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add operator user_id/project_id to the migrations"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add ``user_id`` and ``project_id`` to the migrations, to record who"},{"line_number":10,"context_line":"operators *that* instance."},{"line_number":11,"context_line":"The operations of \u0027resize\u0027, \u0027cold migrate\u0027, \u0027evacuate\u0027 and \u0027live migrate\u0027"},{"line_number":12,"context_line":"will be generate the migration records for the operator."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5faad753_bacc9461","line":10,"range":{"start_line":9,"start_character":54,"end_line":10,"end_character":26},"updated":"2019-09-11 13:13:41.000000000","message":"to record who initiated the migration.","commit_id":"6ca7d0130990ae9ebf0b7a842e93af2d5b387be2"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"a869d67541b07c8c50a0af9b8b136412daa53104","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add operator user_id/project_id to the migrations"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add ``user_id`` and ``project_id`` to the migrations, to record who"},{"line_number":10,"context_line":"operators *that* instance."},{"line_number":11,"context_line":"The operations of \u0027resize\u0027, \u0027cold migrate\u0027, \u0027evacuate\u0027 and \u0027live migrate\u0027"},{"line_number":12,"context_line":"will be generate the migration records for the operator."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5faad753_683f2425","line":10,"range":{"start_line":9,"start_character":54,"end_line":10,"end_character":26},"in_reply_to":"5faad753_bacc9461","updated":"2019-09-12 02:08:00.000000000","message":"Done","commit_id":"6ca7d0130990ae9ebf0b7a842e93af2d5b387be2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"21d1f2ecdab8994ea2708ceb8c094300726335bb","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add ``user_id`` and ``project_id`` to the migrations, to record who"},{"line_number":10,"context_line":"operators *that* instance."},{"line_number":11,"context_line":"The operations of \u0027resize\u0027, \u0027cold migrate\u0027, \u0027evacuate\u0027 and \u0027live migrate\u0027"},{"line_number":12,"context_line":"will be generate the migration records for the operator."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Part of blueprint add-user-id-field-to-the-migrations-table"},{"line_number":15,"context_line":"Change-Id: I0d57101153d3dc1600b33afe3655a877d490fe13"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5faad753_3a0ae489","line":12,"range":{"start_line":11,"start_character":0,"end_line":12,"end_character":56},"updated":"2019-09-11 13:13:41.000000000","message":"You can remove this sentence, it doesn\u0027t help and it\u0027s not totally accurate since non-admin users can initiate the creation of a migration record by resizing servers they own.","commit_id":"6ca7d0130990ae9ebf0b7a842e93af2d5b387be2"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"a869d67541b07c8c50a0af9b8b136412daa53104","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add ``user_id`` and ``project_id`` to the migrations, to record who"},{"line_number":10,"context_line":"operators *that* instance."},{"line_number":11,"context_line":"The operations of \u0027resize\u0027, \u0027cold migrate\u0027, \u0027evacuate\u0027 and \u0027live migrate\u0027"},{"line_number":12,"context_line":"will be generate the migration records for the operator."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Part of blueprint add-user-id-field-to-the-migrations-table"},{"line_number":15,"context_line":"Change-Id: I0d57101153d3dc1600b33afe3655a877d490fe13"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5faad753_88238005","line":12,"range":{"start_line":11,"start_character":0,"end_line":12,"end_character":56},"in_reply_to":"5faad753_3a0ae489","updated":"2019-09-12 02:08:00.000000000","message":"Done","commit_id":"6ca7d0130990ae9ebf0b7a842e93af2d5b387be2"}],"nova/objects/migration.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24143e6ef960156d46813322b664a7781ab950b9","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                                              reason\u003d\u0027already created\u0027)"},{"line_number":168,"context_line":"        if \u0027uuid\u0027 not in self:"},{"line_number":169,"context_line":"            self.uuid \u003d uuidutils.generate_uuid()"},{"line_number":170,"context_line":"        # Add the operator info to the migrations."},{"line_number":171,"context_line":"        if \u0027user_id\u0027 not in self:"},{"line_number":172,"context_line":"            self.user_id \u003d self._context._user_id"},{"line_number":173,"context_line":"        if \u0027project_id\u0027 not in self:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_842e2d41","line":170,"range":{"start_line":170,"start_character":8,"end_line":170,"end_character":50},"updated":"2019-09-10 21:13:05.000000000","message":"An operator (admin) might not be initiating the action on the server, e.g. if it\u0027s a resize. So this is probably better worded like \"Record who is initiating the migration which is not necessarily the owner of the instance.\"","commit_id":"57fb04f21f72f516c1f60ae903d9888c13107d66"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"21394ac67885e116b13d519a939dfb08e47f2530","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                                              reason\u003d\u0027already created\u0027)"},{"line_number":168,"context_line":"        if \u0027uuid\u0027 not in self:"},{"line_number":169,"context_line":"            self.uuid \u003d uuidutils.generate_uuid()"},{"line_number":170,"context_line":"        # Add the operator info to the migrations."},{"line_number":171,"context_line":"        if \u0027user_id\u0027 not in self:"},{"line_number":172,"context_line":"            self.user_id \u003d self._context._user_id"},{"line_number":173,"context_line":"        if \u0027project_id\u0027 not in self:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_9a3446fd","line":170,"range":{"start_line":170,"start_character":8,"end_line":170,"end_character":50},"in_reply_to":"5faad753_842e2d41","updated":"2019-09-11 03:11:57.000000000","message":"Done","commit_id":"57fb04f21f72f516c1f60ae903d9888c13107d66"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24143e6ef960156d46813322b664a7781ab950b9","unresolved":false,"context_lines":[{"line_number":169,"context_line":"            self.uuid \u003d uuidutils.generate_uuid()"},{"line_number":170,"context_line":"        # Add the operator info to the migrations."},{"line_number":171,"context_line":"        if \u0027user_id\u0027 not in self:"},{"line_number":172,"context_line":"            self.user_id \u003d self._context._user_id"},{"line_number":173,"context_line":"        if \u0027project_id\u0027 not in self:"},{"line_number":174,"context_line":"            self.project_id \u003d self._context._project_id"},{"line_number":175,"context_line":"        updates \u003d self.obj_get_changes()"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_04223d53","line":172,"range":{"start_line":172,"start_character":41,"end_line":172,"end_character":42},"updated":"2019-09-10 21:13:05.000000000","message":"huh? why isn\u0027t this self._context.user_id?","commit_id":"57fb04f21f72f516c1f60ae903d9888c13107d66"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2a48dc6cbcb6afc1d67c83b0ea0ae85f7cc59851","unresolved":false,"context_lines":[{"line_number":169,"context_line":"            self.uuid \u003d uuidutils.generate_uuid()"},{"line_number":170,"context_line":"        # Add the operator info to the migrations."},{"line_number":171,"context_line":"        if \u0027user_id\u0027 not in self:"},{"line_number":172,"context_line":"            self.user_id \u003d self._context._user_id"},{"line_number":173,"context_line":"        if \u0027project_id\u0027 not in self:"},{"line_number":174,"context_line":"            self.project_id \u003d self._context._project_id"},{"line_number":175,"context_line":"        updates \u003d self.obj_get_changes()"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_fde69416","line":172,"range":{"start_line":172,"start_character":41,"end_line":172,"end_character":42},"in_reply_to":"5faad753_04223d53","updated":"2019-09-11 01:25:19.000000000","message":"This is why these don\u0027t make functional/tempest tests fail but it\u0027s definitely wrong usage:\n\nhttps://github.com/openstack/oslo.context/blob/f65408df5cd5924f2879c3ee94d07fd27cb2cf73/oslo_context/context.py#L241-L242","commit_id":"57fb04f21f72f516c1f60ae903d9888c13107d66"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5834fed5d5c68b4491a6f3f75ac9339bf77a1b4d","unresolved":false,"context_lines":[{"line_number":169,"context_line":"            self.uuid \u003d uuidutils.generate_uuid()"},{"line_number":170,"context_line":"        # Add the operator info to the migrations."},{"line_number":171,"context_line":"        if \u0027user_id\u0027 not in self:"},{"line_number":172,"context_line":"            self.user_id \u003d self._context._user_id"},{"line_number":173,"context_line":"        if \u0027project_id\u0027 not in self:"},{"line_number":174,"context_line":"            self.project_id \u003d self._context._project_id"},{"line_number":175,"context_line":"        updates \u003d self.obj_get_changes()"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_788ab21b","line":172,"range":{"start_line":172,"start_character":41,"end_line":172,"end_character":42},"in_reply_to":"5faad753_fde69416","updated":"2019-09-11 02:41:17.000000000","message":"yea, this is wrong. Sorry, I missed this.","commit_id":"57fb04f21f72f516c1f60ae903d9888c13107d66"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24143e6ef960156d46813322b664a7781ab950b9","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        if \u0027user_id\u0027 not in self:"},{"line_number":172,"context_line":"            self.user_id \u003d self._context._user_id"},{"line_number":173,"context_line":"        if \u0027project_id\u0027 not in self:"},{"line_number":174,"context_line":"            self.project_id \u003d self._context._project_id"},{"line_number":175,"context_line":"        updates \u003d self.obj_get_changes()"},{"line_number":176,"context_line":"        if \u0027migration_type\u0027 not in updates:"},{"line_number":177,"context_line":"            raise exception.ObjectActionError("}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_241df90e","line":174,"range":{"start_line":174,"start_character":44,"end_line":174,"end_character":45},"updated":"2019-09-10 21:13:05.000000000","message":"same","commit_id":"57fb04f21f72f516c1f60ae903d9888c13107d66"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"21394ac67885e116b13d519a939dfb08e47f2530","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        if \u0027user_id\u0027 not in self:"},{"line_number":172,"context_line":"            self.user_id \u003d self._context._user_id"},{"line_number":173,"context_line":"        if \u0027project_id\u0027 not in self:"},{"line_number":174,"context_line":"            self.project_id \u003d self._context._project_id"},{"line_number":175,"context_line":"        updates \u003d self.obj_get_changes()"},{"line_number":176,"context_line":"        if \u0027migration_type\u0027 not in updates:"},{"line_number":177,"context_line":"            raise exception.ObjectActionError("}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_3d142c4e","line":174,"range":{"start_line":174,"start_character":44,"end_line":174,"end_character":45},"in_reply_to":"5faad753_241df90e","updated":"2019-09-11 03:11:57.000000000","message":"Done","commit_id":"57fb04f21f72f516c1f60ae903d9888c13107d66"}],"nova/tests/unit/objects/test_migration.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"cbe348f217c35df1b3a6db74db90b0131ef63eff","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                                             \u0027uuid\u0027: uuidsentinel.migration,"},{"line_number":143,"context_line":"                                             \u0027user_id\u0027: \u0027fake-user\u0027,"},{"line_number":144,"context_line":"                                             \u0027project_id\u0027: \u0027fake-project\u0027})"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def test_create_fails_migration_type(self):"},{"line_number":147,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":148,"context_line":"        mig \u003d migration.Migration(context\u003dctxt,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_f5a57fb6","line":145,"updated":"2019-09-09 05:48:03.000000000","message":"Missing successful test case that user_id and project_id are not set but _context is set when create method is called.","commit_id":"57fb04f21f72f516c1f60ae903d9888c13107d66"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"21394ac67885e116b13d519a939dfb08e47f2530","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                                             \u0027uuid\u0027: uuidsentinel.migration,"},{"line_number":143,"context_line":"                                             \u0027user_id\u0027: \u0027fake-user\u0027,"},{"line_number":144,"context_line":"                                             \u0027project_id\u0027: \u0027fake-project\u0027})"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def test_create_fails_migration_type(self):"},{"line_number":147,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":148,"context_line":"        mig \u003d migration.Migration(context\u003dctxt,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_f876a2d8","line":145,"in_reply_to":"5faad753_64e0d1fb","updated":"2019-09-11 03:11:57.000000000","message":"Added the test case for set user_id and project_id to the _context to test create.","commit_id":"57fb04f21f72f516c1f60ae903d9888c13107d66"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24143e6ef960156d46813322b664a7781ab950b9","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                                             \u0027uuid\u0027: uuidsentinel.migration,"},{"line_number":143,"context_line":"                                             \u0027user_id\u0027: \u0027fake-user\u0027,"},{"line_number":144,"context_line":"                                             \u0027project_id\u0027: \u0027fake-project\u0027})"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def test_create_fails_migration_type(self):"},{"line_number":147,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":148,"context_line":"        mig \u003d migration.Migration(context\u003dctxt,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_64e0d1fb","line":145,"in_reply_to":"5faad753_ebd7dc22","updated":"2019-09-10 21:13:05.000000000","message":"Wrong - as Takashi points out that\u0027s kind of the whole point of the change and as I noted in the code, it\u0027s broken.","commit_id":"57fb04f21f72f516c1f60ae903d9888c13107d66"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"a1fb10c6d9f4b4000074668622bfdc43163c7b3e","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                                             \u0027uuid\u0027: uuidsentinel.migration,"},{"line_number":143,"context_line":"                                             \u0027user_id\u0027: \u0027fake-user\u0027,"},{"line_number":144,"context_line":"                                             \u0027project_id\u0027: \u0027fake-project\u0027})"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def test_create_fails_migration_type(self):"},{"line_number":147,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":148,"context_line":"        mig \u003d migration.Migration(context\u003dctxt,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_ebd7dc22","line":145,"in_reply_to":"5faad753_f5a57fb6","updated":"2019-09-09 08:28:02.000000000","message":"If there are no other updates, I hope to update it via follow-up.","commit_id":"57fb04f21f72f516c1f60ae903d9888c13107d66"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0f7a9df446a5575ffbadab563f73cf5d1d873aa3","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":129,"context_line":"        ctxt.user_id \u003d \u0027fake-user\u0027"},{"line_number":130,"context_line":"        ctxt.project_id \u003d \u0027fake-project\u0027"},{"line_number":131,"context_line":"        fake_migration \u003d fake_db_migration()"},{"line_number":132,"context_line":"        mock_create.return_value \u003d fake_migration"},{"line_number":133,"context_line":"        mig \u003d migration.Migration(context\u003dctxt)"},{"line_number":134,"context_line":"        mig.source_compute \u003d \u0027foo\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_5aad6086","line":131,"range":{"start_line":131,"start_character":25,"end_line":131,"end_character":42},"updated":"2019-09-11 13:12:17.000000000","message":"Seems this should pass the user_id\u003d\u0027fake-user\u0027 and project_id\u003d\u0027fake-project\u0027 updates to this method, otherwise it\u0027s going to overwrite the values on the migration object to None, correct?","commit_id":"6ca7d0130990ae9ebf0b7a842e93af2d5b387be2"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"a869d67541b07c8c50a0af9b8b136412daa53104","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":129,"context_line":"        ctxt.user_id \u003d \u0027fake-user\u0027"},{"line_number":130,"context_line":"        ctxt.project_id \u003d \u0027fake-project\u0027"},{"line_number":131,"context_line":"        fake_migration \u003d fake_db_migration()"},{"line_number":132,"context_line":"        mock_create.return_value \u003d fake_migration"},{"line_number":133,"context_line":"        mig \u003d migration.Migration(context\u003dctxt)"},{"line_number":134,"context_line":"        mig.source_compute \u003d \u0027foo\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_28c60c4a","line":131,"range":{"start_line":131,"start_character":25,"end_line":131,"end_character":42},"in_reply_to":"5faad753_5aad6086","updated":"2019-09-12 02:08:00.000000000","message":"Yeah, it\u0027s needed to pass them otherwise fake_db_migration() will be return None. And need to check them by assertEqual().","commit_id":"6ca7d0130990ae9ebf0b7a842e93af2d5b387be2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0f7a9df446a5575ffbadab563f73cf5d1d873aa3","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        self.assertEqual(fake_migration[\u0027dest_compute\u0027], mig.dest_compute)"},{"line_number":139,"context_line":"        self.assertIn(\u0027uuid\u0027, mig)"},{"line_number":140,"context_line":"        self.assertFalse(mig.cross_cell_move)"},{"line_number":141,"context_line":"        self.assertIn(\u0027user_id\u0027, mig)"},{"line_number":142,"context_line":"        self.assertIn(\u0027project_id\u0027, mig)"},{"line_number":143,"context_line":"        mock_create.assert_called_once_with(ctxt,"},{"line_number":144,"context_line":"                                            {\u0027source_compute\u0027: \u0027foo\u0027,"},{"line_number":145,"context_line":"                                             \u0027migration_type\u0027: \u0027resize\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_5ac6c04a","line":142,"range":{"start_line":141,"start_character":8,"end_line":142,"end_character":40},"updated":"2019-09-11 13:12:17.000000000","message":"Why don\u0027t you check the exact values are \u0027fake-user\u0027 and \u0027fake-project\u0027 as expected? Likely because of the fake_db_migration thing I mentioned above. Your DB mock is returning different values.","commit_id":"6ca7d0130990ae9ebf0b7a842e93af2d5b387be2"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"a869d67541b07c8c50a0af9b8b136412daa53104","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        self.assertEqual(fake_migration[\u0027dest_compute\u0027], mig.dest_compute)"},{"line_number":139,"context_line":"        self.assertIn(\u0027uuid\u0027, mig)"},{"line_number":140,"context_line":"        self.assertFalse(mig.cross_cell_move)"},{"line_number":141,"context_line":"        self.assertIn(\u0027user_id\u0027, mig)"},{"line_number":142,"context_line":"        self.assertIn(\u0027project_id\u0027, mig)"},{"line_number":143,"context_line":"        mock_create.assert_called_once_with(ctxt,"},{"line_number":144,"context_line":"                                            {\u0027source_compute\u0027: \u0027foo\u0027,"},{"line_number":145,"context_line":"                                             \u0027migration_type\u0027: \u0027resize\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_e806b486","line":142,"range":{"start_line":141,"start_character":8,"end_line":142,"end_character":40},"in_reply_to":"5faad753_5ac6c04a","updated":"2019-09-12 02:08:00.000000000","message":"Done","commit_id":"6ca7d0130990ae9ebf0b7a842e93af2d5b387be2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7777b70dbcc93f7a35068bafe8256d4fcd6980c4","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        self.assertEqual(fake_migration[\u0027dest_compute\u0027], mig.dest_compute)"},{"line_number":140,"context_line":"        self.assertIn(\u0027uuid\u0027, mig)"},{"line_number":141,"context_line":"        self.assertFalse(mig.cross_cell_move)"},{"line_number":142,"context_line":"        self.assertEqual(\u0027fake-user\u0027, mig[\u0027user_id\u0027])"},{"line_number":143,"context_line":"        self.assertEqual(\u0027fake-project\u0027, mig[\u0027project_id\u0027])"},{"line_number":144,"context_line":"        mock_create.assert_called_once_with(ctxt,"},{"line_number":145,"context_line":"                                            {\u0027source_compute\u0027: \u0027foo\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5faad753_be38e8ed","line":142,"range":{"start_line":142,"start_character":41,"end_line":142,"end_character":52},"updated":"2019-09-12 15:04:04.000000000","message":"Use mig.user_id and mig.project_id below. We want to avoid use the DictCompatMixin on these objects so that we can eventually remove that mixin.","commit_id":"ffae273ee925c091202145fa132ebfa9f6200049"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"0e5ebaec90ea53f1bc88bfb4ec870530450063ed","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        self.assertEqual(fake_migration[\u0027dest_compute\u0027], mig.dest_compute)"},{"line_number":140,"context_line":"        self.assertIn(\u0027uuid\u0027, mig)"},{"line_number":141,"context_line":"        self.assertFalse(mig.cross_cell_move)"},{"line_number":142,"context_line":"        self.assertEqual(\u0027fake-user\u0027, mig[\u0027user_id\u0027])"},{"line_number":143,"context_line":"        self.assertEqual(\u0027fake-project\u0027, mig[\u0027project_id\u0027])"},{"line_number":144,"context_line":"        mock_create.assert_called_once_with(ctxt,"},{"line_number":145,"context_line":"                                            {\u0027source_compute\u0027: \u0027foo\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5faad753_2cceea2c","line":142,"range":{"start_line":142,"start_character":41,"end_line":142,"end_character":52},"in_reply_to":"5faad753_be38e8ed","updated":"2019-09-14 07:06:26.000000000","message":"Fixed by https://review.opendev.org/#/c/682198/","commit_id":"ffae273ee925c091202145fa132ebfa9f6200049"}]}
