)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cc660c2ea6704376fea34eb1e969152dba8a6aa5","unresolved":false,"context_lines":[{"line_number":13,"context_line":"stamp filtering support for os-migrations API."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"APIImpact"},{"line_number":16,"context_line":"DocImpact"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Previously-approved: newton"},{"line_number":19,"context_line":"Co-Authored-By: Zhenyu Zheng \u003czhengzhengyu@huawei.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5f4e5783_e0fa4073","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":9},"updated":"2017-10-12 17:53:58.000000000","message":"We can remove this since it doesn\u0027t do anything for a spec. It might actually generate a bug which we\u0027d just have to later invalidate.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"def8c6b543e6e78c57d255b9a0a9971197cc4faa","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"APIImpact"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"fixme"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Previously-approved: newton"},{"line_number":20,"context_line":"Co-Authored-By: Zhenyu Zheng \u003czhengzhengyu@huawei.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"5f4e5783_848444d4","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":5},"updated":"2017-10-17 21:22:43.000000000","message":"remove this - I had to edit the change to pull it out of the gate","commit_id":"f51f1427c5715c3563e4a2d6c432ed9cbdf4bb56"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"2f58e935a5dd78824eb9f14ce89c486bb1dfc839","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"APIImpact"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"fixme"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Previously-approved: newton"},{"line_number":20,"context_line":"Co-Authored-By: Zhenyu Zheng \u003czhengzhengyu@huawei.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"5f4e5783_56a03e90","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":5},"in_reply_to":"5f4e5783_848444d4","updated":"2017-10-18 02:55:09.000000000","message":"Done","commit_id":"f51f1427c5715c3563e4a2d6c432ed9cbdf4bb56"}],"specs/queens/approved/add-pagination-and-change-since-for-migration-list.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"344bea2c37fa7cb88bf140e2c2434cbb7de4f5fa","unresolved":false,"context_lines":[{"line_number":34,"context_line":"---------"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"For large scale production deployment, the administrator can use"},{"line_number":37,"context_line":"pagination and lastest updated time filter to have more efficient"},{"line_number":38,"context_line":"database query."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_06cf0f58","line":37,"range":{"start_line":37,"start_character":15,"end_line":37,"end_character":22},"updated":"2017-10-03 21:36:01.000000000","message":"latest","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"1eb166abf73c5e1d2d15151a4e55d12de928fde7","unresolved":false,"context_lines":[{"line_number":34,"context_line":"---------"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"For large scale production deployment, the administrator can use"},{"line_number":37,"context_line":"pagination and lastest updated time filter to have more efficient"},{"line_number":38,"context_line":"database query."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_d90a711e","line":37,"range":{"start_line":37,"start_character":15,"end_line":37,"end_character":22},"in_reply_to":"7f515b1d_06cf0f58","updated":"2017-10-09 09:16:00.000000000","message":"Done","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"344bea2c37fa7cb88bf140e2c2434cbb7de4f5fa","unresolved":false,"context_lines":[{"line_number":37,"context_line":"pagination and lastest updated time filter to have more efficient"},{"line_number":38,"context_line":"database query."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Proposed change"},{"line_number":41,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Add an API microversion that allows to get several migrations using"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_066b8f1f","line":40,"updated":"2017-10-03 21:36:01.000000000","message":"In general this needs to account for multiple cells, so listing and paging across cells has to be handled and explained in here.","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3e20adc173c2f938bf2ad442a5793264d5a3a1ae","unresolved":false,"context_lines":[{"line_number":37,"context_line":"pagination and lastest updated time filter to have more efficient"},{"line_number":38,"context_line":"database query."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Proposed change"},{"line_number":41,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Add an API microversion that allows to get several migrations using"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_a1fdc509","line":40,"in_reply_to":"7f515b1d_066b8f1f","updated":"2017-10-03 21:41:04.000000000","message":"Yup. We could potentially generify the instance_list stuff for this. Alternately, it might be good to come up with a generic one that we use for things like this, and leave the instance one alone since there are the most corner cases with instance listing.","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f2c51ee275e6afc62ac29f841ab00c9170071763","unresolved":false,"context_lines":[{"line_number":37,"context_line":"pagination and lastest updated time filter to have more efficient"},{"line_number":38,"context_line":"database query."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Proposed change"},{"line_number":41,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Add an API microversion that allows to get several migrations using"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f4e5783_65bd42d7","line":40,"in_reply_to":"7f515b1d_39074585","updated":"2017-10-12 17:22:28.000000000","message":"I\u0027m less concerned about efficiently listing migrations across cells like we do for listing instances. There are some filter parameters for listing migrations, but I can\u0027t imagine people are listing these as often as they are listing instances, nor would the numbers be the same. Plus by default only admins can list migrations.","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"5eb3d10b8f3424f03aa27d3e3da9ed847db5cc33","unresolved":false,"context_lines":[{"line_number":37,"context_line":"pagination and lastest updated time filter to have more efficient"},{"line_number":38,"context_line":"database query."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Proposed change"},{"line_number":41,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Add an API microversion that allows to get several migrations using"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_39074585","line":40,"in_reply_to":"7f515b1d_a1fdc509","updated":"2017-10-09 09:32:08.000000000","message":"@dansmith Thanks for review. Agreed, we could complete the migration stuff just like instance listing. Did you have some design for this already? Could you give me some ref?","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"344bea2c37fa7cb88bf140e2c2434cbb7de4f5fa","unresolved":false,"context_lines":[{"line_number":41,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Add an API microversion that allows to get several migrations using"},{"line_number":44,"context_line":"general pagination mechanism with the help of `limit` and `marker`optional"},{"line_number":45,"context_line":"parameters to GET /os-migrations request. And add"},{"line_number":46,"context_line":"filter with the help of `changes-since` optional parameter to"},{"line_number":47,"context_line":"GET /os-migrations request."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_a6d5dbe7","line":44,"range":{"start_line":44,"start_character":66,"end_line":44,"end_character":74},"updated":"2017-10-03 21:36:01.000000000","message":"need a space before optional","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"410cefa08d2eddcb9e4aa3b4b31fd7d97ee34340","unresolved":false,"context_lines":[{"line_number":41,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Add an API microversion that allows to get several migrations using"},{"line_number":44,"context_line":"general pagination mechanism with the help of `limit` and `marker`optional"},{"line_number":45,"context_line":"parameters to GET /os-migrations request. And add"},{"line_number":46,"context_line":"filter with the help of `changes-since` optional parameter to"},{"line_number":47,"context_line":"GET /os-migrations request."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_594e8138","line":44,"range":{"start_line":44,"start_character":66,"end_line":44,"end_character":74},"in_reply_to":"7f515b1d_a6d5dbe7","updated":"2017-10-09 09:16:57.000000000","message":"Done","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"344bea2c37fa7cb88bf140e2c2434cbb7de4f5fa","unresolved":false,"context_lines":[{"line_number":46,"context_line":"filter with the help of `changes-since` optional parameter to"},{"line_number":47,"context_line":"GET /os-migrations request."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* **marker**: The last migration ID of the previous page. Displays list of"},{"line_number":50,"context_line":"  migrations after \"marker\"."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* **limit**: Maximum number of migrations to display. If limit \u003d\u003d -1,"},{"line_number":53,"context_line":"  all migrations will be displayed. If limit is bigger than `osapi_max_limit`"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_6617e3a5","line":50,"range":{"start_line":49,"start_character":0,"end_line":50,"end_character":28},"updated":"2017-10-03 21:36:01.000000000","message":"This won\u0027t work for multiple cells. We could have migrations with primary key id 1 in multiple cells, so the marker would be ambiguous. The migration record has a uuid column on it now, so if you were going to page migrations, the uuid needs to be the marker, but we don\u0027t expose the uuid out of the API today, that would have to be done as part of this change.","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3e20adc173c2f938bf2ad442a5793264d5a3a1ae","unresolved":false,"context_lines":[{"line_number":46,"context_line":"filter with the help of `changes-since` optional parameter to"},{"line_number":47,"context_line":"GET /os-migrations request."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* **marker**: The last migration ID of the previous page. Displays list of"},{"line_number":50,"context_line":"  migrations after \"marker\"."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* **limit**: Maximum number of migrations to display. If limit \u003d\u003d -1,"},{"line_number":53,"context_line":"  all migrations will be displayed. If limit is bigger than `osapi_max_limit`"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_862f7fa6","line":50,"range":{"start_line":49,"start_character":0,"end_line":50,"end_character":28},"in_reply_to":"7f515b1d_6617e3a5","updated":"2017-10-03 21:41:04.000000000","message":"Yep, uuid.","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"1eb166abf73c5e1d2d15151a4e55d12de928fde7","unresolved":false,"context_lines":[{"line_number":46,"context_line":"filter with the help of `changes-since` optional parameter to"},{"line_number":47,"context_line":"GET /os-migrations request."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* **marker**: The last migration ID of the previous page. Displays list of"},{"line_number":50,"context_line":"  migrations after \"marker\"."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* **limit**: Maximum number of migrations to display. If limit \u003d\u003d -1,"},{"line_number":53,"context_line":"  all migrations will be displayed. If limit is bigger than `osapi_max_limit`"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_d9cdd1b7","line":50,"range":{"start_line":49,"start_character":0,"end_line":50,"end_character":28},"in_reply_to":"7f515b1d_862f7fa6","updated":"2017-10-09 09:16:00.000000000","message":"agreed, uuid is better.","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"344bea2c37fa7cb88bf140e2c2434cbb7de4f5fa","unresolved":false,"context_lines":[{"line_number":50,"context_line":"  migrations after \"marker\"."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* **limit**: Maximum number of migrations to display. If limit \u003d\u003d -1,"},{"line_number":53,"context_line":"  all migrations will be displayed. If limit is bigger than `osapi_max_limit`"},{"line_number":54,"context_line":"  option of Nova API, limit `osapi_max_limit` will be used instead."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_468187c3","line":53,"range":{"start_line":53,"start_character":61,"end_line":53,"end_character":76},"updated":"2017-10-03 21:36:01.000000000","message":"This is the deprecate option name, you need to use [api]/max_limit now.","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"1eb166abf73c5e1d2d15151a4e55d12de928fde7","unresolved":false,"context_lines":[{"line_number":50,"context_line":"  migrations after \"marker\"."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* **limit**: Maximum number of migrations to display. If limit \u003d\u003d -1,"},{"line_number":53,"context_line":"  all migrations will be displayed. If limit is bigger than `osapi_max_limit`"},{"line_number":54,"context_line":"  option of Nova API, limit `osapi_max_limit` will be used instead."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_79193d78","line":53,"range":{"start_line":53,"start_character":61,"end_line":53,"end_character":76},"in_reply_to":"7f515b1d_468187c3","updated":"2017-10-09 09:16:00.000000000","message":"Done","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"344bea2c37fa7cb88bf140e2c2434cbb7de4f5fa","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The proposal would add API microversion for getting several migrations using"},{"line_number":71,"context_line":"general pagination mechanism. New optional parameters `limit`, `marker`,"},{"line_number":72,"context_line":"and `changes-since` will be added to GET /os-migrations request."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Generic request format ::"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_0654af53","line":72,"range":{"start_line":72,"start_character":4,"end_line":72,"end_character":19},"updated":"2017-10-03 21:36:01.000000000","message":"For changes-since filtering, this would also have to be handled across multiple cells. How would you return the results? Would they be sorted in any way, or just returned in their natural sort order as they come out of the database? Today we don\u0027t sort migrations at all when listing them all out of the API across multiple cells.","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3e20adc173c2f938bf2ad442a5793264d5a3a1ae","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The proposal would add API microversion for getting several migrations using"},{"line_number":71,"context_line":"general pagination mechanism. New optional parameters `limit`, `marker`,"},{"line_number":72,"context_line":"and `changes-since` will be added to GET /os-migrations request."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Generic request format ::"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_2649eb8a","line":72,"range":{"start_line":72,"start_character":4,"end_line":72,"end_character":19},"in_reply_to":"7f515b1d_0654af53","updated":"2017-10-03 21:41:04.000000000","message":"You have to sort them in order to be able to do this effectively across cells. Also, merging native-sort results from different cells will give you a completely nonsensical result in terms of ordering.\n\nThis\u0027ll have to sort based on some time-related thing and merge thusly. I would tend to think that sorting by created_at exclusively is fine. No need to complicate it by letting it be sorted by anything else, IMHO.","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f2c51ee275e6afc62ac29f841ab00c9170071763","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The proposal would add API microversion for getting several migrations using"},{"line_number":71,"context_line":"general pagination mechanism. New optional parameters `limit`, `marker`,"},{"line_number":72,"context_line":"and `changes-since` will be added to GET /os-migrations request."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Generic request format ::"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f4e5783_80d6ecf0","line":72,"range":{"start_line":72,"start_character":4,"end_line":72,"end_character":19},"in_reply_to":"7f515b1d_2649eb8a","updated":"2017-10-12 17:22:28.000000000","message":"OK do we need the sortmaster 9000 for this or can we just merge sort the results in the API once we get them out of the cells?","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"344bea2c37fa7cb88bf140e2c2434cbb7de4f5fa","unresolved":false,"context_lines":[{"line_number":298,"context_line":"Docs needed for new API microversion and usage."},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"References"},{"line_number":301,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_06026f3f","line":301,"updated":"2017-10-03 21:36:01.000000000","message":"None","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"1eb166abf73c5e1d2d15151a4e55d12de928fde7","unresolved":false,"context_lines":[{"line_number":298,"context_line":"Docs needed for new API microversion and usage."},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"References"},{"line_number":301,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_79bc9d05","line":301,"in_reply_to":"7f515b1d_06026f3f","updated":"2017-10-09 09:16:00.000000000","message":"Done","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"344bea2c37fa7cb88bf140e2c2434cbb7de4f5fa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7f515b1d_c6fb3745","line":302,"updated":"2017-10-03 21:36:01.000000000","message":"Include the History section. This was previously approved in newton and is being re-proposed for queens.","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"1eb166abf73c5e1d2d15151a4e55d12de928fde7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7f515b1d_59b9e112","line":302,"in_reply_to":"7f515b1d_c6fb3745","updated":"2017-10-09 09:16:00.000000000","message":"Done","commit_id":"6cf8d018f5b76ef0374f5179b92ebd4b786e7abc"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"756d3614d90cd519323874e267ea18ae926f30d9","unresolved":false,"context_lines":[{"line_number":29,"context_line":"last updated time. As for production deployment, the system will be up"},{"line_number":30,"context_line":"for a very long time, and the number of migration records will also be"},{"line_number":31,"context_line":"very big. It will be very useful to support filter by last update time."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Use Cases"},{"line_number":34,"context_line":"---------"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f4e5783_7b84d95e","line":32,"updated":"2017-10-12 02:34:53.000000000","message":"I think you could also mention the id problem for future use here","commit_id":"3a9a8c16cad2c17eaaa901dde585230e2efb7d14"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"4d872074c9753e5ab88a12566481acebc18f81d0","unresolved":false,"context_lines":[{"line_number":29,"context_line":"last updated time. As for production deployment, the system will be up"},{"line_number":30,"context_line":"for a very long time, and the number of migration records will also be"},{"line_number":31,"context_line":"very big. It will be very useful to support filter by last update time."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Use Cases"},{"line_number":34,"context_line":"---------"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f4e5783_5b4fdd91","line":32,"in_reply_to":"5f4e5783_7b84d95e","updated":"2017-10-12 03:21:32.000000000","message":"Done","commit_id":"3a9a8c16cad2c17eaaa901dde585230e2efb7d14"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cc660c2ea6704376fea34eb1e969152dba8a6aa5","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/"},{"line_number":12,"context_line":"add-pagination-and-change-since-for-migration-list"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This blueprint add `limit` and `marker` optional"},{"line_number":15,"context_line":"parameters to GET /os-migrations request to support pagination."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This blueprint also add `changes-since` optional parameters to"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_80ef0caf","line":14,"range":{"start_line":14,"start_character":15,"end_line":14,"end_character":18},"updated":"2017-10-12 17:53:58.000000000","message":"adds","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"46b3cc8026638991c99cdcfde013f07982b2abe5","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/"},{"line_number":12,"context_line":"add-pagination-and-change-since-for-migration-list"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This blueprint add `limit` and `marker` optional"},{"line_number":15,"context_line":"parameters to GET /os-migrations request to support pagination."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This blueprint also add `changes-since` optional parameters to"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_74e28403","line":14,"range":{"start_line":14,"start_character":15,"end_line":14,"end_character":18},"in_reply_to":"5f4e5783_80ef0caf","updated":"2017-10-13 07:50:29.000000000","message":"Done","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cc660c2ea6704376fea34eb1e969152dba8a6aa5","unresolved":false,"context_lines":[{"line_number":14,"context_line":"This blueprint add `limit` and `marker` optional"},{"line_number":15,"context_line":"parameters to GET /os-migrations request to support pagination."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This blueprint also add `changes-since` optional parameters to"},{"line_number":18,"context_line":"GET /os-migrations request to support filtering response data by updated time."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_602c1002","line":17,"range":{"start_line":17,"start_character":20,"end_line":17,"end_character":23},"updated":"2017-10-12 17:53:58.000000000","message":"adds","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cc660c2ea6704376fea34eb1e969152dba8a6aa5","unresolved":false,"context_lines":[{"line_number":14,"context_line":"This blueprint add `limit` and `marker` optional"},{"line_number":15,"context_line":"parameters to GET /os-migrations request to support pagination."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This blueprint also add `changes-since` optional parameters to"},{"line_number":18,"context_line":"GET /os-migrations request to support filtering response data by updated time."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_e03fe022","line":17,"range":{"start_line":17,"start_character":49,"end_line":17,"end_character":59},"updated":"2017-10-12 17:53:58.000000000","message":"parameter","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"46b3cc8026638991c99cdcfde013f07982b2abe5","unresolved":false,"context_lines":[{"line_number":14,"context_line":"This blueprint add `limit` and `marker` optional"},{"line_number":15,"context_line":"parameters to GET /os-migrations request to support pagination."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This blueprint also add `changes-since` optional parameters to"},{"line_number":18,"context_line":"GET /os-migrations request to support filtering response data by updated time."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_54f1c8cc","line":17,"range":{"start_line":17,"start_character":20,"end_line":17,"end_character":23},"in_reply_to":"5f4e5783_602c1002","updated":"2017-10-13 07:50:29.000000000","message":"Done","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"46b3cc8026638991c99cdcfde013f07982b2abe5","unresolved":false,"context_lines":[{"line_number":14,"context_line":"This blueprint add `limit` and `marker` optional"},{"line_number":15,"context_line":"parameters to GET /os-migrations request to support pagination."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This blueprint also add `changes-since` optional parameters to"},{"line_number":18,"context_line":"GET /os-migrations request to support filtering response data by updated time."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_34ec0cf2","line":17,"range":{"start_line":17,"start_character":49,"end_line":17,"end_character":59},"in_reply_to":"5f4e5783_e03fe022","updated":"2017-10-13 07:50:29.000000000","message":"Done","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cc660c2ea6704376fea34eb1e969152dba8a6aa5","unresolved":false,"context_lines":[{"line_number":15,"context_line":"parameters to GET /os-migrations request to support pagination."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This blueprint also add `changes-since` optional parameters to"},{"line_number":18,"context_line":"GET /os-migrations request to support filtering response data by updated time."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_0012fcb1","line":18,"range":{"start_line":18,"start_character":65,"end_line":18,"end_character":77},"updated":"2017-10-12 17:53:58.000000000","message":"In an earlier patch set Dan suggested to just sort by created_at, I\u0027m not sure how much we care either way since migrations are generally short-lived resources.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"46b3cc8026638991c99cdcfde013f07982b2abe5","unresolved":false,"context_lines":[{"line_number":15,"context_line":"parameters to GET /os-migrations request to support pagination."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This blueprint also add `changes-since` optional parameters to"},{"line_number":18,"context_line":"GET /os-migrations request to support filtering response data by updated time."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_34a88c75","line":18,"range":{"start_line":18,"start_character":65,"end_line":18,"end_character":77},"in_reply_to":"5f4e5783_0012fcb1","updated":"2017-10-13 07:50:29.000000000","message":"Yes, sort by created_at is enough and fine.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cc660c2ea6704376fea34eb1e969152dba8a6aa5","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Currently, os-migrations API does not support pagination. As in large"},{"line_number":24,"context_line":"scale deployment the number of migration records can be also very large"},{"line_number":25,"context_line":"query them all can lead to performance bottleneck, it will be very"},{"line_number":26,"context_line":"useful to support pagination."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Also, os-migrations API does not support filter the migration record by"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_e02800e3","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":5},"updated":"2017-10-12 17:53:58.000000000","message":"and querying","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"46b3cc8026638991c99cdcfde013f07982b2abe5","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Currently, os-migrations API does not support pagination. As in large"},{"line_number":24,"context_line":"scale deployment the number of migration records can be also very large"},{"line_number":25,"context_line":"query them all can lead to performance bottleneck, it will be very"},{"line_number":26,"context_line":"useful to support pagination."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Also, os-migrations API does not support filter the migration record by"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_94cce06a","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":5},"in_reply_to":"5f4e5783_e02800e3","updated":"2017-10-13 07:50:29.000000000","message":"Done","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cc660c2ea6704376fea34eb1e969152dba8a6aa5","unresolved":false,"context_lines":[{"line_number":25,"context_line":"query them all can lead to performance bottleneck, it will be very"},{"line_number":26,"context_line":"useful to support pagination."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Also, os-migrations API does not support filter the migration record by"},{"line_number":29,"context_line":"last updated time. As for production deployment, the system will be up"},{"line_number":30,"context_line":"for a very long time, and the number of migration records will also be"},{"line_number":31,"context_line":"very big. It will be very useful to support filter by last update time."}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_c023c404","line":28,"range":{"start_line":28,"start_character":41,"end_line":28,"end_character":47},"updated":"2017-10-12 17:53:58.000000000","message":"filtering","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"46b3cc8026638991c99cdcfde013f07982b2abe5","unresolved":false,"context_lines":[{"line_number":25,"context_line":"query them all can lead to performance bottleneck, it will be very"},{"line_number":26,"context_line":"useful to support pagination."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Also, os-migrations API does not support filter the migration record by"},{"line_number":29,"context_line":"last updated time. As for production deployment, the system will be up"},{"line_number":30,"context_line":"for a very long time, and the number of migration records will also be"},{"line_number":31,"context_line":"very big. It will be very useful to support filter by last update time."}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_54c6684a","line":28,"range":{"start_line":28,"start_character":41,"end_line":28,"end_character":47},"in_reply_to":"5f4e5783_c023c404","updated":"2017-10-13 07:50:29.000000000","message":"Done","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cc660c2ea6704376fea34eb1e969152dba8a6aa5","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Also, os-migrations API does not support filter the migration record by"},{"line_number":29,"context_line":"last updated time. As for production deployment, the system will be up"},{"line_number":30,"context_line":"for a very long time, and the number of migration records will also be"},{"line_number":31,"context_line":"very big. It will be very useful to support filter by last update time."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"For multiple cells, we could have migrations with same ID, the migration"},{"line_number":34,"context_line":"ID as pagination marker won\u0027t work. Currently, the migration record has a"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_4066b453","line":31,"range":{"start_line":31,"start_character":10,"end_line":31,"end_character":71},"updated":"2017-10-12 17:53:58.000000000","message":"As noted above, created_at should also be OK, but updated_at is more in line with changes-since when listing instances so I suppose we should be consistent if possible.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"46b3cc8026638991c99cdcfde013f07982b2abe5","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Also, os-migrations API does not support filter the migration record by"},{"line_number":29,"context_line":"last updated time. As for production deployment, the system will be up"},{"line_number":30,"context_line":"for a very long time, and the number of migration records will also be"},{"line_number":31,"context_line":"very big. It will be very useful to support filter by last update time."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"For multiple cells, we could have migrations with same ID, the migration"},{"line_number":34,"context_line":"ID as pagination marker won\u0027t work. Currently, the migration record has a"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_d4b81877","line":31,"range":{"start_line":31,"start_character":10,"end_line":31,"end_character":71},"in_reply_to":"5f4e5783_4066b453","updated":"2017-10-13 07:50:29.000000000","message":"Done","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cc660c2ea6704376fea34eb1e969152dba8a6aa5","unresolved":false,"context_lines":[{"line_number":30,"context_line":"for a very long time, and the number of migration records will also be"},{"line_number":31,"context_line":"very big. It will be very useful to support filter by last update time."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"For multiple cells, we could have migrations with same ID, the migration"},{"line_number":34,"context_line":"ID as pagination marker won\u0027t work. Currently, the migration record has a"},{"line_number":35,"context_line":"uuid column on it [1]_, we just need replace \u0027id\u0027 attribute with \u0027uuid\u0027"},{"line_number":36,"context_line":"attribute in response data, and the migration UUID needs to be the pagination"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_cbaac5d0","line":33,"updated":"2017-10-12 17:53:58.000000000","message":"This paragraph should go in the \"Proposed change\" section.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"46b3cc8026638991c99cdcfde013f07982b2abe5","unresolved":false,"context_lines":[{"line_number":30,"context_line":"for a very long time, and the number of migration records will also be"},{"line_number":31,"context_line":"very big. It will be very useful to support filter by last update time."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"For multiple cells, we could have migrations with same ID, the migration"},{"line_number":34,"context_line":"ID as pagination marker won\u0027t work. Currently, the migration record has a"},{"line_number":35,"context_line":"uuid column on it [1]_, we just need replace \u0027id\u0027 attribute with \u0027uuid\u0027"},{"line_number":36,"context_line":"attribute in response data, and the migration UUID needs to be the pagination"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_34a76c52","line":33,"in_reply_to":"5f4e5783_cbaac5d0","updated":"2017-10-13 07:50:29.000000000","message":"Done","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cc660c2ea6704376fea34eb1e969152dba8a6aa5","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"For multiple cells, we could have migrations with same ID, the migration"},{"line_number":34,"context_line":"ID as pagination marker won\u0027t work. Currently, the migration record has a"},{"line_number":35,"context_line":"uuid column on it [1]_, we just need replace \u0027id\u0027 attribute with \u0027uuid\u0027"},{"line_number":36,"context_line":"attribute in response data, and the migration UUID needs to be the pagination"},{"line_number":37,"context_line":"marker."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_00a31c51","line":36,"range":{"start_line":35,"start_character":24,"end_line":36,"end_character":26},"updated":"2017-10-12 17:53:58.000000000","message":"We should be clear here since we have a couple of different APIs that do different things with exposing UUIDs in the response.\n\n1. The aggregates API returns both the int id and the UUID starting with microversion 2.41.\n\n2. The services and hypervisors APIs return the UUID as the id field in the response starting in microversion 2.53.\n\n--\n\nAre you suggesting we change the key in the response from \u0027id\u0027 to \u0027uuid\u0027, or include \u0027uuid\u0027 in addition to \u0027id\u0027, or only return \u0027id\u0027 but change the value to the UUID?\n\nI don\u0027t like replacing id with uuid as the key, so either returning uuid in addition to id or changing the id value to the uuid in the microversion would be OK with me.\n\nI tend to like what we did with 2.53 since it makes the id field more like the id field in the servers API response, which is the UUID value.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"46b3cc8026638991c99cdcfde013f07982b2abe5","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"For multiple cells, we could have migrations with same ID, the migration"},{"line_number":34,"context_line":"ID as pagination marker won\u0027t work. Currently, the migration record has a"},{"line_number":35,"context_line":"uuid column on it [1]_, we just need replace \u0027id\u0027 attribute with \u0027uuid\u0027"},{"line_number":36,"context_line":"attribute in response data, and the migration UUID needs to be the pagination"},{"line_number":37,"context_line":"marker."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_5481c88e","line":36,"range":{"start_line":35,"start_character":24,"end_line":36,"end_character":26},"in_reply_to":"5f4e5783_00a31c51","updated":"2017-10-13 07:50:29.000000000","message":"Thanks for detailed reference, yes, I also tend to 2, so we just need return in the response a UUID value for the \u0027id\u0027.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cc660c2ea6704376fea34eb1e969152dba8a6aa5","unresolved":false,"context_lines":[{"line_number":54,"context_line":"* **marker**: The last migration UUID of the previous page. Displays list of"},{"line_number":55,"context_line":"  migrations after \"marker\"."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* **limit**: Maximum number of migrations to display. If limit \u003d\u003d -1,"},{"line_number":58,"context_line":"  all migrations will be displayed. If limit is bigger than `[api]/max_limit`"},{"line_number":59,"context_line":"  option of Nova API, limit `[api]/max_limit` will be used instead."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_2b2399aa","line":58,"range":{"start_line":57,"start_character":54,"end_line":58,"end_character":35},"updated":"2017-10-12 17:53:58.000000000","message":"I don\u0027t think we actually support anything like this in the API today, we just take the min of the configured max limit and whatever is requested. You can specify -1 in the nova list CLI and that will do paging until there are no more results, but we don\u0027t have any special significance to -1 in the API to return everything. I need to test out what actually happens if you try to list instances with -1 because it looks like oslo.db passes that through to sqlalchemy and the docs for sqla don\u0027t mention passing a negative limit:\n\nhttp://docs.sqlalchemy.org/en/latest/orm/query.html","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"88e1a5f048571f8315124ee26c6740280f36f440","unresolved":false,"context_lines":[{"line_number":54,"context_line":"* **marker**: The last migration UUID of the previous page. Displays list of"},{"line_number":55,"context_line":"  migrations after \"marker\"."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* **limit**: Maximum number of migrations to display. If limit \u003d\u003d -1,"},{"line_number":58,"context_line":"  all migrations will be displayed. If limit is bigger than `[api]/max_limit`"},{"line_number":59,"context_line":"  option of Nova API, limit `[api]/max_limit` will be used instead."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_eb6d8132","line":58,"range":{"start_line":57,"start_character":54,"end_line":58,"end_character":35},"in_reply_to":"5f4e5783_2b2399aa","updated":"2017-10-12 18:09:37.000000000","message":"Yeah you can\u0027t pass limit -1 to the API:\n\nstack@devstack:~$ curl -H \"X-AUTH-TOKEN: $OS_TOKEN\" http://199.204.45.97/compute/v2.1/servers?limit\u003d-1 | python -m json.tool\n  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\n                                 Dload  Upload   Total   Spent    Left  Speed\n100   128  100   128    0     0   3886      0 --:--:-- --:--:-- --:--:--  4000\n{\n    \"badRequest\": {\n        \"code\": 400,\n        \"message\": \"Invalid input for query parameters limit. Value: -1. u\u0027-1\u0027 does not match \u0027^[0-9]*$\u0027\"\n    }\n}\nstack@devstack:~$\n\n\nSo if you want to support that it would have to be built into python-novaclient, but I\u0027d consider that low priority.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"46b3cc8026638991c99cdcfde013f07982b2abe5","unresolved":false,"context_lines":[{"line_number":54,"context_line":"* **marker**: The last migration UUID of the previous page. Displays list of"},{"line_number":55,"context_line":"  migrations after \"marker\"."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* **limit**: Maximum number of migrations to display. If limit \u003d\u003d -1,"},{"line_number":58,"context_line":"  all migrations will be displayed. If limit is bigger than `[api]/max_limit`"},{"line_number":59,"context_line":"  option of Nova API, limit `[api]/max_limit` will be used instead."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_2846ec50","line":58,"range":{"start_line":57,"start_character":54,"end_line":58,"end_character":35},"in_reply_to":"5f4e5783_4ec6d54a","updated":"2017-10-13 07:50:29.000000000","message":"@alex and @matt, \n\"If limit \u003d\u003d -1, all migrations will be displayed.\" \nYes, it just some work around thing in nova client(if you pass limit -1 to cli, cli will ignore limit), not the API behavior. So, I will remove this description because it is inappropriate and a little strange in here.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2c04d6f81bd5c2dc2c74e8b6e7bff9fb3f4a0e52","unresolved":false,"context_lines":[{"line_number":54,"context_line":"* **marker**: The last migration UUID of the previous page. Displays list of"},{"line_number":55,"context_line":"  migrations after \"marker\"."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* **limit**: Maximum number of migrations to display. If limit \u003d\u003d -1,"},{"line_number":58,"context_line":"  all migrations will be displayed. If limit is bigger than `[api]/max_limit`"},{"line_number":59,"context_line":"  option of Nova API, limit `[api]/max_limit` will be used instead."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_4ec6d54a","line":58,"range":{"start_line":57,"start_character":54,"end_line":58,"end_character":35},"in_reply_to":"5f4e5783_eb6d8132","updated":"2017-10-13 06:21:49.000000000","message":"The config option `[api]/max_limit` is kind of protection of the system, if we allow the \u0027-1\u0027, then we lose that protection.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cc660c2ea6704376fea34eb1e969152dba8a6aa5","unresolved":false,"context_lines":[{"line_number":57,"context_line":"* **limit**: Maximum number of migrations to display. If limit \u003d\u003d -1,"},{"line_number":58,"context_line":"  all migrations will be displayed. If limit is bigger than `[api]/max_limit`"},{"line_number":59,"context_line":"  option of Nova API, limit `[api]/max_limit` will be used instead."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Alternatives"},{"line_number":63,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_ab0309b8","line":60,"updated":"2017-10-12 17:53:58.000000000","message":"Should mention something in here about how you propose to sort the results from multiple cells. Instances are sorted by default in descending order using [\u0027created_at\u0027, \u0027id\u0027] keys.\n\nIf you\u0027re not allowed to pass in sort keys or sort directions, would we sort by [\u0027updated_at\u0027, \u0027id\u0027] in descending order to match the changes-since filter?\n\nAlso, would we do this sorting in python once we get the results back from all of the cells?\n\nhttps://github.com/openstack/nova/blob/master/nova/compute/api.py#L3998\n\nOr do we need to do something more elaborate like what Dan did with the efficient instance merge sort?\n\nhttps://github.com/openstack/nova/blob/master/nova/compute/instance_list.py\n\nI personally don\u0027t think we need to do something as elaborate as Dan\u0027s instance list routine for paging migrations, especially when the user can\u0027t pass in sort keys/direction when listing migrations.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"46b3cc8026638991c99cdcfde013f07982b2abe5","unresolved":false,"context_lines":[{"line_number":57,"context_line":"* **limit**: Maximum number of migrations to display. If limit \u003d\u003d -1,"},{"line_number":58,"context_line":"  all migrations will be displayed. If limit is bigger than `[api]/max_limit`"},{"line_number":59,"context_line":"  option of Nova API, limit `[api]/max_limit` will be used instead."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Alternatives"},{"line_number":63,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_48e7e841","line":60,"in_reply_to":"5f4e5783_6eccf160","updated":"2017-10-13 07:50:29.000000000","message":"I think we could merge sort the results in compute api code (results are sorted in descending order by [\u0027created_at\u0027, \u0027id\u0027] keys) and use created time as filter.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8a8d42e23f27e8f3f6dd18aadbc42b5598cb92f6","unresolved":false,"context_lines":[{"line_number":57,"context_line":"* **limit**: Maximum number of migrations to display. If limit \u003d\u003d -1,"},{"line_number":58,"context_line":"  all migrations will be displayed. If limit is bigger than `[api]/max_limit`"},{"line_number":59,"context_line":"  option of Nova API, limit `[api]/max_limit` will be used instead."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Alternatives"},{"line_number":63,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_cb908551","line":60,"in_reply_to":"5f4e5783_ab0309b8","updated":"2017-10-12 17:59:36.000000000","message":"\u003e If you\u0027re not allowed to pass in sort keys or sort directions, would we sort by [\u0027updated_at\u0027, \u0027id\u0027] in descending order to match the changes-since filter?\n\nTo be consistent with the default sort order on the instances table, I suppose we should actually do the same sort keys and directions, so [\u0027created_at\u0027, \u0027id\u0027] in descending order.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2c04d6f81bd5c2dc2c74e8b6e7bff9fb3f4a0e52","unresolved":false,"context_lines":[{"line_number":57,"context_line":"* **limit**: Maximum number of migrations to display. If limit \u003d\u003d -1,"},{"line_number":58,"context_line":"  all migrations will be displayed. If limit is bigger than `[api]/max_limit`"},{"line_number":59,"context_line":"  option of Nova API, limit `[api]/max_limit` will be used instead."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Alternatives"},{"line_number":63,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_6eccf160","line":60,"in_reply_to":"5f4e5783_cb908551","updated":"2017-10-13 06:21:49.000000000","message":"When using the \u0027changes-since\u0027, but the result sorted by the \u0027created_at\u0027, that looks like strange, I +1 to sort by `changes-since`","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2c04d6f81bd5c2dc2c74e8b6e7bff9fb3f4a0e52","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Data model impact"},{"line_number":68,"context_line":"-----------------"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"None"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"REST API impact"},{"line_number":73,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_2ed6f9f2","line":70,"updated":"2017-10-13 06:21:49.000000000","message":"do we need DB index to improve the performance of \u0027changes-since\u0027 parameter?","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"20d4e8c7cf15431fa922f2ec59037f7bd620df5b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Data model impact"},{"line_number":68,"context_line":"-----------------"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"None"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"REST API impact"},{"line_number":73,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_e629dc36","line":70,"in_reply_to":"5f4e5783_2ed6f9f2","updated":"2017-10-17 02:15:46.000000000","message":"Done","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fad76b78cf0aaf17dd76c3b300cf05760c62267e","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Data model impact"},{"line_number":68,"context_line":"-----------------"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"None"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"REST API impact"},{"line_number":73,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_3a782ec2","line":70,"in_reply_to":"5f4e5783_2ed6f9f2","updated":"2017-10-16 21:30:23.000000000","message":"Good point, probably do want an index if we\u0027re going to filter on the updated_at column.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c665526e408ee760fc2a2ca709ed761a231f0275","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"None"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"REST API impact"},{"line_number":73,"context_line":"---------------"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"The proposal would add API microversion for getting several migrations using"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_2b01596c","line":72,"updated":"2017-10-12 18:06:22.000000000","message":"You would also need next links if the are more results to page:\n\nhttps://developer.openstack.org/api-guide/compute/paginated_collections.html","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"46b3cc8026638991c99cdcfde013f07982b2abe5","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"None"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"REST API impact"},{"line_number":73,"context_line":"---------------"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"The proposal would add API microversion for getting several migrations using"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_28e26c30","line":72,"in_reply_to":"5f4e5783_2b01596c","updated":"2017-10-13 07:50:29.000000000","message":"Done","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cc660c2ea6704376fea34eb1e969152dba8a6aa5","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            \"source_node\": \"node1\","},{"line_number":101,"context_line":"            \"status\": \"Done\","},{"line_number":102,"context_line":"            \"updated_at\": \"2012-10-29T13:42:02.000000\","},{"line_number":103,"context_line":"            \"uuid\": \"12341d4b-346a-40d0-83c6-5f4f6892b650\""},{"line_number":104,"context_line":"        },"},{"line_number":105,"context_line":"        {"},{"line_number":106,"context_line":"            \"created_at\": \"2013-10-22T13:42:02.000000\","}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_4b51350e","line":103,"range":{"start_line":103,"start_character":12,"end_line":103,"end_character":58},"updated":"2017-10-12 17:53:58.000000000","message":"OK so I guess you propose to just replace the id key with uuid in the response. I don\u0027t think we should do that since it would be yet another different behavior from the servers, aggregates, services and hypervisors APIs.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"46b3cc8026638991c99cdcfde013f07982b2abe5","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            \"source_node\": \"node1\","},{"line_number":101,"context_line":"            \"status\": \"Done\","},{"line_number":102,"context_line":"            \"updated_at\": \"2012-10-29T13:42:02.000000\","},{"line_number":103,"context_line":"            \"uuid\": \"12341d4b-346a-40d0-83c6-5f4f6892b650\""},{"line_number":104,"context_line":"        },"},{"line_number":105,"context_line":"        {"},{"line_number":106,"context_line":"            \"created_at\": \"2013-10-22T13:42:02.000000\","}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_480368b9","line":103,"range":{"start_line":103,"start_character":12,"end_line":103,"end_character":58},"in_reply_to":"5f4e5783_2eef19b1","updated":"2017-10-13 07:50:29.000000000","message":"curl -X GET http://x.x.x.x/compute/v2.1/servers/detail?marker\u003d555e2485-d9e3-4893-988d-0944d8b24f18 -H \"X-Auth-Token: $TOKEN\" |python -m json.tool\n\n{\n    \"servers\": [\n        {\n\t\t    ....\n            \"id\": \"2460432c-f020-4d1c-b6ca-67417a3c4b1e\",\n\t\t\t....\n        }\n    ]\n}\n\nyes, we could return in the response a UUID value for the \u0027id\u0027. just like instance list do.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2c04d6f81bd5c2dc2c74e8b6e7bff9fb3f4a0e52","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            \"source_node\": \"node1\","},{"line_number":101,"context_line":"            \"status\": \"Done\","},{"line_number":102,"context_line":"            \"updated_at\": \"2012-10-29T13:42:02.000000\","},{"line_number":103,"context_line":"            \"uuid\": \"12341d4b-346a-40d0-83c6-5f4f6892b650\""},{"line_number":104,"context_line":"        },"},{"line_number":105,"context_line":"        {"},{"line_number":106,"context_line":"            \"created_at\": \"2013-10-22T13:42:02.000000\","}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_2eef19b1","line":103,"range":{"start_line":103,"start_character":12,"end_line":103,"end_character":58},"in_reply_to":"5f4e5783_4b51350e","updated":"2017-10-13 06:21:49.000000000","message":"at least, we should expose the UUID? otherwise the marker is strange.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2c04d6f81bd5c2dc2c74e8b6e7bff9fb3f4a0e52","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            \"updated_at\": \"2013-10-22T13:45:02.000000\","},{"line_number":131,"context_line":"            \"uuid\": \"56791d4b-346a-40d0-83c6-5f4f6892b650\""},{"line_number":132,"context_line":"        }"},{"line_number":133,"context_line":"    ]"},{"line_number":134,"context_line":"    }"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"2) Get no more than 2 migrations ::"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_6e3ab134","line":133,"updated":"2017-10-13 06:21:49.000000000","message":"There should have the \u0027next link\u0027?","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"46b3cc8026638991c99cdcfde013f07982b2abe5","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            \"updated_at\": \"2013-10-22T13:45:02.000000\","},{"line_number":131,"context_line":"            \"uuid\": \"56791d4b-346a-40d0-83c6-5f4f6892b650\""},{"line_number":132,"context_line":"        }"},{"line_number":133,"context_line":"    ]"},{"line_number":134,"context_line":"    }"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"2) Get no more than 2 migrations ::"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_6890644f","line":133,"in_reply_to":"5f4e5783_6e3ab134","updated":"2017-10-13 07:50:29.000000000","message":"Sure, added.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cc660c2ea6704376fea34eb1e969152dba8a6aa5","unresolved":false,"context_lines":[{"line_number":211,"context_line":"    ]"},{"line_number":212,"context_line":"    }"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":""},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"Request format ::"},{"line_number":217,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_8b460d4f","line":214,"updated":"2017-10-12 17:53:58.000000000","message":"Missing a \"4)\" here to describe this request.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"46b3cc8026638991c99cdcfde013f07982b2abe5","unresolved":false,"context_lines":[{"line_number":211,"context_line":"    ]"},{"line_number":212,"context_line":"    }"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":""},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"Request format ::"},{"line_number":217,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_489fe85e","line":214,"in_reply_to":"5f4e5783_8b460d4f","updated":"2017-10-13 07:50:29.000000000","message":"Done","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2c04d6f81bd5c2dc2c74e8b6e7bff9fb3f4a0e52","unresolved":false,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"Request format ::"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    GET /os-migrations?changes-since\u003d2013-10-22T13:45:02.000000"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Response ::"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_ce352548","line":218,"range":{"start_line":218,"start_character":37,"end_line":218,"end_character":63},"updated":"2017-10-13 06:21:49.000000000","message":"We need to describe the valid value at here.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"a5f61e20f52aeee743537795438a75ced7397dec","unresolved":false,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"Request format ::"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    GET /os-migrations?changes-since\u003d2013-10-22T13:45:02.000000"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Response ::"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_cbb632fb","line":218,"range":{"start_line":218,"start_character":37,"end_line":218,"end_character":63},"in_reply_to":"5f4e5783_ce352548","updated":"2017-10-13 08:13:54.000000000","message":"Done","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cc660c2ea6704376fea34eb1e969152dba8a6aa5","unresolved":false,"context_lines":[{"line_number":285,"context_line":"Work Items"},{"line_number":286,"context_line":"----------"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"* Add the \u0027uuid\u0027 attribute to the response data, \u0027uuid\u0027 attribute will"},{"line_number":289,"context_line":"  replace \u0027id\u0027 attribute."},{"line_number":290,"context_line":"* Create a new API microversion for getting several migrations using"},{"line_number":291,"context_line":"  general pagination mechanism and time stamp filtering."},{"line_number":292,"context_line":"* Modify the Nova client to handle the new microversion for migration"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_ab6429e5","line":289,"range":{"start_line":288,"start_character":49,"end_line":289,"end_character":25},"updated":"2017-10-12 17:53:58.000000000","message":"Again I don\u0027t think we want this the way you\u0027re proposing to do it.","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"46b3cc8026638991c99cdcfde013f07982b2abe5","unresolved":false,"context_lines":[{"line_number":285,"context_line":"Work Items"},{"line_number":286,"context_line":"----------"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"* Add the \u0027uuid\u0027 attribute to the response data, \u0027uuid\u0027 attribute will"},{"line_number":289,"context_line":"  replace \u0027id\u0027 attribute."},{"line_number":290,"context_line":"* Create a new API microversion for getting several migrations using"},{"line_number":291,"context_line":"  general pagination mechanism and time stamp filtering."},{"line_number":292,"context_line":"* Modify the Nova client to handle the new microversion for migration"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_e88d7431","line":289,"range":{"start_line":288,"start_character":49,"end_line":289,"end_character":25},"in_reply_to":"5f4e5783_ab6429e5","updated":"2017-10-13 07:50:29.000000000","message":"Done","commit_id":"340645481685e8933c607a08bdc0f03062f679a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d4e6ad5be61bfaa4c9a00875218ca1aad9f99640","unresolved":false,"context_lines":[{"line_number":15,"context_line":"parameters to GET /os-migrations request to support pagination."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This blueprint also adds `changes-since` optional parameter to"},{"line_number":18,"context_line":"GET /os-migrations request to support filtering response data by created"},{"line_number":19,"context_line":"time."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5f4e5783_75a239fe","line":18,"range":{"start_line":18,"start_character":65,"end_line":18,"end_character":72},"updated":"2017-10-16 22:03:29.000000000","message":"Sorry, I know you changed this since PS8, but I\u0027m wondering if this should be updated_at to be consistent with the behavior with the changes-since filter with instances. If it doesn\u0027t matter much either way, I think consistency is better to avoid confusion by the API user (and developers maintaining this code). I\u0027d like to see what Alex thinks.","commit_id":"e3c92aafd249feae8f73becd202639290936c56c"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"bd480160f2e5febc5f824852fcb17540a737a6dd","unresolved":false,"context_lines":[{"line_number":15,"context_line":"parameters to GET /os-migrations request to support pagination."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This blueprint also adds `changes-since` optional parameter to"},{"line_number":18,"context_line":"GET /os-migrations request to support filtering response data by created"},{"line_number":19,"context_line":"time."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5f4e5783_060e38e4","line":18,"range":{"start_line":18,"start_character":65,"end_line":18,"end_character":72},"in_reply_to":"5f4e5783_75a239fe","updated":"2017-10-17 02:15:02.000000000","message":"done","commit_id":"e3c92aafd249feae8f73becd202639290936c56c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d4e6ad5be61bfaa4c9a00875218ca1aad9f99640","unresolved":false,"context_lines":[{"line_number":27,"context_line":"useful to support pagination."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Also, os-migrations API does not support filtering the migration record by"},{"line_number":30,"context_line":"created time. As for production deployment, the system will be up"},{"line_number":31,"context_line":"for a very long time, and the number of migration records will also be"},{"line_number":32,"context_line":"very big. It will be very useful to support filter by created time."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"5f4e5783_f5b50933","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":7},"updated":"2017-10-16 22:03:29.000000000","message":"same, might be updated - let\u0027s get Alex\u0027s opinion","commit_id":"e3c92aafd249feae8f73becd202639290936c56c"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"bd480160f2e5febc5f824852fcb17540a737a6dd","unresolved":false,"context_lines":[{"line_number":27,"context_line":"useful to support pagination."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Also, os-migrations API does not support filtering the migration record by"},{"line_number":30,"context_line":"created time. As for production deployment, the system will be up"},{"line_number":31,"context_line":"for a very long time, and the number of migration records will also be"},{"line_number":32,"context_line":"very big. It will be very useful to support filter by created time."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"5f4e5783_e610bc02","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":7},"in_reply_to":"5f4e5783_f5b50933","updated":"2017-10-17 02:15:02.000000000","message":"Done","commit_id":"e3c92aafd249feae8f73becd202639290936c56c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d4e6ad5be61bfaa4c9a00875218ca1aad9f99640","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Also, os-migrations API does not support filtering the migration record by"},{"line_number":30,"context_line":"created time. As for production deployment, the system will be up"},{"line_number":31,"context_line":"for a very long time, and the number of migration records will also be"},{"line_number":32,"context_line":"very big. It will be very useful to support filter by created time."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Use Cases"},{"line_number":35,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5f4e5783_757b597a","line":32,"range":{"start_line":32,"start_character":54,"end_line":32,"end_character":61},"updated":"2017-10-16 22:03:29.000000000","message":"last updated - same as above - let\u0027s see what Alex thinks but I think all things being equal we should be consistent with the instances changes-since filtering.","commit_id":"e3c92aafd249feae8f73becd202639290936c56c"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"bd480160f2e5febc5f824852fcb17540a737a6dd","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Also, os-migrations API does not support filtering the migration record by"},{"line_number":30,"context_line":"created time. As for production deployment, the system will be up"},{"line_number":31,"context_line":"for a very long time, and the number of migration records will also be"},{"line_number":32,"context_line":"very big. It will be very useful to support filter by created time."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Use Cases"},{"line_number":35,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5f4e5783_c6fb80be","line":32,"range":{"start_line":32,"start_character":54,"end_line":32,"end_character":61},"in_reply_to":"5f4e5783_757b597a","updated":"2017-10-17 02:15:02.000000000","message":"Done","commit_id":"e3c92aafd249feae8f73becd202639290936c56c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d4e6ad5be61bfaa4c9a00875218ca1aad9f99640","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"For multiple cells, we could have migrations with same ID, the migration"},{"line_number":57,"context_line":"ID as pagination marker won\u0027t work. Currently, the migration record has a"},{"line_number":58,"context_line":"uuid column on it [1]_, we just need Return in the response a UUID value"},{"line_number":59,"context_line":"for the \u0027id\u0027, and the migration UUID needs to be the pagination marker."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"We propose to merge sort the results in compute api code once we get the"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5f4e5783_55ce1db4","line":58,"range":{"start_line":58,"start_character":37,"end_line":58,"end_character":43},"updated":"2017-10-16 22:03:29.000000000","message":"return","commit_id":"e3c92aafd249feae8f73becd202639290936c56c"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"bd480160f2e5febc5f824852fcb17540a737a6dd","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"For multiple cells, we could have migrations with same ID, the migration"},{"line_number":57,"context_line":"ID as pagination marker won\u0027t work. Currently, the migration record has a"},{"line_number":58,"context_line":"uuid column on it [1]_, we just need Return in the response a UUID value"},{"line_number":59,"context_line":"for the \u0027id\u0027, and the migration UUID needs to be the pagination marker."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"We propose to merge sort the results in compute api code once we get the"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5f4e5783_a6f644d6","line":58,"range":{"start_line":58,"start_character":37,"end_line":58,"end_character":43},"in_reply_to":"5f4e5783_55ce1db4","updated":"2017-10-17 02:15:02.000000000","message":"Done","commit_id":"e3c92aafd249feae8f73becd202639290936c56c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d4e6ad5be61bfaa4c9a00875218ca1aad9f99640","unresolved":false,"context_lines":[{"line_number":59,"context_line":"for the \u0027id\u0027, and the migration UUID needs to be the pagination marker."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"We propose to merge sort the results in compute api code once we get the"},{"line_number":62,"context_line":"results back from all of the multiple cells, and results are sorted in"},{"line_number":63,"context_line":"descending order by [\u0027created_at\u0027, \u0027id\u0027] keys."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5f4e5783_b58b111d","line":63,"range":{"start_line":62,"start_character":49,"end_line":63,"end_character":46},"updated":"2017-10-16 22:03:29.000000000","message":"I\u0027m OK with this because of the defaults here:\n\nhttps://github.com/openstack/nova/blob/4668026a564220141a641ef9e5c131e43540651c/nova/api/openstack/common.py#L142","commit_id":"e3c92aafd249feae8f73becd202639290936c56c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d4e6ad5be61bfaa4c9a00875218ca1aad9f99640","unresolved":false,"context_lines":[{"line_number":71,"context_line":"Data model impact"},{"line_number":72,"context_line":"-----------------"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"None"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"REST API impact"},{"line_number":77,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5f4e5783_953db590","line":74,"updated":"2017-10-16 22:03:29.000000000","message":"As Alex mentioned in PS8, we will probably want a filter on the migrations.updated_at column if we\u0027re going to filter on it.","commit_id":"e3c92aafd249feae8f73becd202639290936c56c"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"bd480160f2e5febc5f824852fcb17540a737a6dd","unresolved":false,"context_lines":[{"line_number":71,"context_line":"Data model impact"},{"line_number":72,"context_line":"-----------------"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"None"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"REST API impact"},{"line_number":77,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5f4e5783_66fcccb4","line":74,"in_reply_to":"5f4e5783_953db590","updated":"2017-10-17 02:15:02.000000000","message":"Done","commit_id":"e3c92aafd249feae8f73becd202639290936c56c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6dc4ce410fd3e04dd606f7affa213b4a5ee9dc6e","unresolved":false,"context_lines":[{"line_number":238,"context_line":"            \"dest_compute\": \"compute21\","},{"line_number":239,"context_line":"            \"dest_host\": \"5.6.7.8\","},{"line_number":240,"context_line":"            \"dest_node\": \"node21\","},{"line_number":241,"context_line":"            \"id\": \"12341d4b-346a-40d0-83c6-5f4f6892b650\","},{"line_number":242,"context_line":"            \"instance_uuid\": \"instance_id_4561\","},{"line_number":243,"context_line":"            \"new_instance_type_id\": 6,"},{"line_number":244,"context_line":"            \"old_instance_type_id\": 5,"}],"source_content_type":"text/x-rst","patch_set":11,"id":"5f4e5783_01d4c6e7","line":241,"range":{"start_line":241,"start_character":19,"end_line":241,"end_character":55},"updated":"2017-10-17 20:54:03.000000000","message":"nit: this would actually be 56791d4b-346a-40d0-83c6-5f4f6892b650 if you\u0027re following your examples above. It\u0027s nice to be consistent with the examples for the different scenarios.","commit_id":"84027f4e3acc1df170d17debd0a23607c8616453"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6dc4ce410fd3e04dd606f7affa213b4a5ee9dc6e","unresolved":false,"context_lines":[{"line_number":269,"context_line":"Performance Impact"},{"line_number":270,"context_line":"------------------"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"Reduce load on Horizon with the help of pagination and time filtering"},{"line_number":273,"context_line":"of retrieving migrations from Nova side."},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":11,"id":"5f4e5783_011ba6c9","line":272,"updated":"2017-10-17 20:54:03.000000000","message":"nit: I don\u0027t think Horizon even has anything in it\u0027s admin panels for showing server migrations, but I think the dashboard is extendable so a 3rd party OEM version of the dashboard could have added this. Regardless, it\u0027s useful for any API user of a large cloud.","commit_id":"84027f4e3acc1df170d17debd0a23607c8616453"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6dc4ce410fd3e04dd606f7affa213b4a5ee9dc6e","unresolved":false,"context_lines":[{"line_number":311,"context_line":"Testing"},{"line_number":312,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"Would need new Tempest, functional and unit tests."},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"Documentation Impact"},{"line_number":317,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":11,"id":"5f4e5783_416abe19","line":314,"range":{"start_line":314,"start_character":15,"end_line":314,"end_character":22},"updated":"2017-10-17 20:54:03.000000000","message":"I think we can test all of this in-tree with functional tests, no need for Tempest tests for this.","commit_id":"84027f4e3acc1df170d17debd0a23607c8616453"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2b12afb90c44d5ab9f25a258d3e0b2975f1a8b5c","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            \"dest_compute\": \"compute2\","},{"line_number":152,"context_line":"            \"dest_host\": \"1.2.3.4\","},{"line_number":153,"context_line":"            \"dest_node\": \"node2\","},{"line_number":154,"context_line":"            \"id\": \"12341d4b-346a-40d0-83c6-5f4f6892b650\","},{"line_number":155,"context_line":"            \"instance_uuid\": \"instance_id_123\","},{"line_number":156,"context_line":"            \"new_instance_type_id\": 2,"},{"line_number":157,"context_line":"            \"old_instance_type_id\": 1,"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5f4e5783_84f444f2","line":154,"updated":"2017-10-17 21:15:35.000000000","message":"I\u0027m kinda bummed that we\u0027re changing this, but I guess we did it that way in the recent past with id-\u003euuid changes. It just has the potential to break consumers of this which don\u0027t really need to care about uuids. But, such it is I guess.","commit_id":"2d5c3d1eca1836f74c8e65c11e838a04d42ba4d4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"935ef288ea8676cec7d36cd54ed120ed39ff1f6b","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            \"dest_compute\": \"compute2\","},{"line_number":152,"context_line":"            \"dest_host\": \"1.2.3.4\","},{"line_number":153,"context_line":"            \"dest_node\": \"node2\","},{"line_number":154,"context_line":"            \"id\": \"12341d4b-346a-40d0-83c6-5f4f6892b650\","},{"line_number":155,"context_line":"            \"instance_uuid\": \"instance_id_123\","},{"line_number":156,"context_line":"            \"new_instance_type_id\": 2,"},{"line_number":157,"context_line":"            \"old_instance_type_id\": 1,"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5f4e5783_2447d0be","line":154,"in_reply_to":"5f4e5783_84f444f2","updated":"2017-10-17 21:19:57.000000000","message":"Per earlier discussions in here, I opted for this like in the 2.53 change rather than returning a new uuid key in the response like in 2.41. But thinking more about it, we did 2.53 that way also because we have things like PUT /os-services/{service_id} and we wanted to avoid confusion with whether or not you pass the int id or the uuid id, so we only returned a single id field and it was a uuid value (with microversion \u003e\u003d 2.53).\n\nWe don\u0027t have anything like that on the /os-migrations API that keys off a migration ID, so I\u0027d also be OK with just leaving the migrations id as an int and returning a uuid key in the response like in 2.41.","commit_id":"2d5c3d1eca1836f74c8e65c11e838a04d42ba4d4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"def8c6b543e6e78c57d255b9a0a9971197cc4faa","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"For multiple cells, we could have migrations with same ID, the migration"},{"line_number":57,"context_line":"ID as pagination marker won\u0027t work. Currently, the migration record has a"},{"line_number":58,"context_line":"uuid column on it [1]_, we just need return in the response a UUID value"},{"line_number":59,"context_line":"for the \u0027id\u0027, and the migration UUID needs to be the pagination marker."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"We propose to merge sort the results in compute api code once we get the"},{"line_number":62,"context_line":"results back from all of the multiple cells, and results are sorted in"}],"source_content_type":"text/x-rst","patch_set":13,"id":"5f4e5783_84d204d0","line":59,"range":{"start_line":58,"start_character":24,"end_line":59,"end_character":71},"updated":"2017-10-17 21:22:43.000000000","message":"Sorry, per Dan\u0027s comment in PS12 let\u0027s leave the id key as the int value and add a new \"uuid\" key in the response, like in the 2.41 microversion on the aggregates API. Since we don\u0027t have anything like GET /os-migrations/{migration_id} it\u0027s fine to return both an id and uuid key, there shouldn\u0027t be any confusion.","commit_id":"f51f1427c5715c3563e4a2d6c432ed9cbdf4bb56"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"2f58e935a5dd78824eb9f14ce89c486bb1dfc839","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"For multiple cells, we could have migrations with same ID, the migration"},{"line_number":57,"context_line":"ID as pagination marker won\u0027t work. Currently, the migration record has a"},{"line_number":58,"context_line":"uuid column on it [1]_, we just need return in the response a UUID value"},{"line_number":59,"context_line":"for the \u0027id\u0027, and the migration UUID needs to be the pagination marker."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"We propose to merge sort the results in compute api code once we get the"},{"line_number":62,"context_line":"results back from all of the multiple cells, and results are sorted in"}],"source_content_type":"text/x-rst","patch_set":13,"id":"5f4e5783_b697723a","line":59,"range":{"start_line":58,"start_character":24,"end_line":59,"end_character":71},"in_reply_to":"5f4e5783_84d204d0","updated":"2017-10-18 02:55:09.000000000","message":"OK, done. We will return both an id and uuid key in the response.","commit_id":"f51f1427c5715c3563e4a2d6c432ed9cbdf4bb56"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"64e948af8895fc242fe9b22f83bb94c61010a964","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"For multiple cells, we could have migrations with same ID, the migration"},{"line_number":57,"context_line":"ID as pagination marker won\u0027t work. Currently, the migration record has a"},{"line_number":58,"context_line":"uuid column on it [1]_, we just need add the migration UUID filed in the"},{"line_number":59,"context_line":"response, and the migration UUID needs to be the pagination marker."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"We propose to merge sort the results in compute api code once we get the"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3f4b6375_ff3a3832","line":58,"range":{"start_line":58,"start_character":60,"end_line":58,"end_character":65},"updated":"2017-10-18 13:38:10.000000000","message":"field","commit_id":"02369ab80e5354aec3f2d3e7d6f3eabf4ae9c2bc"}]}
