)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"87931fe2cbe6c0c444d2200b958910c1bfd07afc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     zhangchunlong1@huawei.com \u003czhangchunlong1@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-04-01 11:29:41 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add support to get migrate object in muti statuses"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit adds a method to get a migrate object in mutiple statues."},{"line_number":10,"context_line":"It adds migration_get_by_instance_with_multiple_statuses() in db to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"baa041b7_2617fb52","line":7,"updated":"2015-04-02 12:04:24.000000000","message":"Please prefix this with DB","commit_id":"e6fb38caaca0993866fd1c319a88fc2b09eb0928"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"87931fe2cbe6c0c444d2200b958910c1bfd07afc","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-04-01 11:29:41 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add support to get migrate object in muti statuses"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit adds a method to get a migrate object in mutiple statues."},{"line_number":10,"context_line":"It adds migration_get_by_instance_with_multiple_statuses() in db to"},{"line_number":11,"context_line":"to avoid multiple database queries for the multiple status. This method"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"baa041b7_39095c2d","line":8,"updated":"2015-04-02 12:04:24.000000000","message":"what is muti? should this be multi?","commit_id":"e6fb38caaca0993866fd1c319a88fc2b09eb0928"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"87931fe2cbe6c0c444d2200b958910c1bfd07afc","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add support to get migrate object in muti statuses"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit adds a method to get a migrate object in mutiple statues."},{"line_number":10,"context_line":"It adds migration_get_by_instance_with_multiple_statuses() in db to"},{"line_number":11,"context_line":"to avoid multiple database queries for the multiple status. This method"},{"line_number":12,"context_line":"can get a migrate object in the one of several status."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"baa041b7_d9103051","line":9,"updated":"2015-04-02 12:04:24.000000000","message":"mutiple \u003d\u003e multiple","commit_id":"e6fb38caaca0993866fd1c319a88fc2b09eb0928"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"8b605a4e78d56a3e678f903aeb8ee77c6cc76f0d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     zhangchunlong1@huawei.com \u003czhangchunlong1@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-04-02 19:59:24 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add support to get migrate objects in muti-status"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit adds a method to get migrate objects with several"},{"line_number":10,"context_line":"instance_uuids in mutiple statues.It adds"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"baa041b7_19f8d8e4","line":7,"updated":"2015-04-02 12:06:41.000000000","message":"please prefix with DB:","commit_id":"9131888366b9de511e5c1ff822254d7babe51c77"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"8b605a4e78d56a3e678f903aeb8ee77c6cc76f0d","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-04-02 19:59:24 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add support to get migrate objects in muti-status"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit adds a method to get migrate objects with several"},{"line_number":10,"context_line":"instance_uuids in mutiple statues.It adds"},{"line_number":11,"context_line":"migration_get_by_instances_with_multiple_statuses()"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"baa041b7_f9dd3471","line":8,"updated":"2015-04-02 12:06:41.000000000","message":"muti-status \u003d\u003e multi-status","commit_id":"9131888366b9de511e5c1ff822254d7babe51c77"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"8b605a4e78d56a3e678f903aeb8ee77c6cc76f0d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add support to get migrate objects in muti-status"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit adds a method to get migrate objects with several"},{"line_number":10,"context_line":"instance_uuids in mutiple statues.It adds"},{"line_number":11,"context_line":"migration_get_by_instances_with_multiple_statuses()"},{"line_number":12,"context_line":"in db to avoid multiple database queries for the multiple status."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"baa041b7_b9e7ac3f","line":9,"updated":"2015-04-02 12:06:41.000000000","message":"migrate \u003d\u003e migration","commit_id":"9131888366b9de511e5c1ff822254d7babe51c77"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"8b605a4e78d56a3e678f903aeb8ee77c6cc76f0d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"add support to get migrate objects in muti-status"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit adds a method to get migrate objects with several"},{"line_number":10,"context_line":"instance_uuids in mutiple statues.It adds"},{"line_number":11,"context_line":"migration_get_by_instances_with_multiple_statuses()"},{"line_number":12,"context_line":"in db to avoid multiple database queries for the multiple status."},{"line_number":13,"context_line":"This method can get migrate objects in the one of several status."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"baa041b7_79d00454","line":10,"updated":"2015-04-02 12:06:41.000000000","message":"statues \u003d\u003e statuses","commit_id":"9131888366b9de511e5c1ff822254d7babe51c77"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"3f8e441cb3104f7d29d6e0e96dc5e6c5a46c9003","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     zhangchunlong1@huawei.com \u003czhangchunlong1@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-04-20 11:37:43 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DB:support for migration objects multi-statues"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit adds a method to get migration objects with several"},{"line_number":10,"context_line":"instance_uuids in mutiple statues.It adds"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"3acd31a7_77480d5c","line":7,"updated":"2015-04-30 06:22:23.000000000","message":"statues \u003d\u003e status","commit_id":"11d62f30a06cda987ba51ecb6d73cb10b96d17c6"},{"author":{"_account_id":11530,"name":"zhangtralon","email":"ztralon@hotmail.com","username":"zhangtralon"},"change_message_id":"001fd38661dfc06c50ffce0d99442004164f9488","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     zhangchunlong1@huawei.com \u003czhangchunlong1@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-04-20 11:37:43 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DB:support for migration objects multi-statues"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit adds a method to get migration objects with several"},{"line_number":10,"context_line":"instance_uuids in mutiple statues.It adds"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"3acd31a7_016bd41f","line":7,"in_reply_to":"3acd31a7_77480d5c","updated":"2015-04-30 09:24:57.000000000","message":"ok, thanks","commit_id":"11d62f30a06cda987ba51ecb6d73cb10b96d17c6"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"6df910ee105864f437921fac7711995f25e6046c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"DB:support for migration objects multi-statuses"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit adds a method to get migration objects with several"},{"line_number":10,"context_line":"instance_uuids in mutiple statues.It adds"},{"line_number":11,"context_line":"migration_get_by_instances_with_multiple_statuses()"},{"line_number":12,"context_line":"in db to avoid multiple database queries for the multiple status."},{"line_number":13,"context_line":"This method can get migrate objects in the one of several status."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"da20952f_8d7e08e3","line":10,"updated":"2015-08-27 10:42:36.000000000","message":"/s/mutiple/multiple\n\n/s/statues/statuses\n\nadd space after dot","commit_id":"8cfd921d56b06b2dfd586cc9e21500431a6f7ab6"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"6df910ee105864f437921fac7711995f25e6046c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This commit adds a method to get migration objects with several"},{"line_number":10,"context_line":"instance_uuids in mutiple statues.It adds"},{"line_number":11,"context_line":"migration_get_by_instances_with_multiple_statuses()"},{"line_number":12,"context_line":"in db to avoid multiple database queries for the multiple status."},{"line_number":13,"context_line":"This method can get migrate objects in the one of several status."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Co-Authored-By:Kevin_Zheng\u003czhengzhenyu@huawei.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"da20952f_eddb04ec","line":12,"updated":"2015-08-27 10:42:36.000000000","message":"/s/status/statuses","commit_id":"8cfd921d56b06b2dfd586cc9e21500431a6f7ab6"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"6df910ee105864f437921fac7711995f25e6046c","unresolved":false,"context_lines":[{"line_number":10,"context_line":"instance_uuids in mutiple statues.It adds"},{"line_number":11,"context_line":"migration_get_by_instances_with_multiple_statuses()"},{"line_number":12,"context_line":"in db to avoid multiple database queries for the multiple status."},{"line_number":13,"context_line":"This method can get migrate objects in the one of several status."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Co-Authored-By:Kevin_Zheng\u003czhengzhenyu@huawei.com\u003e"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"da20952f_6dee148d","line":13,"updated":"2015-08-27 10:42:36.000000000","message":"/s/status/statuses","commit_id":"8cfd921d56b06b2dfd586cc9e21500431a6f7ab6"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"7bd8f71c63f8f331832980543045c83d083d74ec","unresolved":false,"context_lines":[{"line_number":7,"context_line":"DB:support for migration objects multi-statuses"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit adds a method to get migration objects with several"},{"line_number":10,"context_line":"instance_uuids in mutiple statues.It adds"},{"line_number":11,"context_line":"migration_get_by_instances_with_multiple_statuses()"},{"line_number":12,"context_line":"in db to avoid multiple database queries for the multiple status."},{"line_number":13,"context_line":"This method can get migrate objects in the one of several status."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":43,"id":"da20952f_d08ddd31","line":10,"updated":"2015-09-06 08:33:29.000000000","message":"statues \u003d\u003e states\n\nstatues.It adds \u003d\u003e statues. It adds","commit_id":"a7262799d7b32c803934df24ee76cb2d6a6a49ea"}],"nova/db/api.py":[{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"559632ab0ad16be95ef857d2f8f868fdbf455afd","unresolved":false,"context_lines":[{"line_number":465,"context_line":""},{"line_number":466,"context_line":"def migration_get_by_instances_with_multiple_statuses("},{"line_number":467,"context_line":"        context, instance_uuids, statuses):"},{"line_number":468,"context_line":"    \"\"\"Finds a migration by the instance uuid from one of migrating"},{"line_number":469,"context_line":"    status."},{"line_number":470,"context_line":"    \"\"\""},{"line_number":471,"context_line":"    return IMPL.migration_get_by_instances_with_multiple_statuses("}],"source_content_type":"text/x-python","patch_set":16,"id":"7aaa499b_aa928f9d","line":468,"updated":"2015-04-14 03:25:18.000000000","message":"if this support multiple statuses, maybe the \"one of migrating status\" is not an exact description, and s/instance/instances/","commit_id":"77c60d86c7ad92b0fd3103c570d5212781d969cf"},{"author":{"_account_id":11530,"name":"zhangtralon","email":"ztralon@hotmail.com","username":"zhangtralon"},"change_message_id":"5413c29dc616f9bd1fbb2bc6a207c64f34cc7c43","unresolved":false,"context_lines":[{"line_number":465,"context_line":""},{"line_number":466,"context_line":"def migration_get_by_instances_with_multiple_statuses("},{"line_number":467,"context_line":"        context, instance_uuids, statuses):"},{"line_number":468,"context_line":"    \"\"\"Finds a migration by the instance uuid from one of migrating"},{"line_number":469,"context_line":"    status."},{"line_number":470,"context_line":"    \"\"\""},{"line_number":471,"context_line":"    return IMPL.migration_get_by_instances_with_multiple_statuses("}],"source_content_type":"text/x-python","patch_set":16,"id":"3ab451fb_51ee548c","line":468,"in_reply_to":"7aaa499b_aa928f9d","updated":"2015-04-17 08:24:31.000000000","message":"yeah, thanks","commit_id":"77c60d86c7ad92b0fd3103c570d5212781d969cf"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"e3b1d74749a97fedafe6ac5230fd8d4420a5c9a9","unresolved":false,"context_lines":[{"line_number":465,"context_line":""},{"line_number":466,"context_line":"def migration_get_by_instances_with_multiple_statuses("},{"line_number":467,"context_line":"        context, instance_uuids, statuses):"},{"line_number":468,"context_line":"    \"\"\"Finds migrations by a list of instances from some migrating"},{"line_number":469,"context_line":"    statuses."},{"line_number":470,"context_line":"    \"\"\""},{"line_number":471,"context_line":"    return IMPL.migration_get_by_instances_with_multiple_statuses("}],"source_content_type":"text/x-python","patch_set":19,"id":"3acd31a7_71938fa4","line":468,"updated":"2015-04-30 05:54:33.000000000","message":"nit: I think it would be better:\n\n    ... a list of instance in cetain migrating statuses.","commit_id":"11d62f30a06cda987ba51ecb6d73cb10b96d17c6"},{"author":{"_account_id":11530,"name":"zhangtralon","email":"ztralon@hotmail.com","username":"zhangtralon"},"change_message_id":"001fd38661dfc06c50ffce0d99442004164f9488","unresolved":false,"context_lines":[{"line_number":465,"context_line":""},{"line_number":466,"context_line":"def migration_get_by_instances_with_multiple_statuses("},{"line_number":467,"context_line":"        context, instance_uuids, statuses):"},{"line_number":468,"context_line":"    \"\"\"Finds migrations by a list of instances from some migrating"},{"line_number":469,"context_line":"    statuses."},{"line_number":470,"context_line":"    \"\"\""},{"line_number":471,"context_line":"    return IMPL.migration_get_by_instances_with_multiple_statuses("}],"source_content_type":"text/x-python","patch_set":19,"id":"3acd31a7_de813991","line":468,"in_reply_to":"3acd31a7_71938fa4","updated":"2015-04-30 09:24:57.000000000","message":"yeah, this way is better. thanks.","commit_id":"11d62f30a06cda987ba51ecb6d73cb10b96d17c6"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"75a3d13c15edb81e376a28d4b21747b2cb3aacc9","unresolved":false,"context_lines":[{"line_number":463,"context_line":"            status)"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"def migration_get_by_instances_with_multiple_statuses("},{"line_number":467,"context_line":"        context, instance_uuids, statuses):"},{"line_number":468,"context_line":"    \"\"\"Finds migrations by a list of instances in cetain migrating"},{"line_number":469,"context_line":"    statuses"}],"source_content_type":"text/x-python","patch_set":22,"id":"3acd31a7_7336d304","line":466,"updated":"2015-04-30 13:17:44.000000000","message":"Do you plan to change the name everywhere?","commit_id":"daf907b4b5b95ff2ab20e838140fdfe37bea6a19"},{"author":{"_account_id":11530,"name":"zhangtralon","email":"ztralon@hotmail.com","username":"zhangtralon"},"change_message_id":"883f542e339aa071da0f5829313bca0f6ed02cf2","unresolved":false,"context_lines":[{"line_number":463,"context_line":"            status)"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"def migration_get_by_instances_with_multiple_statuses("},{"line_number":467,"context_line":"        context, instance_uuids, statuses):"},{"line_number":468,"context_line":"    \"\"\"Finds migrations by a list of instances in cetain migrating"},{"line_number":469,"context_line":"    statuses"}],"source_content_type":"text/x-python","patch_set":22,"id":"3acd31a7_9b45c871","line":466,"in_reply_to":"3acd31a7_7336d304","updated":"2015-05-04 08:54:41.000000000","message":"hi sahid! no, I think that the statuses may be more clear.","commit_id":"daf907b4b5b95ff2ab20e838140fdfe37bea6a19"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"6df910ee105864f437921fac7711995f25e6046c","unresolved":false,"context_lines":[{"line_number":465,"context_line":""},{"line_number":466,"context_line":"def migration_get_by_instances_with_multiple_statuses("},{"line_number":467,"context_line":"        context, instance_uuids, statuses):"},{"line_number":468,"context_line":"    \"\"\"Finds migrations by a list of instances in cetain migrating"},{"line_number":469,"context_line":"    statuses"},{"line_number":470,"context_line":"    \"\"\""},{"line_number":471,"context_line":"    return IMPL.migration_get_by_instances_with_multiple_statuses("}],"source_content_type":"text/x-python","patch_set":39,"id":"da20952f_ed954440","line":468,"updated":"2015-08-27 10:42:36.000000000","message":"/s/cetain/certain","commit_id":"8cfd921d56b06b2dfd586cc9e21500431a6f7ab6"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"7bd8f71c63f8f331832980543045c83d083d74ec","unresolved":false,"context_lines":[{"line_number":465,"context_line":""},{"line_number":466,"context_line":"def migration_get_by_instances_with_multiple_statuses("},{"line_number":467,"context_line":"        context, instance_uuids, statuses):"},{"line_number":468,"context_line":"    \"\"\"Finds migrations by a list of instances in cetain migrating"},{"line_number":469,"context_line":"    statuses"},{"line_number":470,"context_line":"    \"\"\""},{"line_number":471,"context_line":"    return IMPL.migration_get_by_instances_with_multiple_statuses("}],"source_content_type":"text/x-python","patch_set":43,"id":"da20952f_708091f7","line":468,"updated":"2015-09-06 08:33:29.000000000","message":"cetain \u003d\u003e certain\n\nCan you please add the states as an example. That may be very helpful for people reviewing","commit_id":"a7262799d7b32c803934df24ee76cb2d6a6a49ea"}],"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"1f897669cd2ca869d52046a39ae3c38aa944c76b","unresolved":false,"context_lines":[{"line_number":4428,"context_line":"    return result"},{"line_number":4429,"context_line":""},{"line_number":4430,"context_line":""},{"line_number":4431,"context_line":"def migration_get_by_instance_with_multiple_statuses("},{"line_number":4432,"context_line":"        context, instance_uuid, statuses):"},{"line_number":4433,"context_line":"    # in order to avoid multiple database queries for the multiple status"},{"line_number":4434,"context_line":"    filter_statuses \u003d [models.Migration.status \u003d\u003d value for value in statuses]"}],"source_content_type":"text/x-python","patch_set":1,"id":"da9b358b_56649b47","line":4431,"updated":"2015-04-01 09:55:08.000000000","message":"This kind of query with a list in the condition are heavy for the database and you will hit it for each instance. please refer to my suggestion perhaps we can earn something\n\nhttps://review.openstack.org/#/c/160110/12/nova/objects/instance_group.py,cm","commit_id":"e6fb38caaca0993866fd1c319a88fc2b09eb0928"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"87931fe2cbe6c0c444d2200b958910c1bfd07afc","unresolved":false,"context_lines":[{"line_number":4438,"context_line":"        first()"},{"line_number":4439,"context_line":"    status \u003d \" \".join(statuses)"},{"line_number":4440,"context_line":"    if not result:"},{"line_number":4441,"context_line":"        raise exception.MigrationNotFoundByStatus(instance_id\u003dinstance_uuid,"},{"line_number":4442,"context_line":"                                                  status\u003dstatus)"},{"line_number":4443,"context_line":"    return result"},{"line_number":4444,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baa041b7_f96894bc","line":4441,"updated":"2015-04-02 12:04:24.000000000","message":"Can you please add a test case for this flow","commit_id":"e6fb38caaca0993866fd1c319a88fc2b09eb0928"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"24323e5b1c007b2359918ad67f1983052ec26189","unresolved":false,"context_lines":[{"line_number":4428,"context_line":"    return result"},{"line_number":4429,"context_line":""},{"line_number":4430,"context_line":""},{"line_number":4431,"context_line":"def migration_get_by_instances_with_multiple_statuses("},{"line_number":4432,"context_line":"        context, instance_uuids, statuses):"},{"line_number":4433,"context_line":"    # in order to avoid multiple database queries for the multiple status"},{"line_number":4434,"context_line":"    instances_filter \u003d [models.Instance.uuid \u003d\u003d uuid for uuid in"}],"source_content_type":"text/x-python","patch_set":9,"id":"baa041b7_da1a4c6e","line":4431,"updated":"2015-04-02 20:34:48.000000000","message":"Yes, it\u0027s better so now with one query we are able to compute instances in the group and in migration, instead of looping and hit database for every instances in the group","commit_id":"9131888366b9de511e5c1ff822254d7babe51c77"},{"author":{"_account_id":11530,"name":"zhangtralon","email":"ztralon@hotmail.com","username":"zhangtralon"},"change_message_id":"794d76174bf434d9c6c74ae617290a318c7c3e2a","unresolved":false,"context_lines":[{"line_number":4428,"context_line":"    return result"},{"line_number":4429,"context_line":""},{"line_number":4430,"context_line":""},{"line_number":4431,"context_line":"def migration_get_by_instances_with_multiple_statuses("},{"line_number":4432,"context_line":"        context, instance_uuids, statuses):"},{"line_number":4433,"context_line":"    # in order to avoid multiple database queries for the multiple status"},{"line_number":4434,"context_line":"    instances_filter \u003d [models.Instance.uuid \u003d\u003d uuid for uuid in"}],"source_content_type":"text/x-python","patch_set":9,"id":"baa041b7_92f264d1","line":4431,"in_reply_to":"baa041b7_da1a4c6e","updated":"2015-04-03 02:06:47.000000000","message":"thanks for your guide!","commit_id":"9131888366b9de511e5c1ff822254d7babe51c77"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"8b605a4e78d56a3e678f903aeb8ee77c6cc76f0d","unresolved":false,"context_lines":[{"line_number":4435,"context_line":"                        instance_uuids]"},{"line_number":4436,"context_line":"    filter_statuses \u003d [models.Migration.status \u003d\u003d value for value in statuses]"},{"line_number":4437,"context_line":"    result \u003d model_query(context, models.Migration, read_deleted\u003d\"yes\").\\"},{"line_number":4438,"context_line":"        filter(or_(*filter_statuses)). \\"},{"line_number":4439,"context_line":"        filter(or_(*instances_filter)). \\"},{"line_number":4440,"context_line":"        all()"},{"line_number":4441,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"baa041b7_593c2093","line":4438,"updated":"2015-04-02 12:06:41.000000000","message":"you do not need the space after the .","commit_id":"9131888366b9de511e5c1ff822254d7babe51c77"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"8b605a4e78d56a3e678f903aeb8ee77c6cc76f0d","unresolved":false,"context_lines":[{"line_number":4436,"context_line":"    filter_statuses \u003d [models.Migration.status \u003d\u003d value for value in statuses]"},{"line_number":4437,"context_line":"    result \u003d model_query(context, models.Migration, read_deleted\u003d\"yes\").\\"},{"line_number":4438,"context_line":"        filter(or_(*filter_statuses)). \\"},{"line_number":4439,"context_line":"        filter(or_(*instances_filter)). \\"},{"line_number":4440,"context_line":"        all()"},{"line_number":4441,"context_line":""},{"line_number":4442,"context_line":"    instance_uuid \u003d \" \".join(instance_uuids)"}],"source_content_type":"text/x-python","patch_set":9,"id":"baa041b7_39415c0c","line":4439,"updated":"2015-04-02 12:06:41.000000000","message":"ditto","commit_id":"9131888366b9de511e5c1ff822254d7babe51c77"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"8b605a4e78d56a3e678f903aeb8ee77c6cc76f0d","unresolved":false,"context_lines":[{"line_number":4442,"context_line":"    instance_uuid \u003d \" \".join(instance_uuids)"},{"line_number":4443,"context_line":"    status \u003d \" \".join(statuses)"},{"line_number":4444,"context_line":"    if not result:"},{"line_number":4445,"context_line":"        raise exception.MigrationNotFoundByStatus(instance_id\u003dinstance_uuid,"},{"line_number":4446,"context_line":"                                                  status\u003dstatus)"},{"line_number":4447,"context_line":"    return result"},{"line_number":4448,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"baa041b7_f9c41493","line":4445,"updated":"2015-04-02 12:06:41.000000000","message":"please add a test case for this flow","commit_id":"9131888366b9de511e5c1ff822254d7babe51c77"},{"author":{"_account_id":11530,"name":"zhangtralon","email":"ztralon@hotmail.com","username":"zhangtralon"},"change_message_id":"794d76174bf434d9c6c74ae617290a318c7c3e2a","unresolved":false,"context_lines":[{"line_number":4442,"context_line":"    instance_uuid \u003d \" \".join(instance_uuids)"},{"line_number":4443,"context_line":"    status \u003d \" \".join(statuses)"},{"line_number":4444,"context_line":"    if not result:"},{"line_number":4445,"context_line":"        raise exception.MigrationNotFoundByStatus(instance_id\u003dinstance_uuid,"},{"line_number":4446,"context_line":"                                                  status\u003dstatus)"},{"line_number":4447,"context_line":"    return result"},{"line_number":4448,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"baa041b7_12b534ed","line":4445,"in_reply_to":"baa041b7_f9c41493","updated":"2015-04-03 02:06:47.000000000","message":"ok, I will add a test for this case","commit_id":"9131888366b9de511e5c1ff822254d7babe51c77"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"168eb5061d0c11b344063cad01a94edb0784e0df","unresolved":false,"context_lines":[{"line_number":4428,"context_line":"    return result"},{"line_number":4429,"context_line":""},{"line_number":4430,"context_line":""},{"line_number":4431,"context_line":"def migration_get_by_instances_with_multiple_statuses("},{"line_number":4432,"context_line":"        context, instance_uuids, statuses):"},{"line_number":4433,"context_line":"    # in order to avoid multiple database queries for the multiple status"},{"line_number":4434,"context_line":"    instances_filter \u003d [models.Migration.instance_uuid \u003d\u003d uuid for uuid in"}],"source_content_type":"text/x-python","patch_set":14,"id":"baa041b7_319ca5bf","line":4431,"updated":"2015-04-03 14:23:14.000000000","message":"I think it is statutes (plural of status)","commit_id":"f34b4428a877de2741b7caf204d487964ea78631"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"c668ede2c533c7297f72acbf94492e1c9c55d6ea","unresolved":false,"context_lines":[{"line_number":4443,"context_line":"    status \u003d \" \".join(statuses)"},{"line_number":4444,"context_line":"    if not result:"},{"line_number":4445,"context_line":"        raise exception.MigrationNotFoundByStatus(instance_id\u003dinstance_uuid,"},{"line_number":4446,"context_line":"                                                  status\u003dstatus)"},{"line_number":4447,"context_line":"    return result"},{"line_number":4448,"context_line":""},{"line_number":4449,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7aaa499b_59241d0c","line":4446,"updated":"2015-04-13 16:40:46.000000000","message":"you last patch in the patch set shows this is a normal case\ncan we just return the result here instead of exception?","commit_id":"fd98785b085d3291728eac541a0dd5da14f4c144"},{"author":{"_account_id":11530,"name":"zhangtralon","email":"ztralon@hotmail.com","username":"zhangtralon"},"change_message_id":"acbecde71df180638cd7acefa538831a9f4bd852","unresolved":false,"context_lines":[{"line_number":4443,"context_line":"    status \u003d \" \".join(statuses)"},{"line_number":4444,"context_line":"    if not result:"},{"line_number":4445,"context_line":"        raise exception.MigrationNotFoundByStatus(instance_id\u003dinstance_uuid,"},{"line_number":4446,"context_line":"                                                  status\u003dstatus)"},{"line_number":4447,"context_line":"    return result"},{"line_number":4448,"context_line":""},{"line_number":4449,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7aaa499b_5fc06f2a","line":4446,"in_reply_to":"7aaa499b_59241d0c","updated":"2015-04-14 02:45:00.000000000","message":"I think that keeping the operation consistency  is very import, otherwise it may make users confused!","commit_id":"fd98785b085d3291728eac541a0dd5da14f4c144"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"559632ab0ad16be95ef857d2f8f868fdbf455afd","unresolved":false,"context_lines":[{"line_number":4436,"context_line":"    filter_statuses \u003d [models.Migration.status \u003d\u003d value for value in statuses]"},{"line_number":4437,"context_line":"    result \u003d model_query(context, models.Migration, read_deleted\u003d\"yes\").\\"},{"line_number":4438,"context_line":"        filter(or_(*filter_statuses)).\\"},{"line_number":4439,"context_line":"        filter(or_(*instances_filter)).\\"},{"line_number":4440,"context_line":"        all()"},{"line_number":4441,"context_line":""},{"line_number":4442,"context_line":"    instance_uuid \u003d \" \".join(instance_uuids)"}],"source_content_type":"text/x-python","patch_set":16,"id":"7aaa499b_aaf5efcb","line":4439,"updated":"2015-04-14 03:25:18.000000000","message":"I guess there is efficiency difference of different orders of the two above \"filter\" sub statement, but just guess :)","commit_id":"77c60d86c7ad92b0fd3103c570d5212781d969cf"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"559632ab0ad16be95ef857d2f8f868fdbf455afd","unresolved":false,"context_lines":[{"line_number":4443,"context_line":"    status \u003d \" \".join(statuses)"},{"line_number":4444,"context_line":"    if not result:"},{"line_number":4445,"context_line":"        raise exception.MigrationNotFoundByStatus(instance_id\u003dinstance_uuid,"},{"line_number":4446,"context_line":"                                                  status\u003dstatus)"},{"line_number":4447,"context_line":"    return result"},{"line_number":4448,"context_line":""},{"line_number":4449,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"7aaa499b_caa4bba7","line":4446,"updated":"2015-04-14 03:25:18.000000000","message":"the usage of \u0027exception.MigrationNotFoundByStatus\u0027 is easy to mislead.","commit_id":"77c60d86c7ad92b0fd3103c570d5212781d969cf"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"dbf2d1da1734f1765d0cf4ae6a14e1ea6eeaeb11","unresolved":false,"context_lines":[{"line_number":4443,"context_line":"    status \u003d \" \".join(statuses)"},{"line_number":4444,"context_line":"    if not result:"},{"line_number":4445,"context_line":"        raise exception.MigrationNotFoundByStatus(instance_id\u003dinstance_uuid,"},{"line_number":4446,"context_line":"                                                  status\u003dstatus)"},{"line_number":4447,"context_line":"    return result"},{"line_number":4448,"context_line":""},{"line_number":4449,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"7aaa499b_dde695b3","line":4446,"in_reply_to":"7aaa499b_caa4bba7","updated":"2015-04-15 07:42:23.000000000","message":"We can probably have an specific exception here","commit_id":"77c60d86c7ad92b0fd3103c570d5212781d969cf"},{"author":{"_account_id":11530,"name":"zhangtralon","email":"ztralon@hotmail.com","username":"zhangtralon"},"change_message_id":"5413c29dc616f9bd1fbb2bc6a207c64f34cc7c43","unresolved":false,"context_lines":[{"line_number":4443,"context_line":"    status \u003d \" \".join(statuses)"},{"line_number":4444,"context_line":"    if not result:"},{"line_number":4445,"context_line":"        raise exception.MigrationNotFoundByStatus(instance_id\u003dinstance_uuid,"},{"line_number":4446,"context_line":"                                                  status\u003dstatus)"},{"line_number":4447,"context_line":"    return result"},{"line_number":4448,"context_line":""},{"line_number":4449,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"3ab451fb_f1ba006e","line":4446,"in_reply_to":"7aaa499b_dde695b3","updated":"2015-04-17 08:24:31.000000000","message":"We can use a new exception to description. thanks, liusheng, sahid.","commit_id":"77c60d86c7ad92b0fd3103c570d5212781d969cf"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"e3b1d74749a97fedafe6ac5230fd8d4420a5c9a9","unresolved":false,"context_lines":[{"line_number":4433,"context_line":"    # in order to avoid multiple database queries for the multiple status"},{"line_number":4434,"context_line":"    instances_filter \u003d [models.Migration.instance_uuid \u003d\u003d uuid for uuid in"},{"line_number":4435,"context_line":"                        instance_uuids]"},{"line_number":4436,"context_line":"    filter_statuses \u003d [models.Migration.status \u003d\u003d value for value in statuses]"},{"line_number":4437,"context_line":"    result \u003d model_query(context, models.Migration, read_deleted\u003d\"yes\").\\"},{"line_number":4438,"context_line":"        filter(or_(*filter_statuses)).\\"},{"line_number":4439,"context_line":"        filter(or_(*instances_filter)).\\"}],"source_content_type":"text/x-python","patch_set":19,"id":"3acd31a7_3169978c","line":4436,"updated":"2015-04-30 05:54:33.000000000","message":"I suspect that the filter_statuses you expect should have other values than True or False. Plus, models.Migration.status is a Column(String(255)), so I assume models.Migration.status \u003d\u003d value will always be false. Am I missing something?","commit_id":"11d62f30a06cda987ba51ecb6d73cb10b96d17c6"},{"author":{"_account_id":11530,"name":"zhangtralon","email":"ztralon@hotmail.com","username":"zhangtralon"},"change_message_id":"001fd38661dfc06c50ffce0d99442004164f9488","unresolved":false,"context_lines":[{"line_number":4433,"context_line":"    # in order to avoid multiple database queries for the multiple status"},{"line_number":4434,"context_line":"    instances_filter \u003d [models.Migration.instance_uuid \u003d\u003d uuid for uuid in"},{"line_number":4435,"context_line":"                        instance_uuids]"},{"line_number":4436,"context_line":"    filter_statuses \u003d [models.Migration.status \u003d\u003d value for value in statuses]"},{"line_number":4437,"context_line":"    result \u003d model_query(context, models.Migration, read_deleted\u003d\"yes\").\\"},{"line_number":4438,"context_line":"        filter(or_(*filter_statuses)).\\"},{"line_number":4439,"context_line":"        filter(or_(*instances_filter)).\\"}],"source_content_type":"text/x-python","patch_set":19,"id":"3acd31a7_9e31810e","line":4436,"in_reply_to":"3acd31a7_3169978c","updated":"2015-04-30 09:24:57.000000000","message":"the value of the status is also string. so  models.Migration.status \u003d\u003d value will not always be false.","commit_id":"11d62f30a06cda987ba51ecb6d73cb10b96d17c6"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"e3b1d74749a97fedafe6ac5230fd8d4420a5c9a9","unresolved":false,"context_lines":[{"line_number":4443,"context_line":"    status \u003d \" \".join(statuses)"},{"line_number":4444,"context_line":"    if not result:"},{"line_number":4445,"context_line":"        raise exception.MigrationsNotFoundByStatuses(instance_id\u003dinstance_uuid,"},{"line_number":4446,"context_line":"                                                     status\u003dstatus)"},{"line_number":4447,"context_line":"    return result"},{"line_number":4448,"context_line":""},{"line_number":4449,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"3acd31a7_917ceb21","line":4446,"updated":"2015-04-30 05:54:33.000000000","message":"So, I think you are requesting a list of instances, that should be in certain migration statuses, correct? I would expect all the given instances to be migrating, not at least one, as it currently is the case.\n\nCurrently, if just one instance is in a migrating status, out of 100, it would not raise any exception.\n\nIf you will be raising an exception if not all the instances are found in migrating status, it would be harsh to raise the exception... I don\u0027t know the circumstances this will be used, but maybe you\u0027d still want to process for the isntances you\u0027ve found...\n\nSooo... log warning for the instances for which migration was not found?","commit_id":"11d62f30a06cda987ba51ecb6d73cb10b96d17c6"},{"author":{"_account_id":11530,"name":"zhangtralon","email":"ztralon@hotmail.com","username":"zhangtralon"},"change_message_id":"001fd38661dfc06c50ffce0d99442004164f9488","unresolved":false,"context_lines":[{"line_number":4443,"context_line":"    status \u003d \" \".join(statuses)"},{"line_number":4444,"context_line":"    if not result:"},{"line_number":4445,"context_line":"        raise exception.MigrationsNotFoundByStatuses(instance_id\u003dinstance_uuid,"},{"line_number":4446,"context_line":"                                                     status\u003dstatus)"},{"line_number":4447,"context_line":"    return result"},{"line_number":4448,"context_line":""},{"line_number":4449,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"3acd31a7_e10338b7","line":4446,"in_reply_to":"3acd31a7_917ceb21","updated":"2015-04-30 09:24:57.000000000","message":"No, I get a list of migrations, whose instance_uuid is in the  parameter instance_uuids and whose status is in the parameter  statuses at the same time.you can see the patch set 12 in https://review.openstack.org/#/c/160110/  thank you for your review.","commit_id":"11d62f30a06cda987ba51ecb6d73cb10b96d17c6"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"dea73f8526aed64e19889ae647f6dedf26c25760","unresolved":false,"context_lines":[{"line_number":4426,"context_line":"        all()"},{"line_number":4427,"context_line":""},{"line_number":4428,"context_line":"    instance_uuids \u003d \" \".join(instance_uuids)"},{"line_number":4429,"context_line":"    statuses \u003d \" \".join(statuses)"},{"line_number":4430,"context_line":"    if not result:"},{"line_number":4431,"context_line":"        raise exception.MigrationsNotFoundByStatuses("},{"line_number":4432,"context_line":"            instance_ids\u003dinstance_uuids, statuses\u003dstatuses)"}],"source_content_type":"text/x-python","patch_set":29,"id":"ba3cc151_926cef9d","line":4429,"updated":"2015-06-29 15:01:27.000000000","message":"those are used in case there is no result. They should be moved in the ``if not result`` block.","commit_id":"8bb169d4865d705ff6a14943cbaecc2a1fae44b5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"de898d42bfac0871db5591d36b94e950d881d013","unresolved":false,"context_lines":[{"line_number":4454,"context_line":"        filter(or_(*instances_filter)).\\"},{"line_number":4455,"context_line":"        all()"},{"line_number":4456,"context_line":""},{"line_number":4457,"context_line":"    instance_uuids \u003d \" \".join(instance_uuids)"},{"line_number":4458,"context_line":"    statuses \u003d \" \".join(statuses)"},{"line_number":4459,"context_line":"    if not result:"},{"line_number":4460,"context_line":"        raise exception.MigrationsNotFoundByStatuses("},{"line_number":4461,"context_line":"            instance_ids\u003dinstance_uuids, statuses\u003dstatuses)"},{"line_number":4462,"context_line":"    return result"}],"source_content_type":"text/x-python","patch_set":38,"id":"fa1b9901_540a3a8b","line":4459,"range":{"start_line":4457,"start_character":0,"end_line":4459,"end_character":0},"updated":"2015-08-26 09:56:59.000000000","message":"you can move these inside the following if","commit_id":"6f7645b6a92e300573089497119e09138b8f9d4b"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"97aedfde93238aa0685b7ee5af1bedfc0f9d03bb","unresolved":false,"context_lines":[{"line_number":4456,"context_line":""},{"line_number":4457,"context_line":"    instance_uuids \u003d \" \".join(instance_uuids)"},{"line_number":4458,"context_line":"    statuses \u003d \" \".join(statuses)"},{"line_number":4459,"context_line":"    if not result:"},{"line_number":4460,"context_line":"        raise exception.MigrationsNotFoundByStatuses("},{"line_number":4461,"context_line":"            instance_ids\u003dinstance_uuids, statuses\u003dstatuses)"},{"line_number":4462,"context_line":"    return result"}],"source_content_type":"text/x-python","patch_set":38,"id":"da20952f_90f157d0","line":4459,"in_reply_to":"fa1b9901_540a3a8b","updated":"2015-08-27 01:09:06.000000000","message":"Thanks for your review, but I\u0027m not quite sure what you are suggesting.","commit_id":"6f7645b6a92e300573089497119e09138b8f9d4b"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"6df910ee105864f437921fac7711995f25e6046c","unresolved":false,"context_lines":[{"line_number":4451,"context_line":"    filter_statuses \u003d [models.Migration.status \u003d\u003d value for value in statuses]"},{"line_number":4452,"context_line":"    result \u003d model_query(context, models.Migration, read_deleted\u003d\"yes\").\\"},{"line_number":4453,"context_line":"        filter(or_(*filter_statuses)).\\"},{"line_number":4454,"context_line":"        filter(or_(*instances_filter)).\\"},{"line_number":4455,"context_line":"        all()"},{"line_number":4456,"context_line":""},{"line_number":4457,"context_line":"    instance_uuids \u003d \" \".join(instance_uuids)"}],"source_content_type":"text/x-python","patch_set":39,"id":"da20952f_0dc8b854","line":4454,"updated":"2015-08-27 10:42:36.000000000","message":"maybe it would be better to avoid backslashes (\u0027\\\u0027)","commit_id":"8cfd921d56b06b2dfd586cc9e21500431a6f7ab6"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"6df910ee105864f437921fac7711995f25e6046c","unresolved":false,"context_lines":[{"line_number":4455,"context_line":"        all()"},{"line_number":4456,"context_line":""},{"line_number":4457,"context_line":"    instance_uuids \u003d \" \".join(instance_uuids)"},{"line_number":4458,"context_line":"    statuses \u003d \" \".join(statuses)"},{"line_number":4459,"context_line":"    if not result:"},{"line_number":4460,"context_line":"        raise exception.MigrationsNotFoundByStatuses("},{"line_number":4461,"context_line":"            instance_ids\u003dinstance_uuids, statuses\u003dstatuses)"}],"source_content_type":"text/x-python","patch_set":39,"id":"da20952f_addbcc1a","line":4458,"updated":"2015-08-27 10:42:36.000000000","message":"I think we can move above two lines inside if","commit_id":"8cfd921d56b06b2dfd586cc9e21500431a6f7ab6"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"643590467775a247400536e6991885f70fbc3977","unresolved":false,"context_lines":[{"line_number":4444,"context_line":"    return result"},{"line_number":4445,"context_line":""},{"line_number":4446,"context_line":""},{"line_number":4447,"context_line":"def migration_get_by_instances_with_multiple_statuses("},{"line_number":4448,"context_line":"        context, instance_uuids, statuses):"},{"line_number":4449,"context_line":"    # in order to avoid multiple database queries for the multiple statuses"},{"line_number":4450,"context_line":"    instances_filter \u003d [models.Migration.instance_uuid \u003d\u003d uuid for uuid in"}],"source_content_type":"text/x-python","patch_set":44,"id":"da20952f_17773003","line":4447,"updated":"2015-09-10 10:34:22.000000000","message":"I think we should have @require_context here, but I am not totally sure.","commit_id":"3c02cc2c630a45af7a07ad821b0bbeffdb520aab"}],"nova/exception.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"3f8e441cb3104f7d29d6e0e96dc5e6c5a46c9003","unresolved":false,"context_lines":[{"line_number":1026,"context_line":"                \"with status %(status)s.\")"},{"line_number":1027,"context_line":""},{"line_number":1028,"context_line":""},{"line_number":1029,"context_line":"class MigrationsNotFoundByStatuses(MigrationNotFound):"},{"line_number":1030,"context_line":"    msg_fmt \u003d _(\"Migration not found for instance %(instance_id)s \""},{"line_number":1031,"context_line":"                \"with status %(status)s.\")"},{"line_number":1032,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"3acd31a7_572631bb","line":1029,"updated":"2015-04-30 06:22:23.000000000","message":"I would go for Status (http://www.onlinegrammar.com.au/plural-of-status/)","commit_id":"11d62f30a06cda987ba51ecb6d73cb10b96d17c6"},{"author":{"_account_id":11530,"name":"zhangtralon","email":"ztralon@hotmail.com","username":"zhangtralon"},"change_message_id":"18582256f82fe259ed3063ef5fd25cc41d29b9bd","unresolved":false,"context_lines":[{"line_number":1026,"context_line":"                \"with status %(status)s.\")"},{"line_number":1027,"context_line":""},{"line_number":1028,"context_line":""},{"line_number":1029,"context_line":"class MigrationsNotFoundByStatuses(MigrationNotFound):"},{"line_number":1030,"context_line":"    msg_fmt \u003d _(\"Migration not found for instance %(instance_id)s \""},{"line_number":1031,"context_line":"                \"with status %(status)s.\")"},{"line_number":1032,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"3acd31a7_c1039c0e","line":1029,"in_reply_to":"3acd31a7_572631bb","updated":"2015-04-30 09:32:01.000000000","message":"yeah, both are right, I think the Statues may be clear. thanks","commit_id":"11d62f30a06cda987ba51ecb6d73cb10b96d17c6"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"e3b1d74749a97fedafe6ac5230fd8d4420a5c9a9","unresolved":false,"context_lines":[{"line_number":1028,"context_line":""},{"line_number":1029,"context_line":"class MigrationsNotFoundByStatuses(MigrationNotFound):"},{"line_number":1030,"context_line":"    msg_fmt \u003d _(\"Migration not found for instance %(instance_id)s \""},{"line_number":1031,"context_line":"                \"with status %(status)s.\")"},{"line_number":1032,"context_line":""},{"line_number":1033,"context_line":""},{"line_number":1034,"context_line":"class ConsolePoolNotFound(NotFound):"}],"source_content_type":"text/x-python","patch_set":19,"id":"3acd31a7_944bb92b","line":1031,"updated":"2015-04-30 05:54:33.000000000","message":"Since you are passing a list of instances / statuses, I would suggest:\n\n    Migration not found for instance(s) with status(es)\n\nalso, since the exception is called ...Statuses, maybe have statuses instead of status or status(es)","commit_id":"11d62f30a06cda987ba51ecb6d73cb10b96d17c6"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"3f8e441cb3104f7d29d6e0e96dc5e6c5a46c9003","unresolved":false,"context_lines":[{"line_number":1028,"context_line":""},{"line_number":1029,"context_line":"class MigrationsNotFoundByStatuses(MigrationNotFound):"},{"line_number":1030,"context_line":"    msg_fmt \u003d _(\"Migration not found for instance %(instance_id)s \""},{"line_number":1031,"context_line":"                \"with status %(status)s.\")"},{"line_number":1032,"context_line":""},{"line_number":1033,"context_line":""},{"line_number":1034,"context_line":"class ConsolePoolNotFound(NotFound):"}],"source_content_type":"text/x-python","patch_set":19,"id":"3acd31a7_f75bfd2c","line":1031,"in_reply_to":"3acd31a7_944bb92b","updated":"2015-04-30 06:22:23.000000000","message":"Please see comment above :)","commit_id":"11d62f30a06cda987ba51ecb6d73cb10b96d17c6"},{"author":{"_account_id":11530,"name":"zhangtralon","email":"ztralon@hotmail.com","username":"zhangtralon"},"change_message_id":"001fd38661dfc06c50ffce0d99442004164f9488","unresolved":false,"context_lines":[{"line_number":1028,"context_line":""},{"line_number":1029,"context_line":"class MigrationsNotFoundByStatuses(MigrationNotFound):"},{"line_number":1030,"context_line":"    msg_fmt \u003d _(\"Migration not found for instance %(instance_id)s \""},{"line_number":1031,"context_line":"                \"with status %(status)s.\")"},{"line_number":1032,"context_line":""},{"line_number":1033,"context_line":""},{"line_number":1034,"context_line":"class ConsolePoolNotFound(NotFound):"}],"source_content_type":"text/x-python","patch_set":19,"id":"3acd31a7_6135e844","line":1031,"in_reply_to":"3acd31a7_f75bfd2c","updated":"2015-04-30 09:24:57.000000000","message":"thanks.","commit_id":"11d62f30a06cda987ba51ecb6d73cb10b96d17c6"}],"nova/tests/unit/db/test_db_api.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"c668ede2c533c7297f72acbf94492e1c9c55d6ea","unresolved":false,"context_lines":[{"line_number":1303,"context_line":"    def test_migration_get_by_instances_with_multiple_statuses(self):"},{"line_number":1304,"context_line":"        values \u003d {\u0027status\u0027: \u0027post-migrating\u0027, \u0027source_compute\u0027: \u0027host1\u0027,"},{"line_number":1305,"context_line":"                  \u0027source_node\u0027: \u0027a\u0027, \u0027dest_compute\u0027: \u0027host2\u0027,"},{"line_number":1306,"context_line":"                  \u0027dest_node\u0027: \u0027b\u0027}"},{"line_number":1307,"context_line":"        instance \u003d db.instance_create(self.ctxt, values)"},{"line_number":1308,"context_line":"        values.update({\u0027instance_uuid\u0027: instance[\u0027uuid\u0027]})"},{"line_number":1309,"context_line":"        migration \u003d db.migration_create(self.ctxt, values)"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aaa499b_19a8d51e","line":1306,"updated":"2015-04-13 16:40:46.000000000","message":"I think we can add a case to have more status in the db instead in the query to cover more ?","commit_id":"fd98785b085d3291728eac541a0dd5da14f4c144"},{"author":{"_account_id":11530,"name":"zhangtralon","email":"ztralon@hotmail.com","username":"zhangtralon"},"change_message_id":"acbecde71df180638cd7acefa538831a9f4bd852","unresolved":false,"context_lines":[{"line_number":1303,"context_line":"    def test_migration_get_by_instances_with_multiple_statuses(self):"},{"line_number":1304,"context_line":"        values \u003d {\u0027status\u0027: \u0027post-migrating\u0027, \u0027source_compute\u0027: \u0027host1\u0027,"},{"line_number":1305,"context_line":"                  \u0027source_node\u0027: \u0027a\u0027, \u0027dest_compute\u0027: \u0027host2\u0027,"},{"line_number":1306,"context_line":"                  \u0027dest_node\u0027: \u0027b\u0027}"},{"line_number":1307,"context_line":"        instance \u003d db.instance_create(self.ctxt, values)"},{"line_number":1308,"context_line":"        values.update({\u0027instance_uuid\u0027: instance[\u0027uuid\u0027]})"},{"line_number":1309,"context_line":"        migration \u003d db.migration_create(self.ctxt, values)"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aaa499b_9fcdd75f","line":1306,"in_reply_to":"7aaa499b_19a8d51e","updated":"2015-04-14 02:45:00.000000000","message":"yeah, I will modify this case and make it cover more status. thanks!","commit_id":"fd98785b085d3291728eac541a0dd5da14f4c144"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"e3b1d74749a97fedafe6ac5230fd8d4420a5c9a9","unresolved":false,"context_lines":[{"line_number":1317,"context_line":"        results \u003d db.migration_get_by_instances_with_multiple_statuses("},{"line_number":1318,"context_line":"            self.ctxt, [instance1[\u0027uuid\u0027], instance2[\u0027uuid\u0027]],"},{"line_number":1319,"context_line":"            [\u0027post-migrating\u0027, \u0027finished\u0027, \u0027reverting\u0027, \u0027reverted\u0027])"},{"line_number":1320,"context_line":"        self.assertEqual(2, len(results))"},{"line_number":1321,"context_line":""},{"line_number":1322,"context_line":"    def test_migration_get_unconfirmed_by_dest_compute(self):"},{"line_number":1323,"context_line":"        # Ensure no migrations are returned."}],"source_content_type":"text/x-python","patch_set":19,"id":"3acd31a7_549f615f","line":1320,"updated":"2015-04-30 05:54:33.000000000","message":"Can you assert the exact values, instead of just asserting it has 2 results? It is more correct and verrifiable that way.","commit_id":"11d62f30a06cda987ba51ecb6d73cb10b96d17c6"},{"author":{"_account_id":11530,"name":"zhangtralon","email":"ztralon@hotmail.com","username":"zhangtralon"},"change_message_id":"001fd38661dfc06c50ffce0d99442004164f9488","unresolved":false,"context_lines":[{"line_number":1317,"context_line":"        results \u003d db.migration_get_by_instances_with_multiple_statuses("},{"line_number":1318,"context_line":"            self.ctxt, [instance1[\u0027uuid\u0027], instance2[\u0027uuid\u0027]],"},{"line_number":1319,"context_line":"            [\u0027post-migrating\u0027, \u0027finished\u0027, \u0027reverting\u0027, \u0027reverted\u0027])"},{"line_number":1320,"context_line":"        self.assertEqual(2, len(results))"},{"line_number":1321,"context_line":""},{"line_number":1322,"context_line":"    def test_migration_get_unconfirmed_by_dest_compute(self):"},{"line_number":1323,"context_line":"        # Ensure no migrations are returned."}],"source_content_type":"text/x-python","patch_set":19,"id":"3acd31a7_a179c0fe","line":1320,"in_reply_to":"3acd31a7_549f615f","updated":"2015-04-30 09:24:57.000000000","message":"yeah, will be done","commit_id":"11d62f30a06cda987ba51ecb6d73cb10b96d17c6"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"252ab5977076a559a375e2dc0aa3c3abc45fb13f","unresolved":false,"context_lines":[{"line_number":1292,"context_line":"    def test_migration_get_by_instances_with_multiple_statuses(self):"},{"line_number":1293,"context_line":"        values1 \u003d {\u0027status\u0027: \u0027post-migrating\u0027, \u0027source_compute\u0027: \u0027host1\u0027,"},{"line_number":1294,"context_line":"                  \u0027source_node\u0027: \u0027a\u0027, \u0027dest_compute\u0027: \u0027host2\u0027,"},{"line_number":1295,"context_line":"                  \u0027dest_node\u0027: \u0027b\u0027}"},{"line_number":1296,"context_line":"        instance1 \u003d db.instance_create(self.ctxt, values1)"},{"line_number":1297,"context_line":"        values1.update({\u0027instance_uuid\u0027: instance1[\u0027uuid\u0027]})"},{"line_number":1298,"context_line":"        db.migration_create(self.ctxt, values1)"}],"source_content_type":"text/x-python","patch_set":22,"id":"3acd31a7_4c609801","line":1295,"updated":"2015-05-04 11:55:28.000000000","message":"nit: the 2 lines above needs to be indented by one space, so it matches the indentation in the dict.","commit_id":"daf907b4b5b95ff2ab20e838140fdfe37bea6a19"},{"author":{"_account_id":11530,"name":"zhangtralon","email":"ztralon@hotmail.com","username":"zhangtralon"},"change_message_id":"ce3a78e49455f75088264283d1dd6e98a734be1b","unresolved":false,"context_lines":[{"line_number":1292,"context_line":"    def test_migration_get_by_instances_with_multiple_statuses(self):"},{"line_number":1293,"context_line":"        values1 \u003d {\u0027status\u0027: \u0027post-migrating\u0027, \u0027source_compute\u0027: \u0027host1\u0027,"},{"line_number":1294,"context_line":"                  \u0027source_node\u0027: \u0027a\u0027, \u0027dest_compute\u0027: \u0027host2\u0027,"},{"line_number":1295,"context_line":"                  \u0027dest_node\u0027: \u0027b\u0027}"},{"line_number":1296,"context_line":"        instance1 \u003d db.instance_create(self.ctxt, values1)"},{"line_number":1297,"context_line":"        values1.update({\u0027instance_uuid\u0027: instance1[\u0027uuid\u0027]})"},{"line_number":1298,"context_line":"        db.migration_create(self.ctxt, values1)"}],"source_content_type":"text/x-python","patch_set":22,"id":"3acd31a7_0ea6fcad","line":1295,"in_reply_to":"3acd31a7_4c609801","updated":"2015-05-05 02:10:17.000000000","message":"Claudiu Belu, thank you for your advice.","commit_id":"daf907b4b5b95ff2ab20e838140fdfe37bea6a19"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"252ab5977076a559a375e2dc0aa3c3abc45fb13f","unresolved":false,"context_lines":[{"line_number":1298,"context_line":"        db.migration_create(self.ctxt, values1)"},{"line_number":1299,"context_line":"        values2 \u003d {\u0027status\u0027: \u0027reverting\u0027, \u0027source_compute\u0027: \u0027host2\u0027,"},{"line_number":1300,"context_line":"                  \u0027source_node\u0027: \u0027a\u0027, \u0027dest_compute\u0027: \u0027host1\u0027,"},{"line_number":1301,"context_line":"                  \u0027dest_node\u0027: \u0027b\u0027}"},{"line_number":1302,"context_line":"        instance2 \u003d db.instance_create(self.ctxt, values2)"},{"line_number":1303,"context_line":"        values2.update({\u0027instance_uuid\u0027: instance2[\u0027uuid\u0027]})"},{"line_number":1304,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"3acd31a7_ac35ecf7","line":1301,"updated":"2015-05-04 11:55:28.000000000","message":"ditto","commit_id":"daf907b4b5b95ff2ab20e838140fdfe37bea6a19"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"dea73f8526aed64e19889ae647f6dedf26c25760","unresolved":false,"context_lines":[{"line_number":1340,"context_line":"        self.assertEqual(2, len(results))"},{"line_number":1341,"context_line":"        instance_uuids \u003d [instance1[\u0027uuid\u0027], instance2[\u0027uuid\u0027]]"},{"line_number":1342,"context_line":"        self.assertIn(results[0][\u0027instance_uuid\u0027], instance_uuids)"},{"line_number":1343,"context_line":"        self.assertIn(results[1][\u0027instance_uuid\u0027], instance_uuids)"},{"line_number":1344,"context_line":""},{"line_number":1345,"context_line":"    def test_migration_get_unconfirmed_by_dest_compute(self):"},{"line_number":1346,"context_line":"        # Ensure no migrations are returned."}],"source_content_type":"text/x-python","patch_set":29,"id":"ba3cc151_32872311","line":1343,"updated":"2015-06-29 15:01:27.000000000","message":"this is a bit paranoic of me, but I\u0027d feel more comfortable if you could include 2 more entries in the database:\n\n    values3 \u003d {\u0027status\u0027: \u0027reverting\u0027, \u0027source_compute\u0027: \u0027host2\u0027,\n               \u0027source_node\u0027: \u0027a\u0027, \u0027dest_compute\u0027: \u0027host1\u0027,\n               \u0027dest_node\u0027: \u0027b\u0027}\n\n    values4 \u003d {\u0027status\u0027: \u0027other-status\u0027, \u0027source_compute\u0027: \u0027host2\u0027,\n               \u0027source_node\u0027: \u0027a\u0027, \u0027dest_compute\u0027: \u0027host1\u0027,\n               \u0027dest_node\u0027: \u0027b\u0027, \u0027instance_uuid\u0027: \u0027some-other-uuid\u0027}\n\nThis will guarantee that the test will cover the cases where there are entries with other instance UUID or other status than desired. We need to cover those cases.","commit_id":"8bb169d4865d705ff6a14943cbaecc2a1fae44b5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"991e8b096597b392a12423d3c2d4941f0703d6d8","unresolved":false,"context_lines":[{"line_number":1358,"context_line":"        results \u003d db.migration_get_by_instances_with_multiple_statuses("},{"line_number":1359,"context_line":"            self.ctxt, [instance1[\u0027uuid\u0027], instance2[\u0027uuid\u0027]],"},{"line_number":1360,"context_line":"            [\u0027post-migrating\u0027, \u0027finished\u0027, \u0027reverting\u0027, \u0027reverted\u0027])"},{"line_number":1361,"context_line":"        self.assertEqual(2, len(results))"},{"line_number":1362,"context_line":"        instance_uuids \u003d [instance1[\u0027uuid\u0027], instance2[\u0027uuid\u0027]]"},{"line_number":1363,"context_line":"        self.assertIn(results[0][\u0027instance_uuid\u0027], instance_uuids)"},{"line_number":1364,"context_line":"        self.assertIn(results[1][\u0027instance_uuid\u0027], instance_uuids)"}],"source_content_type":"text/x-python","patch_set":40,"id":"da20952f_91efc286","line":1361,"updated":"2015-08-28 12:51:26.000000000","message":"Could you please add a third migration that does not match the selection criteria to see if that case also works?","commit_id":"0cee35de243be3463d694f8e8e6243c734ef6326"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"e0428f0d9985f0231c1fdd832abab310dd9da7ba","unresolved":false,"context_lines":[{"line_number":1358,"context_line":"        results \u003d db.migration_get_by_instances_with_multiple_statuses("},{"line_number":1359,"context_line":"            self.ctxt, [instance1[\u0027uuid\u0027], instance2[\u0027uuid\u0027]],"},{"line_number":1360,"context_line":"            [\u0027post-migrating\u0027, \u0027finished\u0027, \u0027reverting\u0027, \u0027reverted\u0027])"},{"line_number":1361,"context_line":"        self.assertEqual(2, len(results))"},{"line_number":1362,"context_line":"        instance_uuids \u003d [instance1[\u0027uuid\u0027], instance2[\u0027uuid\u0027]]"},{"line_number":1363,"context_line":"        self.assertIn(results[0][\u0027instance_uuid\u0027], instance_uuids)"},{"line_number":1364,"context_line":"        self.assertIn(results[1][\u0027instance_uuid\u0027], instance_uuids)"}],"source_content_type":"text/x-python","patch_set":40,"id":"da20952f_518106c2","line":1361,"in_reply_to":"da20952f_91efc286","updated":"2015-08-29 07:10:24.000000000","message":"Done","commit_id":"0cee35de243be3463d694f8e8e6243c734ef6326"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"643590467775a247400536e6991885f70fbc3977","unresolved":false,"context_lines":[{"line_number":1255,"context_line":"        self._create(source_compute\u003d\u0027host2\u0027, dest_compute\u003d\u0027host3\u0027)"},{"line_number":1256,"context_line":"        self._create(source_compute\u003d\u0027host3\u0027, dest_compute\u003d\u0027host4\u0027)"},{"line_number":1257,"context_line":""},{"line_number":1258,"context_line":"    def _create(self, status\u003d\u0027migrating\u0027, source_compute\u003d\u0027host1\u0027,"},{"line_number":1259,"context_line":"                source_node\u003d\u0027a\u0027, dest_compute\u003d\u0027host2\u0027, dest_node\u003d\u0027b\u0027,"},{"line_number":1260,"context_line":"                system_metadata\u003dNone, migration_type\u003dNone):"},{"line_number":1261,"context_line":""}],"source_content_type":"text/x-python","patch_set":44,"id":"da20952f_5213765c","line":1258,"updated":"2015-09-10 10:34:22.000000000","message":"Can\u0027t your test use this helper method?","commit_id":"3c02cc2c630a45af7a07ad821b0bbeffdb520aab"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"643590467775a247400536e6991885f70fbc3977","unresolved":false,"context_lines":[{"line_number":1345,"context_line":"        values1 \u003d {\u0027status\u0027: \u0027post-migrating\u0027, \u0027source_compute\u0027: \u0027host1\u0027,"},{"line_number":1346,"context_line":"                   \u0027source_node\u0027: \u0027a\u0027, \u0027dest_compute\u0027: \u0027host2\u0027,"},{"line_number":1347,"context_line":"                   \u0027dest_node\u0027: \u0027b\u0027}"},{"line_number":1348,"context_line":"        instance1 \u003d db.instance_create(self.ctxt, values1)"},{"line_number":1349,"context_line":"        values1.update({\u0027instance_uuid\u0027: instance1[\u0027uuid\u0027]})"},{"line_number":1350,"context_line":"        db.migration_create(self.ctxt, values1)"},{"line_number":1351,"context_line":"        values2 \u003d {\u0027status\u0027: \u0027reverting\u0027, \u0027source_compute\u0027: \u0027host2\u0027,"}],"source_content_type":"text/x-python","patch_set":44,"id":"da20952f_32184275","line":1348,"updated":"2015-09-10 10:34:22.000000000","message":"Please use the self._create method to do this test setup","commit_id":"3c02cc2c630a45af7a07ad821b0bbeffdb520aab"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"643590467775a247400536e6991885f70fbc3977","unresolved":false,"context_lines":[{"line_number":1354,"context_line":"        instance2 \u003d db.instance_create(self.ctxt, values2)"},{"line_number":1355,"context_line":"        values2.update({\u0027instance_uuid\u0027: instance2[\u0027uuid\u0027]})"},{"line_number":1356,"context_line":""},{"line_number":1357,"context_line":"        db.migration_create(self.ctxt, values2)"},{"line_number":1358,"context_line":"        results \u003d db.migration_get_by_instances_with_multiple_statuses("},{"line_number":1359,"context_line":"            self.ctxt, [instance1[\u0027uuid\u0027], instance2[\u0027uuid\u0027]],"},{"line_number":1360,"context_line":"            [\u0027post-migrating\u0027, \u0027finished\u0027, \u0027reverting\u0027, \u0027reverted\u0027])"}],"source_content_type":"text/x-python","patch_set":44,"id":"da20952f_b22212a2","line":1357,"updated":"2015-09-10 10:34:22.000000000","message":"Nit: this new line is in the wrong place, I think?","commit_id":"3c02cc2c630a45af7a07ad821b0bbeffdb520aab"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b54278e385adf506f2490066ef2bf25447bf23c7","unresolved":false,"context_lines":[{"line_number":1358,"context_line":"        results \u003d db.migration_get_by_instances_with_multiple_statuses("},{"line_number":1359,"context_line":"            self.ctxt, [instance1[\u0027uuid\u0027], instance2[\u0027uuid\u0027]],"},{"line_number":1360,"context_line":"            [\u0027post-migrating\u0027, \u0027finished\u0027, \u0027reverting\u0027, \u0027reverted\u0027])"},{"line_number":1361,"context_line":"        self.assertEqual(2, len(results))"},{"line_number":1362,"context_line":"        instance_uuids \u003d [instance1[\u0027uuid\u0027], instance2[\u0027uuid\u0027]]"},{"line_number":1363,"context_line":"        self.assertIn(results[0][\u0027instance_uuid\u0027], instance_uuids)"},{"line_number":1364,"context_line":"        self.assertIn(results[1][\u0027instance_uuid\u0027], instance_uuids)"}],"source_content_type":"text/x-python","patch_set":56,"id":"ba8a016a_74aa551b","line":1361,"updated":"2015-11-23 12:38:39.000000000","message":"Could you please add an instance which has such a status that we don\u0027t request so that we can see that the db query does not return it?","commit_id":"2c98e325975e280102e6cacebfd6ff4291b30016"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"d84ca0d0d8c3c2942e2fb83a903c1a6c50bb6635","unresolved":false,"context_lines":[{"line_number":1358,"context_line":"        results \u003d db.migration_get_by_instances_with_multiple_statuses("},{"line_number":1359,"context_line":"            self.ctxt, [instance1[\u0027uuid\u0027], instance2[\u0027uuid\u0027]],"},{"line_number":1360,"context_line":"            [\u0027post-migrating\u0027, \u0027finished\u0027, \u0027reverting\u0027, \u0027reverted\u0027])"},{"line_number":1361,"context_line":"        self.assertEqual(2, len(results))"},{"line_number":1362,"context_line":"        instance_uuids \u003d [instance1[\u0027uuid\u0027], instance2[\u0027uuid\u0027]]"},{"line_number":1363,"context_line":"        self.assertIn(results[0][\u0027instance_uuid\u0027], instance_uuids)"},{"line_number":1364,"context_line":"        self.assertIn(results[1][\u0027instance_uuid\u0027], instance_uuids)"}],"source_content_type":"text/x-python","patch_set":56,"id":"ba8a016a_fd2dc9fd","line":1361,"in_reply_to":"ba8a016a_74aa551b","updated":"2015-11-23 13:14:46.000000000","message":"++ good point.","commit_id":"2c98e325975e280102e6cacebfd6ff4291b30016"}]}
