)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7770,"name":"Abhishek Chanda","email":"abhishek.becs@gmail.com","username":"abhishek"},"change_message_id":"8ffb65ca698cbfe44eb2695f25c3d645a9d0335f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"migration-list: \u0027unicode\u0027 object has no attribute \u0027iteritems\u0027"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"  Fix a small bug in the REST call of \u0027os-migrations\u0027, the"},{"line_number":10,"context_line":"return is not what we are expected."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I1579b1baf62275bf448f23be9465d4e9bc11ed85"},{"line_number":13,"context_line":"Closes-Bug: #1260249"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F9Vcg%3D","line":10,"updated":"2013-12-12 15:00:56.000000000","message":"s/expected/expecting/g","commit_id":"787f800dcd875bef345b1bdffdd23abd234cc68b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"7f4e9e257374c67b4edd0cf9ee9a7c01d81c4e43","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"migration-list: \u0027unicode\u0027 object has no attribute \u0027iteritems\u0027"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"  Fix a small bug in the REST call of \u0027os-migrations\u0027, the"},{"line_number":10,"context_line":"return is not what we are expecting."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The conversion of the object nova.objects.Migration into a list"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAT3%2F%2F81A%3D","line":9,"updated":"2013-12-26 13:04:48.000000000","message":"Please move this to the start of the line","commit_id":"3fb6f54649ddf7609eb9c9e80d0a80e6138b0dca"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"5589c05c05ecb4d63476d43349759c16a5c0f035","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"migration-list: \u0027unicode\u0027 object has no attribute \u0027iteritems\u0027"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"  Fix a small bug in the REST call of \u0027os-migrations\u0027, the"},{"line_number":10,"context_line":"return is not what we are expecting."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The conversion of the object nova.objects.Migration into a list"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAT3%2F%2F5X0%3D","line":9,"in_reply_to":"AAAAT3%2F%2F81A%3D","updated":"2013-12-27 16:12:35.000000000","message":"Done","commit_id":"3fb6f54649ddf7609eb9c9e80d0a80e6138b0dca"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"1e8672dd0b6b721cf0a4a1c23b799110b081f9f8","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix a small bug in the REST call of \u0027os-migrations\u0027"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"  The return is not what we are expecting:"},{"line_number":10,"context_line":"    migration-list: \u0027unicode\u0027 object has no attribute \u0027iteritems\u0027"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The conversion of the object nova.objects.Migration into a list"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"AAAAUH%2F%2F4A4%3D","line":9,"updated":"2014-01-07 11:00:31.000000000","message":"please move to the start of the line","commit_id":"92fd0f201a20f429c4a8b750d64875f51dce3905"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"6132ea45da4bdb8d292e9e7a736eac69f634385e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix a small bug in the REST call of \u0027os-migrations\u0027"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"  The return is not what we are expecting:"},{"line_number":10,"context_line":"    migration-list: \u0027unicode\u0027 object has no attribute \u0027iteritems\u0027"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The conversion of the object nova.objects.Migration into a list"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"AAAAUH%2F%2F35c%3D","line":9,"in_reply_to":"AAAAUH%2F%2F4A4%3D","updated":"2014-01-07 11:33:01.000000000","message":"Done","commit_id":"92fd0f201a20f429c4a8b750d64875f51dce3905"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b126b56d38ee7054021963e0e571591fa47c3300","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Sahid Orentino Ferdjaoui \u003csahid.ferdjaoui@cloudwatt.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-01-31 21:14:39 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix bug in the api \u0027os-migrations\u0027"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The return is not what we are expecting:"},{"line_number":10,"context_line":"  migration-list: \u0027unicode\u0027 object has no attribute \u0027iteritems\u0027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":31,"id":"AAAAUH%2F97oU%3D","line":7,"updated":"2014-01-31 22:47:37.000000000","message":"This could really be more useful. How about:\n\n Fix unicode error in os-migrations\n\n?","commit_id":"7f32a950b5a0e8faed38bfe5a4b9c4db131d87d7"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"cdf016cd7b6512ef6021661ab3bd45d8d347bd22","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Sahid Orentino Ferdjaoui \u003csahid.ferdjaoui@cloudwatt.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-01-31 21:14:39 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix bug in the api \u0027os-migrations\u0027"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The return is not what we are expecting:"},{"line_number":10,"context_line":"  migration-list: \u0027unicode\u0027 object has no attribute \u0027iteritems\u0027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":31,"id":"AAAAUH%2F96oI%3D","line":7,"in_reply_to":"AAAAUH%2F97oU%3D","updated":"2014-02-01 08:11:24.000000000","message":"Done","commit_id":"7f32a950b5a0e8faed38bfe5a4b9c4db131d87d7"},{"author":{"_account_id":6737,"name":"Edward Hope-Morley","email":"edward.hope-morley@canonical.com","username":"hopem"},"change_message_id":"b1438ebbe29711773fba15e635e6704f2effebc1","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The return is not what we are expecting:"},{"line_number":10,"context_line":"  migration-list: \u0027unicode\u0027 object has no attribute \u0027iteritems\u0027"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The conversion of the object nova.objects.Migration into a list"},{"line_number":13,"context_line":"is not applied automatically."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I1579b1baf62275bf448f23be9465d4e9bc11ed85"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":35,"id":"AAAAUH%2F9oUI%3D","line":12,"updated":"2014-02-05 14:42:35.000000000","message":"Looks like the object is converted to a dict not a list.","commit_id":"6f62d9e3a78f6d50d7cda40d0c28ae3a309e18da"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"76ff31686713d68fab27d88deb17a1cac7f20df3","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The return is not what we are expecting:"},{"line_number":10,"context_line":"  migration-list: \u0027unicode\u0027 object has no attribute \u0027iteritems\u0027"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The conversion of the object nova.objects.Migration into a list"},{"line_number":13,"context_line":"is not applied automatically."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I1579b1baf62275bf448f23be9465d4e9bc11ed85"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":35,"id":"AAAAUH%2F9m%2BQ%3D","line":12,"in_reply_to":"AAAAUH%2F9oUI%3D","updated":"2014-02-05 17:46:02.000000000","message":"Done","commit_id":"6f62d9e3a78f6d50d7cda40d0c28ae3a309e18da"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"a88873d53126dbf0285ed8c933af153b2bd5fad9","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Gerrit Code Review \u003creview@openstack.org\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-03-08 17:38:00 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix unicode error in os-migrations"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The return is not what we are expecting:"},{"line_number":10,"context_line":"  migration-list: \u0027unicode\u0027 object has no attribute \u0027iteritems\u0027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":45,"id":"AAAAVn%2F%2B4SA%3D","line":7,"updated":"2014-03-11 15:26:34.000000000","message":"This statement describes a symptom of the problem, but doesn\u0027t appear to describe the change itself. (I saw nothing related to Unicode in this change.)\n\nI recommend a more descriptive commit message that describes the actual change -- see https://wiki.openstack.org/wiki/GitCommitMessages#Information_in_commit_messages","commit_id":"a37e2e22b216cc3105440180bc08d365f7eabd4a"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"162c33caa9ac85e935891c6cca5db4122c424354","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Gerrit Code Review \u003creview@openstack.org\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-03-08 17:38:00 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix unicode error in os-migrations"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The return is not what we are expecting:"},{"line_number":10,"context_line":"  migration-list: \u0027unicode\u0027 object has no attribute \u0027iteritems\u0027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":45,"id":"AAAAVn%2F%2B4OM%3D","line":7,"in_reply_to":"AAAAVn%2F%2B4SA%3D","updated":"2014-03-11 15:30:25.000000000","message":"Actually It was a recommendation of Dan Smith. But I think you are right, i\u0027m going to update the message.\n\nhttps://review.openstack.org/#/c/61717/31//COMMIT_MSG","commit_id":"a37e2e22b216cc3105440180bc08d365f7eabd4a"}],"doc/api_samples/os-migrations/migrations-get.json":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"1e8672dd0b6b721cf0a4a1c23b799110b081f9f8","unresolved":false,"context_lines":[{"line_number":13,"context_line":"            \"source_node\": \"node1\","},{"line_number":14,"context_line":"            \"status\": \"Done\","},{"line_number":15,"context_line":"            \"updated_at\": \"2012-10-29T13:42:02.000000\","},{"line_number":16,"context_line":"\t    \"deleted\": false,"},{"line_number":17,"context_line":"\t    \"deleted_at\": null"},{"line_number":18,"context_line":"        },"},{"line_number":19,"context_line":"        {"}],"source_content_type":"application/json","patch_set":14,"id":"AAAAUH%2F%2F4A0%3D","line":16,"updated":"2014-01-07 11:00:31.000000000","message":"whitespace","commit_id":"92fd0f201a20f429c4a8b750d64875f51dce3905"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"6132ea45da4bdb8d292e9e7a736eac69f634385e","unresolved":false,"context_lines":[{"line_number":13,"context_line":"            \"source_node\": \"node1\","},{"line_number":14,"context_line":"            \"status\": \"Done\","},{"line_number":15,"context_line":"            \"updated_at\": \"2012-10-29T13:42:02.000000\","},{"line_number":16,"context_line":"\t    \"deleted\": false,"},{"line_number":17,"context_line":"\t    \"deleted_at\": null"},{"line_number":18,"context_line":"        },"},{"line_number":19,"context_line":"        {"}],"source_content_type":"application/json","patch_set":14,"id":"AAAAUH%2F%2F35I%3D","line":16,"in_reply_to":"AAAAUH%2F%2F4A0%3D","updated":"2014-01-07 11:33:01.000000000","message":"Done","commit_id":"92fd0f201a20f429c4a8b750d64875f51dce3905"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"1e8672dd0b6b721cf0a4a1c23b799110b081f9f8","unresolved":false,"context_lines":[{"line_number":14,"context_line":"            \"status\": \"Done\","},{"line_number":15,"context_line":"            \"updated_at\": \"2012-10-29T13:42:02.000000\","},{"line_number":16,"context_line":"\t    \"deleted\": false,"},{"line_number":17,"context_line":"\t    \"deleted_at\": null"},{"line_number":18,"context_line":"        },"},{"line_number":19,"context_line":"        {"},{"line_number":20,"context_line":"            \"created_at\": \"2013-10-22T13:42:02.000000\","}],"source_content_type":"application/json","patch_set":14,"id":"AAAAUH%2F%2F4Aw%3D","line":17,"updated":"2014-01-07 11:00:31.000000000","message":"ditto","commit_id":"92fd0f201a20f429c4a8b750d64875f51dce3905"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"6132ea45da4bdb8d292e9e7a736eac69f634385e","unresolved":false,"context_lines":[{"line_number":14,"context_line":"            \"status\": \"Done\","},{"line_number":15,"context_line":"            \"updated_at\": \"2012-10-29T13:42:02.000000\","},{"line_number":16,"context_line":"\t    \"deleted\": false,"},{"line_number":17,"context_line":"\t    \"deleted_at\": null"},{"line_number":18,"context_line":"        },"},{"line_number":19,"context_line":"        {"},{"line_number":20,"context_line":"            \"created_at\": \"2013-10-22T13:42:02.000000\","}],"source_content_type":"application/json","patch_set":14,"id":"AAAAUH%2F%2F35E%3D","line":17,"in_reply_to":"AAAAUH%2F%2F4Aw%3D","updated":"2014-01-07 11:33:01.000000000","message":"Done","commit_id":"92fd0f201a20f429c4a8b750d64875f51dce3905"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"1e8672dd0b6b721cf0a4a1c23b799110b081f9f8","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            \"source_node\": \"node10\","},{"line_number":30,"context_line":"            \"status\": \"Done\","},{"line_number":31,"context_line":"            \"updated_at\": \"2013-10-22T13:42:02.000000\","},{"line_number":32,"context_line":"\t    \"deleted\": false,"},{"line_number":33,"context_line":"\t    \"deleted_at\": null"},{"line_number":34,"context_line":"        }"},{"line_number":35,"context_line":"    ]"}],"source_content_type":"application/json","patch_set":14,"id":"AAAAUH%2F%2F4As%3D","line":32,"updated":"2014-01-07 11:00:31.000000000","message":"ditto","commit_id":"92fd0f201a20f429c4a8b750d64875f51dce3905"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"6132ea45da4bdb8d292e9e7a736eac69f634385e","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            \"source_node\": \"node10\","},{"line_number":30,"context_line":"            \"status\": \"Done\","},{"line_number":31,"context_line":"            \"updated_at\": \"2013-10-22T13:42:02.000000\","},{"line_number":32,"context_line":"\t    \"deleted\": false,"},{"line_number":33,"context_line":"\t    \"deleted_at\": null"},{"line_number":34,"context_line":"        }"},{"line_number":35,"context_line":"    ]"}],"source_content_type":"application/json","patch_set":14,"id":"AAAAUH%2F%2F35A%3D","line":32,"in_reply_to":"AAAAUH%2F%2F4As%3D","updated":"2014-01-07 11:33:01.000000000","message":"Done","commit_id":"92fd0f201a20f429c4a8b750d64875f51dce3905"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"1e8672dd0b6b721cf0a4a1c23b799110b081f9f8","unresolved":false,"context_lines":[{"line_number":30,"context_line":"            \"status\": \"Done\","},{"line_number":31,"context_line":"            \"updated_at\": \"2013-10-22T13:42:02.000000\","},{"line_number":32,"context_line":"\t    \"deleted\": false,"},{"line_number":33,"context_line":"\t    \"deleted_at\": null"},{"line_number":34,"context_line":"        }"},{"line_number":35,"context_line":"    ]"},{"line_number":36,"context_line":"}"}],"source_content_type":"application/json","patch_set":14,"id":"AAAAUH%2F%2F4Ao%3D","line":33,"updated":"2014-01-07 11:00:31.000000000","message":"ditto","commit_id":"92fd0f201a20f429c4a8b750d64875f51dce3905"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"6132ea45da4bdb8d292e9e7a736eac69f634385e","unresolved":false,"context_lines":[{"line_number":30,"context_line":"            \"status\": \"Done\","},{"line_number":31,"context_line":"            \"updated_at\": \"2013-10-22T13:42:02.000000\","},{"line_number":32,"context_line":"\t    \"deleted\": false,"},{"line_number":33,"context_line":"\t    \"deleted_at\": null"},{"line_number":34,"context_line":"        }"},{"line_number":35,"context_line":"    ]"},{"line_number":36,"context_line":"}"}],"source_content_type":"application/json","patch_set":14,"id":"AAAAUH%2F%2F348%3D","line":33,"in_reply_to":"AAAAUH%2F%2F4Ao%3D","updated":"2014-01-07 11:33:01.000000000","message":"Done","commit_id":"92fd0f201a20f429c4a8b750d64875f51dce3905"}],"nova/api/openstack/compute/contrib/migrations.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"74fdd317e9a9d35fabae359330f68bc20c6f5e94","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        elem.set(\u0027created_at\u0027)"},{"line_number":46,"context_line":"        elem.set(\u0027updated_at\u0027)"},{"line_number":47,"context_line":"        elem.set(\u0027deleted_at\u0027)"},{"line_number":48,"context_line":"        elem.set(\u0027deleted\u0027)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        return xmlutil.MasterTemplate(root, 1)"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAT3%2F%2F4tA%3D","line":48,"updated":"2013-12-28 01:20:44.000000000","message":"Does this related to your patch? Why add those two fields?","commit_id":"b3793804795ad031242e580e2b8bafdc8c91cc4b"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"fcb36653ba90851fb49c1267dae0cbf9d7e83ae6","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        elem.set(\u0027created_at\u0027)"},{"line_number":46,"context_line":"        elem.set(\u0027updated_at\u0027)"},{"line_number":47,"context_line":"        elem.set(\u0027deleted_at\u0027)"},{"line_number":48,"context_line":"        elem.set(\u0027deleted\u0027)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        return xmlutil.MasterTemplate(root, 1)"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAT3%2F%2F3kU%3D","line":48,"in_reply_to":"AAAAT3%2F%2F3mI%3D","updated":"2013-12-29 11:42:53.000000000","message":"Got it. Perhaps you can update the commit message to reflect this change.","commit_id":"b3793804795ad031242e580e2b8bafdc8c91cc4b"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"a45e841f0ba8fc454efd163d00abb6a23bdd1462","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        elem.set(\u0027created_at\u0027)"},{"line_number":46,"context_line":"        elem.set(\u0027updated_at\u0027)"},{"line_number":47,"context_line":"        elem.set(\u0027deleted_at\u0027)"},{"line_number":48,"context_line":"        elem.set(\u0027deleted\u0027)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        return xmlutil.MasterTemplate(root, 1)"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAT3%2F%2F3mI%3D","line":48,"in_reply_to":"AAAAT3%2F%2F4tA%3D","updated":"2013-12-29 11:07:03.000000000","message":"Actually these fields are missed.\n\nNow the tests use migration.Migration, these fields are defined into the object but not in the serializer and during \u0027test_index_serialization\u0027 there are errors.","commit_id":"b3793804795ad031242e580e2b8bafdc8c91cc4b"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"94123fa3e6c0a812c81ceab81b9acaabe053d30f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        elem.set(\u0027created_at\u0027)"},{"line_number":46,"context_line":"        elem.set(\u0027updated_at\u0027)"},{"line_number":47,"context_line":"        elem.set(\u0027deleted_at\u0027)"},{"line_number":48,"context_line":"        elem.set(\u0027deleted\u0027)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        return xmlutil.MasterTemplate(root, 1)"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAT3%2F%2F2Hw%3D","line":48,"updated":"2013-12-30 09:27:40.000000000","message":"Could you update api sample test for test this case?\n\nhttps://github.com/openstack/nova/blob/master/nova/tests/integrated/test_api_samples.py#L3933","commit_id":"1438b510ca0ac736d252a0e0f112d42c49b1703c"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"887799632e61fb60a4c37092b9a6e7d153a4cda2","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        elem.set(\u0027new_instance_type_id\u0027)"},{"line_number":45,"context_line":"        elem.set(\u0027created_at\u0027)"},{"line_number":46,"context_line":"        elem.set(\u0027updated_at\u0027)"},{"line_number":47,"context_line":"        elem.set(\u0027deleted_at\u0027)"},{"line_number":48,"context_line":"        elem.set(\u0027deleted\u0027)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        return xmlutil.MasterTemplate(root, 1)"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAUH%2F%2FV1Q%3D","line":47,"updated":"2014-01-14 21:30:24.000000000","message":"We really shouldn\u0027t be adding these fields - they shouldn\u0027t be in the response.\n\nThis goes for all the places where you added it","commit_id":"435557968371a02655be3adb549a142dcb41c5b5"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"887799632e61fb60a4c37092b9a6e7d153a4cda2","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":62,"context_line":"        authorize(context, \"index\")"},{"line_number":63,"context_line":"        migrations \u003d self.compute_api.get_migrations(context, req.GET)"},{"line_number":64,"context_line":"        return {\u0027migrations\u0027: list(migrations)}"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"class Migrations(extensions.ExtensionDescriptor):"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAUH%2F%2FVzs%3D","line":64,"updated":"2014-01-14 21:30:24.000000000","message":"Rather - you should probably extract them from Objects into dicts here, remove unnecessary fields and return the list of them like that, since you can\u0027t really delete fields from objects.","commit_id":"435557968371a02655be3adb549a142dcb41c5b5"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"314bd63bcef6d44e38bbc0d8aa1209bafd6864bb","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        elem \u003d xmlutil.SubTemplateElement(root, \u0027migration\u0027,"},{"line_number":34,"context_line":"                                          selector\u003d\u0027migrations\u0027)"},{"line_number":35,"context_line":"        elem.set(\u0027id\u0027)"},{"line_number":36,"context_line":"        elem.set(\u0027source_node\u0027)"},{"line_number":37,"context_line":"        elem.set(\u0027dest_node\u0027)"},{"line_number":38,"context_line":"        elem.set(\u0027source_compute\u0027)"},{"line_number":39,"context_line":"        elem.set(\u0027dest_compute\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAUH%2F%2FNrk%3D","side":"PARENT","line":36,"updated":"2014-01-16 09:58:16.000000000","message":"This does not seem related to your patch. IMHO, it is better do not touch code that not related with your patch.","commit_id":"d14fe775be0c732ce13fea826048ca8e853d284c"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"07bdfd851c1d330e0461b8a85af9ec2fd85abecc","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"XMLNS \u003d \"http://docs.openstack.org/compute/ext/migrations/api/v2.0\""},{"line_number":22,"context_line":"ALIAS \u003d \"os-migrations\""},{"line_number":23,"context_line":"MIGRATION_FIELDS \u003d (\"id\", \"source_node\", \"dest_node\", \"source_compute\","},{"line_number":24,"context_line":"                    \"dest_compute\", \"dest_host\", \"status\", \"instance_uuid\","},{"line_number":25,"context_line":"                    \"old_instance_type_id\", \"new_instance_type_id\","},{"line_number":26,"context_line":"                    \"created_at\", \"updated_at\")"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAUH%2F%2FNos%3D","line":23,"updated":"2014-01-16 10:08:01.000000000","message":"I\u0027m using a list to defined used fields, I think it is better to use it to keep the code stronger? I mean to not define differents lists of fields used for \"migration-list\".\n\nDoes it makes sense?","commit_id":"a300473c0d7e28a520de2816865efa7211137ea7"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"7ee1c65965dadab5b2017d5b7ed97fdad09b8920","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"XMLNS \u003d \"http://docs.openstack.org/compute/ext/migrations/api/v2.0\""},{"line_number":22,"context_line":"ALIAS \u003d \"os-migrations\""},{"line_number":23,"context_line":"MIGRATION_FIELDS \u003d (\"id\", \"source_node\", \"dest_node\", \"source_compute\","},{"line_number":24,"context_line":"                    \"dest_compute\", \"dest_host\", \"status\", \"instance_uuid\","},{"line_number":25,"context_line":"                    \"old_instance_type_id\", \"new_instance_type_id\","},{"line_number":26,"context_line":"                    \"created_at\", \"updated_at\")"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAUH%2F%2FIoA%3D","line":23,"in_reply_to":"AAAAUH%2F%2FNos%3D","updated":"2014-01-17 04:32:31.000000000","message":"OK, I think it is fine with this change. Thanks.","commit_id":"a300473c0d7e28a520de2816865efa7211137ea7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b126b56d38ee7054021963e0e571591fa47c3300","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    primitive objects with the only necessary fields."},{"line_number":36,"context_line":"    \"\"\""},{"line_number":37,"context_line":"    results \u003d []"},{"line_number":38,"context_line":"    objects \u003d migrations_obj.obj_to_primitive()[\u0027nova_object.data\u0027][\u0027objects\u0027]"},{"line_number":39,"context_line":"    for obj in objects:"},{"line_number":40,"context_line":"        obj_data \u003d obj[\u0027nova_object.data\u0027]"},{"line_number":41,"context_line":"        for key in BLACKLIST:"}],"source_content_type":"text/x-python","patch_set":31,"id":"AAAAUH%2F97n8%3D","line":38,"updated":"2014-01-31 22:47:37.000000000","message":"Um, I\u0027m not sure why you\u0027re doing this. The primitive format of the object is definitely not to be used in this way.\n\nI think you want nova.objects.base.obj_to_primitive() which turns an object into a dict. Alternately, just using migrations[i].iteritems() would let you apply and filter the elements appropriately.","commit_id":"7f32a950b5a0e8faed38bfe5a4b9c4db131d87d7"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"cdf016cd7b6512ef6021661ab3bd45d8d347bd22","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    primitive objects with the only necessary fields."},{"line_number":36,"context_line":"    \"\"\""},{"line_number":37,"context_line":"    results \u003d []"},{"line_number":38,"context_line":"    objects \u003d migrations_obj.obj_to_primitive()[\u0027nova_object.data\u0027][\u0027objects\u0027]"},{"line_number":39,"context_line":"    for obj in objects:"},{"line_number":40,"context_line":"        obj_data \u003d obj[\u0027nova_object.data\u0027]"},{"line_number":41,"context_line":"        for key in BLACKLIST:"}],"source_content_type":"text/x-python","patch_set":31,"id":"AAAAUH%2F96n0%3D","line":38,"in_reply_to":"AAAAUH%2F97n8%3D","updated":"2014-02-01 08:11:24.000000000","message":"My first attempt was like you said, I wanted to follow a suggested comment. I\u0027m going to update the code.","commit_id":"7f32a950b5a0e8faed38bfe5a4b9c4db131d87d7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bffa86af498f225cf493298f52fce5de38b55844","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        for attr, value in obj.iteritems():"},{"line_number":41,"context_line":"            if attr in BLACKLIST:"},{"line_number":42,"context_line":"                continue"},{"line_number":43,"context_line":"            data[attr] \u003d value"},{"line_number":44,"context_line":"        results.append(data)"},{"line_number":45,"context_line":"    return results"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"AAAAUH%2F90eQ%3D","line":43,"updated":"2014-02-03 16:44:34.000000000","message":"Why not use obj_base.obj_to_primitive()? That\u0027s our common location for making an object look like a dict where we handle some complex types. You can still delattr the blacklisted values before adding it to results...","commit_id":"1acd1de12dcc942209ea3bbca65d723fc1a6a2c4"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"8d8593877bfa8f0a98aef3fb7eec29eb34753570","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        for attr, value in obj.iteritems():"},{"line_number":41,"context_line":"            if attr in BLACKLIST:"},{"line_number":42,"context_line":"                continue"},{"line_number":43,"context_line":"            data[attr] \u003d value"},{"line_number":44,"context_line":"        results.append(data)"},{"line_number":45,"context_line":"    return results"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"AAAAUH%2F90WY%3D","line":43,"in_reply_to":"AAAAUH%2F90eQ%3D","updated":"2014-02-03 16:57:31.000000000","message":"You are completely right, I made some confusions. I\u0027m going to push a new patchset.","commit_id":"1acd1de12dcc942209ea3bbca65d723fc1a6a2c4"},{"author":{"_account_id":6737,"name":"Edward Hope-Morley","email":"edward.hope-morley@canonical.com","username":"hopem"},"change_message_id":"b1438ebbe29711773fba15e635e6704f2effebc1","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    extensions.extension_authorizer(\u0027compute\u0027, action)(context)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def output(migrations_obj):"},{"line_number":30,"context_line":"    \"\"\"Returns the desired output of the API from an object."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    From a MigrationsList\u0027s object this method returns a list of"}],"source_content_type":"text/x-python","patch_set":35,"id":"AAAAUH%2F9oVo%3D","line":29,"updated":"2014-02-05 14:42:35.000000000","message":"I reckon this could be named more appropriately e.g. ensure_output_safe().","commit_id":"6f62d9e3a78f6d50d7cda40d0c28ae3a309e18da"},{"author":{"_account_id":6737,"name":"Edward Hope-Morley","email":"edward.hope-morley@canonical.com","username":"hopem"},"change_message_id":"b1438ebbe29711773fba15e635e6704f2effebc1","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    primitive objects with the only necessary fields."},{"line_number":34,"context_line":"    \"\"\""},{"line_number":35,"context_line":"    objects \u003d obj_base.obj_to_primitive(migrations_obj)"},{"line_number":36,"context_line":"    for obj in objects:"},{"line_number":37,"context_line":"        del obj[\u0027deleted\u0027]"},{"line_number":38,"context_line":"        del obj[\u0027deleted_at\u0027]"},{"line_number":39,"context_line":"    return objects"}],"source_content_type":"text/x-python","patch_set":35,"id":"AAAAUH%2F9oUw%3D","line":36,"updated":"2014-02-05 14:42:35.000000000","message":"What is the reason for blacklisting these fields? Perhaps a note to explain why these have been blacklisted would be helpful.","commit_id":"6f62d9e3a78f6d50d7cda40d0c28ae3a309e18da"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"76ff31686713d68fab27d88deb17a1cac7f20df3","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    primitive objects with the only necessary fields."},{"line_number":34,"context_line":"    \"\"\""},{"line_number":35,"context_line":"    objects \u003d obj_base.obj_to_primitive(migrations_obj)"},{"line_number":36,"context_line":"    for obj in objects:"},{"line_number":37,"context_line":"        del obj[\u0027deleted\u0027]"},{"line_number":38,"context_line":"        del obj[\u0027deleted_at\u0027]"},{"line_number":39,"context_line":"    return objects"}],"source_content_type":"text/x-python","patch_set":35,"id":"AAAAUH%2F9m6c%3D","line":36,"in_reply_to":"AAAAUH%2F9oUw%3D","updated":"2014-02-05 17:46:02.000000000","message":"It\u0027s in relation with the API. I\u0027m not sure about to add a comment.\n\nhttp://docs.openstack.org/api/openstack-compute/2/content/GET_os-migrations-v2_getMigrations_v2__tenant_id__os-migrations_ext-os-migrations.html","commit_id":"6f62d9e3a78f6d50d7cda40d0c28ae3a309e18da"},{"author":{"_account_id":4460,"name":"Vincent Untz","email":"vuntz@opensuse.org","username":"vuntz"},"change_message_id":"f490389a5e312dcbd86e191071dfb97ac2ef08d7","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    objects \u003d obj_base.obj_to_primitive(migrations_obj)"},{"line_number":36,"context_line":"    for obj in objects:"},{"line_number":37,"context_line":"        del obj[\u0027deleted\u0027]"},{"line_number":38,"context_line":"        del obj[\u0027deleted_at\u0027]"},{"line_number":39,"context_line":"    return objects"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"AAAAUX%2F%2FuX4%3D","line":38,"updated":"2014-02-11 08:03:28.000000000","message":"Why do we need to remove these two fields? Isn\u0027t it information that could be useful to the client?","commit_id":"d486bde60891b7f005b1ad2a35c4e8d0ce5cb070"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"3546cd0d288dc9af54f239a484e6f4c31758dfe8","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    objects \u003d obj_base.obj_to_primitive(migrations_obj)"},{"line_number":36,"context_line":"    for obj in objects:"},{"line_number":37,"context_line":"        del obj[\u0027deleted\u0027]"},{"line_number":38,"context_line":"        del obj[\u0027deleted_at\u0027]"},{"line_number":39,"context_line":"    return objects"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"AAAAUX%2F%2FuIU%3D","line":38,"in_reply_to":"AAAAUX%2F%2FuVU%3D","updated":"2014-02-11 08:39:15.000000000","message":"Actually, this is an recommendation of the API, these fields comes from the database but are not needed.\n\nThere are some comments about it in the history.","commit_id":"d486bde60891b7f005b1ad2a35c4e8d0ce5cb070"},{"author":{"_account_id":4460,"name":"Vincent Untz","email":"vuntz@opensuse.org","username":"vuntz"},"change_message_id":"bed398833680423c40c880a2944fb0ba7a709fdc","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    objects \u003d obj_base.obj_to_primitive(migrations_obj)"},{"line_number":36,"context_line":"    for obj in objects:"},{"line_number":37,"context_line":"        del obj[\u0027deleted\u0027]"},{"line_number":38,"context_line":"        del obj[\u0027deleted_at\u0027]"},{"line_number":39,"context_line":"    return objects"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"AAAAUX%2F%2FuVU%3D","line":38,"in_reply_to":"AAAAUX%2F%2FuX4%3D","updated":"2014-02-11 08:08:28.000000000","message":"Replying to myself: I guess the fields are added by obj_to_primitive. Sorry for the noise.","commit_id":"d486bde60891b7f005b1ad2a35c4e8d0ce5cb070"}],"nova/api/openstack/compute/plugins/v3/migrations.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"94123fa3e6c0a812c81ceab81b9acaabe053d30f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        elem.set(\u0027created_at\u0027)"},{"line_number":46,"context_line":"        elem.set(\u0027updated_at\u0027)"},{"line_number":47,"context_line":"        elem.set(\u0027deleted_at\u0027)"},{"line_number":48,"context_line":"        elem.set(\u0027deleted\u0027)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        return xmlutil.MasterTemplate(root, 1)"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAT3%2F%2F2H8%3D","line":48,"updated":"2013-12-30 09:27:40.000000000","message":"Cloud you update api sample tests for ensure we can test this case?\nThe test at : https://github.com/openstack/nova/blob/master/nova/tests/integrated/v3/test_migrations.py","commit_id":"1438b510ca0ac736d252a0e0f112d42c49b1703c"},{"author":{"_account_id":6737,"name":"Edward Hope-Morley","email":"edward.hope-morley@canonical.com","username":"hopem"},"change_message_id":"b1438ebbe29711773fba15e635e6704f2effebc1","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    extensions.extension_authorizer(\u0027compute\u0027, action)(context)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def output(migrations_obj):"},{"line_number":27,"context_line":"    \"\"\"Returns the desired output of the API from an object."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    From a MigrationsList\u0027s object this method returns a list of"}],"source_content_type":"text/x-python","patch_set":35,"id":"AAAAUH%2F9oUA%3D","line":26,"updated":"2014-02-05 14:42:35.000000000","message":"Same issue as in plugins/v3/migrations.py","commit_id":"6f62d9e3a78f6d50d7cda40d0c28ae3a309e18da"},{"author":{"_account_id":4460,"name":"Vincent Untz","email":"vuntz@opensuse.org","username":"vuntz"},"change_message_id":"f490389a5e312dcbd86e191071dfb97ac2ef08d7","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    objects \u003d obj_base.obj_to_primitive(migrations_obj)"},{"line_number":33,"context_line":"    for obj in objects:"},{"line_number":34,"context_line":"        del obj[\u0027deleted\u0027]"},{"line_number":35,"context_line":"        del obj[\u0027deleted_at\u0027]"},{"line_number":36,"context_line":"    return objects"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"AAAAUX%2F%2FuXs%3D","line":35,"updated":"2014-02-11 08:03:28.000000000","message":"Same question.","commit_id":"d486bde60891b7f005b1ad2a35c4e8d0ce5cb070"}],"nova/tests/api/openstack/compute/contrib/test_migrations.py":[{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"a5f513b48a3c8cc17fbdff76ebf0103e303e2a5e","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def test_index(self):"},{"line_number":78,"context_line":"        migrations_in_progress \u003d {"},{"line_number":79,"context_line":"            \u0027migrations\u0027: migrations.output(fake_migrations)}"},{"line_number":80,"context_line":"        filters \u003d {\u0027host\u0027: \u0027host1\u0027, \u0027status\u0027: \u0027migrating\u0027,"},{"line_number":81,"context_line":"                   \u0027cell_name\u0027: \u0027ChildCell\u0027}"},{"line_number":82,"context_line":"        self.req.GET \u003d filters"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAUH%2F%2BbIg%3D","line":79,"updated":"2014-01-27 02:02:06.000000000","message":"This fake_migrations should pass the api(migration._make_list()), but it didn\u0027t. That\u0027s why the original test didn\u0027t find this bug.\nYour fix can\u0027t test the api either.","commit_id":"3d8ffc1be2868cd7c0dde669bd07b1137432e2e3"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"557165a04ea6b17f708e475b8257f9b03a401ba0","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def test_index(self):"},{"line_number":78,"context_line":"        migrations_in_progress \u003d {"},{"line_number":79,"context_line":"            \u0027migrations\u0027: migrations.output(fake_migrations)}"},{"line_number":80,"context_line":"        filters \u003d {\u0027host\u0027: \u0027host1\u0027, \u0027status\u0027: \u0027migrating\u0027,"},{"line_number":81,"context_line":"                   \u0027cell_name\u0027: \u0027ChildCell\u0027}"},{"line_number":82,"context_line":"        self.req.GET \u003d filters"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAUH%2F%2BYs8%3D","line":79,"in_reply_to":"AAAAUH%2F%2BbIg%3D","updated":"2014-01-27 13:57:32.000000000","message":"Sure It works, we just have to add deleted_at and deleted to fake_migration. In this test we are in ahead of make_list.\n\nyour comment are wise and i will update my patchset to work with it.\n\nJust a wait a little bit please :)","commit_id":"3d8ffc1be2868cd7c0dde669bd07b1137432e2e3"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"63073093cf270eadd68314c70990d44e75236dd8","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        self.mox \u003d mox_fixture.mox"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def test_index(self):"},{"line_number":84,"context_line":"        migrations_obj \u003d migration._make_list("},{"line_number":85,"context_line":"            self.context,"},{"line_number":86,"context_line":"            migration.MigrationList(),"},{"line_number":87,"context_line":"            migration.Migration,"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAUH%2F%2BYnY%3D","line":84,"updated":"2014-01-27 14:13:51.000000000","message":"Now we retrieve obj from database and go through the process of _make_list","commit_id":"ab28b6c2c95ba426cb5619d7189b1461c3e3515c"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"63073093cf270eadd68314c70990d44e75236dd8","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            fake_migrations)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        migrations_in_progress \u003d {"},{"line_number":91,"context_line":"            \u0027migrations\u0027: migrations.output(migrations_obj)}"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        filters \u003d {\u0027host\u0027: \u0027host1\u0027, \u0027status\u0027: \u0027migrating\u0027,"},{"line_number":94,"context_line":"                   \u0027cell_name\u0027: \u0027ChildCell\u0027}"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAUH%2F%2BYm0%3D","line":91,"updated":"2014-01-27 14:13:51.000000000","message":"Here, it\u0027s exactly the expected process of  MigrationController.index","commit_id":"ab28b6c2c95ba426cb5619d7189b1461c3e3515c"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"63073093cf270eadd68314c70990d44e75236dd8","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        self.controller.compute_api.\\"},{"line_number":100,"context_line":"            get_migrations(self.context, filters).\\"},{"line_number":101,"context_line":"            AndReturn(fake_migrations)"},{"line_number":102,"context_line":"        self.mox.ReplayAll()"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        response \u003d self.controller.index(self.req)"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAUH%2F%2BYms%3D","line":101,"updated":"2014-01-27 14:13:51.000000000","message":"We return the expected result or MigrationController.index","commit_id":"ab28b6c2c95ba426cb5619d7189b1461c3e3515c"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"63073093cf270eadd68314c70990d44e75236dd8","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            AndReturn(fake_migrations)"},{"line_number":102,"context_line":"        self.mox.ReplayAll()"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        response \u003d self.controller.index(self.req)"},{"line_number":105,"context_line":"        self.assertEqual(migrations_in_progress, response)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def test_index_needs_authorization(self):"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAUH%2F%2BYl8%3D","line":104,"updated":"2014-01-27 14:13:51.000000000","message":"Here we test the expected response with the response from the full process.","commit_id":"ab28b6c2c95ba426cb5619d7189b1461c3e3515c"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"0879247196483cf5e02f5b5f57273c2fdce18aee","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from nova.openstack.common.fixture import moxstubout"},{"line_number":27,"context_line":"from nova import test"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"fake_migrations \u003d [{"},{"line_number":31,"context_line":"        \u0027id\u0027: 1234,"},{"line_number":32,"context_line":"        \u0027source_node\u0027: \u0027node1\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"AAAAUH%2F%2BME8%3D","line":29,"updated":"2014-01-29 09:31:55.000000000","message":"This line should be deleted.","commit_id":"28d90ad3af5c56e9318c86226fe3850ab40d6618"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"67c9533c6274cb78fd2dbdb6729cb5a30ad7ccbf","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from nova.openstack.common.fixture import moxstubout"},{"line_number":27,"context_line":"from nova import test"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"fake_migrations \u003d [{"},{"line_number":31,"context_line":"        \u0027id\u0027: 1234,"},{"line_number":32,"context_line":"        \u0027source_node\u0027: \u0027node1\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"AAAAUH%2F%2BLlU%3D","line":29,"in_reply_to":"AAAAUH%2F%2BME8%3D","updated":"2014-01-29 11:17:05.000000000","message":"What do you think to keep the same pattern of \nnova/tests/api/openstack/compute/plugins/v3/test_migrations.py","commit_id":"28d90ad3af5c56e9318c86226fe3850ab40d6618"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"ec1d74dc5e4c5524a8370c14e1fe1dba402a72fa","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def test_index(self):"},{"line_number":85,"context_line":"        migrations_in_progress \u003d {"},{"line_number":86,"context_line":"            \u0027migrations\u0027: migrations.output(migrations_obj)}"},{"line_number":87,"context_line":"        filters \u003d {\u0027host\u0027: \u0027host1\u0027, \u0027status\u0027: \u0027migrating\u0027,"},{"line_number":88,"context_line":"                   \u0027cell_name\u0027: \u0027ChildCell\u0027}"},{"line_number":89,"context_line":"        self.req.GET \u003d filters"}],"source_content_type":"text/x-python","patch_set":36,"id":"AAAAUX%2F%2FGLg%3D","line":86,"updated":"2014-02-17 06:44:27.000000000","message":"better to check migrations_in_progress does not contain both \u0027deleted\u0027 and \u0027deleted_at\u0027 because of this patch\u0027s change.","commit_id":"d486bde60891b7f005b1ad2a35c4e8d0ce5cb070"}],"nova/tests/api/openstack/compute/plugins/v3/test_migrations.py":[{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"0879247196483cf5e02f5b5f57273c2fdce18aee","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        \u0027old_instance_type_id\u0027: 1,"},{"line_number":40,"context_line":"        \u0027new_instance_type_id\u0027: 2,"},{"line_number":41,"context_line":"        \u0027created_at\u0027: datetime.datetime("},{"line_number":42,"context_line":"            2012, 10, 29, 13, 42, 2, tzinfo\u003diso8601.iso8601.Utc()),"},{"line_number":43,"context_line":"        \u0027updated_at\u0027: datetime.datetime("},{"line_number":44,"context_line":"            2012, 10, 29, 13, 42, 2, tzinfo\u003diso8601.iso8601.Utc()),"},{"line_number":45,"context_line":"        \u0027deleted_at\u0027: None,"}],"source_content_type":"text/x-python","patch_set":23,"id":"AAAAUH%2F%2BMCk%3D","line":42,"updated":"2014-01-29 09:31:55.000000000","message":"Did you do this because of the time format in the xml.tpl .\n\nIf so, I am worried if it\u0027s needed. Because xml will not be supported by V3 API. \n\nAnd this patch is approved today.\n\nhttps://review.openstack.org/#/c/69728/","commit_id":"28d90ad3af5c56e9318c86226fe3850ab40d6618"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"67c9533c6274cb78fd2dbdb6729cb5a30ad7ccbf","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        \u0027old_instance_type_id\u0027: 1,"},{"line_number":40,"context_line":"        \u0027new_instance_type_id\u0027: 2,"},{"line_number":41,"context_line":"        \u0027created_at\u0027: datetime.datetime("},{"line_number":42,"context_line":"            2012, 10, 29, 13, 42, 2, tzinfo\u003diso8601.iso8601.Utc()),"},{"line_number":43,"context_line":"        \u0027updated_at\u0027: datetime.datetime("},{"line_number":44,"context_line":"            2012, 10, 29, 13, 42, 2, tzinfo\u003diso8601.iso8601.Utc()),"},{"line_number":45,"context_line":"        \u0027deleted_at\u0027: None,"}],"source_content_type":"text/x-python","patch_set":23,"id":"AAAAUH%2F%2BLk4%3D","line":42,"in_reply_to":"AAAAUH%2F%2BMCk%3D","updated":"2014-01-29 11:17:05.000000000","message":"Sure I will do that.","commit_id":"28d90ad3af5c56e9318c86226fe3850ab40d6618"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"ec1d74dc5e4c5524a8370c14e1fe1dba402a72fa","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def test_index(self):"},{"line_number":84,"context_line":"        migrations_in_progress \u003d {"},{"line_number":85,"context_line":"            \u0027migrations\u0027: migrations.output(migrations_obj)}"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        filters \u003d {\u0027host\u0027: \u0027host1\u0027, \u0027status\u0027: \u0027migrating\u0027,"},{"line_number":88,"context_line":"                   \u0027cell_name\u0027: \u0027ChildCell\u0027}"}],"source_content_type":"text/x-python","patch_set":36,"id":"AAAAUX%2F%2FGK8%3D","line":85,"updated":"2014-02-17 06:44:27.000000000","message":"ditto","commit_id":"d486bde60891b7f005b1ad2a35c4e8d0ce5cb070"}]}
