)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Resource retrieving: add changes-before filter"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add the \u0027changes-before\u0027 parameter to servers API to support filtering"},{"line_number":10,"context_line":"nova resources contains the ``DELETED`` status before the given time."},{"line_number":11,"context_line":"The os-instance-actions API and os-migrations API can be accessed by"},{"line_number":12,"context_line":"the instance of the ``DELETED`` status."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Part of bp support-to-query-nova-resources-filter-by-changes-before"},{"line_number":15,"context_line":"Change-Id: If91c179e3823c8b0da744a9363906b0f7b05c326"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"3f79a3b5_a5cbfa6f","line":12,"range":{"start_line":9,"start_character":0,"end_line":12,"end_character":39},"updated":"2018-09-17 19:18:49.000000000","message":"This is a bit confusing with the mention of the deleted status. I think this should probably just say, \"This adds the changes-before filter to the servers, os-instance-actions and os-migrations APIs for filtering resources which were last updated before or equal to the given time. The changes-before filter, like the changes-since filter, will return deleted server resources.\"","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f78cdc12ee4a059b24adffbf4a9f370de1070378","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Resource retrieving: add changes-before filter"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add the \u0027changes-before\u0027 parameter to servers API to support filtering"},{"line_number":10,"context_line":"nova resources contains the ``DELETED`` status before the given time."},{"line_number":11,"context_line":"The os-instance-actions API and os-migrations API can be accessed by"},{"line_number":12,"context_line":"the instance of the ``DELETED`` status."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Part of bp support-to-query-nova-resources-filter-by-changes-before"},{"line_number":15,"context_line":"Change-Id: If91c179e3823c8b0da744a9363906b0f7b05c326"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"3f79a3b5_eb6f83c1","line":12,"range":{"start_line":9,"start_character":0,"end_line":12,"end_character":39},"in_reply_to":"3f79a3b5_a5cbfa6f","updated":"2018-09-17 20:05:39.000000000","message":"++ to what mriedem said.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"27e30cc51102c34be8a82390936184f45f5bdfb5","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Resource retrieving: add changes-before filter"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add the \u0027changes-before\u0027 parameter to servers API to support filtering"},{"line_number":10,"context_line":"nova resources contains the ``DELETED`` status before the given time."},{"line_number":11,"context_line":"The os-instance-actions API and os-migrations API can be accessed by"},{"line_number":12,"context_line":"the instance of the ``DELETED`` status."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Part of bp support-to-query-nova-resources-filter-by-changes-before"},{"line_number":15,"context_line":"Change-Id: If91c179e3823c8b0da744a9363906b0f7b05c326"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":25,"id":"3f79a3b5_925dcd17","line":12,"range":{"start_line":9,"start_character":0,"end_line":12,"end_character":39},"updated":"2018-09-18 13:57:05.000000000","message":"This will be updated in next patch, changes to \"This adds the changes-before filter to the servers, os-instance-actions and os-migrations APIs for filtering resources which were last updated before or equal to the given time. The changes-before filter, like the changes-since filter, will return deleted server resources.\"","commit_id":"17e01b85a4c66660c85edfd996cc9ad2b9f92dd8"}],"api-guide/source/index.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    limits"},{"line_number":84,"context_line":"    links_and_references"},{"line_number":85,"context_line":"    paginated_collections"},{"line_number":86,"context_line":"    polling_changes-since_parameter"},{"line_number":87,"context_line":"    request_and_response_formats"},{"line_number":88,"context_line":"    polling_changes-before_parameter"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_64ccb660","line":86,"updated":"2018-09-07 18:48:56.000000000","message":"nit: put the new section right under this one since they are related, or just work them into the same doc with a rename to the doc title to make it more generic about polling for changes.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    limits"},{"line_number":84,"context_line":"    links_and_references"},{"line_number":85,"context_line":"    paginated_collections"},{"line_number":86,"context_line":"    polling_changes-since_parameter"},{"line_number":87,"context_line":"    request_and_response_formats"},{"line_number":88,"context_line":"    polling_changes-before_parameter"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_fc7dab1b","line":86,"in_reply_to":"3f79a3b5_64ccb660","updated":"2018-09-09 11:03:22.000000000","message":"Yeah, rename \"polling_changes-since_parameter\" and add changes-beofre to the doc.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2566c7ca7ec53b34f621db29dcda7c46811de9ca","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    limits"},{"line_number":84,"context_line":"    links_and_references"},{"line_number":85,"context_line":"    paginated_collections"},{"line_number":86,"context_line":"    polling_changes-since_and_changes-before_parameters"},{"line_number":87,"context_line":"    request_and_response_formats"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":".. toctree::"}],"source_content_type":"text/x-rst","patch_set":25,"id":"3f79a3b5_8309fadc","line":86,"updated":"2018-09-18 21:54:49.000000000","message":"This needs to be renamed now.","commit_id":"17e01b85a4c66660c85edfd996cc9ad2b9f92dd8"}],"api-guide/source/polling_changes-before_parameter.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Efficient polling with the Changes-Before parameter"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The REST API allows you to poll for the status of certain operations by"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_84fc7272","line":2,"updated":"2018-09-07 18:48:56.000000000","message":"Let\u0027s cleanup the formatting in this like I\u0027ve done here:\n\nhttps://review.openstack.org/#/c/600150/","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Efficient polling with the Changes-Before parameter"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The REST API allows you to poll for the status of certain operations by"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_bc73b34d","line":2,"in_reply_to":"3f79a3b5_84fc7272","updated":"2018-09-09 11:03:22.000000000","message":"Have referenced the review and updated on the next patch.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Efficient polling with the Changes-Before parameter"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The REST API allows you to poll for the status of certain operations by"},{"line_number":6,"context_line":"performing a **GET** on various elements. Rather than re-downloading and"},{"line_number":7,"context_line":"re-parsing the full status at each polling interval, your REST client"},{"line_number":8,"context_line":"may use the *``changes-before``* parameter to check for changes before a"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_c4f02a6a","line":5,"updated":"2018-09-07 18:48:56.000000000","message":"This should note somewhere that this parameter is only available starting with the 2.66 microversion and which APIs it applies to.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Efficient polling with the Changes-Before parameter"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The REST API allows you to poll for the status of certain operations by"},{"line_number":6,"context_line":"performing a **GET** on various elements. Rather than re-downloading and"},{"line_number":7,"context_line":"re-parsing the full status at each polling interval, your REST client"},{"line_number":8,"context_line":"may use the *``changes-before``* parameter to check for changes before a"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_fca28b99","line":5,"in_reply_to":"3f79a3b5_c4f02a6a","updated":"2018-09-09 11:03:22.000000000","message":"LGTM.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":21,"context_line":"UTC."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"To allow clients to keep track of changes, the changes-before filter"},{"line_number":24,"context_line":"displays items that have been *recently* deleted. Both images and"},{"line_number":25,"context_line":"servers contain a ``DELETED`` status that indicates that the resource"},{"line_number":26,"context_line":"has been removed. Implementations are not required to keep track of"},{"line_number":27,"context_line":"deleted resources indefinitely, so sending a changes before time in the"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_24d23efe","line":24,"range":{"start_line":24,"start_character":55,"end_line":24,"end_character":61},"updated":"2018-09-07 18:48:56.000000000","message":"You\u0027ve copied the other doc but this isn\u0027t true for images.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":21,"context_line":"UTC."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"To allow clients to keep track of changes, the changes-before filter"},{"line_number":24,"context_line":"displays items that have been *recently* deleted. Both images and"},{"line_number":25,"context_line":"servers contain a ``DELETED`` status that indicates that the resource"},{"line_number":26,"context_line":"has been removed. Implementations are not required to keep track of"},{"line_number":27,"context_line":"deleted resources indefinitely, so sending a changes before time in the"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_bca89377","line":24,"range":{"start_line":24,"start_character":55,"end_line":24,"end_character":61},"in_reply_to":"3f79a3b5_24d23efe","updated":"2018-09-09 11:03:22.000000000","message":"Re-edit here.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"}],"api-guide/source/polling_changes-since_and_changes-before_parameters.rst":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"641f39c896def2f466afb08609274024e9fc7f18","unresolved":false,"context_lines":[{"line_number":26,"context_line":"  time are returned in the response. For example, performing a"},{"line_number":27,"context_line":"  **GET** against::"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"  https://api.servers.openstack.org/v2.1/servers?changes-since\u003d2015-01-24T17:08Z"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"  would list all servers that have changed since Mon, 24 Jan 2015 17:08:00"},{"line_number":32,"context_line":"  UTC."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* If nothing has changed earlier than or equal to the ``changes-before``"},{"line_number":35,"context_line":"  time, an empty list is returned. If data has changed, only the items"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3f79a3b5_660c8539","line":32,"range":{"start_line":29,"start_character":2,"end_line":32,"end_character":6},"updated":"2018-09-11 09:03:46.000000000","message":"these should be indented more","commit_id":"8fe076ceaa9cb1eb5581f3127eed2de8e04ce09b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"21803ef660decc2c4c84d108611bde215a2f645c","unresolved":false,"context_lines":[{"line_number":26,"context_line":"  time are returned in the response. For example, performing a"},{"line_number":27,"context_line":"  **GET** against::"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"  https://api.servers.openstack.org/v2.1/servers?changes-since\u003d2015-01-24T17:08Z"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"  would list all servers that have changed since Mon, 24 Jan 2015 17:08:00"},{"line_number":32,"context_line":"  UTC."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* If nothing has changed earlier than or equal to the ``changes-before``"},{"line_number":35,"context_line":"  time, an empty list is returned. If data has changed, only the items"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3f79a3b5_866c41d1","line":32,"range":{"start_line":29,"start_character":2,"end_line":32,"end_character":6},"in_reply_to":"3f79a3b5_660c8539","updated":"2018-09-11 09:10:12.000000000","message":"Ok, will indent it into four spaces, thank you.","commit_id":"8fe076ceaa9cb1eb5581f3127eed2de8e04ce09b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Efficient polling with the changes-since and changes-before parameters"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Add the ``changes-before`` parameter to the servers, os-instance-action"},{"line_number":6,"context_line":"and os-migrations APIs, this parameter is only available starting with"},{"line_number":7,"context_line":"the 2.66 microversion."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The REST API allows you to poll for the status of certain operations by"},{"line_number":10,"context_line":"performing a **GET** on various elements. Rather than re-downloading and"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_85cfde55","line":7,"range":{"start_line":5,"start_character":0,"end_line":7,"end_character":22},"updated":"2018-09-17 19:18:49.000000000","message":"This is a bit weird here at the top of the document. I\u0027d move it to the bottom where you\u0027re mentioning the 2.21 microversion for reading instance actions for a deleted server.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Efficient polling with the changes-since and changes-before parameters"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Add the ``changes-before`` parameter to the servers, os-instance-action"},{"line_number":6,"context_line":"and os-migrations APIs, this parameter is only available starting with"},{"line_number":7,"context_line":"the 2.66 microversion."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The REST API allows you to poll for the status of certain operations by"},{"line_number":10,"context_line":"performing a **GET** on various elements. Rather than re-downloading and"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_96194fd2","line":7,"range":{"start_line":5,"start_character":0,"end_line":7,"end_character":22},"in_reply_to":"3f79a3b5_85cfde55","updated":"2018-09-18 13:30:19.000000000","message":"Remove it and add the items you mentioned, which is clearer than this.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f78cdc12ee4a059b24adffbf4a9f370de1070378","unresolved":false,"context_lines":[{"line_number":10,"context_line":"performing a **GET** on various elements. Rather than re-downloading and"},{"line_number":11,"context_line":"re-parsing the full status at each polling interval, your REST client may"},{"line_number":12,"context_line":"use the ``changes-since`` and ``changes-before`` parameters to check"},{"line_number":13,"context_line":"for changes with a specify request time."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"The ``changes-since`` time or ``changes-before`` time is specified as"},{"line_number":16,"context_line":"an `ISO 8601 \u003chttps://en.wikipedia.org/wiki/ISO_8601\u003e`__ dateTime"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_0be8bf13","line":13,"range":{"start_line":13,"start_character":19,"end_line":13,"end_character":26},"updated":"2018-09-17 20:05:39.000000000","message":"specified","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":10,"context_line":"performing a **GET** on various elements. Rather than re-downloading and"},{"line_number":11,"context_line":"re-parsing the full status at each polling interval, your REST client may"},{"line_number":12,"context_line":"use the ``changes-since`` and ``changes-before`` parameters to check"},{"line_number":13,"context_line":"for changes with a specify request time."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"The ``changes-since`` time or ``changes-before`` time is specified as"},{"line_number":16,"context_line":"an `ISO 8601 \u003chttps://en.wikipedia.org/wiki/ISO_8601\u003e`__ dateTime"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_36787bf6","line":13,"range":{"start_line":13,"start_character":19,"end_line":13,"end_character":26},"in_reply_to":"3f79a3b5_0be8bf13","updated":"2018-09-18 13:30:19.000000000","message":"Done","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f78cdc12ee4a059b24adffbf4a9f370de1070378","unresolved":false,"context_lines":[{"line_number":41,"context_line":"  would list all servers that have changed earlier than or equal to"},{"line_number":42,"context_line":"  Mon, 24 Jan 2015 17:08:00 UTC."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"* If nothing has changed later than or equal to ``changes-since``, and"},{"line_number":45,"context_line":"  earlier than or equal to ``changes-before``, an empty list is returned."},{"line_number":46,"context_line":"  If data has changed, only the items changed between ``changes-since``"},{"line_number":47,"context_line":"  time and ``changes-before`` time are returned in the response."}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_ebcb03a1","line":44,"range":{"start_line":44,"start_character":67,"end_line":44,"end_character":70},"updated":"2018-09-17 20:05:39.000000000","message":"s/and/or/","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":41,"context_line":"  would list all servers that have changed earlier than or equal to"},{"line_number":42,"context_line":"  Mon, 24 Jan 2015 17:08:00 UTC."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"* If nothing has changed later than or equal to ``changes-since``, and"},{"line_number":45,"context_line":"  earlier than or equal to ``changes-before``, an empty list is returned."},{"line_number":46,"context_line":"  If data has changed, only the items changed between ``changes-since``"},{"line_number":47,"context_line":"  time and ``changes-before`` time are returned in the response."}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_7671130d","line":44,"range":{"start_line":44,"start_character":67,"end_line":44,"end_character":70},"in_reply_to":"3f79a3b5_ebcb03a1","updated":"2018-09-18 13:30:19.000000000","message":"Done","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f78cdc12ee4a059b24adffbf4a9f370de1070378","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    https://api.servers.openstack.org/v2.1/servers?changes-since\u003d2015-01-24T17:08Z\u0026changes-before\u003d2015-01-25T17:08Z"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"  would list all servers that have changed later than or equal to Mon,"},{"line_number":53,"context_line":"  24 Jan 2015 17:08:00 UTC, earlier than or equal to Mon, 25 Jan 2015"},{"line_number":54,"context_line":"  17:08:00 UTC."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"To allow clients to keep track of changes, the changes-since filter"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_0b367fb5","line":53,"range":{"start_line":53,"start_character":28,"end_line":53,"end_character":35},"updated":"2018-09-17 20:05:39.000000000","message":"s/earlier/and earlier/","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    https://api.servers.openstack.org/v2.1/servers?changes-since\u003d2015-01-24T17:08Z\u0026changes-before\u003d2015-01-25T17:08Z"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"  would list all servers that have changed later than or equal to Mon,"},{"line_number":53,"context_line":"  24 Jan 2015 17:08:00 UTC, earlier than or equal to Mon, 25 Jan 2015"},{"line_number":54,"context_line":"  17:08:00 UTC."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"To allow clients to keep track of changes, the changes-since filter"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_966e2f2a","line":53,"range":{"start_line":53,"start_character":28,"end_line":53,"end_character":35},"in_reply_to":"3f79a3b5_0b367fb5","updated":"2018-09-18 13:30:19.000000000","message":"Done","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":53,"context_line":"  24 Jan 2015 17:08:00 UTC, earlier than or equal to Mon, 25 Jan 2015"},{"line_number":54,"context_line":"  17:08:00 UTC."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"To allow clients to keep track of changes, the changes-since filter"},{"line_number":57,"context_line":"or changes-before filter displays items that have been *recently* deleted."},{"line_number":58,"context_line":"Servers contains a ``DELETED`` status that indicates that the resource"},{"line_number":59,"context_line":"has been removed."}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_85a11e98","line":56,"range":{"start_line":56,"start_character":47,"end_line":56,"end_character":60},"updated":"2018-09-17 19:18:49.000000000","message":"Enclose in double back ticks: ``changes-since``","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":53,"context_line":"  24 Jan 2015 17:08:00 UTC, earlier than or equal to Mon, 25 Jan 2015"},{"line_number":54,"context_line":"  17:08:00 UTC."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"To allow clients to keep track of changes, the changes-since filter"},{"line_number":57,"context_line":"or changes-before filter displays items that have been *recently* deleted."},{"line_number":58,"context_line":"Servers contains a ``DELETED`` status that indicates that the resource"},{"line_number":59,"context_line":"has been removed."}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_d6510764","line":56,"range":{"start_line":56,"start_character":47,"end_line":56,"end_character":60},"in_reply_to":"3f79a3b5_85a11e98","updated":"2018-09-18 13:30:19.000000000","message":"Done","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":54,"context_line":"  17:08:00 UTC."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"To allow clients to keep track of changes, the changes-since filter"},{"line_number":57,"context_line":"or changes-before filter displays items that have been *recently* deleted."},{"line_number":58,"context_line":"Servers contains a ``DELETED`` status that indicates that the resource"},{"line_number":59,"context_line":"has been removed."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_45a786a9","line":57,"range":{"start_line":57,"start_character":3,"end_line":57,"end_character":17},"updated":"2018-09-17 19:18:49.000000000","message":"same","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":54,"context_line":"  17:08:00 UTC."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"To allow clients to keep track of changes, the changes-since filter"},{"line_number":57,"context_line":"or changes-before filter displays items that have been *recently* deleted."},{"line_number":58,"context_line":"Servers contains a ``DELETED`` status that indicates that the resource"},{"line_number":59,"context_line":"has been removed."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_764a73ad","line":57,"range":{"start_line":57,"start_character":3,"end_line":57,"end_character":17},"in_reply_to":"3f79a3b5_45a786a9","updated":"2018-09-18 13:30:19.000000000","message":"Done","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":57,"context_line":"or changes-before filter displays items that have been *recently* deleted."},{"line_number":58,"context_line":"Servers contains a ``DELETED`` status that indicates that the resource"},{"line_number":59,"context_line":"has been removed."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"The ``changes-since`` filter or the ``changes-before`` filter does not"},{"line_number":62,"context_line":"change any read-deleted behavior in the os-instance-actions or"},{"line_number":63,"context_line":"os-migrations APIs. The os-instance-actions API with the 2.21 microversion"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_a53a1a31","line":60,"updated":"2018-09-17 19:18:49.000000000","message":"I would probably make a new subsection here which talks about microversion changes, e.g.:\n\nVersion history\n---------------\n\n* The 2.21 microversion allows reading instance actions for a\n  deleted server resource.\n* The 2.58 microversion allows filtering on ``changes-since``\n  when listing instance actions for a server.\n* The 2.59 microversion allows filtering on ``changes-since``\n  when listing migration records.\n* The 2.66 microversion adds the ``changes-before`` filter\n  when listing servers, instance actions and migrations.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f78cdc12ee4a059b24adffbf4a9f370de1070378","unresolved":false,"context_lines":[{"line_number":57,"context_line":"or changes-before filter displays items that have been *recently* deleted."},{"line_number":58,"context_line":"Servers contains a ``DELETED`` status that indicates that the resource"},{"line_number":59,"context_line":"has been removed."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"The ``changes-since`` filter or the ``changes-before`` filter does not"},{"line_number":62,"context_line":"change any read-deleted behavior in the os-instance-actions or"},{"line_number":63,"context_line":"os-migrations APIs. The os-instance-actions API with the 2.21 microversion"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_eb40e308","line":60,"in_reply_to":"3f79a3b5_a53a1a31","updated":"2018-09-17 20:05:39.000000000","message":"++ to what mriedem mentions.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":57,"context_line":"or changes-before filter displays items that have been *recently* deleted."},{"line_number":58,"context_line":"Servers contains a ``DELETED`` status that indicates that the resource"},{"line_number":59,"context_line":"has been removed."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"The ``changes-since`` filter or the ``changes-before`` filter does not"},{"line_number":62,"context_line":"change any read-deleted behavior in the os-instance-actions or"},{"line_number":63,"context_line":"os-migrations APIs. The os-instance-actions API with the 2.21 microversion"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_b6d9ebf4","line":60,"in_reply_to":"3f79a3b5_a53a1a31","updated":"2018-09-18 13:30:19.000000000","message":"Thank you, this description is clearer than described before the beginning","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":57,"context_line":"or changes-before filter displays items that have been *recently* deleted."},{"line_number":58,"context_line":"Servers contains a ``DELETED`` status that indicates that the resource"},{"line_number":59,"context_line":"has been removed."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"The ``changes-since`` filter or the ``changes-before`` filter does not"},{"line_number":62,"context_line":"change any read-deleted behavior in the os-instance-actions or"},{"line_number":63,"context_line":"os-migrations APIs. The os-instance-actions API with the 2.21 microversion"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_36ef1b88","line":60,"in_reply_to":"3f79a3b5_eb40e308","updated":"2018-09-18 13:30:19.000000000","message":"Yes, add it.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"}],"api-guide/source/polling_changes-since_parameter.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Efficient polling with the changes-since parameter"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_6596424c","side":"PARENT","line":1,"updated":"2018-09-17 19:18:49.000000000","message":"If we\u0027re going to remove this, we need a redirect for old links:\n\nhttps://github.com/openstack/nova/blob/master/doc/source/_extra/.htaccess","commit_id":"142e394a38caebc75f5c20df65518b5d58251dcb"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Efficient polling with the changes-since parameter"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_8f67eab8","side":"PARENT","line":1,"in_reply_to":"3f79a3b5_6596424c","updated":"2018-09-18 13:30:19.000000000","message":"Thank you, as Jaypips said, rename this to polling_changes.rst.","commit_id":"142e394a38caebc75f5c20df65518b5d58251dcb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":27,"context_line":"To allow clients to keep track of changes, the ``changes-since`` filter"},{"line_number":28,"context_line":"displays items that have been *recently* deleted. Both images and"},{"line_number":29,"context_line":"servers contain a ``DELETED`` status that indicates that the resource"},{"line_number":30,"context_line":"has been removed. Implementations are not required to keep track of"},{"line_number":31,"context_line":"deleted resources indefinitely, so sending a ``changes-since`` time in the"},{"line_number":32,"context_line":"distant past may miss deletions."}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_05b74eda","side":"PARENT","line":32,"range":{"start_line":30,"start_character":18,"end_line":32,"end_character":32},"updated":"2018-09-17 19:18:49.000000000","message":"You dropped this but this is an important piece of information - it means don\u0027t rely on being able to always read deleted resources using the changes-since filter because the cloud can archive/purge those deleted records at any time.","commit_id":"142e394a38caebc75f5c20df65518b5d58251dcb"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":27,"context_line":"To allow clients to keep track of changes, the ``changes-since`` filter"},{"line_number":28,"context_line":"displays items that have been *recently* deleted. Both images and"},{"line_number":29,"context_line":"servers contain a ``DELETED`` status that indicates that the resource"},{"line_number":30,"context_line":"has been removed. Implementations are not required to keep track of"},{"line_number":31,"context_line":"deleted resources indefinitely, so sending a ``changes-since`` time in the"},{"line_number":32,"context_line":"distant past may miss deletions."}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_ec1c7667","side":"PARENT","line":32,"range":{"start_line":30,"start_character":18,"end_line":32,"end_character":32},"in_reply_to":"3f79a3b5_05b74eda","updated":"2018-09-18 13:30:19.000000000","message":"Adding this and changing it in the \"polling_changes-since_and_changes-before_parameters.rst\".","commit_id":"142e394a38caebc75f5c20df65518b5d58251dcb"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f78cdc12ee4a059b24adffbf4a9f370de1070378","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"3f79a3b5_8badafeb","updated":"2018-09-17 20:05:39.000000000","message":"I would have much preferred to git mv this file instead of deleting it and adding a new file. You can call the new filename just polling_changes.rst","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"3f79a3b5_0f543ac5","in_reply_to":"3f79a3b5_8badafeb","updated":"2018-09-18 13:30:19.000000000","message":"Ok, this looks good to me, thank you.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9b995a602ef1ae7e2a1742ee05443d60c53d471e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"3f79a3b5_fd0bb727","in_reply_to":"3f79a3b5_8badafeb","updated":"2018-09-18 13:09:43.000000000","message":"Yeah that would be better to preserve the history.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"3f79a3b5_cf7ba226","in_reply_to":"3f79a3b5_fd0bb727","updated":"2018-09-18 13:30:19.000000000","message":"Yeah.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b18ce794a1d8f3215b18e32cac66a33d616da79f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Efficient polling with the changes-since and changes-before parameters"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The REST API allows you to poll for the status of certain operations by"}],"source_content_type":"text/x-rst","patch_set":27,"id":"3f79a3b5_32caa019","line":2,"range":{"start_line":2,"start_character":18,"end_line":2,"end_character":70},"updated":"2018-09-19 13:46:08.000000000","message":"nit: we should consider just removing this part of the doc title otherwise it gets to be long in the side navigation bar.\n\nhttp://logs.openstack.org/76/599276/27/check/build-openstack-api-guide/1d0a95c/html/","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"02379145d5e5c63123b79c0011fc5ab55a19d1fe","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Efficient polling with the changes-since and changes-before parameters"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The REST API allows you to poll for the status of certain operations by"}],"source_content_type":"text/x-rst","patch_set":27,"id":"3f79a3b5_b5ca1a6b","line":2,"range":{"start_line":2,"start_character":18,"end_line":2,"end_character":70},"in_reply_to":"3f79a3b5_32caa019","updated":"2018-09-19 13:55:58.000000000","message":"Done","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b18ce794a1d8f3215b18e32cac66a33d616da79f","unresolved":false,"context_lines":[{"line_number":5,"context_line":"The REST API allows you to poll for the status of certain operations by"},{"line_number":6,"context_line":"performing a **GET** on various elements. Rather than re-downloading and"},{"line_number":7,"context_line":"re-parsing the full status at each polling interval, your REST client may"},{"line_number":8,"context_line":"use the ``changes-since`` and ``changes-before`` parameters to check"},{"line_number":9,"context_line":"for changes with a specified request time."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The ``changes-since`` time or ``changes-before`` time is specified as"}],"source_content_type":"text/x-rst","patch_set":27,"id":"3f79a3b5_b2feb035","line":8,"range":{"start_line":8,"start_character":26,"end_line":8,"end_character":29},"updated":"2018-09-19 13:46:08.000000000","message":"and/or","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"02379145d5e5c63123b79c0011fc5ab55a19d1fe","unresolved":false,"context_lines":[{"line_number":5,"context_line":"The REST API allows you to poll for the status of certain operations by"},{"line_number":6,"context_line":"performing a **GET** on various elements. Rather than re-downloading and"},{"line_number":7,"context_line":"re-parsing the full status at each polling interval, your REST client may"},{"line_number":8,"context_line":"use the ``changes-since`` and ``changes-before`` parameters to check"},{"line_number":9,"context_line":"for changes with a specified request time."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The ``changes-since`` time or ``changes-before`` time is specified as"}],"source_content_type":"text/x-rst","patch_set":27,"id":"3f79a3b5_15a18ea9","line":8,"range":{"start_line":8,"start_character":26,"end_line":8,"end_character":29},"in_reply_to":"3f79a3b5_b2feb035","updated":"2018-09-19 13:55:58.000000000","message":"Done","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b18ce794a1d8f3215b18e32cac66a33d616da79f","unresolved":false,"context_lines":[{"line_number":6,"context_line":"performing a **GET** on various elements. Rather than re-downloading and"},{"line_number":7,"context_line":"re-parsing the full status at each polling interval, your REST client may"},{"line_number":8,"context_line":"use the ``changes-since`` and ``changes-before`` parameters to check"},{"line_number":9,"context_line":"for changes with a specified request time."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The ``changes-since`` time or ``changes-before`` time is specified as"},{"line_number":12,"context_line":"an `ISO 8601 \u003chttps://en.wikipedia.org/wiki/ISO_8601\u003e`__ dateTime"}],"source_content_type":"text/x-rst","patch_set":27,"id":"3f79a3b5_d2e56ca5","line":9,"range":{"start_line":9,"start_character":12,"end_line":9,"end_character":42},"updated":"2018-09-19 13:46:08.000000000","message":"within a specified time","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"02379145d5e5c63123b79c0011fc5ab55a19d1fe","unresolved":false,"context_lines":[{"line_number":6,"context_line":"performing a **GET** on various elements. Rather than re-downloading and"},{"line_number":7,"context_line":"re-parsing the full status at each polling interval, your REST client may"},{"line_number":8,"context_line":"use the ``changes-since`` and ``changes-before`` parameters to check"},{"line_number":9,"context_line":"for changes with a specified request time."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The ``changes-since`` time or ``changes-before`` time is specified as"},{"line_number":12,"context_line":"an `ISO 8601 \u003chttps://en.wikipedia.org/wiki/ISO_8601\u003e`__ dateTime"}],"source_content_type":"text/x-rst","patch_set":27,"id":"3f79a3b5_35a4cab8","line":9,"range":{"start_line":9,"start_character":12,"end_line":9,"end_character":42},"in_reply_to":"3f79a3b5_d2e56ca5","updated":"2018-09-19 13:55:58.000000000","message":"Done","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b18ce794a1d8f3215b18e32cac66a33d616da79f","unresolved":false,"context_lines":[{"line_number":49,"context_line":"  24 Jan 2015 17:08:00 UTC, and earlier than or equal to Mon, 25 Jan 2015"},{"line_number":50,"context_line":"  17:08:00 UTC."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"List the microversion history changes about servers, instance actions and"},{"line_number":53,"context_line":"migrations:"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* The 2.21 microversion allows reading instance actions for a deleted server"}],"source_content_type":"text/x-rst","patch_set":27,"id":"3f79a3b5_3234e0fa","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":4},"updated":"2018-09-19 13:46:08.000000000","message":"This reads oddly, we should re-word this somehow. Maybe we should just say, \"Microversion change history for servers, instance actions and migrations regarding ``changes-since`` and ``changes-before``:","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"02379145d5e5c63123b79c0011fc5ab55a19d1fe","unresolved":false,"context_lines":[{"line_number":49,"context_line":"  24 Jan 2015 17:08:00 UTC, and earlier than or equal to Mon, 25 Jan 2015"},{"line_number":50,"context_line":"  17:08:00 UTC."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"List the microversion history changes about servers, instance actions and"},{"line_number":53,"context_line":"migrations:"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* The 2.21 microversion allows reading instance actions for a deleted server"}],"source_content_type":"text/x-rst","patch_set":27,"id":"3f79a3b5_d5ad5684","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":4},"in_reply_to":"3f79a3b5_3234e0fa","updated":"2018-09-19 13:55:58.000000000","message":"Done","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b18ce794a1d8f3215b18e32cac66a33d616da79f","unresolved":false,"context_lines":[{"line_number":52,"context_line":"List the microversion history changes about servers, instance actions and"},{"line_number":53,"context_line":"migrations:"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* The 2.21 microversion allows reading instance actions for a deleted server"},{"line_number":56,"context_line":"  resource."},{"line_number":57,"context_line":"* The 2.58 microversion allows filtering on ``changes-since`` when listing"},{"line_number":58,"context_line":"  instance actions for a server."}],"source_content_type":"text/x-rst","patch_set":27,"id":"3f79a3b5_722578be","line":55,"range":{"start_line":55,"start_character":6,"end_line":55,"end_character":23},"updated":"2018-09-19 13:46:08.000000000","message":"We could link to the related version history doc for each of these for more details (if there are more details), like linking to https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id19 for 2.21.","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"02379145d5e5c63123b79c0011fc5ab55a19d1fe","unresolved":false,"context_lines":[{"line_number":52,"context_line":"List the microversion history changes about servers, instance actions and"},{"line_number":53,"context_line":"migrations:"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* The 2.21 microversion allows reading instance actions for a deleted server"},{"line_number":56,"context_line":"  resource."},{"line_number":57,"context_line":"* The 2.58 microversion allows filtering on ``changes-since`` when listing"},{"line_number":58,"context_line":"  instance actions for a server."}],"source_content_type":"text/x-rst","patch_set":27,"id":"3f79a3b5_f5b092de","line":55,"range":{"start_line":55,"start_character":6,"end_line":55,"end_character":23},"in_reply_to":"3f79a3b5_722578be","updated":"2018-09-19 13:55:58.000000000","message":"Done","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b18ce794a1d8f3215b18e32cac66a33d616da79f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"* The 2.66 microversion adds the ``changes-before`` filter when listing"},{"line_number":62,"context_line":"  servers, instance actions and migrations."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"In summary, the ``changes-since`` filter or the ``changes-before`` filter"},{"line_number":65,"context_line":"does not change any read-deleted behavior in the os-instance-actions or"},{"line_number":66,"context_line":"os-migrations APIs. The os-instance-actions API with the 2.21 microversion"},{"line_number":67,"context_line":"allows retrieving instance actions for a deleted server resource."}],"source_content_type":"text/x-rst","patch_set":27,"id":"3f79a3b5_b208f02c","line":64,"range":{"start_line":64,"start_character":0,"end_line":64,"end_character":11},"updated":"2018-09-19 13:46:08.000000000","message":"We can remove this.","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"02379145d5e5c63123b79c0011fc5ab55a19d1fe","unresolved":false,"context_lines":[{"line_number":61,"context_line":"* The 2.66 microversion adds the ``changes-before`` filter when listing"},{"line_number":62,"context_line":"  servers, instance actions and migrations."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"In summary, the ``changes-since`` filter or the ``changes-before`` filter"},{"line_number":65,"context_line":"does not change any read-deleted behavior in the os-instance-actions or"},{"line_number":66,"context_line":"os-migrations APIs. The os-instance-actions API with the 2.21 microversion"},{"line_number":67,"context_line":"allows retrieving instance actions for a deleted server resource."}],"source_content_type":"text/x-rst","patch_set":27,"id":"3f79a3b5_f50c1294","line":64,"range":{"start_line":64,"start_character":0,"end_line":64,"end_character":11},"in_reply_to":"3f79a3b5_b208f02c","updated":"2018-09-19 13:55:58.000000000","message":"Done","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b18ce794a1d8f3215b18e32cac66a33d616da79f","unresolved":false,"context_lines":[{"line_number":62,"context_line":"  servers, instance actions and migrations."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"In summary, the ``changes-since`` filter or the ``changes-before`` filter"},{"line_number":65,"context_line":"does not change any read-deleted behavior in the os-instance-actions or"},{"line_number":66,"context_line":"os-migrations APIs. The os-instance-actions API with the 2.21 microversion"},{"line_number":67,"context_line":"allows retrieving instance actions for a deleted server resource."},{"line_number":68,"context_line":"The os-migrations API takes an optional ``instance_uuid`` filter parameter"}],"source_content_type":"text/x-rst","patch_set":27,"id":"3f79a3b5_d20fac36","line":65,"range":{"start_line":65,"start_character":0,"end_line":65,"end_character":4},"updated":"2018-09-19 13:46:08.000000000","message":"do","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"02379145d5e5c63123b79c0011fc5ab55a19d1fe","unresolved":false,"context_lines":[{"line_number":62,"context_line":"  servers, instance actions and migrations."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"In summary, the ``changes-since`` filter or the ``changes-before`` filter"},{"line_number":65,"context_line":"does not change any read-deleted behavior in the os-instance-actions or"},{"line_number":66,"context_line":"os-migrations APIs. The os-instance-actions API with the 2.21 microversion"},{"line_number":67,"context_line":"allows retrieving instance actions for a deleted server resource."},{"line_number":68,"context_line":"The os-migrations API takes an optional ``instance_uuid`` filter parameter"}],"source_content_type":"text/x-rst","patch_set":27,"id":"3f79a3b5_9527de12","line":65,"range":{"start_line":65,"start_character":0,"end_line":65,"end_character":4},"in_reply_to":"3f79a3b5_d20fac36","updated":"2018-09-19 13:55:58.000000000","message":"Done","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b18ce794a1d8f3215b18e32cac66a33d616da79f","unresolved":false,"context_lines":[{"line_number":69,"context_line":"but does not support returning deleted migration records."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"To allow clients to keep track of changes, the ``changes-since`` filter"},{"line_number":72,"context_line":"or ``changes-before`` filter displays items that have been *recently*"},{"line_number":73,"context_line":"deleted. Servers contains a ``DELETED`` status that indicates that the"},{"line_number":74,"context_line":"resource has been removed. Implementations are not required to keep track"},{"line_number":75,"context_line":"of deleted resources indefinitely, so sending a ``changes-since`` time or"}],"source_content_type":"text/x-rst","patch_set":27,"id":"3f79a3b5_d51d5662","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":2},"updated":"2018-09-19 13:46:08.000000000","message":"and","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"02379145d5e5c63123b79c0011fc5ab55a19d1fe","unresolved":false,"context_lines":[{"line_number":69,"context_line":"but does not support returning deleted migration records."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"To allow clients to keep track of changes, the ``changes-since`` filter"},{"line_number":72,"context_line":"or ``changes-before`` filter displays items that have been *recently*"},{"line_number":73,"context_line":"deleted. Servers contains a ``DELETED`` status that indicates that the"},{"line_number":74,"context_line":"resource has been removed. Implementations are not required to keep track"},{"line_number":75,"context_line":"of deleted resources indefinitely, so sending a ``changes-since`` time or"}],"source_content_type":"text/x-rst","patch_set":27,"id":"3f79a3b5_b5221a00","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":2},"in_reply_to":"3f79a3b5_d51d5662","updated":"2018-09-19 13:55:58.000000000","message":"Done","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b18ce794a1d8f3215b18e32cac66a33d616da79f","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"To allow clients to keep track of changes, the ``changes-since`` filter"},{"line_number":72,"context_line":"or ``changes-before`` filter displays items that have been *recently*"},{"line_number":73,"context_line":"deleted. Servers contains a ``DELETED`` status that indicates that the"},{"line_number":74,"context_line":"resource has been removed. Implementations are not required to keep track"},{"line_number":75,"context_line":"of deleted resources indefinitely, so sending a ``changes-since`` time or"},{"line_number":76,"context_line":"a ``changes-before`` time in the distant past may miss deletions."}],"source_content_type":"text/x-rst","patch_set":27,"id":"3f79a3b5_752c8292","line":73,"range":{"start_line":73,"start_character":24,"end_line":73,"end_character":25},"updated":"2018-09-19 13:46:08.000000000","message":"remove this","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"02379145d5e5c63123b79c0011fc5ab55a19d1fe","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"To allow clients to keep track of changes, the ``changes-since`` filter"},{"line_number":72,"context_line":"or ``changes-before`` filter displays items that have been *recently*"},{"line_number":73,"context_line":"deleted. Servers contains a ``DELETED`` status that indicates that the"},{"line_number":74,"context_line":"resource has been removed. Implementations are not required to keep track"},{"line_number":75,"context_line":"of deleted resources indefinitely, so sending a ``changes-since`` time or"},{"line_number":76,"context_line":"a ``changes-before`` time in the distant past may miss deletions."}],"source_content_type":"text/x-rst","patch_set":27,"id":"3f79a3b5_15798efa","line":73,"range":{"start_line":73,"start_character":24,"end_line":73,"end_character":25},"in_reply_to":"3f79a3b5_752c8292","updated":"2018-09-19 13:55:58.000000000","message":"Done","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"}],"api-guide/source/polling_changes.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"985fc544883e05c61c145e5b4e427e86b7d86eab","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Efficient polling with the changes-since and changes-before parameters"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The REST API allows you to poll for the status of certain operations by"}],"source_content_type":"text/x-rst","patch_set":25,"id":"3f79a3b5_129f7db3","line":2,"updated":"2018-09-18 13:56:36.000000000","message":"This is still not a rename. I\u0027ll pull this down and fix the file rename.","commit_id":"17e01b85a4c66660c85edfd996cc9ad2b9f92dd8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2566c7ca7ec53b34f621db29dcda7c46811de9ca","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Efficient polling with the changes-since and changes-before parameters"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The REST API allows you to poll for the status of certain operations by"}],"source_content_type":"text/x-rst","patch_set":25,"id":"3f79a3b5_a3275663","line":2,"in_reply_to":"3f79a3b5_129f7db3","updated":"2018-09-18 21:54:49.000000000","message":"We\u0027re also missing a redirect for this.","commit_id":"17e01b85a4c66660c85edfd996cc9ad2b9f92dd8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"38e6f485d544778f8dc233e36a94d802895f954e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Efficient polling with the changes-since and changes-before parameters"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":26,"id":"3f79a3b5_2edb2d7d","line":1,"updated":"2018-09-18 21:57:15.000000000","message":"This is still wrong, it\u0027s not renamed.","commit_id":"f669b5b65674136459c96feac4e3da58ea89b3d1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5c2d38cf1cd4f8396c8709a669ed1542d2ae7980","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Efficient polling with the changes-since and changes-before parameters"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":26,"id":"3f79a3b5_ce095995","line":1,"in_reply_to":"3f79a3b5_2edb2d7d","updated":"2018-09-18 22:10:48.000000000","message":"So apparently it\u0027s renamed until we change the content, at which point the old file is deleted and the new one has a new name. So we should probably just leave the old filename in place and modify it in this change, and then rename in a follow up.","commit_id":"f669b5b65674136459c96feac4e3da58ea89b3d1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cb9b940f1449c95ef727e57e2ae63950f2fe1336","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Efficient polling with the changes-since and changes-before parameters"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":26,"id":"3f79a3b5_cf1dd373","line":1,"in_reply_to":"3f79a3b5_54aab6d1","updated":"2018-09-19 02:24:47.000000000","message":"\u003e So apparently it\u0027s renamed until we change the content, at which point the old file is deleted and the new one has a new name.\n\nIt\u0027s OK, I didn\u0027t know this is how it worked either.","commit_id":"f669b5b65674136459c96feac4e3da58ea89b3d1"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"f6a148fbf0c17baca38f18b3ad6f8b977d6e661f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Efficient polling with the changes-since and changes-before parameters"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":26,"id":"3f79a3b5_54aab6d1","line":1,"in_reply_to":"3f79a3b5_ce095995","updated":"2018-09-19 00:06:15.000000000","message":"This is my fault, I should rename it at the beginning, I will pay attention next time.","commit_id":"f669b5b65674136459c96feac4e3da58ea89b3d1"}],"api-guide/source/server_concepts.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":225,"context_line":"       \"servers\": ["},{"line_number":226,"context_line":"           {"},{"line_number":227,"context_line":"               \"name\": \"t1\","},{"line_number":228,"context_line":"               \"updated_at\": \"2015-12-15T15:55:52Z\","},{"line_number":229,"context_line":"               ..."},{"line_number":230,"context_line":"           },"},{"line_number":231,"context_line":"           {"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_44dbbaeb","line":228,"range":{"start_line":228,"start_character":16,"end_line":228,"end_character":26},"updated":"2018-09-07 18:48:56.000000000","message":"\"updated\" is the correct response parameter name:\n\nhttps://github.com/openstack/nova/blob/3d31e6c95afe3dff01af037348c0c18e896970db/nova/api/openstack/compute/views/servers.py#L148","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":225,"context_line":"       \"servers\": ["},{"line_number":226,"context_line":"           {"},{"line_number":227,"context_line":"               \"name\": \"t1\","},{"line_number":228,"context_line":"               \"updated_at\": \"2015-12-15T15:55:52Z\","},{"line_number":229,"context_line":"               ..."},{"line_number":230,"context_line":"           },"},{"line_number":231,"context_line":"           {"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_dcea2f9e","line":228,"range":{"start_line":228,"start_character":16,"end_line":228,"end_character":26},"in_reply_to":"3f79a3b5_44dbbaeb","updated":"2018-09-09 11:03:22.000000000","message":"Done","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":197,"context_line":"       ]"},{"line_number":198,"context_line":"   }"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"There are also some speical query options:"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"- ``changes-since`` returns the servers updated after the given time."},{"line_number":203,"context_line":"  Please see: :doc:`polling_changes-since_and_changes-before_parameters`"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_25184ad1","line":200,"range":{"start_line":200,"start_character":20,"end_line":200,"end_character":27},"updated":"2018-09-17 19:18:49.000000000","message":"Might as well fix this spelling while you\u0027re in here. Should be \"special\".","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":197,"context_line":"       ]"},{"line_number":198,"context_line":"   }"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"There are also some speical query options:"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"- ``changes-since`` returns the servers updated after the given time."},{"line_number":203,"context_line":"  Please see: :doc:`polling_changes-since_and_changes-before_parameters`"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_0ccc52b9","line":200,"range":{"start_line":200,"start_character":20,"end_line":200,"end_character":27},"in_reply_to":"3f79a3b5_25184ad1","updated":"2018-09-18 13:30:19.000000000","message":"Done","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"}],"api-ref/source/images.inc":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":43,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"  - changes-since: changes-since"},{"line_number":46,"context_line":"  - changes-before: changes-before"},{"line_number":47,"context_line":"  - server: image_server_query"},{"line_number":48,"context_line":"  - name: image_name_query"},{"line_number":49,"context_line":"  - status: image_status_query"}],"source_content_type":"text/x-c++src","patch_set":6,"id":"3f79a3b5_84e6b2af","line":46,"updated":"2018-09-07 18:48:56.000000000","message":"We\u0027re not updating the deprecated proxy images API.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":43,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"  - changes-since: changes-since"},{"line_number":46,"context_line":"  - changes-before: changes-before"},{"line_number":47,"context_line":"  - server: image_server_query"},{"line_number":48,"context_line":"  - name: image_name_query"},{"line_number":49,"context_line":"  - status: image_status_query"}],"source_content_type":"text/x-c++src","patch_set":6,"id":"3f79a3b5_3c31e359","line":46,"in_reply_to":"3f79a3b5_84e6b2af","updated":"2018-09-09 11:03:22.000000000","message":"Done","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"}],"api-ref/source/parameters.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":430,"context_line":"  in: query"},{"line_number":431,"context_line":"  required: false"},{"line_number":432,"context_line":"  type: string"},{"line_number":433,"context_line":"changes-before:"},{"line_number":434,"context_line":"  description: |"},{"line_number":435,"context_line":"    Filters the response by a date and time when the image last changed status."},{"line_number":436,"context_line":"    Use this query parameter to check for changes before a previous request rather"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3f79a3b5_a4e96e7f","line":433,"updated":"2018-09-07 18:48:56.000000000","message":"I believe this goes away since we\u0027re not updating the deprecated proxy images API.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":430,"context_line":"  in: query"},{"line_number":431,"context_line":"  required: false"},{"line_number":432,"context_line":"  type: string"},{"line_number":433,"context_line":"changes-before:"},{"line_number":434,"context_line":"  description: |"},{"line_number":435,"context_line":"    Filters the response by a date and time when the image last changed status."},{"line_number":436,"context_line":"    Use this query parameter to check for changes before a previous request rather"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3f79a3b5_1c23c706","line":433,"in_reply_to":"3f79a3b5_a4e96e7f","updated":"2018-09-09 11:03:22.000000000","message":"Remove this because of deprecated proxy images.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":496,"context_line":"changes_before_migration:"},{"line_number":497,"context_line":"  description: |"},{"line_number":498,"context_line":"    Filters the response by a date and time stamp when the migration last"},{"line_number":499,"context_line":"    changed. Those changed before the specified date and time stamp are returned."},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"    The date and time stamp format is `ISO 8601 \u003chttps://en.wikipedia.org/wiki/ISO_8601\u003e`_:"},{"line_number":502,"context_line":"    ::"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3f79a3b5_e498c61b","line":499,"range":{"start_line":499,"start_character":13,"end_line":499,"end_character":81},"updated":"2018-09-07 18:48:56.000000000","message":"Probably good to include this in changes_before_instance_action and changes_before_server also.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":496,"context_line":"changes_before_migration:"},{"line_number":497,"context_line":"  description: |"},{"line_number":498,"context_line":"    Filters the response by a date and time stamp when the migration last"},{"line_number":499,"context_line":"    changed. Those changed before the specified date and time stamp are returned."},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"    The date and time stamp format is `ISO 8601 \u003chttps://en.wikipedia.org/wiki/ISO_8601\u003e`_:"},{"line_number":502,"context_line":"    ::"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3f79a3b5_dc46afa7","line":499,"range":{"start_line":499,"start_character":13,"end_line":499,"end_character":81},"in_reply_to":"3f79a3b5_e498c61b","updated":"2018-09-09 11:03:22.000000000","message":"Yeah, add this to the decription of changes_before_instance_action and changes_beofre_server.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":510,"context_line":"  required: false"},{"line_number":511,"context_line":"  type: string"},{"line_number":512,"context_line":"  min_version: 2.66"},{"line_number":513,"context_line":"changes_before_server:"},{"line_number":514,"context_line":"  description: |"},{"line_number":515,"context_line":"    Filters the response by a date and time stamp when the server last"},{"line_number":516,"context_line":"    changed status. To help keep track of changes this may also return"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3f79a3b5_c4beea63","line":513,"updated":"2018-09-07 18:48:56.000000000","message":"Need the min_version tag on this.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":510,"context_line":"  required: false"},{"line_number":511,"context_line":"  type: string"},{"line_number":512,"context_line":"  min_version: 2.66"},{"line_number":513,"context_line":"changes_before_server:"},{"line_number":514,"context_line":"  description: |"},{"line_number":515,"context_line":"    Filters the response by a date and time stamp when the server last"},{"line_number":516,"context_line":"    changed status. To help keep track of changes this may also return"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3f79a3b5_9cca7717","line":513,"in_reply_to":"3f79a3b5_c4beea63","updated":"2018-09-09 11:03:22.000000000","message":"Done","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"0dcb8a5b50c322c0c7f1ed24b38ddded64cc898e","unresolved":false,"context_lines":[{"line_number":453,"context_line":"  in: query"},{"line_number":454,"context_line":"  required: false"},{"line_number":455,"context_line":"  type: string"},{"line_number":456,"context_line":"  min_version: 2.66"},{"line_number":457,"context_line":"changes_before_instance_action:"},{"line_number":458,"context_line":"  description: |"},{"line_number":459,"context_line":"    Filters the response by a date and time stamp when the instance action last changed."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3f79a3b5_533490ac","line":456,"range":{"start_line":456,"start_character":0,"end_line":456,"end_character":19},"updated":"2018-09-12 07:56:07.000000000","message":"wrong version in here?","commit_id":"e1abaabbf18a935cb325cd7dae16c793dfeabcf4"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"fbd4883e58fd4c625db859c583a1b877211fdc48","unresolved":false,"context_lines":[{"line_number":453,"context_line":"  in: query"},{"line_number":454,"context_line":"  required: false"},{"line_number":455,"context_line":"  type: string"},{"line_number":456,"context_line":"  min_version: 2.66"},{"line_number":457,"context_line":"changes_before_instance_action:"},{"line_number":458,"context_line":"  description: |"},{"line_number":459,"context_line":"    Filters the response by a date and time stamp when the instance action last changed."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3f79a3b5_9e7a2fb8","line":456,"range":{"start_line":456,"start_character":0,"end_line":456,"end_character":19},"in_reply_to":"3f79a3b5_533490ac","updated":"2018-09-12 09:41:26.000000000","message":"Yes, thank you.","commit_id":"e1abaabbf18a935cb325cd7dae16c793dfeabcf4"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"0dcb8a5b50c322c0c7f1ed24b38ddded64cc898e","unresolved":false,"context_lines":[{"line_number":504,"context_line":"    If you omit the time zone, the UTC time zone is assumed."},{"line_number":505,"context_line":"  in: query"},{"line_number":506,"context_line":"  required: false"},{"line_number":507,"context_line":"  type: string"},{"line_number":508,"context_line":"changes_since_instance_action:"},{"line_number":509,"context_line":"  description: |"},{"line_number":510,"context_line":"    Filters the response by a date and time stamp when the instance action last"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3f79a3b5_f3bfdcf9","line":507,"updated":"2018-09-12 07:56:07.000000000","message":"min_version: 2.66","commit_id":"e1abaabbf18a935cb325cd7dae16c793dfeabcf4"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"fbd4883e58fd4c625db859c583a1b877211fdc48","unresolved":false,"context_lines":[{"line_number":504,"context_line":"    If you omit the time zone, the UTC time zone is assumed."},{"line_number":505,"context_line":"  in: query"},{"line_number":506,"context_line":"  required: false"},{"line_number":507,"context_line":"  type: string"},{"line_number":508,"context_line":"changes_since_instance_action:"},{"line_number":509,"context_line":"  description: |"},{"line_number":510,"context_line":"    Filters the response by a date and time stamp when the instance action last"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3f79a3b5_de59875b","line":507,"in_reply_to":"3f79a3b5_f3bfdcf9","updated":"2018-09-12 09:41:26.000000000","message":"Yeah.","commit_id":"e1abaabbf18a935cb325cd7dae16c793dfeabcf4"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f78cdc12ee4a059b24adffbf4a9f370de1070378","unresolved":false,"context_lines":[{"line_number":455,"context_line":"  type: string"},{"line_number":456,"context_line":"changes_before_instance_action:"},{"line_number":457,"context_line":"  description: |"},{"line_number":458,"context_line":"    Filters the response by a date and time stamp when the instance action last changed."},{"line_number":459,"context_line":"    Those changed before the specified date and time stamp are returned."},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    The date and time stamp format is `ISO 8601 \u003chttps://en.wikipedia.org/wiki/ISO_8601\u003e`_:"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f79a3b5_cba5e7b5","line":458,"range":{"start_line":458,"start_character":59,"end_line":458,"end_character":87},"updated":"2018-09-17 20:05:39.000000000","message":"instance actions don\u0027t change. There\u0027s no ability to update an instance action. So I\u0027m unsure what this is referring to. Maybe better to say \"Filters the response by a date and time when the instance actions were created\".","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"22800cfda47e32b89aa2d0560aae1b377667aee4","unresolved":false,"context_lines":[{"line_number":455,"context_line":"  type: string"},{"line_number":456,"context_line":"changes_before_instance_action:"},{"line_number":457,"context_line":"  description: |"},{"line_number":458,"context_line":"    Filters the response by a date and time stamp when the instance action last changed."},{"line_number":459,"context_line":"    Those changed before the specified date and time stamp are returned."},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    The date and time stamp format is `ISO 8601 \u003chttps://en.wikipedia.org/wiki/ISO_8601\u003e`_:"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f79a3b5_cf3962d8","line":458,"range":{"start_line":458,"start_character":59,"end_line":458,"end_character":87},"in_reply_to":"3f79a3b5_cba5e7b5","updated":"2018-09-18 13:18:37.000000000","message":"The instance action record itself is updated when the events tracked against that action record are updated. Yikun changed that as part of his work for 2.58.\n\nI75a827b759b59773c08ffc6b1e3e54d6189b5853","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":455,"context_line":"  type: string"},{"line_number":456,"context_line":"changes_before_instance_action:"},{"line_number":457,"context_line":"  description: |"},{"line_number":458,"context_line":"    Filters the response by a date and time stamp when the instance action last changed."},{"line_number":459,"context_line":"    Those changed before the specified date and time stamp are returned."},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    The date and time stamp format is `ISO 8601 \u003chttps://en.wikipedia.org/wiki/ISO_8601\u003e`_:"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f79a3b5_2faa5683","line":458,"range":{"start_line":458,"start_character":59,"end_line":458,"end_character":87},"in_reply_to":"3f79a3b5_cf3962d8","updated":"2018-09-18 13:30:19.000000000","message":"Yeah, cool.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f78cdc12ee4a059b24adffbf4a9f370de1070378","unresolved":false,"context_lines":[{"line_number":456,"context_line":"changes_before_instance_action:"},{"line_number":457,"context_line":"  description: |"},{"line_number":458,"context_line":"    Filters the response by a date and time stamp when the instance action last changed."},{"line_number":459,"context_line":"    Those changed before the specified date and time stamp are returned."},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    The date and time stamp format is `ISO 8601 \u003chttps://en.wikipedia.org/wiki/ISO_8601\u003e`_:"},{"line_number":462,"context_line":"    ::"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f79a3b5_cb22c754","line":459,"range":{"start_line":459,"start_character":4,"end_line":459,"end_character":16},"updated":"2018-09-17 20:05:39.000000000","message":"Those instances that changed before...","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":456,"context_line":"changes_before_instance_action:"},{"line_number":457,"context_line":"  description: |"},{"line_number":458,"context_line":"    Filters the response by a date and time stamp when the instance action last changed."},{"line_number":459,"context_line":"    Those changed before the specified date and time stamp are returned."},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    The date and time stamp format is `ISO 8601 \u003chttps://en.wikipedia.org/wiki/ISO_8601\u003e`_:"},{"line_number":462,"context_line":"    ::"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f79a3b5_25660a53","line":459,"range":{"start_line":459,"start_character":18,"end_line":459,"end_character":24},"updated":"2018-09-17 19:18:49.000000000","message":"before or equal to","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":456,"context_line":"changes_before_instance_action:"},{"line_number":457,"context_line":"  description: |"},{"line_number":458,"context_line":"    Filters the response by a date and time stamp when the instance action last changed."},{"line_number":459,"context_line":"    Those changed before the specified date and time stamp are returned."},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    The date and time stamp format is `ISO 8601 \u003chttps://en.wikipedia.org/wiki/ISO_8601\u003e`_:"},{"line_number":462,"context_line":"    ::"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f79a3b5_ec7eb619","line":459,"range":{"start_line":459,"start_character":18,"end_line":459,"end_character":24},"in_reply_to":"3f79a3b5_25660a53","updated":"2018-09-18 13:30:19.000000000","message":"Yeah, It is precise.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":456,"context_line":"changes_before_instance_action:"},{"line_number":457,"context_line":"  description: |"},{"line_number":458,"context_line":"    Filters the response by a date and time stamp when the instance action last changed."},{"line_number":459,"context_line":"    Those changed before the specified date and time stamp are returned."},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    The date and time stamp format is `ISO 8601 \u003chttps://en.wikipedia.org/wiki/ISO_8601\u003e`_:"},{"line_number":462,"context_line":"    ::"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f79a3b5_ac7c3e20","line":459,"range":{"start_line":459,"start_character":4,"end_line":459,"end_character":16},"in_reply_to":"3f79a3b5_cb22c754","updated":"2018-09-18 13:30:19.000000000","message":"Done","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f78cdc12ee4a059b24adffbf4a9f370de1070378","unresolved":false,"context_lines":[{"line_number":473,"context_line":"changes_before_migration:"},{"line_number":474,"context_line":"  description: |"},{"line_number":475,"context_line":"    Filters the response by a date and time stamp when the migration last"},{"line_number":476,"context_line":"    changed. Those changed before the specified date and time stamp are returned."},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"    The date and time stamp format is `ISO 8601 \u003chttps://en.wikipedia.org/wiki/ISO_8601\u003e`_:"},{"line_number":479,"context_line":"    ::"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f79a3b5_abe2ebff","line":476,"range":{"start_line":476,"start_character":13,"end_line":476,"end_character":26},"updated":"2018-09-17 20:05:39.000000000","message":"Those migrations that changed before","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":473,"context_line":"changes_before_migration:"},{"line_number":474,"context_line":"  description: |"},{"line_number":475,"context_line":"    Filters the response by a date and time stamp when the migration last"},{"line_number":476,"context_line":"    changed. Those changed before the specified date and time stamp are returned."},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"    The date and time stamp format is `ISO 8601 \u003chttps://en.wikipedia.org/wiki/ISO_8601\u003e`_:"},{"line_number":479,"context_line":"    ::"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f79a3b5_e55b3283","line":476,"range":{"start_line":476,"start_character":27,"end_line":476,"end_character":33},"updated":"2018-09-17 19:18:49.000000000","message":"before or equal to","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":473,"context_line":"changes_before_migration:"},{"line_number":474,"context_line":"  description: |"},{"line_number":475,"context_line":"    Filters the response by a date and time stamp when the migration last"},{"line_number":476,"context_line":"    changed. Those changed before the specified date and time stamp are returned."},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"    The date and time stamp format is `ISO 8601 \u003chttps://en.wikipedia.org/wiki/ISO_8601\u003e`_:"},{"line_number":479,"context_line":"    ::"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f79a3b5_2c8eee26","line":476,"range":{"start_line":476,"start_character":13,"end_line":476,"end_character":26},"in_reply_to":"3f79a3b5_abe2ebff","updated":"2018-09-18 13:30:19.000000000","message":"Done","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":473,"context_line":"changes_before_migration:"},{"line_number":474,"context_line":"  description: |"},{"line_number":475,"context_line":"    Filters the response by a date and time stamp when the migration last"},{"line_number":476,"context_line":"    changed. Those changed before the specified date and time stamp are returned."},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"    The date and time stamp format is `ISO 8601 \u003chttps://en.wikipedia.org/wiki/ISO_8601\u003e`_:"},{"line_number":479,"context_line":"    ::"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f79a3b5_4c932a50","line":476,"range":{"start_line":476,"start_character":27,"end_line":476,"end_character":33},"in_reply_to":"3f79a3b5_e55b3283","updated":"2018-09-18 13:30:19.000000000","message":"Done","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":490,"context_line":"changes_before_server:"},{"line_number":491,"context_line":"  description: |"},{"line_number":492,"context_line":"    Filters the response by a date and time stamp when the server last changed."},{"line_number":493,"context_line":"    Those changed before the specified date and time stamp are returned."},{"line_number":494,"context_line":"    To help keep track of changes this may also return recently deleted servers."},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"    The date and time stamp format is `ISO 8601 \u003chttps://en.wikipedia.org/wiki/ISO_8601\u003e`_:"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f79a3b5_a551ba64","line":493,"range":{"start_line":493,"start_character":18,"end_line":493,"end_character":24},"updated":"2018-09-17 19:18:49.000000000","message":"before or equal to","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":490,"context_line":"changes_before_server:"},{"line_number":491,"context_line":"  description: |"},{"line_number":492,"context_line":"    Filters the response by a date and time stamp when the server last changed."},{"line_number":493,"context_line":"    Those changed before the specified date and time stamp are returned."},{"line_number":494,"context_line":"    To help keep track of changes this may also return recently deleted servers."},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"    The date and time stamp format is `ISO 8601 \u003chttps://en.wikipedia.org/wiki/ISO_8601\u003e`_:"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f79a3b5_ecac7689","line":493,"range":{"start_line":493,"start_character":18,"end_line":493,"end_character":24},"in_reply_to":"3f79a3b5_a551ba64","updated":"2018-09-18 13:30:19.000000000","message":"Done","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"}],"api-ref/source/servers.inc":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":480,"context_line":"   :language: javascript"},{"line_number":481,"context_line":""},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"List Servers Detailed"},{"line_number":484,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":485,"context_line":""},{"line_number":486,"context_line":".. rest_method:: GET /servers/detail"}],"source_content_type":"text/x-c++src","patch_set":6,"id":"3f79a3b5_64ad962f","line":483,"updated":"2018-09-07 18:48:56.000000000","message":"You also need to update this one.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":480,"context_line":"   :language: javascript"},{"line_number":481,"context_line":""},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"List Servers Detailed"},{"line_number":484,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":485,"context_line":""},{"line_number":486,"context_line":".. rest_method:: GET /servers/detail"}],"source_content_type":"text/x-c++src","patch_set":6,"id":"3f79a3b5_9cf35773","line":483,"in_reply_to":"3f79a3b5_64ad962f","updated":"2018-09-09 11:03:22.000000000","message":"Done","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":485,"context_line":""},{"line_number":486,"context_line":".. rest_method:: GET /servers/detail"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"   - changes-before: changes_before_server"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"For each server, shows server details including configuration drive,"},{"line_number":491,"context_line":"extended status, and server usage information."}],"source_content_type":"text/x-c++src","patch_set":23,"id":"3f79a3b5_85027e3d","line":488,"updated":"2018-09-17 19:18:49.000000000","message":"This should go with the other request parameters below.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":485,"context_line":""},{"line_number":486,"context_line":".. rest_method:: GET /servers/detail"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"   - changes-before: changes_before_server"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"For each server, shows server details including configuration drive,"},{"line_number":491,"context_line":"extended status, and server usage information."}],"source_content_type":"text/x-c++src","patch_set":23,"id":"3f79a3b5_4c7d6ae5","line":488,"in_reply_to":"3f79a3b5_85027e3d","updated":"2018-09-18 13:30:19.000000000","message":"Yeah, move it to the parameters list below.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"}],"doc/api_samples/servers/v2.66/server-get-resp.json":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"34f36c74d27fe56724061b1dbb1e0d28bb23e1d3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"server\": ["},{"line_number":3,"context_line":"        {"},{"line_number":4,"context_line":"            \"OS-DCF:diskConfig\": \"AUTO\","},{"line_number":5,"context_line":"            \"OS-EXT-AZ:availability_zone\": \"nova\","}],"source_content_type":"application/json","patch_set":28,"id":"3f79a3b5_df12f064","line":2,"updated":"2018-10-31 21:49:00.000000000","message":"This is wrong, and likely not used, see bug 1800936.","commit_id":"28c1075b59031fa154b1e2222ab2485b2f78fc5f"}],"nova/api/openstack/api_version_request.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":159,"context_line":"    * 2.65 - Add support for abort live migrations in ``queued`` and"},{"line_number":160,"context_line":"             ``preparing`` status."},{"line_number":161,"context_line":"    * 2.66 - Add ``changes-before`` to support users to specify the"},{"line_number":162,"context_line":"             ``updated_at`` time to filter nova resources."},{"line_number":163,"context_line":"\"\"\""},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_e4668629","line":162,"range":{"start_line":162,"start_character":43,"end_line":162,"end_character":58},"updated":"2018-09-07 18:48:56.000000000","message":"Let\u0027s be specific about the resources / APIs (servers, instance actions and migrations).","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":159,"context_line":"    * 2.65 - Add support for abort live migrations in ``queued`` and"},{"line_number":160,"context_line":"             ``preparing`` status."},{"line_number":161,"context_line":"    * 2.66 - Add ``changes-before`` to support users to specify the"},{"line_number":162,"context_line":"             ``updated_at`` time to filter nova resources."},{"line_number":163,"context_line":"\"\"\""},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_5ce93f7c","line":162,"range":{"start_line":162,"start_character":43,"end_line":162,"end_character":58},"in_reply_to":"3f79a3b5_e4668629","updated":"2018-09-09 11:03:22.000000000","message":"lgtm.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"}],"nova/api/openstack/compute/migrations.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            else:"},{"line_number":100,"context_line":"                # Before microversion 2.66, the changes-before filter was not"},{"line_number":101,"context_line":"                # supported in the DB API. However, the schema allowed"},{"line_number":102,"context_line":"                # additionalProperties\u003dTrue, so a user could pass it before"},{"line_number":103,"context_line":"                # 2.59 and filter by the updated_at field if we don\u0027t remove"},{"line_number":104,"context_line":"                # it from search_opts."},{"line_number":105,"context_line":"                del search_opts[\u0027changes-before\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_44609a01","line":102,"range":{"start_line":102,"start_character":18,"end_line":102,"end_character":43},"updated":"2018-09-07 18:48:56.000000000","message":"We should fix this so that you can\u0027t specify unknown parameters starting in 2.66. Then you don\u0027t need that delete logic.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            else:"},{"line_number":100,"context_line":"                # Before microversion 2.66, the changes-before filter was not"},{"line_number":101,"context_line":"                # supported in the DB API. However, the schema allowed"},{"line_number":102,"context_line":"                # additionalProperties\u003dTrue, so a user could pass it before"},{"line_number":103,"context_line":"                # 2.59 and filter by the updated_at field if we don\u0027t remove"},{"line_number":104,"context_line":"                # it from search_opts."},{"line_number":105,"context_line":"                del search_opts[\u0027changes-before\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_bcf9734e","line":102,"range":{"start_line":102,"start_character":18,"end_line":102,"end_character":43},"in_reply_to":"3f79a3b5_44609a01","updated":"2018-09-09 11:03:22.000000000","message":"Emm..Leave comments until delete logic is fixed.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            else:"},{"line_number":100,"context_line":"                # Before microversion 2.66, the changes-before filter was not"},{"line_number":101,"context_line":"                # supported in the DB API. However, the schema allowed"},{"line_number":102,"context_line":"                # additionalProperties\u003dTrue, so a user could pass it before"},{"line_number":103,"context_line":"                # 2.59 and filter by the updated_at field if we don\u0027t remove"},{"line_number":104,"context_line":"                # it from search_opts."},{"line_number":105,"context_line":"                del search_opts[\u0027changes-before\u0027]"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_657882c0","line":102,"range":{"start_line":102,"start_character":18,"end_line":102,"end_character":43},"updated":"2018-09-17 19:18:49.000000000","message":"I think I asked this several patch sets ago, but why don\u0027t we just change this to be additionalProperties\u003dFalse in this microversion?","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f78cdc12ee4a059b24adffbf4a9f370de1070378","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            else:"},{"line_number":100,"context_line":"                # Before microversion 2.66, the changes-before filter was not"},{"line_number":101,"context_line":"                # supported in the DB API. However, the schema allowed"},{"line_number":102,"context_line":"                # additionalProperties\u003dTrue, so a user could pass it before"},{"line_number":103,"context_line":"                # 2.59 and filter by the updated_at field if we don\u0027t remove"},{"line_number":104,"context_line":"                # it from search_opts."},{"line_number":105,"context_line":"                del search_opts[\u0027changes-before\u0027]"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_ab90ab4f","line":102,"range":{"start_line":102,"start_character":18,"end_line":102,"end_character":43},"in_reply_to":"3f79a3b5_657882c0","updated":"2018-09-17 20:05:39.000000000","message":"Because he was just copying it from above? :)","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            else:"},{"line_number":100,"context_line":"                # Before microversion 2.66, the changes-before filter was not"},{"line_number":101,"context_line":"                # supported in the DB API. However, the schema allowed"},{"line_number":102,"context_line":"                # additionalProperties\u003dTrue, so a user could pass it before"},{"line_number":103,"context_line":"                # 2.59 and filter by the updated_at field if we don\u0027t remove"},{"line_number":104,"context_line":"                # it from search_opts."},{"line_number":105,"context_line":"                del search_opts[\u0027changes-before\u0027]"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_1dc79347","line":102,"range":{"start_line":102,"start_character":18,"end_line":102,"end_character":43},"in_reply_to":"3f79a3b5_657882c0","updated":"2018-09-18 13:30:19.000000000","message":"Yes, as pointed out in PS6, I am sorry that I did not understand this logic at the time.\nNow remove this.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"22800cfda47e32b89aa2d0560aae1b377667aee4","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            else:"},{"line_number":100,"context_line":"                # Before microversion 2.66, the changes-before filter was not"},{"line_number":101,"context_line":"                # supported in the DB API. However, the schema allowed"},{"line_number":102,"context_line":"                # additionalProperties\u003dTrue, so a user could pass it before"},{"line_number":103,"context_line":"                # 2.59 and filter by the updated_at field if we don\u0027t remove"},{"line_number":104,"context_line":"                # it from search_opts."},{"line_number":105,"context_line":"                del search_opts[\u0027changes-before\u0027]"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_4f99d2cd","line":102,"range":{"start_line":102,"start_character":18,"end_line":102,"end_character":43},"in_reply_to":"3f79a3b5_ab90ab4f","updated":"2018-09-18 13:18:37.000000000","message":"Yeah, true, and I guess I was thinking this wouldn\u0027t be valid if you specified changes-before with 2.59 because that does schema validation and has additionalProperties\u003dFalse, but it would be allowed when listing migrations with microversion 2.1, but it would just be ignored. So yeah I guess we have to leave this here for backward compatibility on microversions \u003c 2.59.\n\nDo we have a test for this case?","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            else:"},{"line_number":100,"context_line":"                # Before microversion 2.66, the changes-before filter was not"},{"line_number":101,"context_line":"                # supported in the DB API. However, the schema allowed"},{"line_number":102,"context_line":"                # additionalProperties\u003dTrue, so a user could pass it before"},{"line_number":103,"context_line":"                # 2.59 and filter by the updated_at field if we don\u0027t remove"},{"line_number":104,"context_line":"                # it from search_opts."},{"line_number":105,"context_line":"                del search_opts[\u0027changes-before\u0027]"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_5d5bcb84","line":102,"range":{"start_line":102,"start_character":18,"end_line":102,"end_character":43},"in_reply_to":"3f79a3b5_ab90ab4f","updated":"2018-09-18 13:30:19.000000000","message":"Yes, copying from above. Because of I inherited V259, so the else logic here can be removed.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2566c7ca7ec53b34f621db29dcda7c46811de9ca","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from nova.api import validation"},{"line_number":21,"context_line":"from nova import compute"},{"line_number":22,"context_line":"from nova import exception"},{"line_number":23,"context_line":"from nova.i18n import _"},{"line_number":24,"context_line":"from nova.objects import base as obj_base"},{"line_number":25,"context_line":"from nova.policies import migrations as migrations_policies"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"3f79a3b5_a3aaf680","line":23,"updated":"2018-09-18 21:54:49.000000000","message":"Not used.","commit_id":"17e01b85a4c66660c85edfd996cc9ad2b9f92dd8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2566c7ca7ec53b34f621db29dcda7c46811de9ca","unresolved":false,"context_lines":[{"line_number":85,"context_line":"            if allow_changes_since:"},{"line_number":86,"context_line":"                search_opts[\u0027changes-since\u0027] \u003d timeutils.parse_isotime("},{"line_number":87,"context_line":"                    search_opts[\u0027changes-since\u0027])"},{"line_number":88,"context_line":"            else:"},{"line_number":89,"context_line":"                # Before microversion 2.59, the changes-since filter was not"},{"line_number":90,"context_line":"                # supported in the DB API. However, the schema allowed"},{"line_number":91,"context_line":"                # additionalProperties\u003dTrue, so a user could pass it before"},{"line_number":92,"context_line":"                # 2.59 and filter by the updated_at field if we don\u0027t remove"},{"line_number":93,"context_line":"                # it from search_opts."},{"line_number":94,"context_line":"                del search_opts[\u0027changes-since\u0027]"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        if \u0027changes-before\u0027 in search_opts:"},{"line_number":97,"context_line":"            if allow_changes_before:"}],"source_content_type":"text/x-python","patch_set":25,"id":"3f79a3b5_63e29e03","line":94,"range":{"start_line":88,"start_character":12,"end_line":94,"end_character":48},"updated":"2018-09-18 21:54:49.000000000","message":"You still need this below as Jay pointed out in an earlier patch set, otherwise a user can specify changes-before with microversion\u003c2.59 and we\u0027ll filter on changes-before.","commit_id":"17e01b85a4c66660c85edfd996cc9ad2b9f92dd8"}],"nova/api/openstack/compute/rest_api_version_history.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":846,"context_line":"2.66"},{"line_number":847,"context_line":"----"},{"line_number":848,"context_line":""},{"line_number":849,"context_line":"Add ``changes-before`` to support filter nova resources, allow users to"},{"line_number":850,"context_line":"specify the ``updated_at`` time to get nova resources. The ``changes-before``"},{"line_number":851,"context_line":"will be included in request parameter of the following APIs:"},{"line_number":852,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_642036b1","line":849,"range":{"start_line":849,"start_character":34,"end_line":849,"end_character":40},"updated":"2018-09-07 18:48:56.000000000","message":"filtering","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":846,"context_line":"2.66"},{"line_number":847,"context_line":"----"},{"line_number":848,"context_line":""},{"line_number":849,"context_line":"Add ``changes-before`` to support filter nova resources, allow users to"},{"line_number":850,"context_line":"specify the ``updated_at`` time to get nova resources. The ``changes-before``"},{"line_number":851,"context_line":"will be included in request parameter of the following APIs:"},{"line_number":852,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_2426becc","line":849,"range":{"start_line":849,"start_character":57,"end_line":849,"end_character":62},"updated":"2018-09-07 18:48:56.000000000","message":"which allows","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":846,"context_line":"2.66"},{"line_number":847,"context_line":"----"},{"line_number":848,"context_line":""},{"line_number":849,"context_line":"Add ``changes-before`` to support filter nova resources, allow users to"},{"line_number":850,"context_line":"specify the ``updated_at`` time to get nova resources. The ``changes-before``"},{"line_number":851,"context_line":"will be included in request parameter of the following APIs:"},{"line_number":852,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_3cb48381","line":849,"range":{"start_line":849,"start_character":57,"end_line":849,"end_character":62},"in_reply_to":"3f79a3b5_2426becc","updated":"2018-09-09 11:03:22.000000000","message":"servers API,\nos-instance-action API or os-migrations API","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":846,"context_line":"2.66"},{"line_number":847,"context_line":"----"},{"line_number":848,"context_line":""},{"line_number":849,"context_line":"Add ``changes-before`` to support filter nova resources, allow users to"},{"line_number":850,"context_line":"specify the ``updated_at`` time to get nova resources. The ``changes-before``"},{"line_number":851,"context_line":"will be included in request parameter of the following APIs:"},{"line_number":852,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_9cc117e7","line":849,"range":{"start_line":849,"start_character":34,"end_line":849,"end_character":40},"in_reply_to":"3f79a3b5_642036b1","updated":"2018-09-09 11:03:22.000000000","message":"Done","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":850,"context_line":"specify the ``updated_at`` time to get nova resources. The ``changes-before``"},{"line_number":851,"context_line":"will be included in request parameter of the following APIs:"},{"line_number":852,"context_line":""},{"line_number":853,"context_line":"* ``GET /servers``"},{"line_number":854,"context_line":"* ``GET /servers/detail``"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_8410f25a","line":854,"range":{"start_line":853,"start_character":0,"end_line":854,"end_character":25},"updated":"2018-09-07 18:48:56.000000000","message":"missing instance actions and migrations","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":850,"context_line":"specify the ``updated_at`` time to get nova resources. The ``changes-before``"},{"line_number":851,"context_line":"will be included in request parameter of the following APIs:"},{"line_number":852,"context_line":""},{"line_number":853,"context_line":"* ``GET /servers``"},{"line_number":854,"context_line":"* ``GET /servers/detail``"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_5cb7ff85","line":854,"range":{"start_line":853,"start_character":0,"end_line":854,"end_character":25},"in_reply_to":"3f79a3b5_8410f25a","updated":"2018-09-09 11:03:22.000000000","message":"Added.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":846,"context_line":"2.66"},{"line_number":847,"context_line":"----"},{"line_number":848,"context_line":""},{"line_number":849,"context_line":"Add ``changes-before`` to support filtering nova resources, servers API,"},{"line_number":850,"context_line":"os-instance-action API or os-migrations API allows users to specify the"},{"line_number":851,"context_line":"``updated_at`` time to get nova resources. The ``changes-before`` will"},{"line_number":852,"context_line":"be included in request parameter of the following APIs:"},{"line_number":853,"context_line":""},{"line_number":854,"context_line":"* ``GET /servers``"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_e53a52e4","line":851,"range":{"start_line":849,"start_character":0,"end_line":851,"end_character":42},"updated":"2018-09-17 19:18:49.000000000","message":"Let\u0027s remove all of this.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":846,"context_line":"2.66"},{"line_number":847,"context_line":"----"},{"line_number":848,"context_line":""},{"line_number":849,"context_line":"Add ``changes-before`` to support filtering nova resources, servers API,"},{"line_number":850,"context_line":"os-instance-action API or os-migrations API allows users to specify the"},{"line_number":851,"context_line":"``updated_at`` time to get nova resources. The ``changes-before`` will"},{"line_number":852,"context_line":"be included in request parameter of the following APIs:"},{"line_number":853,"context_line":""},{"line_number":854,"context_line":"* ``GET /servers``"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_086f5b92","line":851,"range":{"start_line":849,"start_character":0,"end_line":851,"end_character":42},"in_reply_to":"3f79a3b5_e53a52e4","updated":"2018-09-18 13:30:19.000000000","message":"Done","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":848,"context_line":""},{"line_number":849,"context_line":"Add ``changes-before`` to support filtering nova resources, servers API,"},{"line_number":850,"context_line":"os-instance-action API or os-migrations API allows users to specify the"},{"line_number":851,"context_line":"``updated_at`` time to get nova resources. The ``changes-before`` will"},{"line_number":852,"context_line":"be included in request parameter of the following APIs:"},{"line_number":853,"context_line":""},{"line_number":854,"context_line":"* ``GET /servers``"},{"line_number":855,"context_line":"* ``GET /servers/detail``"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_c50e363c","line":852,"range":{"start_line":851,"start_character":43,"end_line":852,"end_character":55},"updated":"2018-09-17 19:18:49.000000000","message":"And re-word this to:\n\nThe ``changes-before`` filter can be included in request parameter of the following APIs to filter by changes before or equal to the resource ``updated_at`` time:","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":848,"context_line":""},{"line_number":849,"context_line":"Add ``changes-before`` to support filtering nova resources, servers API,"},{"line_number":850,"context_line":"os-instance-action API or os-migrations API allows users to specify the"},{"line_number":851,"context_line":"``updated_at`` time to get nova resources. The ``changes-before`` will"},{"line_number":852,"context_line":"be included in request parameter of the following APIs:"},{"line_number":853,"context_line":""},{"line_number":854,"context_line":"* ``GET /servers``"},{"line_number":855,"context_line":"* ``GET /servers/detail``"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f79a3b5_88084bd9","line":852,"range":{"start_line":851,"start_character":43,"end_line":852,"end_character":55},"in_reply_to":"3f79a3b5_c50e363c","updated":"2018-09-18 13:30:19.000000000","message":"lgtm.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"}],"nova/api/openstack/compute/schemas/migrations.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4eaa2458b01ed1bee9a37ba3c06926d84c5d50c2","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027date-time\u0027}),"},{"line_number":42,"context_line":"})"},{"line_number":43,"context_line":"list_query_params_v259[\u0027additionalProperties\u0027] \u003d False"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"list_query_params_v266 \u003d copy.deepcopy(list_query_params_v259)"},{"line_number":46,"context_line":"list_query_params_v266[\u0027properties\u0027].update({"},{"line_number":47,"context_line":"    \u0027changes-before\u0027: parameter_types.single_param("},{"line_number":48,"context_line":"        {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027date-time\u0027}),"},{"line_number":49,"context_line":"})"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_5b49c95d","line":49,"range":{"start_line":44,"start_character":0,"end_line":49,"end_character":2},"updated":"2018-09-03 03:38:25.000000000","message":"I didn\u0027t see your spec asking this","commit_id":"89438934e841594429d01cbed924c8a9c6b12b15"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"8a1e73af9e984d43dd12d3c8e497a2ea6c4cd36a","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027date-time\u0027}),"},{"line_number":42,"context_line":"})"},{"line_number":43,"context_line":"list_query_params_v259[\u0027additionalProperties\u0027] \u003d False"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"list_query_params_v266 \u003d copy.deepcopy(list_query_params_v259)"},{"line_number":46,"context_line":"list_query_params_v266[\u0027properties\u0027].update({"},{"line_number":47,"context_line":"    \u0027changes-before\u0027: parameter_types.single_param("},{"line_number":48,"context_line":"        {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027date-time\u0027}),"},{"line_number":49,"context_line":"})"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_c15aca81","line":49,"range":{"start_line":44,"start_character":0,"end_line":49,"end_character":2},"in_reply_to":"3f79a3b5_5b49c95d","updated":"2018-09-04 00:05:40.000000000","message":"Added os-instance-action and os-migrations to new microversion in the 14th patch of specs.","commit_id":"89438934e841594429d01cbed924c8a9c6b12b15"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    \u0027changes-since\u0027: parameter_types.single_param("},{"line_number":41,"context_line":"        {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027date-time\u0027}),"},{"line_number":42,"context_line":"})"},{"line_number":43,"context_line":"list_query_params_v259[\u0027additionalProperties\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_7096fe4b","side":"PARENT","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":54},"updated":"2018-09-17 19:18:49.000000000","message":"This is regressed which is why you needed to remove the test for unknown query parameters from the 2.59 scenario.","commit_id":"142e394a38caebc75f5c20df65518b5d58251dcb"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    \u0027changes-since\u0027: parameter_types.single_param("},{"line_number":41,"context_line":"        {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027date-time\u0027}),"},{"line_number":42,"context_line":"})"},{"line_number":43,"context_line":"list_query_params_v259[\u0027additionalProperties\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_427d31e5","side":"PARENT","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":54},"in_reply_to":"3f79a3b5_7096fe4b","updated":"2018-09-18 13:30:19.000000000","message":"Restore it.","commit_id":"142e394a38caebc75f5c20df65518b5d58251dcb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    \u0027changes-before\u0027: parameter_types.single_param("},{"line_number":47,"context_line":"        {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027date-time\u0027}),"},{"line_number":48,"context_line":"})"},{"line_number":49,"context_line":"list_query_params_v266[\u0027additionalProperties\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_1089ca24","line":49,"updated":"2018-09-17 19:18:49.000000000","message":"You shouldn\u0027t need this if you\u0027re copying from list_query_params_v259.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    \u0027changes-before\u0027: parameter_types.single_param("},{"line_number":47,"context_line":"        {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027date-time\u0027}),"},{"line_number":48,"context_line":"})"},{"line_number":49,"context_line":"list_query_params_v266[\u0027additionalProperties\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_e27d5de6","line":49,"in_reply_to":"3f79a3b5_1089ca24","updated":"2018-09-18 13:30:19.000000000","message":"Remove it.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"}],"nova/api/openstack/compute/schemas/servers.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":599,"context_line":"    # For backward-compatible additionalProperties is set to be True here."},{"line_number":600,"context_line":"    # And we will either strip the extra params out or raise HTTP 400"},{"line_number":601,"context_line":"    # according to the params\u0027 value in the later process."},{"line_number":602,"context_line":"    \u0027additionalProperties\u0027: True,"},{"line_number":603,"context_line":"    # Prevent internal-attributes that are started with underscore from"},{"line_number":604,"context_line":"    # being striped out in schema validation, and raise HTTP 400 in API."},{"line_number":605,"context_line":"    \u0027patternProperties\u0027: {\"^_\": parameter_types.common_query_param}"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_702d9e8d","line":602,"range":{"start_line":602,"start_character":4,"end_line":602,"end_character":33},"updated":"2018-09-17 19:18:49.000000000","message":"Because of this, I believe it means anyone can pass the changes-before (and 2.26 tags) filters before 2.66 without any error, but the API won\u0027t actually process them, which could be confusing for users. I should talk with Alex and Ghanshyam about this to see if/when they think we could ever start enforcing query parameter schema validation in the API.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b651cd2b7468676bb7fb5b2073aedcfe81b3ffe1","unresolved":false,"context_lines":[{"line_number":599,"context_line":"    # For backward-compatible additionalProperties is set to be True here."},{"line_number":600,"context_line":"    # And we will either strip the extra params out or raise HTTP 400"},{"line_number":601,"context_line":"    # according to the params\u0027 value in the later process."},{"line_number":602,"context_line":"    \u0027additionalProperties\u0027: True,"},{"line_number":603,"context_line":"    # Prevent internal-attributes that are started with underscore from"},{"line_number":604,"context_line":"    # being striped out in schema validation, and raise HTTP 400 in API."},{"line_number":605,"context_line":"    \u0027patternProperties\u0027: {\"^_\": parameter_types.common_query_param}"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_f0452e70","line":602,"range":{"start_line":602,"start_character":4,"end_line":602,"end_character":33},"in_reply_to":"3f79a3b5_702d9e8d","updated":"2018-09-17 19:32:46.000000000","message":"I\u0027ve posed this question to the ML:\n\nhttp://lists.openstack.org/pipermail/openstack-dev/2018-September/134748.html","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"}],"nova/api/openstack/compute/servers.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4eaa2458b01ed1bee9a37ba3c06926d84c5d50c2","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @wsgi.expected_errors((400, 403))"},{"line_number":95,"context_line":"    @validation.query_schema(schema_servers.query_params_v266, \u00272.66\u0027)"},{"line_number":96,"context_line":"    @validation.query_schema(schema_servers.query_params_v226, \u00272.26\u0027)"},{"line_number":97,"context_line":"    @validation.query_schema(schema_servers.query_params_v21, \u00272.1\u0027, \u00272.25\u0027)"},{"line_number":98,"context_line":"    def detail(self, req):"},{"line_number":99,"context_line":"        \"\"\"Returns a list of server details for a given user.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_9b3f61b4","line":96,"range":{"start_line":96,"start_character":63,"end_line":96,"end_character":70},"updated":"2018-09-03 03:38:25.000000000","message":"you should have an ending version at this line.","commit_id":"89438934e841594429d01cbed924c8a9c6b12b15"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"8a1e73af9e984d43dd12d3c8e497a2ea6c4cd36a","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @wsgi.expected_errors((400, 403))"},{"line_number":95,"context_line":"    @validation.query_schema(schema_servers.query_params_v266, \u00272.66\u0027)"},{"line_number":96,"context_line":"    @validation.query_schema(schema_servers.query_params_v226, \u00272.26\u0027)"},{"line_number":97,"context_line":"    @validation.query_schema(schema_servers.query_params_v21, \u00272.1\u0027, \u00272.25\u0027)"},{"line_number":98,"context_line":"    def detail(self, req):"},{"line_number":99,"context_line":"        \"\"\"Returns a list of server details for a given user.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_9bd9a1f5","line":96,"range":{"start_line":96,"start_character":63,"end_line":96,"end_character":70},"in_reply_to":"3f79a3b5_9b3f61b4","updated":"2018-09-04 00:05:40.000000000","message":"Yes Alex.The point you pointed out is very well, otherwise the new version will not work properly, thanks.","commit_id":"89438934e841594429d01cbed924c8a9c6b12b15"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            try:"},{"line_number":161,"context_line":"                search_opts[\u0027changes-before\u0027] \u003d timeutils.parse_isotime("},{"line_number":162,"context_line":"                    search_opts[\u0027changes-before\u0027])"},{"line_number":163,"context_line":"                changes_since \u003d search_opts.get(\u0027changes-since\u0027, None)"},{"line_number":164,"context_line":"                if changes_since and search_opts[\u0027changes-before\u0027] \u003c \\"},{"line_number":165,"context_line":"                        search_opts[\u0027changes-since\u0027]:"},{"line_number":166,"context_line":"                    msg \u003d _(\u0027The value of changes-since must be\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_9f211ba1","line":163,"range":{"start_line":163,"start_character":63,"end_line":163,"end_character":69},"updated":"2018-09-07 18:48:56.000000000","message":"nit: this is redundant","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            try:"},{"line_number":161,"context_line":"                search_opts[\u0027changes-before\u0027] \u003d timeutils.parse_isotime("},{"line_number":162,"context_line":"                    search_opts[\u0027changes-before\u0027])"},{"line_number":163,"context_line":"                changes_since \u003d search_opts.get(\u0027changes-since\u0027, None)"},{"line_number":164,"context_line":"                if changes_since and search_opts[\u0027changes-before\u0027] \u003c \\"},{"line_number":165,"context_line":"                        search_opts[\u0027changes-since\u0027]:"},{"line_number":166,"context_line":"                    msg \u003d _(\u0027The value of changes-since must be\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_fcb12b90","line":163,"range":{"start_line":163,"start_character":63,"end_line":163,"end_character":69},"in_reply_to":"3f79a3b5_9f211ba1","updated":"2018-09-09 11:03:22.000000000","message":"Done","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        # If an admin hasn\u0027t specified a \u0027deleted\u0027 search option, we need"},{"line_number":175,"context_line":"        # to filter out deleted instances by setting the filter ourselves."},{"line_number":176,"context_line":"        # ... Unless \u0027changes-since\u0027 or \u0027changes-before\u0027 is specified,"},{"line_number":177,"context_line":"        # that\u0027s will return recently deleted instances according to"},{"line_number":178,"context_line":"        # the API spec."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        if \u0027deleted\u0027 not in search_opts:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_5f3703e4","line":177,"range":{"start_line":177,"start_character":10,"end_line":177,"end_character":16},"updated":"2018-09-07 18:48:56.000000000","message":"because those will","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        # If an admin hasn\u0027t specified a \u0027deleted\u0027 search option, we need"},{"line_number":175,"context_line":"        # to filter out deleted instances by setting the filter ourselves."},{"line_number":176,"context_line":"        # ... Unless \u0027changes-since\u0027 or \u0027changes-before\u0027 is specified,"},{"line_number":177,"context_line":"        # that\u0027s will return recently deleted instances according to"},{"line_number":178,"context_line":"        # the API spec."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        if \u0027deleted\u0027 not in search_opts:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_1cad0730","line":177,"range":{"start_line":177,"start_character":10,"end_line":177,"end_character":16},"in_reply_to":"3f79a3b5_5f3703e4","updated":"2018-09-09 11:03:22.000000000","message":"Done","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                search_opts[\u0027changes-before\u0027] \u003d timeutils.parse_isotime("},{"line_number":162,"context_line":"                    search_opts[\u0027changes-before\u0027])"},{"line_number":163,"context_line":"                changes_since \u003d search_opts.get(\u0027changes-since\u0027)"},{"line_number":164,"context_line":"                if changes_since and search_opts[\u0027changes-before\u0027] \u003c \\"},{"line_number":165,"context_line":"                        search_opts[\u0027changes-since\u0027]:"},{"line_number":166,"context_line":"                    msg \u003d _(\u0027The value of changes-since must be\u0027"},{"line_number":167,"context_line":"                            \u0027 less than changes-before.\u0027)"},{"line_number":168,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_70a4bea3","line":165,"range":{"start_line":164,"start_character":16,"end_line":165,"end_character":53},"updated":"2018-09-17 19:18:49.000000000","message":"There is no test case for this.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                search_opts[\u0027changes-before\u0027] \u003d timeutils.parse_isotime("},{"line_number":162,"context_line":"                    search_opts[\u0027changes-before\u0027])"},{"line_number":163,"context_line":"                changes_since \u003d search_opts.get(\u0027changes-since\u0027)"},{"line_number":164,"context_line":"                if changes_since and search_opts[\u0027changes-before\u0027] \u003c \\"},{"line_number":165,"context_line":"                        search_opts[\u0027changes-since\u0027]:"},{"line_number":166,"context_line":"                    msg \u003d _(\u0027The value of changes-since must be\u0027"},{"line_number":167,"context_line":"                            \u0027 less than changes-before.\u0027)"},{"line_number":168,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_a8fc27b6","line":165,"range":{"start_line":164,"start_character":16,"end_line":165,"end_character":53},"in_reply_to":"3f79a3b5_70a4bea3","updated":"2018-09-18 13:30:19.000000000","message":"Add the test case allow ``changes-since`` and ``changes-before`` to filter the resources.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                if changes_since and search_opts[\u0027changes-before\u0027] \u003c \\"},{"line_number":165,"context_line":"                        search_opts[\u0027changes-since\u0027]:"},{"line_number":166,"context_line":"                    msg \u003d _(\u0027The value of changes-since must be\u0027"},{"line_number":167,"context_line":"                            \u0027 less than changes-before.\u0027)"},{"line_number":168,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":169,"context_line":"            except ValueError:"},{"line_number":170,"context_line":"                msg \u003d _(\"Invalid filter field: changes-before.\")"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_90db9a7b","line":167,"range":{"start_line":167,"start_character":30,"end_line":167,"end_character":34},"updated":"2018-09-17 19:18:49.000000000","message":"less than or equal to, correct? Because as discussed in the spec, to query based on a specific time, the user could specify changes-since and changes-before with the same value.\n\nhttps://specs.openstack.org/openstack/nova-specs/specs/stein/approved/support-to-query-nova-resources-filter-by-changes-before.html#rest-api-impact","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                if changes_since and search_opts[\u0027changes-before\u0027] \u003c \\"},{"line_number":165,"context_line":"                        search_opts[\u0027changes-since\u0027]:"},{"line_number":166,"context_line":"                    msg \u003d _(\u0027The value of changes-since must be\u0027"},{"line_number":167,"context_line":"                            \u0027 less than changes-before.\u0027)"},{"line_number":168,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":169,"context_line":"            except ValueError:"},{"line_number":170,"context_line":"                msg \u003d _(\"Invalid filter field: changes-before.\")"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_2c302e07","line":167,"range":{"start_line":167,"start_character":30,"end_line":167,"end_character":34},"in_reply_to":"3f79a3b5_90db9a7b","updated":"2018-09-18 13:30:19.000000000","message":"Yes, it\u0027s \"The value of changes-since must be less than or equal to changes-before.\".","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":1109,"context_line":"            opt_list +\u003d (\u0027ip6\u0027,)"},{"line_number":1110,"context_line":"        if api_version_request.is_supported(req, min_version\u003d\u00272.26\u0027):"},{"line_number":1111,"context_line":"            opt_list +\u003d TAG_SEARCH_FILTERS"},{"line_number":1112,"context_line":"        if api_version_request.is_supported(req, min_version\u003d\u00272.66\u0027):"},{"line_number":1113,"context_line":"            opt_list +\u003d (\u0027changes-before\u0027,)"},{"line_number":1114,"context_line":"        return opt_list"},{"line_number":1115,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_30d64651","line":1112,"updated":"2018-09-17 19:18:49.000000000","message":"OK so if the user passes changes-before but with microversion \u003c 2.66, we\u0027ll silently ignore the query parameter and not apply the filter. I guess that\u0027s consistent with what we\u0027ve done for 2.5 and 2.26 above.\n\nIf we\u0027re not going to change additionalProperties\u003dFalse for the servers API in this microversion, then you should have a unit test which asserts that when filtering with changes-before but microversion \u003c 2.66 that the changes-before filter is not passed to the get_all() method in the compute API.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"}],"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":2035,"context_line":""},{"line_number":2036,"context_line":"    Special keys are used to tweek the query further::"},{"line_number":2037,"context_line":""},{"line_number":2038,"context_line":"    |   \u0027changes-since\u0027 - only return instances updated after"},{"line_number":2039,"context_line":"    |   \u0027deleted\u0027 - only return (or exclude) deleted instances"},{"line_number":2040,"context_line":"    |   \u0027soft_deleted\u0027 - modify behavior of \u0027deleted\u0027 to either"},{"line_number":2041,"context_line":"    |                    include or exclude instances whose"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_1f42eb3b","side":"PARENT","line":2038,"updated":"2018-09-07 18:48:56.000000000","message":"I think this is OK to leave in, and include changes-before.","commit_id":"fba2d9630657e182e7b35a08f9c0ccd96d444a6d"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":2035,"context_line":""},{"line_number":2036,"context_line":"    Special keys are used to tweek the query further::"},{"line_number":2037,"context_line":""},{"line_number":2038,"context_line":"    |   \u0027changes-since\u0027 - only return instances updated after"},{"line_number":2039,"context_line":"    |   \u0027deleted\u0027 - only return (or exclude) deleted instances"},{"line_number":2040,"context_line":"    |   \u0027soft_deleted\u0027 - modify behavior of \u0027deleted\u0027 to either"},{"line_number":2041,"context_line":"    |                    include or exclude instances whose"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_577d986a","side":"PARENT","line":2038,"in_reply_to":"3f79a3b5_1f42eb3b","updated":"2018-09-09 11:03:22.000000000","message":"Ok, set \u0027changes-since\u0027 and \u0027changes-before\u0027here.","commit_id":"fba2d9630657e182e7b35a08f9c0ccd96d444a6d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":2003,"context_line":"                                            sort_dirs\u003d[sort_dir])"},{"line_number":2004,"context_line":""},{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":"def _get_query_instance_by_changes_time(query, filters, model_object):"},{"line_number":2007,"context_line":"    \"\"\"Filter nova resources, or get an instance action list"},{"line_number":2008,"context_line":"    by changes-since or changes-before."},{"line_number":2009,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_5f3ce3bd","line":2006,"range":{"start_line":2006,"start_character":15,"end_line":2006,"end_character":23},"updated":"2018-09-07 18:48:56.000000000","message":"If this method is meant to be used generically, and is not just for instances records, then let\u0027s rename it so it\u0027s not instance-specific.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":2003,"context_line":"                                            sort_dirs\u003d[sort_dir])"},{"line_number":2004,"context_line":""},{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":"def _get_query_instance_by_changes_time(query, filters, model_object):"},{"line_number":2007,"context_line":"    \"\"\"Filter nova resources, or get an instance action list"},{"line_number":2008,"context_line":"    by changes-since or changes-before."},{"line_number":2009,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_dc778fd0","line":2006,"range":{"start_line":2006,"start_character":15,"end_line":2006,"end_character":23},"in_reply_to":"3f79a3b5_5f3ce3bd","updated":"2018-09-09 11:03:22.000000000","message":"Yeah, rename it with \"_get_query_nova_resource_by_changes_time\".","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":2019,"context_line":"    :param model_object: object of the operation target."},{"line_number":2020,"context_line":"    \"\"\""},{"line_number":2021,"context_line":"    for change_filter in [\u0027changes-since\u0027, \u0027changes-before\u0027]:"},{"line_number":2022,"context_line":"        if filters and filters.get(change_filter, None):"},{"line_number":2023,"context_line":"            changes_filter_time \u003d timeutils.normalize_time("},{"line_number":2024,"context_line":"                filters.pop(change_filter))"},{"line_number":2025,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_bf7657a3","line":2022,"range":{"start_line":2022,"start_character":48,"end_line":2022,"end_character":54},"updated":"2018-09-07 18:48:56.000000000","message":"nit: this is redundant","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":2019,"context_line":"    :param model_object: object of the operation target."},{"line_number":2020,"context_line":"    \"\"\""},{"line_number":2021,"context_line":"    for change_filter in [\u0027changes-since\u0027, \u0027changes-before\u0027]:"},{"line_number":2022,"context_line":"        if filters and filters.get(change_filter, None):"},{"line_number":2023,"context_line":"            changes_filter_time \u003d timeutils.normalize_time("},{"line_number":2024,"context_line":"                filters.pop(change_filter))"},{"line_number":2025,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_9c4fd790","line":2022,"range":{"start_line":2022,"start_character":48,"end_line":2022,"end_character":54},"in_reply_to":"3f79a3b5_bf7657a3","updated":"2018-09-09 11:03:22.000000000","message":"Done","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":2021,"context_line":"    for change_filter in [\u0027changes-since\u0027, \u0027changes-before\u0027]:"},{"line_number":2022,"context_line":"        if filters and filters.get(change_filter, None):"},{"line_number":2023,"context_line":"            changes_filter_time \u003d timeutils.normalize_time("},{"line_number":2024,"context_line":"                filters.pop(change_filter))"},{"line_number":2025,"context_line":"            try:"},{"line_number":2026,"context_line":"                instance_updated_at \u003d getattr(model_object, \u0027updated_at\u0027)"},{"line_number":2027,"context_line":"                query \u003d (query."}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_df79d392","line":2024,"range":{"start_line":2024,"start_character":24,"end_line":2024,"end_character":27},"updated":"2018-09-07 18:48:56.000000000","message":"Why pop it out?","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"cb6bfccff52dc15e7374fae14b5ddb7759387ed9","unresolved":false,"context_lines":[{"line_number":2021,"context_line":"    for change_filter in [\u0027changes-since\u0027, \u0027changes-before\u0027]:"},{"line_number":2022,"context_line":"        if filters and filters.get(change_filter, None):"},{"line_number":2023,"context_line":"            changes_filter_time \u003d timeutils.normalize_time("},{"line_number":2024,"context_line":"                filters.pop(change_filter))"},{"line_number":2025,"context_line":"            try:"},{"line_number":2026,"context_line":"                instance_updated_at \u003d getattr(model_object, \u0027updated_at\u0027)"},{"line_number":2027,"context_line":"                query \u003d (query."}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_4e96d44b","line":2024,"range":{"start_line":2024,"start_character":24,"end_line":2024,"end_character":27},"in_reply_to":"3f79a3b5_7784545e","updated":"2018-09-17 10:00:25.000000000","message":"Hi mriedem, I am sorry for previous reply. Here it needs to use get instead of pop. For os-instance-action and servers list APIs, use pop is ok, after the use pop, no longer use \"changes-before\" or \"changes-since\" to filter nova resources. But os-migrations need to be called again, so the return data will be wrong, so change \u0027filters.pop()\u0027to \u0027filters.get()\u0027.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":2021,"context_line":"    for change_filter in [\u0027changes-since\u0027, \u0027changes-before\u0027]:"},{"line_number":2022,"context_line":"        if filters and filters.get(change_filter, None):"},{"line_number":2023,"context_line":"            changes_filter_time \u003d timeutils.normalize_time("},{"line_number":2024,"context_line":"                filters.pop(change_filter))"},{"line_number":2025,"context_line":"            try:"},{"line_number":2026,"context_line":"                instance_updated_at \u003d getattr(model_object, \u0027updated_at\u0027)"},{"line_number":2027,"context_line":"                query \u003d (query."}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_7784545e","line":2024,"range":{"start_line":2024,"start_character":24,"end_line":2024,"end_character":27},"in_reply_to":"3f79a3b5_df79d392","updated":"2018-09-09 11:03:22.000000000","message":"After filtering the resources that satisfy ``change_filter``, it has no value in the filters, so I used pop.\nIs it what I ignored?","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":2023,"context_line":"            changes_filter_time \u003d timeutils.normalize_time("},{"line_number":2024,"context_line":"                filters.pop(change_filter))"},{"line_number":2025,"context_line":"            try:"},{"line_number":2026,"context_line":"                instance_updated_at \u003d getattr(model_object, \u0027updated_at\u0027)"},{"line_number":2027,"context_line":"                query \u003d (query."},{"line_number":2028,"context_line":"                    filter(instance_updated_at \u003e\u003d changes_filter_time)"},{"line_number":2029,"context_line":"                    if change_filter \u003d\u003d \u0027changes-since\u0027 else query."}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_9f6fdbc2","line":2026,"range":{"start_line":2026,"start_character":16,"end_line":2026,"end_character":24},"updated":"2018-09-07 18:48:56.000000000","message":"remove the instance-specific naming","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":2023,"context_line":"            changes_filter_time \u003d timeutils.normalize_time("},{"line_number":2024,"context_line":"                filters.pop(change_filter))"},{"line_number":2025,"context_line":"            try:"},{"line_number":2026,"context_line":"                instance_updated_at \u003d getattr(model_object, \u0027updated_at\u0027)"},{"line_number":2027,"context_line":"                query \u003d (query."},{"line_number":2028,"context_line":"                    filter(instance_updated_at \u003e\u003d changes_filter_time)"},{"line_number":2029,"context_line":"                    if change_filter \u003d\u003d \u0027changes-since\u0027 else query."}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_dcfeaf04","line":2026,"range":{"start_line":2026,"start_character":16,"end_line":2026,"end_character":24},"in_reply_to":"3f79a3b5_9f6fdbc2","updated":"2018-09-09 11:03:22.000000000","message":"Done","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":2024,"context_line":"                filters.pop(change_filter))"},{"line_number":2025,"context_line":"            try:"},{"line_number":2026,"context_line":"                instance_updated_at \u003d getattr(model_object, \u0027updated_at\u0027)"},{"line_number":2027,"context_line":"                query \u003d (query."},{"line_number":2028,"context_line":"                    filter(instance_updated_at \u003e\u003d changes_filter_time)"},{"line_number":2029,"context_line":"                    if change_filter \u003d\u003d \u0027changes-since\u0027 else query."},{"line_number":2030,"context_line":"                        filter(instance_updated_at \u003c\u003d changes_filter_time))"},{"line_number":2031,"context_line":"            except AttributeError:"},{"line_number":2032,"context_line":"                LOG.debug(\"The attribute of \u0027updated_at\u0027 could not be found.\")"},{"line_number":2033,"context_line":"                return None"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_9fa4bb08","line":2030,"range":{"start_line":2027,"start_character":16,"end_line":2030,"end_character":75},"updated":"2018-09-07 18:48:56.000000000","message":"This is hard to read. Just check the filter type and then do the proper query filtering rather than trying to make this a ternary statement.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":2004,"context_line":""},{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":"def _get_query_nova_resource_by_changes_time(query, filters, model_object):"},{"line_number":2007,"context_line":"    \"\"\"Filter nova resources, or get an instance action list"},{"line_number":2008,"context_line":"    by changes-since or changes-before."},{"line_number":2009,"context_line":""},{"line_number":2010,"context_line":"    Special keys are used to tweek the query further::"},{"line_number":2011,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_1036aab5","line":2008,"range":{"start_line":2007,"start_character":7,"end_line":2008,"end_character":39},"updated":"2018-09-17 19:18:49.000000000","message":"\"Filter resources by changes-since or changes-before.\"","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":2004,"context_line":""},{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":"def _get_query_nova_resource_by_changes_time(query, filters, model_object):"},{"line_number":2007,"context_line":"    \"\"\"Filter nova resources, or get an instance action list"},{"line_number":2008,"context_line":"    by changes-since or changes-before."},{"line_number":2009,"context_line":""},{"line_number":2010,"context_line":"    Special keys are used to tweek the query further::"},{"line_number":2011,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_27fe0705","line":2008,"range":{"start_line":2007,"start_character":7,"end_line":2008,"end_character":39},"in_reply_to":"3f79a3b5_1036aab5","updated":"2018-09-18 13:30:19.000000000","message":"instead it.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":2009,"context_line":""},{"line_number":2010,"context_line":"    Special keys are used to tweek the query further::"},{"line_number":2011,"context_line":""},{"line_number":2012,"context_line":"    |   \u0027changes-since\u0027 - only return instances updated after"},{"line_number":2013,"context_line":"    |   \u0027changes-before\u0027 - only return instances updated before"},{"line_number":2014,"context_line":""},{"line_number":2015,"context_line":"    Return query results."}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_50bae20a","line":2012,"range":{"start_line":2012,"start_character":38,"end_line":2012,"end_character":47},"updated":"2018-09-17 19:18:49.000000000","message":"resources","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":2009,"context_line":""},{"line_number":2010,"context_line":"    Special keys are used to tweek the query further::"},{"line_number":2011,"context_line":""},{"line_number":2012,"context_line":"    |   \u0027changes-since\u0027 - only return instances updated after"},{"line_number":2013,"context_line":"    |   \u0027changes-before\u0027 - only return instances updated before"},{"line_number":2014,"context_line":""},{"line_number":2015,"context_line":"    Return query results."}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_4703030e","line":2012,"range":{"start_line":2012,"start_character":38,"end_line":2012,"end_character":47},"in_reply_to":"3f79a3b5_50bae20a","updated":"2018-09-18 13:30:19.000000000","message":"Done","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":2010,"context_line":"    Special keys are used to tweek the query further::"},{"line_number":2011,"context_line":""},{"line_number":2012,"context_line":"    |   \u0027changes-since\u0027 - only return instances updated after"},{"line_number":2013,"context_line":"    |   \u0027changes-before\u0027 - only return instances updated before"},{"line_number":2014,"context_line":""},{"line_number":2015,"context_line":"    Return query results."},{"line_number":2016,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_70b7de22","line":2013,"range":{"start_line":2013,"start_character":39,"end_line":2013,"end_character":48},"updated":"2018-09-17 19:18:49.000000000","message":"resources","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":2010,"context_line":"    Special keys are used to tweek the query further::"},{"line_number":2011,"context_line":""},{"line_number":2012,"context_line":"    |   \u0027changes-since\u0027 - only return instances updated after"},{"line_number":2013,"context_line":"    |   \u0027changes-before\u0027 - only return instances updated before"},{"line_number":2014,"context_line":""},{"line_number":2015,"context_line":"    Return query results."},{"line_number":2016,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_e7032f0b","line":2013,"range":{"start_line":2013,"start_character":39,"end_line":2013,"end_character":48},"in_reply_to":"3f79a3b5_70b7de22","updated":"2018-09-18 13:30:19.000000000","message":"Done","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":2028,"context_line":"                    query \u003d query.filter(updated_at \u003e\u003d changes_filter_time)"},{"line_number":2029,"context_line":"                else:"},{"line_number":2030,"context_line":"                    query \u003d query.filter(updated_at \u003c\u003d changes_filter_time)"},{"line_number":2031,"context_line":"            except AttributeError:"},{"line_number":2032,"context_line":"                LOG.debug(\"The attribute of \u0027updated_at\u0027 could not be found.\")"},{"line_number":2033,"context_line":"                return None"},{"line_number":2034,"context_line":"    return query"},{"line_number":2035,"context_line":""},{"line_number":2036,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_d03b5298","line":2033,"range":{"start_line":2031,"start_character":12,"end_line":2033,"end_character":27},"updated":"2018-09-17 19:18:49.000000000","message":"Remove this since it could mask programming errors. We should only be trying to call this method on model objects that have an updated_at attribute. You can mention this on the model_object parameter docstring above if you like.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":2028,"context_line":"                    query \u003d query.filter(updated_at \u003e\u003d changes_filter_time)"},{"line_number":2029,"context_line":"                else:"},{"line_number":2030,"context_line":"                    query \u003d query.filter(updated_at \u003c\u003d changes_filter_time)"},{"line_number":2031,"context_line":"            except AttributeError:"},{"line_number":2032,"context_line":"                LOG.debug(\"The attribute of \u0027updated_at\u0027 could not be found.\")"},{"line_number":2033,"context_line":"                return None"},{"line_number":2034,"context_line":"    return query"},{"line_number":2035,"context_line":""},{"line_number":2036,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_cc097a31","line":2033,"range":{"start_line":2031,"start_character":12,"end_line":2033,"end_character":27},"in_reply_to":"3f79a3b5_d03b5298","updated":"2018-09-18 13:30:19.000000000","message":"Remove this, it doesn\u0027t make sense to capture this exception.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2566c7ca7ec53b34f621db29dcda7c46811de9ca","unresolved":false,"context_lines":[{"line_number":2004,"context_line":""},{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":"def _get_query_nova_resource_by_changes_time(query, filters, model_object):"},{"line_number":2007,"context_line":"    \"\"\"iFilter resources by changes-since or changes-before."},{"line_number":2008,"context_line":""},{"line_number":2009,"context_line":"    Special keys are used to tweek the query further::"},{"line_number":2010,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"3f79a3b5_a3e676e6","line":2007,"range":{"start_line":2007,"start_character":7,"end_line":2007,"end_character":8},"updated":"2018-09-18 21:54:49.000000000","message":"typo","commit_id":"17e01b85a4c66660c85edfd996cc9ad2b9f92dd8"}],"nova/tests/functional/api_sample_tests/api_samples/servers/v2.66/servers-list-with-timestamp-filter.json.tpl":[{"author":{"_account_id":25562,"name":"Chen","email":"dstbtgagt@foxmail.com","username":"chenn2"},"change_message_id":"8b99cd98cae45fad20bb73dad2c8b4160ccc3971","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"servers\": ["},{"line_number":3,"context_line":"        {"},{"line_number":4,"context_line":"            \"accessIPv4\": \"%(access_ip_v4)s\","},{"line_number":5,"context_line":"            \"accessIPv6\": \"%(access_ip_v6)s\","},{"line_number":6,"context_line":"            \"addresses\": {"},{"line_number":7,"context_line":"                \"private\": ["},{"line_number":8,"context_line":"                    {"},{"line_number":9,"context_line":"                        \"addr\": \"%(ip)s\","},{"line_number":10,"context_line":"                        \"OS-EXT-IPS-MAC:mac_addr\": \"aa:bb:cc:dd:ee:ff\","},{"line_number":11,"context_line":"                        \"OS-EXT-IPS:type\": \"fixed\","},{"line_number":12,"context_line":"                        \"version\": 4"},{"line_number":13,"context_line":"                    }"},{"line_number":14,"context_line":"                ]"},{"line_number":15,"context_line":"            },"},{"line_number":16,"context_line":"            \"created\": \"%(isotime)s\","},{"line_number":17,"context_line":"            \"description\": null,"},{"line_number":18,"context_line":"            \"host_status\": \"UP\","},{"line_number":19,"context_line":"            \"locked\": false,"},{"line_number":20,"context_line":"            \"tags\": [],"},{"line_number":21,"context_line":"            \"flavor\": {"},{"line_number":22,"context_line":"                \"disk\": 1,"},{"line_number":23,"context_line":"                \"ephemeral\": 0,"},{"line_number":24,"context_line":"                \"extra_specs\": {"},{"line_number":25,"context_line":"                    \"hw:mem_page_size\": \"2048\","},{"line_number":26,"context_line":"                    \"hw:cpu_policy\": \"dedicated\""},{"line_number":27,"context_line":"                },"},{"line_number":28,"context_line":"                \"original_name\": \"m1.tiny.specs\","},{"line_number":29,"context_line":"                \"ram\": 512,"},{"line_number":30,"context_line":"                \"swap\": 0,"},{"line_number":31,"context_line":"                \"vcpus\": 1"},{"line_number":32,"context_line":"            },"},{"line_number":33,"context_line":"            \"hostId\": \"%(hostid)s\","},{"line_number":34,"context_line":"            \"id\": \"%(id)s\","},{"line_number":35,"context_line":"            \"image\": {"},{"line_number":36,"context_line":"                \"id\": \"%(uuid)s\","},{"line_number":37,"context_line":"                \"links\": ["},{"line_number":38,"context_line":"                    {"},{"line_number":39,"context_line":"                        \"href\": \"%(compute_endpoint)s/images/%(uuid)s\","},{"line_number":40,"context_line":"                        \"rel\": \"bookmark\""},{"line_number":41,"context_line":"                    }"},{"line_number":42,"context_line":"                ]"},{"line_number":43,"context_line":"            },"},{"line_number":44,"context_line":"            \"key_name\": null,"},{"line_number":45,"context_line":"            \"links\": ["},{"line_number":46,"context_line":"                {"},{"line_number":47,"context_line":"                    \"href\": \"%(versioned_compute_endpoint)s/servers/%(uuid)s\","},{"line_number":48,"context_line":"                    \"rel\": \"self\""},{"line_number":49,"context_line":"                },"},{"line_number":50,"context_line":"                {"},{"line_number":51,"context_line":"                    \"href\": \"%(compute_endpoint)s/servers/%(id)s\","},{"line_number":52,"context_line":"                    \"rel\": \"bookmark\""},{"line_number":53,"context_line":"                }"},{"line_number":54,"context_line":"            ],"},{"line_number":55,"context_line":"            \"metadata\": {"},{"line_number":56,"context_line":"                \"My Server Name\": \"Apache1\""},{"line_number":57,"context_line":"            },"},{"line_number":58,"context_line":"            \"name\": \"new-server-test\","},{"line_number":59,"context_line":"            \"config_drive\": \"%(cdrive)s\","},{"line_number":60,"context_line":"            \"OS-DCF:diskConfig\": \"AUTO\","},{"line_number":61,"context_line":"            \"OS-EXT-AZ:availability_zone\": \"nova\","},{"line_number":62,"context_line":"            \"OS-EXT-SRV-ATTR:host\": \"%(compute_host)s\","},{"line_number":63,"context_line":"            \"OS-EXT-SRV-ATTR:hostname\": \"%(hostname)s\","},{"line_number":64,"context_line":"            \"OS-EXT-SRV-ATTR:hypervisor_hostname\": \"%(hypervisor_hostname)s\","},{"line_number":65,"context_line":"            \"OS-EXT-SRV-ATTR:instance_name\": \"%(instance_name)s\","},{"line_number":66,"context_line":"            \"OS-EXT-SRV-ATTR:kernel_id\": \"\","},{"line_number":67,"context_line":"            \"OS-EXT-SRV-ATTR:launch_index\": 0,"},{"line_number":68,"context_line":"            \"OS-EXT-SRV-ATTR:ramdisk_id\": \"\","},{"line_number":69,"context_line":"            \"OS-EXT-SRV-ATTR:reservation_id\": \"%(reservation_id)s\","},{"line_number":70,"context_line":"            \"OS-EXT-SRV-ATTR:root_device_name\": \"/dev/sda\","},{"line_number":71,"context_line":"            \"OS-EXT-SRV-ATTR:user_data\": \"%(user_data)s\","},{"line_number":72,"context_line":"            \"OS-EXT-STS:power_state\": 1,"},{"line_number":73,"context_line":"            \"OS-EXT-STS:task_state\": null,"},{"line_number":74,"context_line":"            \"OS-EXT-STS:vm_state\": \"active\","},{"line_number":75,"context_line":"            \"os-extended-volumes:volumes_attached\": [],"},{"line_number":76,"context_line":"            \"OS-SRV-USG:launched_at\": \"%(strtime)s\","},{"line_number":77,"context_line":"            \"OS-SRV-USG:terminated_at\": null,"},{"line_number":78,"context_line":"            \"progress\": 0,"},{"line_number":79,"context_line":"            \"security_groups\": ["},{"line_number":80,"context_line":"                {"},{"line_number":81,"context_line":"                    \"name\": \"default\""},{"line_number":82,"context_line":"                }"},{"line_number":83,"context_line":"            ],"},{"line_number":84,"context_line":"            \"status\": \"ACTIVE\","},{"line_number":85,"context_line":"            \"tenant_id\": \"6f70656e737461636b20342065766572\","},{"line_number":86,"context_line":"            \"trusted_image_certificates\": ["},{"line_number":87,"context_line":"                \"0b5d2c72-12cc-4ba6-a8d7-3ff5cc1d8cb8\","},{"line_number":88,"context_line":"                \"674736e3-f25c-405c-8362-bbf991e0ce0a\""},{"line_number":89,"context_line":"            ],"},{"line_number":90,"context_line":"            \"updated\": \"%(isotime)s\","},{"line_number":91,"context_line":"            \"user_id\": \"fake\""},{"line_number":92,"context_line":"        }"},{"line_number":93,"context_line":"    ]"},{"line_number":94,"context_line":"}"}],"source_content_type":"text/x-smarty","patch_set":17,"id":"3f79a3b5_ceb0dd43","line":94,"range":{"start_line":1,"start_character":0,"end_line":94,"end_character":1},"updated":"2018-09-13 11:20:28.000000000","message":"This servers-list template is exactly that same as the servers-detail one, which shouldn\u0027t be the case.","commit_id":"a89cc11a932de0798a9271f71795f32fb20aa382"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"83dd42d52912a57381a6204d59346c844fb99061","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"servers\": ["},{"line_number":3,"context_line":"        {"},{"line_number":4,"context_line":"            \"accessIPv4\": \"%(access_ip_v4)s\","},{"line_number":5,"context_line":"            \"accessIPv6\": \"%(access_ip_v6)s\","},{"line_number":6,"context_line":"            \"addresses\": {"},{"line_number":7,"context_line":"                \"private\": ["},{"line_number":8,"context_line":"                    {"},{"line_number":9,"context_line":"                        \"addr\": \"%(ip)s\","},{"line_number":10,"context_line":"                        \"OS-EXT-IPS-MAC:mac_addr\": \"aa:bb:cc:dd:ee:ff\","},{"line_number":11,"context_line":"                        \"OS-EXT-IPS:type\": \"fixed\","},{"line_number":12,"context_line":"                        \"version\": 4"},{"line_number":13,"context_line":"                    }"},{"line_number":14,"context_line":"                ]"},{"line_number":15,"context_line":"            },"},{"line_number":16,"context_line":"            \"created\": \"%(isotime)s\","},{"line_number":17,"context_line":"            \"description\": null,"},{"line_number":18,"context_line":"            \"host_status\": \"UP\","},{"line_number":19,"context_line":"            \"locked\": false,"},{"line_number":20,"context_line":"            \"tags\": [],"},{"line_number":21,"context_line":"            \"flavor\": {"},{"line_number":22,"context_line":"                \"disk\": 1,"},{"line_number":23,"context_line":"                \"ephemeral\": 0,"},{"line_number":24,"context_line":"                \"extra_specs\": {"},{"line_number":25,"context_line":"                    \"hw:mem_page_size\": \"2048\","},{"line_number":26,"context_line":"                    \"hw:cpu_policy\": \"dedicated\""},{"line_number":27,"context_line":"                },"},{"line_number":28,"context_line":"                \"original_name\": \"m1.tiny.specs\","},{"line_number":29,"context_line":"                \"ram\": 512,"},{"line_number":30,"context_line":"                \"swap\": 0,"},{"line_number":31,"context_line":"                \"vcpus\": 1"},{"line_number":32,"context_line":"            },"},{"line_number":33,"context_line":"            \"hostId\": \"%(hostid)s\","},{"line_number":34,"context_line":"            \"id\": \"%(id)s\","},{"line_number":35,"context_line":"            \"image\": {"},{"line_number":36,"context_line":"                \"id\": \"%(uuid)s\","},{"line_number":37,"context_line":"                \"links\": ["},{"line_number":38,"context_line":"                    {"},{"line_number":39,"context_line":"                        \"href\": \"%(compute_endpoint)s/images/%(uuid)s\","},{"line_number":40,"context_line":"                        \"rel\": \"bookmark\""},{"line_number":41,"context_line":"                    }"},{"line_number":42,"context_line":"                ]"},{"line_number":43,"context_line":"            },"},{"line_number":44,"context_line":"            \"key_name\": null,"},{"line_number":45,"context_line":"            \"links\": ["},{"line_number":46,"context_line":"                {"},{"line_number":47,"context_line":"                    \"href\": \"%(versioned_compute_endpoint)s/servers/%(uuid)s\","},{"line_number":48,"context_line":"                    \"rel\": \"self\""},{"line_number":49,"context_line":"                },"},{"line_number":50,"context_line":"                {"},{"line_number":51,"context_line":"                    \"href\": \"%(compute_endpoint)s/servers/%(id)s\","},{"line_number":52,"context_line":"                    \"rel\": \"bookmark\""},{"line_number":53,"context_line":"                }"},{"line_number":54,"context_line":"            ],"},{"line_number":55,"context_line":"            \"metadata\": {"},{"line_number":56,"context_line":"                \"My Server Name\": \"Apache1\""},{"line_number":57,"context_line":"            },"},{"line_number":58,"context_line":"            \"name\": \"new-server-test\","},{"line_number":59,"context_line":"            \"config_drive\": \"%(cdrive)s\","},{"line_number":60,"context_line":"            \"OS-DCF:diskConfig\": \"AUTO\","},{"line_number":61,"context_line":"            \"OS-EXT-AZ:availability_zone\": \"nova\","},{"line_number":62,"context_line":"            \"OS-EXT-SRV-ATTR:host\": \"%(compute_host)s\","},{"line_number":63,"context_line":"            \"OS-EXT-SRV-ATTR:hostname\": \"%(hostname)s\","},{"line_number":64,"context_line":"            \"OS-EXT-SRV-ATTR:hypervisor_hostname\": \"%(hypervisor_hostname)s\","},{"line_number":65,"context_line":"            \"OS-EXT-SRV-ATTR:instance_name\": \"%(instance_name)s\","},{"line_number":66,"context_line":"            \"OS-EXT-SRV-ATTR:kernel_id\": \"\","},{"line_number":67,"context_line":"            \"OS-EXT-SRV-ATTR:launch_index\": 0,"},{"line_number":68,"context_line":"            \"OS-EXT-SRV-ATTR:ramdisk_id\": \"\","},{"line_number":69,"context_line":"            \"OS-EXT-SRV-ATTR:reservation_id\": \"%(reservation_id)s\","},{"line_number":70,"context_line":"            \"OS-EXT-SRV-ATTR:root_device_name\": \"/dev/sda\","},{"line_number":71,"context_line":"            \"OS-EXT-SRV-ATTR:user_data\": \"%(user_data)s\","},{"line_number":72,"context_line":"            \"OS-EXT-STS:power_state\": 1,"},{"line_number":73,"context_line":"            \"OS-EXT-STS:task_state\": null,"},{"line_number":74,"context_line":"            \"OS-EXT-STS:vm_state\": \"active\","},{"line_number":75,"context_line":"            \"os-extended-volumes:volumes_attached\": [],"},{"line_number":76,"context_line":"            \"OS-SRV-USG:launched_at\": \"%(strtime)s\","},{"line_number":77,"context_line":"            \"OS-SRV-USG:terminated_at\": null,"},{"line_number":78,"context_line":"            \"progress\": 0,"},{"line_number":79,"context_line":"            \"security_groups\": ["},{"line_number":80,"context_line":"                {"},{"line_number":81,"context_line":"                    \"name\": \"default\""},{"line_number":82,"context_line":"                }"},{"line_number":83,"context_line":"            ],"},{"line_number":84,"context_line":"            \"status\": \"ACTIVE\","},{"line_number":85,"context_line":"            \"tenant_id\": \"6f70656e737461636b20342065766572\","},{"line_number":86,"context_line":"            \"trusted_image_certificates\": ["},{"line_number":87,"context_line":"                \"0b5d2c72-12cc-4ba6-a8d7-3ff5cc1d8cb8\","},{"line_number":88,"context_line":"                \"674736e3-f25c-405c-8362-bbf991e0ce0a\""},{"line_number":89,"context_line":"            ],"},{"line_number":90,"context_line":"            \"updated\": \"%(isotime)s\","},{"line_number":91,"context_line":"            \"user_id\": \"fake\""},{"line_number":92,"context_line":"        }"},{"line_number":93,"context_line":"    ]"},{"line_number":94,"context_line":"}"}],"source_content_type":"text/x-smarty","patch_set":17,"id":"3f79a3b5_f10fb82c","line":94,"range":{"start_line":1,"start_character":0,"end_line":94,"end_character":1},"in_reply_to":"3f79a3b5_ceb0dd43","updated":"2018-09-13 12:32:25.000000000","message":"Yeah, I ignored this, thank you.","commit_id":"a89cc11a932de0798a9271f71795f32fb20aa382"}],"nova/tests/functional/api_sample_tests/test_instance_actions.py":[{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"81c980cb2b4c9aed60cd15b53aaa42b93048196f","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    scenarios \u003d [(\u0027v2_66\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def test_instance_actions_with_timestamp_filter(self):"},{"line_number":149,"context_line":"        stop_action_time \u003d self.action_stop[\u0027start_time\u0027]"},{"line_number":150,"context_line":"        response \u003d self._do_get("},{"line_number":151,"context_line":"            \u0027servers/%s/os-instance-actions\u0027"},{"line_number":152,"context_line":"            \u0027?changes-before\u003d%s\u0027 % (self.uuid, stop_action_time))"}],"source_content_type":"text/x-python","patch_set":18,"id":"3f79a3b5_632f503e","line":149,"updated":"2018-09-14 02:21:45.000000000","message":"So now we have 2 actions, I dump the real response:\n\n{\n\t\"instanceActions\": [{\n\t\t\"instance_uuid\": \"958f0abb-dfd0-4f15-b4da-876df2af8849\",\n\t\t\"user_id\": \"admin\",\n\t\t\"start_time\": \"2018-09-14T02:06:24.687363\",\n\t\t\"updated_at\": \"2018-09-14T02:06:24.893318\",\n\t\t\"request_id\": \"req-9cca57b7-5a46-46d5-a743-0f3faac5a0f8\",\n\t\t\"action\": \"stop\",\n\t\t\"message\": null,\n\t\t\"project_id\": \"6f70656e737461636b20342065766572\"\n\t}, {\n\t\t\"instance_uuid\": \"958f0abb-dfd0-4f15-b4da-876df2af8849\",\n\t\t\"user_id\": \"admin\",\n\t\t\"start_time\": \"2018-09-14T02:06:23.057143\",\n\t\t\"updated_at\": \"2018-09-14T02:06:24.668536\",\n\t\t\"request_id\": \"req-7089100f-57cd-4cbb-a2e8-5cd197ebc6b0\",\n\t\t\"action\": \"create\",\n\t\t\"message\": null,\n\t\t\"project_id\": \"6f70656e737461636b20342065766572\"\n\t}]\n}\n\nIf you set ``changes-before \u003d self.action_stop[\u0027start_time\u0027]``, you will only get one action in here, but your template[1] including 2 actions.\n\nSo, you can change it to \"stop_action_time \u003d self.action_stop[\u0027updated_at\u0027]\"\n\nAnd the other thing is you shouldn\u0027t overwrite this function (it is for changes-since), so you need keep the original test_instance_actions_with_timestamp_filter for changes-since test, and add new test(and related tpl、sample file ) for change-before test.\n\n\n\n[1] https://review.openstack.org/#/c/599276/18/nova/tests/functional/api_sample_tests/api_samples/os-instance-actions/v2.66/instance-actions-list-with-timestamp-filter.json.tpl","commit_id":"71ed94cd76dcec703ef996e71f7e72bf44dae065"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"0677ae3550000afaca8c8ce620763be9811fc3b5","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    scenarios \u003d [(\u0027v2_66\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def test_instance_actions_with_timestamp_filter(self):"},{"line_number":149,"context_line":"        stop_action_time \u003d self.action_stop[\u0027start_time\u0027]"},{"line_number":150,"context_line":"        response \u003d self._do_get("},{"line_number":151,"context_line":"            \u0027servers/%s/os-instance-actions\u0027"},{"line_number":152,"context_line":"            \u0027?changes-before\u003d%s\u0027 % (self.uuid, stop_action_time))"}],"source_content_type":"text/x-python","patch_set":18,"id":"3f79a3b5_e965814a","line":149,"in_reply_to":"3f79a3b5_632f503e","updated":"2018-09-14 06:54:32.000000000","message":"Done","commit_id":"71ed94cd76dcec703ef996e71f7e72bf44dae065"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"56405ee6c5034199522de35b7669c60ad0594a04","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    scenarios \u003d [(\u0027v2_66\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def test_instance_actions_with_timestamp_filter(self):"},{"line_number":149,"context_line":"        stop_action_time \u003d self.action_stop[\u0027start_time\u0027]"},{"line_number":150,"context_line":"        response \u003d self._do_get("},{"line_number":151,"context_line":"            \u0027servers/%s/os-instance-actions\u0027"},{"line_number":152,"context_line":"            \u0027?changes-before\u003d%s\u0027 % (self.uuid, stop_action_time))"}],"source_content_type":"text/x-python","patch_set":18,"id":"3f79a3b5_29d299d2","line":149,"in_reply_to":"3f79a3b5_e965814a","updated":"2018-09-14 06:59:42.000000000","message":"Thank you yikun for rename the v_299 of os-migrations\u0027s doc and test file.","commit_id":"71ed94cd76dcec703ef996e71f7e72bf44dae065"}],"nova/tests/functional/api_sample_tests/test_migrations.py":[{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"bcd5e858125f90c54cbdab14de13d9589c5b10da","unresolved":false,"context_lines":[{"line_number":290,"context_line":"            \u0027os-migrations?changes-since\u003d2016-06-23T13:42:01.000000\u0027)"},{"line_number":291,"context_line":"        self.assertEqual(200, response.status_code)"},{"line_number":292,"context_line":"        self._verify_response("},{"line_number":293,"context_line":"            \u0027migrations-get-with-changes-since\u0027,"},{"line_number":294,"context_line":"            {\"instance_2\": INSTANCE_UUID_2}, response, 200)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"3f79a3b5_e94ee1c0","line":293,"range":{"start_line":293,"start_character":13,"end_line":293,"end_character":46},"updated":"2018-09-14 07:03:54.000000000","message":"The 2_66 also need sample this sample file and tpl file\n\nI mean:\n\nnova/tests/functional/api_sample_tests/api_samples/os-migrations/v2.66/migrations-get-with-changes-since.json.tpl\ndoc/api_samples/os-migrations/v2.66/migrations-get-with-changes-since.json","commit_id":"b019ec8de89f8cffce46f3800febc8c316a5a060"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"80b3da0f64369f88dee4d7d680d9b5ab7d9c936c","unresolved":false,"context_lines":[{"line_number":290,"context_line":"            \u0027os-migrations?changes-since\u003d2016-06-23T13:42:01.000000\u0027)"},{"line_number":291,"context_line":"        self.assertEqual(200, response.status_code)"},{"line_number":292,"context_line":"        self._verify_response("},{"line_number":293,"context_line":"            \u0027migrations-get-with-changes-since\u0027,"},{"line_number":294,"context_line":"            {\"instance_2\": INSTANCE_UUID_2}, response, 200)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"3f79a3b5_5a1231b6","line":293,"range":{"start_line":293,"start_character":13,"end_line":293,"end_character":46},"in_reply_to":"3f79a3b5_e94ee1c0","updated":"2018-09-14 10:44:53.000000000","message":"Done","commit_id":"b019ec8de89f8cffce46f3800febc8c316a5a060"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":297,"context_line":"class MigrationsSamplesJsonTestV2_66(MigrationsSamplesJsonTestV2_59):"},{"line_number":298,"context_line":"    microversion \u003d \u00272.66\u0027"},{"line_number":299,"context_line":"    scenarios \u003d [(\u0027v2_66\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":300,"context_line":"    fake_migrations \u003d ["},{"line_number":301,"context_line":"        # in-progress live-migration."},{"line_number":302,"context_line":"        {"},{"line_number":303,"context_line":"            \u0027source_node\u0027: \u0027node1\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_102d4a45","line":300,"updated":"2018-09-17 19:18:49.000000000","message":"Why do we need to redefine this variable? It should already exist because of the inheritance on MigrationsSamplesJsonTestV2_59.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":297,"context_line":"class MigrationsSamplesJsonTestV2_66(MigrationsSamplesJsonTestV2_59):"},{"line_number":298,"context_line":"    microversion \u003d \u00272.66\u0027"},{"line_number":299,"context_line":"    scenarios \u003d [(\u0027v2_66\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":300,"context_line":"    fake_migrations \u003d ["},{"line_number":301,"context_line":"        # in-progress live-migration."},{"line_number":302,"context_line":"        {"},{"line_number":303,"context_line":"            \u0027source_node\u0027: \u0027node1\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_a220c54a","line":300,"in_reply_to":"3f79a3b5_102d4a45","updated":"2018-09-18 13:30:19.000000000","message":"Yeah, excessive here, remove it.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"}],"nova/tests/functional/api_sample_tests/test_servers.py":[{"author":{"_account_id":25562,"name":"Chen","email":"dstbtgagt@foxmail.com","username":"chenn2"},"change_message_id":"8b99cd98cae45fad20bb73dad2c8b4160ccc3971","unresolved":false,"context_lines":[{"line_number":332,"context_line":"    def test_get_servers_list_timestamp_filter(self):"},{"line_number":333,"context_line":"        uuid \u003d self._post_server(use_common_server_api_samples\u003dFalse)"},{"line_number":334,"context_line":"        response \u003d self._do_get("},{"line_number":335,"context_line":"            \u0027servers?changes-before\u003d2018-02-14T15:24:00Z\u0027)"},{"line_number":336,"context_line":"        subs \u003d self.common_subs.copy()"},{"line_number":337,"context_line":"        subs[\u0027id\u0027] \u003d uuid"},{"line_number":338,"context_line":"        self._verify_response("}],"source_content_type":"text/x-python","patch_set":17,"id":"3f79a3b5_6e73c9b5","line":335,"range":{"start_line":335,"start_character":36,"end_line":335,"end_character":56},"updated":"2018-09-13 11:20:28.000000000","message":"It seems that this time point is too early compared to that in the passed test case below.","commit_id":"a89cc11a932de0798a9271f71795f32fb20aa382"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"83dd42d52912a57381a6204d59346c844fb99061","unresolved":false,"context_lines":[{"line_number":332,"context_line":"    def test_get_servers_list_timestamp_filter(self):"},{"line_number":333,"context_line":"        uuid \u003d self._post_server(use_common_server_api_samples\u003dFalse)"},{"line_number":334,"context_line":"        response \u003d self._do_get("},{"line_number":335,"context_line":"            \u0027servers?changes-before\u003d2018-02-14T15:24:00Z\u0027)"},{"line_number":336,"context_line":"        subs \u003d self.common_subs.copy()"},{"line_number":337,"context_line":"        subs[\u0027id\u0027] \u003d uuid"},{"line_number":338,"context_line":"        self._verify_response("}],"source_content_type":"text/x-python","patch_set":17,"id":"3f79a3b5_b16060d1","line":335,"range":{"start_line":335,"start_character":36,"end_line":335,"end_character":56},"in_reply_to":"3f79a3b5_6e73c9b5","updated":"2018-09-13 12:32:25.000000000","message":"I think this time is ok, we can return the servers(updated_at time) earlier than \"2018-02-14T15:24:00Z\", with the data first of \"doc.api_samples.servers.v2.66.server-get-resp.json\".\nOr is it something wrong with me somewhere?","commit_id":"a89cc11a932de0798a9271f71795f32fb20aa382"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"bcd5e858125f90c54cbdab14de13d9589c5b10da","unresolved":false,"context_lines":[{"line_number":329,"context_line":"            \u0027cdrive\u0027: \u0027.*\u0027,"},{"line_number":330,"context_line":"        }"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"    def test_get_servers_list_timestamp_filter(self):"},{"line_number":333,"context_line":"        uuid \u003d self._post_server(use_common_server_api_samples\u003dFalse)"},{"line_number":334,"context_line":"        response \u003d self._do_get("},{"line_number":335,"context_line":"            \u0027servers?changes-before\u003d2018-02-14T15:24:00Z\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"3f79a3b5_e98101a2","line":332,"range":{"start_line":332,"start_character":8,"end_line":332,"end_character":46},"updated":"2018-09-14 07:03:54.000000000","message":"It\u0027s better call this to test_get_servers_list_with_changes-before, and sample/tpl file also need rename to XXX_with_changes-before. It\u0027s more clear.","commit_id":"b019ec8de89f8cffce46f3800febc8c316a5a060"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"80b3da0f64369f88dee4d7d680d9b5ab7d9c936c","unresolved":false,"context_lines":[{"line_number":329,"context_line":"            \u0027cdrive\u0027: \u0027.*\u0027,"},{"line_number":330,"context_line":"        }"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"    def test_get_servers_list_timestamp_filter(self):"},{"line_number":333,"context_line":"        uuid \u003d self._post_server(use_common_server_api_samples\u003dFalse)"},{"line_number":334,"context_line":"        response \u003d self._do_get("},{"line_number":335,"context_line":"            \u0027servers?changes-before\u003d2018-02-14T15:24:00Z\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"3f79a3b5_2f7139a9","line":332,"range":{"start_line":332,"start_character":8,"end_line":332,"end_character":46},"in_reply_to":"3f79a3b5_e98101a2","updated":"2018-09-14 10:44:53.000000000","message":"Done","commit_id":"b019ec8de89f8cffce46f3800febc8c316a5a060"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"713a96ef4b060308c30d840befa9cebf21fc31a6","unresolved":false,"context_lines":[{"line_number":332,"context_line":"    def test_get_servers_list_timestamp_filter(self):"},{"line_number":333,"context_line":"        uuid \u003d self._post_server(use_common_server_api_samples\u003dFalse)"},{"line_number":334,"context_line":"        response \u003d self._do_get("},{"line_number":335,"context_line":"            \u0027servers?changes-before\u003d2018-02-14T15:24:00Z\u0027)"},{"line_number":336,"context_line":"        subs \u003d self.common_subs.copy()"},{"line_number":337,"context_line":"        subs[\u0027id\u0027] \u003d uuid"},{"line_number":338,"context_line":"        self._verify_response("}],"source_content_type":"text/x-python","patch_set":19,"id":"3f79a3b5_340aec1f","line":335,"range":{"start_line":335,"start_character":36,"end_line":335,"end_character":56},"updated":"2018-09-14 07:19:31.000000000","message":"wrong time, you need get the real updated time when you create server.","commit_id":"b019ec8de89f8cffce46f3800febc8c316a5a060"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"80b3da0f64369f88dee4d7d680d9b5ab7d9c936c","unresolved":false,"context_lines":[{"line_number":332,"context_line":"    def test_get_servers_list_timestamp_filter(self):"},{"line_number":333,"context_line":"        uuid \u003d self._post_server(use_common_server_api_samples\u003dFalse)"},{"line_number":334,"context_line":"        response \u003d self._do_get("},{"line_number":335,"context_line":"            \u0027servers?changes-before\u003d2018-02-14T15:24:00Z\u0027)"},{"line_number":336,"context_line":"        subs \u003d self.common_subs.copy()"},{"line_number":337,"context_line":"        subs[\u0027id\u0027] \u003d uuid"},{"line_number":338,"context_line":"        self._verify_response("}],"source_content_type":"text/x-python","patch_set":19,"id":"3f79a3b5_fa377d4a","line":335,"range":{"start_line":335,"start_character":36,"end_line":335,"end_character":56},"in_reply_to":"3f79a3b5_340aec1f","updated":"2018-09-14 10:44:53.000000000","message":"Yeah, I will have a try.","commit_id":"b019ec8de89f8cffce46f3800febc8c316a5a060"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"bcd5e858125f90c54cbdab14de13d9589c5b10da","unresolved":false,"context_lines":[{"line_number":339,"context_line":"            \u0027servers-list-with-timestamp-filter\u0027,"},{"line_number":340,"context_line":"            subs, response, 200)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    def test_get_servers_detail_timestamp_filter(self):"},{"line_number":343,"context_line":"        uuid \u003d self._post_server(use_common_server_api_samples\u003dFalse)"},{"line_number":344,"context_line":"        response \u003d self._do_get("},{"line_number":345,"context_line":"            \u0027servers/detail?changes-before\u003d2018-10-10T15:49:09Z\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"3f79a3b5_a98b09be","line":342,"range":{"start_line":342,"start_character":8,"end_line":342,"end_character":48},"updated":"2018-09-14 07:03:54.000000000","message":"ditto","commit_id":"b019ec8de89f8cffce46f3800febc8c316a5a060"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"80b3da0f64369f88dee4d7d680d9b5ab7d9c936c","unresolved":false,"context_lines":[{"line_number":339,"context_line":"            \u0027servers-list-with-timestamp-filter\u0027,"},{"line_number":340,"context_line":"            subs, response, 200)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    def test_get_servers_detail_timestamp_filter(self):"},{"line_number":343,"context_line":"        uuid \u003d self._post_server(use_common_server_api_samples\u003dFalse)"},{"line_number":344,"context_line":"        response \u003d self._do_get("},{"line_number":345,"context_line":"            \u0027servers/detail?changes-before\u003d2018-10-10T15:49:09Z\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"3f79a3b5_cf6765ea","line":342,"range":{"start_line":342,"start_character":8,"end_line":342,"end_character":48},"in_reply_to":"3f79a3b5_a98b09be","updated":"2018-09-14 10:44:53.000000000","message":"Done","commit_id":"b019ec8de89f8cffce46f3800febc8c316a5a060"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"713a96ef4b060308c30d840befa9cebf21fc31a6","unresolved":false,"context_lines":[{"line_number":342,"context_line":"    def test_get_servers_detail_timestamp_filter(self):"},{"line_number":343,"context_line":"        uuid \u003d self._post_server(use_common_server_api_samples\u003dFalse)"},{"line_number":344,"context_line":"        response \u003d self._do_get("},{"line_number":345,"context_line":"            \u0027servers/detail?changes-before\u003d2018-10-10T15:49:09Z\u0027)"},{"line_number":346,"context_line":"        subs \u003d self.common_subs.copy()"},{"line_number":347,"context_line":"        subs[\u0027id\u0027] \u003d uuid"},{"line_number":348,"context_line":"        self._verify_response("}],"source_content_type":"text/x-python","patch_set":19,"id":"3f79a3b5_d4105852","line":345,"range":{"start_line":345,"start_character":43,"end_line":345,"end_character":63},"updated":"2018-09-14 07:19:31.000000000","message":"ditto","commit_id":"b019ec8de89f8cffce46f3800febc8c316a5a060"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"80b3da0f64369f88dee4d7d680d9b5ab7d9c936c","unresolved":false,"context_lines":[{"line_number":342,"context_line":"    def test_get_servers_detail_timestamp_filter(self):"},{"line_number":343,"context_line":"        uuid \u003d self._post_server(use_common_server_api_samples\u003dFalse)"},{"line_number":344,"context_line":"        response \u003d self._do_get("},{"line_number":345,"context_line":"            \u0027servers/detail?changes-before\u003d2018-10-10T15:49:09Z\u0027)"},{"line_number":346,"context_line":"        subs \u003d self.common_subs.copy()"},{"line_number":347,"context_line":"        subs[\u0027id\u0027] \u003d uuid"},{"line_number":348,"context_line":"        self._verify_response("}],"source_content_type":"text/x-python","patch_set":19,"id":"3f79a3b5_9a4689c0","line":345,"range":{"start_line":345,"start_character":43,"end_line":345,"end_character":63},"in_reply_to":"3f79a3b5_d4105852","updated":"2018-09-14 10:44:53.000000000","message":"Done","commit_id":"b019ec8de89f8cffce46f3800febc8c316a5a060"}],"nova/tests/unit/api/openstack/compute/test_instance_actions.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":324,"context_line":"class InstanceActionsTestV266(InstanceActionsTestV258):"},{"line_number":325,"context_line":"    wsgi_api_version \u003d \"2.66\""},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"    def test_get_action_with_invalid_changes_before(self):"},{"line_number":328,"context_line":"        \"\"\"Tests get paging with a invalid changes-before.\"\"\""},{"line_number":329,"context_line":"        req \u003d self._get_http_req(\u0027os-instance-actions?\u0027"},{"line_number":330,"context_line":"                                 \u0027changes-before\u003dwrong_time\u0027)"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_30d72626","line":327,"updated":"2018-09-17 19:18:49.000000000","message":"Add a test where the changes-before filter is used with microversion 2.65, it should also fail with a schema validation error because that parameter is not allowed by the schema until 2.66.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":324,"context_line":"class InstanceActionsTestV266(InstanceActionsTestV258):"},{"line_number":325,"context_line":"    wsgi_api_version \u003d \"2.66\""},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"    def test_get_action_with_invalid_changes_before(self):"},{"line_number":328,"context_line":"        \"\"\"Tests get paging with a invalid changes-before.\"\"\""},{"line_number":329,"context_line":"        req \u003d self._get_http_req(\u0027os-instance-actions?\u0027"},{"line_number":330,"context_line":"                                 \u0027changes-before\u003dwrong_time\u0027)"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_3ce4d5a7","line":327,"in_reply_to":"3f79a3b5_30d72626","updated":"2018-09-18 13:30:19.000000000","message":"Add test case to valid the ``changes-before`` parameter used before 2.66.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2566c7ca7ec53b34f621db29dcda7c46811de9ca","unresolved":false,"context_lines":[{"line_number":341,"context_line":"                      six.text_type(ex))"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"    def test_get_action_with_changes_before_old_microversion(self):"},{"line_number":344,"context_line":"        \"\"\"Tests that the changes-before query parameter is ignored before"},{"line_number":345,"context_line":"        microversion 2.66."},{"line_number":346,"context_line":"        \"\"\""},{"line_number":347,"context_line":"        param \u003d \u0027changes-before\u003d2018-09-13T15:13:03Z\u0027"}],"source_content_type":"text/x-python","patch_set":25,"id":"3f79a3b5_43cf6256","line":344,"range":{"start_line":344,"start_character":57,"end_line":344,"end_character":67},"updated":"2018-09-18 21:54:49.000000000","message":"It\u0027s not ignored, it\u0027s a failure.","commit_id":"17e01b85a4c66660c85edfd996cc9ad2b9f92dd8"}],"nova/tests/unit/api/openstack/compute/test_migrations.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        self.assertRaises(exception.ValidationError,"},{"line_number":324,"context_line":"                          self.controller.index, req)"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"    def test_index_with_unknown_query_param(self):"},{"line_number":327,"context_line":"        \"\"\"Tests detail paging with an unknown query parameter.\"\"\""},{"line_number":328,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":329,"context_line":"            \u0027/os-migrations?foo\u003dbar\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_30c08650","side":"PARENT","line":326,"range":{"start_line":326,"start_character":8,"end_line":326,"end_character":43},"updated":"2018-09-17 19:18:49.000000000","message":"You shouldn\u0027t be removing this, it means you regressed 2.59:\n\nhttps://review.openstack.org/#/c/599276/23/nova/api/openstack/compute/schemas/migrations.py","commit_id":"142e394a38caebc75f5c20df65518b5d58251dcb"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        self.assertRaises(exception.ValidationError,"},{"line_number":324,"context_line":"                          self.controller.index, req)"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"    def test_index_with_unknown_query_param(self):"},{"line_number":327,"context_line":"        \"\"\"Tests detail paging with an unknown query parameter.\"\"\""},{"line_number":328,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":329,"context_line":"            \u0027/os-migrations?foo\u003dbar\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_5d83cb03","side":"PARENT","line":326,"range":{"start_line":326,"start_character":8,"end_line":326,"end_character":43},"in_reply_to":"3f79a3b5_30c08650","updated":"2018-09-18 13:30:19.000000000","message":"Restore it.","commit_id":"142e394a38caebc75f5c20df65518b5d58251dcb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":345,"context_line":"class MigrationTestCaseV266(MigrationsTestCaseV259):"},{"line_number":346,"context_line":"    wsgi_api_version \u003d \u00272.66\u0027"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"    def setUp(self):"},{"line_number":349,"context_line":"        \"\"\"Run before each test.\"\"\""},{"line_number":350,"context_line":"        super(MigrationTestCaseV266, self).setUp()"},{"line_number":351,"context_line":"        self.req \u003d fakes.HTTPRequest.blank("},{"line_number":352,"context_line":"            \u0027\u0027, version\u003dself.wsgi_api_version, use_admin_context\u003dTrue)"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    def test_index_with_unknown_query_param(self):"},{"line_number":355,"context_line":"        \"\"\"Tests detail paging with an unknown query parameter.\"\"\""}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_d0a592b5","line":352,"range":{"start_line":348,"start_character":4,"end_line":352,"end_character":70},"updated":"2018-09-17 19:18:49.000000000","message":"There is no point to this, you create a fresh request in each test.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":345,"context_line":"class MigrationTestCaseV266(MigrationsTestCaseV259):"},{"line_number":346,"context_line":"    wsgi_api_version \u003d \u00272.66\u0027"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"    def setUp(self):"},{"line_number":349,"context_line":"        \"\"\"Run before each test.\"\"\""},{"line_number":350,"context_line":"        super(MigrationTestCaseV266, self).setUp()"},{"line_number":351,"context_line":"        self.req \u003d fakes.HTTPRequest.blank("},{"line_number":352,"context_line":"            \u0027\u0027, version\u003dself.wsgi_api_version, use_admin_context\u003dTrue)"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    def test_index_with_unknown_query_param(self):"},{"line_number":355,"context_line":"        \"\"\"Tests detail paging with an unknown query parameter.\"\"\""}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_c2238104","line":352,"range":{"start_line":348,"start_character":4,"end_line":352,"end_character":70},"in_reply_to":"3f79a3b5_d0a592b5","updated":"2018-09-18 13:30:19.000000000","message":"Remove \"setUp()\".","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":351,"context_line":"        self.req \u003d fakes.HTTPRequest.blank("},{"line_number":352,"context_line":"            \u0027\u0027, version\u003dself.wsgi_api_version, use_admin_context\u003dTrue)"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    def test_index_with_unknown_query_param(self):"},{"line_number":355,"context_line":"        \"\"\"Tests detail paging with an unknown query parameter.\"\"\""},{"line_number":356,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":357,"context_line":"            \u0027/os-migrations?foo\u003dbar\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_f083ee01","line":354,"range":{"start_line":354,"start_character":8,"end_line":354,"end_character":43},"updated":"2018-09-17 19:18:49.000000000","message":"Restore this in the parent class.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":351,"context_line":"        self.req \u003d fakes.HTTPRequest.blank("},{"line_number":352,"context_line":"            \u0027\u0027, version\u003dself.wsgi_api_version, use_admin_context\u003dTrue)"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    def test_index_with_unknown_query_param(self):"},{"line_number":355,"context_line":"        \"\"\"Tests detail paging with an unknown query parameter.\"\"\""},{"line_number":356,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":357,"context_line":"            \u0027/os-migrations?foo\u003dbar\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_020e598b","line":354,"range":{"start_line":354,"start_character":8,"end_line":354,"end_character":43},"in_reply_to":"3f79a3b5_f083ee01","updated":"2018-09-18 13:30:19.000000000","message":"Done","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":371,"context_line":""},{"line_number":372,"context_line":"    @mock.patch(\u0027nova.compute.api.API.get_migrations_sorted\u0027,"},{"line_number":373,"context_line":"                return_value\u003dobjects.MigrationList())"},{"line_number":374,"context_line":"    def test_index_with_changes_before_old_microversion(self,"},{"line_number":375,"context_line":"                get_migrations_sorted):"},{"line_number":376,"context_line":"        \"\"\"Tests that the changes-before query parameter is ignored before"},{"line_number":377,"context_line":"        microversion 2.66."}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_5072e24b","line":374,"updated":"2018-09-17 19:18:49.000000000","message":"This is only passing because of the regression noted in 2.59.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":371,"context_line":""},{"line_number":372,"context_line":"    @mock.patch(\u0027nova.compute.api.API.get_migrations_sorted\u0027,"},{"line_number":373,"context_line":"                return_value\u003dobjects.MigrationList())"},{"line_number":374,"context_line":"    def test_index_with_changes_before_old_microversion(self,"},{"line_number":375,"context_line":"                get_migrations_sorted):"},{"line_number":376,"context_line":"        \"\"\"Tests that the changes-before query parameter is ignored before"},{"line_number":377,"context_line":"        microversion 2.66."}],"source_content_type":"text/x-python","patch_set":23,"id":"3f79a3b5_bd98df75","line":374,"in_reply_to":"3f79a3b5_5072e24b","updated":"2018-09-18 13:30:19.000000000","message":"Modify this test case.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2566c7ca7ec53b34f621db29dcda7c46811de9ca","unresolved":false,"context_lines":[{"line_number":364,"context_line":"                          self.controller.index, req)"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"    def test_index_with_changes_before_old_microversion_failed(self):"},{"line_number":367,"context_line":"        \"\"\"Tests that the changes-before query parameter is ignored before"},{"line_number":368,"context_line":"        microversion 2.66."},{"line_number":369,"context_line":"        \"\"\""},{"line_number":370,"context_line":"        # Also use a valid filter (instance_uuid) to make sure"}],"source_content_type":"text/x-python","patch_set":25,"id":"3f79a3b5_23eb46a4","line":367,"range":{"start_line":367,"start_character":57,"end_line":367,"end_character":67},"updated":"2018-09-18 21:54:49.000000000","message":"It\u0027s not ignored in this case because 2.65 is used and schema validation changed to additionalProperties\u003dFalse in 2.59. So while this is a good test, we also need one for passing changes-before with microversion\u003d2.58 before additional properties were restricted.","commit_id":"17e01b85a4c66660c85edfd996cc9ad2b9f92dd8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b18ce794a1d8f3215b18e32cac66a33d616da79f","unresolved":false,"context_lines":[{"line_number":385,"context_line":"        microversion 2.59."},{"line_number":386,"context_line":"        \"\"\""},{"line_number":387,"context_line":"        # Also use a valid filter (instance_uuid) to make sure only"},{"line_number":388,"context_line":"        # changes-since is removed."},{"line_number":389,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":390,"context_line":"            \u0027/os-migrations?changes-before\u003d2018-01-10T16:59:24.138939\u0026\u0027"},{"line_number":391,"context_line":"            \u0027instance_uuid\u003d%s\u0027 % uuids.instance_uuid,"}],"source_content_type":"text/x-python","patch_set":27,"id":"3f79a3b5_f50df2e6","line":388,"range":{"start_line":388,"start_character":18,"end_line":388,"end_character":23},"updated":"2018-09-19 13:46:08.000000000","message":"before","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"02379145d5e5c63123b79c0011fc5ab55a19d1fe","unresolved":false,"context_lines":[{"line_number":385,"context_line":"        microversion 2.59."},{"line_number":386,"context_line":"        \"\"\""},{"line_number":387,"context_line":"        # Also use a valid filter (instance_uuid) to make sure only"},{"line_number":388,"context_line":"        # changes-since is removed."},{"line_number":389,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":390,"context_line":"            \u0027/os-migrations?changes-before\u003d2018-01-10T16:59:24.138939\u0026\u0027"},{"line_number":391,"context_line":"            \u0027instance_uuid\u003d%s\u0027 % uuids.instance_uuid,"}],"source_content_type":"text/x-python","patch_set":27,"id":"3f79a3b5_3565aa45","line":388,"range":{"start_line":388,"start_character":18,"end_line":388,"end_character":23},"in_reply_to":"3f79a3b5_f50df2e6","updated":"2018-09-19 13:55:58.000000000","message":"Done","commit_id":"065dde5fa3f04bfc58fd545398b3b80791d83e49"}],"nova/tests/unit/api/openstack/compute/test_serversV21.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":1184,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest, self.controller.index,"},{"line_number":1185,"context_line":"                          req)"},{"line_number":1186,"context_line":""},{"line_number":1187,"context_line":"    def test_get_servers_allows_changes_before(self):"},{"line_number":1188,"context_line":"        def fake_get_all(context, search_opts\u003dNone,"},{"line_number":1189,"context_line":"                         limit\u003dNone, marker\u003dNone,"},{"line_number":1190,"context_line":"                         expected_attrs\u003dNone, sort_keys\u003dNone, sort_dirs\u003dNone):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_7fc8bfa6","line":1187,"updated":"2018-09-07 18:48:56.000000000","message":"The new tests should be in a 2.66 specific test class. I was also going to ask for a negative test where changes-before is specific before 2.66 but I think we have additionalProperties\u003dTrue on the servers query param schema so it wouldn\u0027t fail - we might want to consider changing that in this microversion. Let\u0027s see what alex_xu and gmann think.\n\n--\n\nYou also need tests for instance actions and migrations.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":1184,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest, self.controller.index,"},{"line_number":1185,"context_line":"                          req)"},{"line_number":1186,"context_line":""},{"line_number":1187,"context_line":"    def test_get_servers_allows_changes_before(self):"},{"line_number":1188,"context_line":"        def fake_get_all(context, search_opts\u003dNone,"},{"line_number":1189,"context_line":"                         limit\u003dNone, marker\u003dNone,"},{"line_number":1190,"context_line":"                         expected_attrs\u003dNone, sort_keys\u003dNone, sort_dirs\u003dNone):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_17d8807c","line":1187,"in_reply_to":"3f79a3b5_7fc8bfa6","updated":"2018-09-09 11:03:22.000000000","message":"--\"The new tests should be in a 2.66 specific test class. I was also going to ask for a negative test where changes-before is specific before 2.66 but I think we have additionalProperties\u003dTrue on the servers query param schema so it wouldn\u0027t fail - we might want to consider changing that in this microversion. Let\u0027s see what alex_xu and gmann think.\"\n\nI\u0027ll add tests in the specific test class.\nYes, additionalProperties\u003dTrue caused a functional failure,so..?\n\n--\"You also need tests for instance actions and migrations.\"\nYeah, I\u0027m doing.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"}],"nova/tests/unit/db/test_db_api.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":2143,"context_line":"                                                filters)"},{"line_number":2144,"context_line":"        self._assertEqualListsOfInstances([i2], result)"},{"line_number":2145,"context_line":""},{"line_number":2146,"context_line":"    def test_instance_get_all_by_filters_changes_before(self):"},{"line_number":2147,"context_line":"        i1 \u003d self.create_instance_with_args(updated_at\u003d"},{"line_number":2148,"context_line":"                                            \u00272013-12-05T15:03:25.000000\u0027)"},{"line_number":2149,"context_line":"        i2 \u003d self.create_instance_with_args(updated_at\u003d"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_5fc1437f","line":2146,"updated":"2018-09-07 18:48:56.000000000","message":"You also need tests for instance actions and migrations.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":2143,"context_line":"                                                filters)"},{"line_number":2144,"context_line":"        self._assertEqualListsOfInstances([i2], result)"},{"line_number":2145,"context_line":""},{"line_number":2146,"context_line":"    def test_instance_get_all_by_filters_changes_before(self):"},{"line_number":2147,"context_line":"        i1 \u003d self.create_instance_with_args(updated_at\u003d"},{"line_number":2148,"context_line":"                                            \u00272013-12-05T15:03:25.000000\u0027)"},{"line_number":2149,"context_line":"        i2 \u003d self.create_instance_with_args(updated_at\u003d"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_b7e2ec2e","line":2146,"in_reply_to":"3f79a3b5_5fc1437f","updated":"2018-09-09 11:03:22.000000000","message":"Yeah, I\u0027m doing.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"}],"releasenotes/notes/add-whitelist-for-server-list-filter-sort-params-2ae766d03ba895e5.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2138cff8dbdea1f0ccf26a8d60f51a21157f066a","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    - availability_zone"},{"line_number":17,"context_line":"    - config_drive"},{"line_number":18,"context_line":"    - changes-since"},{"line_number":19,"context_line":"    - changes-before    (available in 2.66+)"},{"line_number":20,"context_line":"    - created_at"},{"line_number":21,"context_line":"    - deleted"},{"line_number":22,"context_line":"    - description"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3f79a3b5_84e312d8","line":19,"updated":"2018-09-07 18:48:56.000000000","message":"You can\u0027t update an old release note for this, please provide a new release note for this change which points out the new filter parameter in the 3 APIs and the new microversion.","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c30d621cc768781ccd59099578d7471d5c6580c0","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    - availability_zone"},{"line_number":17,"context_line":"    - config_drive"},{"line_number":18,"context_line":"    - changes-since"},{"line_number":19,"context_line":"    - changes-before    (available in 2.66+)"},{"line_number":20,"context_line":"    - created_at"},{"line_number":21,"context_line":"    - deleted"},{"line_number":22,"context_line":"    - description"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3f79a3b5_f7c5c48e","line":19,"in_reply_to":"3f79a3b5_84e312d8","updated":"2018-09-09 11:03:22.000000000","message":"Ok, but I want to know how to get the serial number about the yaml of \"support-to-query-nova-resources-filter-by-changes-before-xxxx.yaml\".\nHow to get \"xxxx\"? Maybe this is a very simple question :-)","commit_id":"043e103c0eec7e1e508a5d3627fc662c5f4f8651"}],"releasenotes/notes/support-to-query-nova-resources-filter-by-changes-before-e4942cde61070e28.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The microversion 2.66 adds the filter parameter ``changes-before`` field"},{"line_number":5,"context_line":"    to the servers, os-instance-action and os-migrations APIs. Which is"},{"line_number":6,"context_line":"    optional, used to get the nova resources changed before the specified"},{"line_number":7,"context_line":"    date and time stamp."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    Like the ``changes-since`` filter, the ``changes-before`` filter will"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f79a3b5_10054a7a","line":6,"range":{"start_line":5,"start_character":63,"end_line":6,"end_character":13},"updated":"2018-09-17 19:18:49.000000000","message":"This is confusing.\n\nLet\u0027s remove this and work the optional part into the sentence above by saying, \"The microversion 2.66 adds the optional filter parameter...\".","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The microversion 2.66 adds the filter parameter ``changes-before`` field"},{"line_number":5,"context_line":"    to the servers, os-instance-action and os-migrations APIs. Which is"},{"line_number":6,"context_line":"    optional, used to get the nova resources changed before the specified"},{"line_number":7,"context_line":"    date and time stamp."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    Like the ``changes-since`` filter, the ``changes-before`` filter will"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f79a3b5_300ac689","line":6,"range":{"start_line":6,"start_character":53,"end_line":6,"end_character":59},"updated":"2018-09-17 19:18:49.000000000","message":"before or equal to","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The microversion 2.66 adds the filter parameter ``changes-before`` field"},{"line_number":5,"context_line":"    to the servers, os-instance-action and os-migrations APIs. Which is"},{"line_number":6,"context_line":"    optional, used to get the nova resources changed before the specified"},{"line_number":7,"context_line":"    date and time stamp."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    Like the ``changes-since`` filter, the ``changes-before`` filter will"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f79a3b5_3c7db5e5","line":6,"range":{"start_line":5,"start_character":63,"end_line":6,"end_character":13},"in_reply_to":"3f79a3b5_10054a7a","updated":"2018-09-18 13:30:19.000000000","message":"Yes.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The microversion 2.66 adds the filter parameter ``changes-before`` field"},{"line_number":5,"context_line":"    to the servers, os-instance-action and os-migrations APIs. Which is"},{"line_number":6,"context_line":"    optional, used to get the nova resources changed before the specified"},{"line_number":7,"context_line":"    date and time stamp."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    Like the ``changes-since`` filter, the ``changes-before`` filter will"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f79a3b5_5c82f1c8","line":6,"range":{"start_line":6,"start_character":53,"end_line":6,"end_character":59},"in_reply_to":"3f79a3b5_300ac689","updated":"2018-09-18 13:30:19.000000000","message":"Done","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8d5750654bfe18be0df19d2ca2144fccfda704c","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    The os-instance-actions API with the 2.21 microversion allows retrieving"},{"line_number":15,"context_line":"    instance actions for a deleted server resource. The os-migrations API"},{"line_number":16,"context_line":"    takes an optional ``instance_uuid`` filter parameter but does not support"},{"line_number":17,"context_line":"    returning deleted migration records.."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    The ``changes-before`` request parameter can be passed to the servers,"},{"line_number":20,"context_line":"    os-instance-action and os-migrations APIs:"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f79a3b5_d0fa7275","line":17,"range":{"start_line":17,"start_character":40,"end_line":17,"end_character":41},"updated":"2018-09-17 19:18:49.000000000","message":"Remove the second period.","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"03b1cb1dd02f005848ff0581502cb26e68c9c058","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    The os-instance-actions API with the 2.21 microversion allows retrieving"},{"line_number":15,"context_line":"    instance actions for a deleted server resource. The os-migrations API"},{"line_number":16,"context_line":"    takes an optional ``instance_uuid`` filter parameter but does not support"},{"line_number":17,"context_line":"    returning deleted migration records.."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    The ``changes-before`` request parameter can be passed to the servers,"},{"line_number":20,"context_line":"    os-instance-action and os-migrations APIs:"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f79a3b5_dc6da12f","line":17,"range":{"start_line":17,"start_character":40,"end_line":17,"end_character":41},"in_reply_to":"3f79a3b5_d0fa7275","updated":"2018-09-18 13:30:19.000000000","message":"Done","commit_id":"7a0329d919562cbbaa17ec4619c8ec7023178aed"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2566c7ca7ec53b34f621db29dcda7c46811de9ca","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The microversion 2.66 adds the filter parameter ``changes-before`` field"},{"line_number":5,"context_line":"    to the servers, os-instance-action and os-migrations APIs. The"},{"line_number":6,"context_line":"    microversion 2.66 adds the optional filter parameter ``changes-before``,"},{"line_number":7,"context_line":"    used to get the nova resources changed before or equal to the specified"},{"line_number":8,"context_line":"    date and time stamp."},{"line_number":9,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"3f79a3b5_0e42f13b","line":6,"range":{"start_line":5,"start_character":63,"end_line":6,"end_character":21},"updated":"2018-09-18 21:54:49.000000000","message":"This is redundant.","commit_id":"17e01b85a4c66660c85edfd996cc9ad2b9f92dd8"}]}
