)]}'
{"specs/queens/approved/pagination-add-changes-since-for-instance-action-list.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ad2e5251400d9becc235c64d6b81a7c201438fe5","unresolved":false,"context_lines":[{"line_number":14,"context_line":"This blueprint add `limit` and `marker` optional"},{"line_number":15,"context_line":"parameters to GET /os-instance-actions request to support pagination."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This blueprint also add `changes-since` optional parameters to"},{"line_number":18,"context_line":"GET /os-instance-actions request to support filtering response data by"},{"line_number":19,"context_line":"updated time."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Problem description"},{"line_number":22,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_00a13a96","line":19,"range":{"start_line":17,"start_character":0,"end_line":19,"end_character":13},"updated":"2017-10-03 17:22:26.000000000","message":"You\u0027re going to have to explain in this spec how you propose to fix the issue with updated_at not actually being updated on the instance action record. This came up the last time this change was proposed, and it was discussed in the mailing list:\n\nhttp://lists.openstack.org/pipermail/openstack-dev/2016-June/098299.html","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"608b7d1455a40c57ec47948e8045ea4f9da2d285","unresolved":false,"context_lines":[{"line_number":14,"context_line":"This blueprint add `limit` and `marker` optional"},{"line_number":15,"context_line":"parameters to GET /os-instance-actions request to support pagination."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This blueprint also add `changes-since` optional parameters to"},{"line_number":18,"context_line":"GET /os-instance-actions request to support filtering response data by"},{"line_number":19,"context_line":"updated time."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Problem description"},{"line_number":22,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_641518e5","line":19,"range":{"start_line":17,"start_character":0,"end_line":19,"end_character":13},"in_reply_to":"7f515b1d_00a13a96","updated":"2017-10-09 03:04:53.000000000","message":"thanks for reminder. I added the discussion link in ref, and also, explained how to fix this issue in this section.","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ad2e5251400d9becc235c64d6b81a7c201438fe5","unresolved":false,"context_lines":[{"line_number":36,"context_line":"---------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"For large scale production deployment, the administrator can use"},{"line_number":39,"context_line":"pagination and lastest updated time filter to have more efficient"},{"line_number":40,"context_line":"database query."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_00f7fad6","line":39,"range":{"start_line":39,"start_character":15,"end_line":39,"end_character":22},"updated":"2017-10-03 17:22:26.000000000","message":"latest","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"608b7d1455a40c57ec47948e8045ea4f9da2d285","unresolved":false,"context_lines":[{"line_number":36,"context_line":"---------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"For large scale production deployment, the administrator can use"},{"line_number":39,"context_line":"pagination and lastest updated time filter to have more efficient"},{"line_number":40,"context_line":"database query."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_44d45c20","line":39,"range":{"start_line":39,"start_character":15,"end_line":39,"end_character":22},"in_reply_to":"7f515b1d_00f7fad6","updated":"2017-10-09 03:04:53.000000000","message":"done","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ad2e5251400d9becc235c64d6b81a7c201438fe5","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Proposed change"},{"line_number":43,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Add an API microversion that allows to get several instance actions using"},{"line_number":46,"context_line":"general pagination mechanism with the help of `limit` optional"},{"line_number":47,"context_line":"parameters to GET /os-instance-actions  request. And add filter with"},{"line_number":48,"context_line":"the help of `changes-since` optional parameter to GET /os-instance-actions"},{"line_number":49,"context_line":"request."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* **limit**: Maximum number of instance actions to display. If limit \u003d\u003d -1,"},{"line_number":52,"context_line":"  all instance actions will be displayed. If limit is bigger than"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_a0eb86da","line":49,"range":{"start_line":45,"start_character":0,"end_line":49,"end_character":8},"updated":"2017-10-03 17:22:26.000000000","message":"Have you considered how you\u0027re going to do paging across multiple cells? That needs to be clarified here.","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3765e94c8abd7d380817ce9606436c42472fa396","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Proposed change"},{"line_number":43,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Add an API microversion that allows to get several instance actions using"},{"line_number":46,"context_line":"general pagination mechanism with the help of `limit` optional"},{"line_number":47,"context_line":"parameters to GET /os-instance-actions  request. And add filter with"},{"line_number":48,"context_line":"the help of `changes-since` optional parameter to GET /os-instance-actions"},{"line_number":49,"context_line":"request."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* **limit**: Maximum number of instance actions to display. If limit \u003d\u003d -1,"},{"line_number":52,"context_line":"  all instance actions will be displayed. If limit is bigger than"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_fbaff328","line":49,"range":{"start_line":45,"start_character":0,"end_line":49,"end_character":8},"in_reply_to":"7f515b1d_2038b63b","updated":"2017-10-03 18:47:03.000000000","message":"That\u0027s not what this spec is proposing though, it\u0027s proposing listing all instance actions:\n\nGET /os-instance-actions\n\nUnless of course this is just poorly worded and the example is wrong.","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"94e196d8ee50e45c420401e34e4e0bbc9ded1289","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Proposed change"},{"line_number":43,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Add an API microversion that allows to get several instance actions using"},{"line_number":46,"context_line":"general pagination mechanism with the help of `limit` optional"},{"line_number":47,"context_line":"parameters to GET /os-instance-actions  request. And add filter with"},{"line_number":48,"context_line":"the help of `changes-since` optional parameter to GET /os-instance-actions"},{"line_number":49,"context_line":"request."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* **limit**: Maximum number of instance actions to display. If limit \u003d\u003d -1,"},{"line_number":52,"context_line":"  all instance actions will be displayed. If limit is bigger than"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_2038b63b","line":49,"range":{"start_line":45,"start_character":0,"end_line":49,"end_character":8},"in_reply_to":"7f515b1d_a0eb86da","updated":"2017-10-03 17:29:34.000000000","message":"AFAICT, instance action list is per-instance, so no paging across cells required.","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"608b7d1455a40c57ec47948e8045ea4f9da2d285","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Proposed change"},{"line_number":43,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Add an API microversion that allows to get several instance actions using"},{"line_number":46,"context_line":"general pagination mechanism with the help of `limit` optional"},{"line_number":47,"context_line":"parameters to GET /os-instance-actions  request. And add filter with"},{"line_number":48,"context_line":"the help of `changes-since` optional parameter to GET /os-instance-actions"},{"line_number":49,"context_line":"request."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* **limit**: Maximum number of instance actions to display. If limit \u003d\u003d -1,"},{"line_number":52,"context_line":"  all instance actions will be displayed. If limit is bigger than"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_24a720c0","line":49,"range":{"start_line":45,"start_character":0,"end_line":49,"end_character":8},"in_reply_to":"7f515b1d_fbaff328","updated":"2017-10-09 03:04:53.000000000","message":"Sorry, it\u0027s proposing listing instance actions for single instance. yep, I should described more clear.","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ad2e5251400d9becc235c64d6b81a7c201438fe5","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* **limit**: Maximum number of instance actions to display. If limit \u003d\u003d -1,"},{"line_number":52,"context_line":"  all instance actions will be displayed. If limit is bigger than"},{"line_number":53,"context_line":"  `osapi_max_limit` option of Nova API, limit `osapi_max_limit` will be used"},{"line_number":54,"context_line":"  instead."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* **marker**: The last instance\u0027s action timestamp of the previous page."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_00e5ba0a","line":53,"range":{"start_line":53,"start_character":3,"end_line":53,"end_character":18},"updated":"2017-10-03 17:22:26.000000000","message":"This is the deprecated option name, it\u0027s now \"[api]/max_limit\".","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"608b7d1455a40c57ec47948e8045ea4f9da2d285","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* **limit**: Maximum number of instance actions to display. If limit \u003d\u003d -1,"},{"line_number":52,"context_line":"  all instance actions will be displayed. If limit is bigger than"},{"line_number":53,"context_line":"  `osapi_max_limit` option of Nova API, limit `osapi_max_limit` will be used"},{"line_number":54,"context_line":"  instead."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* **marker**: The last instance\u0027s action timestamp of the previous page."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_04a8a489","line":53,"range":{"start_line":53,"start_character":3,"end_line":53,"end_character":18},"in_reply_to":"7f515b1d_00e5ba0a","updated":"2017-10-09 03:04:53.000000000","message":"Done","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ad2e5251400d9becc235c64d6b81a7c201438fe5","unresolved":false,"context_lines":[{"line_number":53,"context_line":"  `osapi_max_limit` option of Nova API, limit `osapi_max_limit` will be used"},{"line_number":54,"context_line":"  instead."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* **marker**: The last instance\u0027s action timestamp of the previous page."},{"line_number":57,"context_line":"  Displays list of instance actions after \"marker\"."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_c0c7a264","line":57,"range":{"start_line":56,"start_character":2,"end_line":57,"end_character":51},"updated":"2017-10-03 17:22:26.000000000","message":"This might be ambiguous across cells. Maybe the marker should be the request_id? That should be unique per action per cell.","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd3d1f6a57528ab08f4416a6a571a65a272807b8","unresolved":false,"context_lines":[{"line_number":53,"context_line":"  `osapi_max_limit` option of Nova API, limit `osapi_max_limit` will be used"},{"line_number":54,"context_line":"  instead."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* **marker**: The last instance\u0027s action timestamp of the previous page."},{"line_number":57,"context_line":"  Displays list of instance actions after \"marker\"."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_db22f701","line":57,"range":{"start_line":56,"start_character":2,"end_line":57,"end_character":51},"in_reply_to":"7f515b1d_00f81a7a","updated":"2017-10-03 18:32:46.000000000","message":"\u003e Are you sure that it\u0027s unique per recorded action? I would have\n \u003e thought more than one action might be recordable per request_id.\n\nThere is not technically a unique constraint on the request_id in the instance_actions table, but we certainly key off it in the API so we expect it to be unique:\n\nhttps://developer.openstack.org/api-ref/compute/#show-server-action-details","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"608b7d1455a40c57ec47948e8045ea4f9da2d285","unresolved":false,"context_lines":[{"line_number":53,"context_line":"  `osapi_max_limit` option of Nova API, limit `osapi_max_limit` will be used"},{"line_number":54,"context_line":"  instead."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* **marker**: The last instance\u0027s action timestamp of the previous page."},{"line_number":57,"context_line":"  Displays list of instance actions after \"marker\"."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_a401d03a","line":57,"range":{"start_line":56,"start_character":2,"end_line":57,"end_character":51},"in_reply_to":"7f515b1d_bb2cdbac","updated":"2017-10-09 03:04:53.000000000","message":"alright, it\u0027s reasonable to use request_id for a single instance","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"a682dfad9b531129e09ddd69476bd2abe45b4686","unresolved":false,"context_lines":[{"line_number":53,"context_line":"  `osapi_max_limit` option of Nova API, limit `osapi_max_limit` will be used"},{"line_number":54,"context_line":"  instead."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* **marker**: The last instance\u0027s action timestamp of the previous page."},{"line_number":57,"context_line":"  Displays list of instance actions after \"marker\"."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_00f81a7a","line":57,"range":{"start_line":56,"start_character":2,"end_line":57,"end_character":51},"in_reply_to":"7f515b1d_c0c7a264","updated":"2017-10-03 17:27:32.000000000","message":"Are you sure that it\u0027s unique per recorded action? I would have thought more than one action might be recordable per request_id.","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"94e196d8ee50e45c420401e34e4e0bbc9ded1289","unresolved":false,"context_lines":[{"line_number":53,"context_line":"  `osapi_max_limit` option of Nova API, limit `osapi_max_limit` will be used"},{"line_number":54,"context_line":"  instead."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* **marker**: The last instance\u0027s action timestamp of the previous page."},{"line_number":57,"context_line":"  Displays list of instance actions after \"marker\"."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_e0673e51","line":57,"range":{"start_line":56,"start_character":2,"end_line":57,"end_character":51},"in_reply_to":"7f515b1d_c0c7a264","updated":"2017-10-03 17:29:34.000000000","message":"I don\u0027t think so, based on above. However, I don\u0027t think using a timestamp is a good idea in general. Unfortunately, either adding a uuid or using the db row id is probably the best option if we care about stability.","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3765e94c8abd7d380817ce9606436c42472fa396","unresolved":false,"context_lines":[{"line_number":53,"context_line":"  `osapi_max_limit` option of Nova API, limit `osapi_max_limit` will be used"},{"line_number":54,"context_line":"  instead."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* **marker**: The last instance\u0027s action timestamp of the previous page."},{"line_number":57,"context_line":"  Displays list of instance actions after \"marker\"."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_bb2cdbac","line":57,"range":{"start_line":56,"start_character":2,"end_line":57,"end_character":51},"in_reply_to":"7f515b1d_db22f701","updated":"2017-10-03 18:47:03.000000000","message":"If this spec is just proposing to page actions for a single instance, then the request_id is a valid marker.","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ad2e5251400d9becc235c64d6b81a7c201438fe5","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Generic request format ::"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    GET /os-instance-actions?limit\u003d{limit}\u0026marker\u003d{kp_name}"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"1) Get all instance actions ::"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_e08f3e2c","line":80,"range":{"start_line":80,"start_character":51,"end_line":80,"end_character":58},"updated":"2017-10-03 17:22:26.000000000","message":"kp_name?","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"608b7d1455a40c57ec47948e8045ea4f9da2d285","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Generic request format ::"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    GET /os-instance-actions?limit\u003d{limit}\u0026marker\u003d{kp_name}"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"1) Get all instance actions ::"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_84fa5440","line":80,"range":{"start_line":80,"start_character":51,"end_line":80,"end_character":58},"in_reply_to":"7f515b1d_e08f3e2c","updated":"2017-10-09 03:04:53.000000000","message":"now, is request_id","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3765e94c8abd7d380817ce9606436c42472fa396","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"1) Get all instance actions ::"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    GET /os-instance-actions"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"   Response ::"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_3b390bf2","line":84,"range":{"start_line":84,"start_character":4,"end_line":84,"end_character":28},"updated":"2017-10-03 18:47:03.000000000","message":"Is this really GET /os-instance-actions/{server_id}?\n\nThe scoping to a single server is important here, otherwise we have multi-cell considerations if you\u0027re asking to page all instance actions across all instances in all cells.","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"608b7d1455a40c57ec47948e8045ea4f9da2d285","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"1) Get all instance actions ::"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    GET /os-instance-actions"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"   Response ::"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_64f7585b","line":84,"range":{"start_line":84,"start_character":4,"end_line":84,"end_character":28},"in_reply_to":"7f515b1d_3b390bf2","updated":"2017-10-09 03:04:53.000000000","message":"Done","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ad2e5251400d9becc235c64d6b81a7c201438fe5","unresolved":false,"context_lines":[{"line_number":207,"context_line":"Other end user impact"},{"line_number":208,"context_line":"---------------------"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"None"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"Performance Impact"},{"line_number":213,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_e0785e2c","line":210,"updated":"2017-10-03 17:22:26.000000000","message":"Will you be making changes to python-novaclient for the new microversion support?","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"974066b4bfdea50fb8cd124810afb5dca237ca62","unresolved":false,"context_lines":[{"line_number":207,"context_line":"Other end user impact"},{"line_number":208,"context_line":"---------------------"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"None"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"Performance Impact"},{"line_number":213,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f4e5783_ceb7d23a","line":210,"in_reply_to":"7f515b1d_e0785e2c","updated":"2017-10-10 07:10:39.000000000","message":"Yes, done.","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ad2e5251400d9becc235c64d6b81a7c201438fe5","unresolved":false,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":"Docs needed for new API microversion and usage."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"References"},{"line_number":262,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_e0c61e4a","line":261,"updated":"2017-10-03 17:22:26.000000000","message":"This section could link to the ML discussion:\n\nhttp://lists.openstack.org/pipermail/openstack-dev/2016-June/098299.html","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"608b7d1455a40c57ec47948e8045ea4f9da2d285","unresolved":false,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":"Docs needed for new API microversion and usage."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"References"},{"line_number":262,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_44969cf2","line":261,"in_reply_to":"7f515b1d_e0c61e4a","updated":"2017-10-09 03:04:53.000000000","message":"Done","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ad2e5251400d9becc235c64d6b81a7c201438fe5","unresolved":false,"context_lines":[{"line_number":259,"context_line":"Docs needed for new API microversion and usage."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"References"},{"line_number":262,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_60e0eecd","line":262,"updated":"2017-10-03 17:22:26.000000000","message":"You should include the History section in the spec, and point out that this was proposed in the Newton release too, and it\u0027s being re-proposed in Queens.","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"608b7d1455a40c57ec47948e8045ea4f9da2d285","unresolved":false,"context_lines":[{"line_number":259,"context_line":"Docs needed for new API microversion and usage."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"References"},{"line_number":262,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_249ba018","line":262,"in_reply_to":"7f515b1d_60e0eecd","updated":"2017-10-09 03:04:53.000000000","message":"Done","commit_id":"52cb9b0234f8a82ae248a8cecdf69df48c6d1f3f"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"39199cf517a868947fa39613fdfd110427856cf3","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Currently, os-instance-actions API does not support pagination."},{"line_number":30,"context_line":"As in production deployment the number of instance action records can"},{"line_number":31,"context_line":"be also very large query them all can lead to performance bottleneck,"},{"line_number":32,"context_line":"it will be very useful to support pagination."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Also, os-instance-actions API does not support filter the instance action"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_ba6a0017","line":31,"range":{"start_line":31,"start_character":18,"end_line":31,"end_character":19},"updated":"2017-10-09 13:12:47.000000000","message":"missing comma","commit_id":"734a02428109e4469bb65b4d460093ff7994ddb5"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"9b1f4744771ce3a6a86bee2d41d60e53d12a0e4f","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Currently, os-instance-actions API does not support pagination."},{"line_number":30,"context_line":"As in production deployment the number of instance action records can"},{"line_number":31,"context_line":"be also very large query them all can lead to performance bottleneck,"},{"line_number":32,"context_line":"it will be very useful to support pagination."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Also, os-instance-actions API does not support filter the instance action"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f4e5783_c8aa2fd1","line":31,"range":{"start_line":31,"start_character":18,"end_line":31,"end_character":19},"in_reply_to":"7f515b1d_ba6a0017","updated":"2017-10-10 01:24:34.000000000","message":"Done","commit_id":"734a02428109e4469bb65b4d460093ff7994ddb5"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"39199cf517a868947fa39613fdfd110427856cf3","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Use Cases"},{"line_number":41,"context_line":"---------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"For large scale production deployment, the administrator can use"},{"line_number":44,"context_line":"pagination and latest updated time filter to have more efficient"},{"line_number":45,"context_line":"database query."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_3a9bb018","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":37},"updated":"2017-10-09 13:12:47.000000000","message":"This might not related to scale, as we are listing for data from single instance, maybe for long-running deployments?","commit_id":"734a02428109e4469bb65b4d460093ff7994ddb5"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"9b1f4744771ce3a6a86bee2d41d60e53d12a0e4f","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Use Cases"},{"line_number":41,"context_line":"---------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"For large scale production deployment, the administrator can use"},{"line_number":44,"context_line":"pagination and latest updated time filter to have more efficient"},{"line_number":45,"context_line":"database query."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f4e5783_c8c10f83","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":37},"in_reply_to":"7f515b1d_3a9bb018","updated":"2017-10-10 01:24:34.000000000","message":"yes, done","commit_id":"734a02428109e4469bb65b4d460093ff7994ddb5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"716dce1f2b3a9fdd69d2fa26355d10848fbbe3c9","unresolved":false,"context_lines":[{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Currently, os-instance-actions API does not support pagination."},{"line_number":26,"context_line":"As in production deployment the number of instance action records can"},{"line_number":27,"context_line":"be also very large and querying them all can lead to performance bottleneck,"},{"line_number":28,"context_line":"it will be very useful to support pagination."},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"3f4b6375_30d0fd50","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":65},"updated":"2017-10-18 14:58:40.000000000","message":"for a single instance, it is really a problem? the user always pause, stop the instance?","commit_id":"d4f1581369fedcd8193c947c98a2af76bf51d241"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"b7e6f5a931aaf0459bf1b839ed7388a4caee8aff","unresolved":false,"context_lines":[{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Currently, os-instance-actions API does not support pagination."},{"line_number":26,"context_line":"As in production deployment the number of instance action records can"},{"line_number":27,"context_line":"be also very large and querying them all can lead to performance bottleneck,"},{"line_number":28,"context_line":"it will be very useful to support pagination."},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"3f4b6375_e7bbbf0b","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":65},"in_reply_to":"3f4b6375_30d0fd50","updated":"2017-10-19 02:46:55.000000000","message":"@alex, thanks for review.\n\nSure, as mentioned in @matt comment, lots of migrations for single instance\nis one of cases.\n\nAnd also, in public cloud, it is benefit for preventing malicious attacks: \nIf the attacker do a lot operations on a instance deliberately, the instance\nwill have huge number of actions, once attacker query these instance actions\nof the instance, db operations will block a lot of time, will also have some\nbad effect on other operations. So, we really need pagination support to minimize\nthe impact.\n\nso, I will describe more clear in next updated.","commit_id":"d4f1581369fedcd8193c947c98a2af76bf51d241"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a0a90c14be45d56e985a6301262243e047dbdcc7","unresolved":false,"context_lines":[{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Currently, os-instance-actions API does not support pagination."},{"line_number":26,"context_line":"As in production deployment the number of instance action records can"},{"line_number":27,"context_line":"be also very large and querying them all can lead to performance bottleneck,"},{"line_number":28,"context_line":"it will be very useful to support pagination."},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"3f4b6375_bffef902","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":65},"in_reply_to":"3f4b6375_30d0fd50","updated":"2017-10-18 16:51:58.000000000","message":"Yeah this is a good point - listing instance actions is per instance, so what user has hundreds or thousands of instance actions on a single instance? We generally page on the top-level resource across the deployment, like instances, migrations, flavors and keypairs, but not a sub-resource.\n\nMaybe there is something with instances that are migrated a lot, or something else via automation for an NFV MANO system?","commit_id":"d4f1581369fedcd8193c947c98a2af76bf51d241"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4b971594806d739756728f8f77b90848058f44fd","unresolved":false,"context_lines":[{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Currently, os-instance-actions API does not support pagination."},{"line_number":26,"context_line":"As in production deployment the number of instance action records can"},{"line_number":27,"context_line":"be also very large and querying them all can lead to performance bottleneck,"},{"line_number":28,"context_line":"it will be very useful to support pagination."},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"3f4b6375_cba44d0b","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":65},"in_reply_to":"3f4b6375_e7bbbf0b","updated":"2017-10-19 04:49:30.000000000","message":"ok, sounds like we should have something rotation in the instance-action events, or something limit to the times of action execute? i\u0027m not sure. anyway it isn\u0027t about this spec.","commit_id":"d4f1581369fedcd8193c947c98a2af76bf51d241"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"716dce1f2b3a9fdd69d2fa26355d10848fbbe3c9","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"There is a problem about updated_at not actually being updated on the"},{"line_number":37,"context_line":"instance action record [1]_. We propose to fix this issue by updating"},{"line_number":38,"context_line":"instance actions\u0027 updated_at when action create or action event update [2]_."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Use Cases"},{"line_number":41,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3f4b6375_b08d0d7d","line":38,"range":{"start_line":38,"start_character":71,"end_line":38,"end_character":75},"updated":"2017-10-18 14:58:40.000000000","message":"So this should be a dependence?","commit_id":"d4f1581369fedcd8193c947c98a2af76bf51d241"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"c15ff4a03977a62dda20c72181a2504011b455ff","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"There is a problem about updated_at not actually being updated on the"},{"line_number":37,"context_line":"instance action record [1]_. We propose to fix this issue by updating"},{"line_number":38,"context_line":"instance actions\u0027 updated_at when action create or action event update [2]_."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Use Cases"},{"line_number":41,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3f4b6375_e8038f0c","line":38,"range":{"start_line":38,"start_character":71,"end_line":38,"end_character":75},"in_reply_to":"3f4b6375_b08d0d7d","updated":"2017-10-19 03:47:45.000000000","message":"Done","commit_id":"d4f1581369fedcd8193c947c98a2af76bf51d241"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a0a90c14be45d56e985a6301262243e047dbdcc7","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"There is a problem about updated_at not actually being updated on the"},{"line_number":37,"context_line":"instance action record [1]_. We propose to fix this issue by updating"},{"line_number":38,"context_line":"instance actions\u0027 updated_at when action create or action event update [2]_."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Use Cases"},{"line_number":41,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3f4b6375_3c2457c6","line":38,"range":{"start_line":38,"start_character":71,"end_line":38,"end_character":75},"in_reply_to":"3f4b6375_b08d0d7d","updated":"2017-10-18 16:51:58.000000000","message":"Yes I think so, fixing the bug is required for this, and is what held it up in Newton.","commit_id":"d4f1581369fedcd8193c947c98a2af76bf51d241"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"716dce1f2b3a9fdd69d2fa26355d10848fbbe3c9","unresolved":false,"context_lines":[{"line_number":166,"context_line":"      ]"},{"line_number":167,"context_line":"    }"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"3) Get all instance actions after changes-since\u003d2013-10-22T13:45:02.000000 ::"},{"line_number":170,"context_line":"Request format ::"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    GET /os-instance-actions/ccc6afd4-2484-4c32-bd42-70cacf571a0e?changes-since\u003d2015-10-30T03:16:10.000000\""}],"source_content_type":"text/x-rst","patch_set":11,"id":"3f4b6375_302c7d46","line":169,"range":{"start_line":169,"start_character":33,"end_line":169,"end_character":47},"updated":"2017-10-18 14:58:40.000000000","message":"Same question with another spec, why we didn\u0027t sort the result with the updated_at field? we filter the result with updated time, it is strange we didn\u0027t sort by that.","commit_id":"d4f1581369fedcd8193c947c98a2af76bf51d241"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4b971594806d739756728f8f77b90848058f44fd","unresolved":false,"context_lines":[{"line_number":166,"context_line":"      ]"},{"line_number":167,"context_line":"    }"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"3) Get all instance actions after changes-since\u003d2013-10-22T13:45:02.000000 ::"},{"line_number":170,"context_line":"Request format ::"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    GET /os-instance-actions/ccc6afd4-2484-4c32-bd42-70cacf571a0e?changes-since\u003d2015-10-30T03:16:10.000000\""}],"source_content_type":"text/x-rst","patch_set":11,"id":"3f4b6375_4b917d99","line":169,"range":{"start_line":169,"start_character":33,"end_line":169,"end_character":47},"in_reply_to":"3f4b6375_302c7d46","updated":"2017-10-19 04:49:30.000000000","message":"I got reply from you on the irc:\n\n11:17 \u003cyikun_jiang\u003e we don\u0027t sort by updated_at when filtering instances with changes-since,\n11:17 \u003cyikun_jiang\u003e so we also don\u0027t sort migrations or instance actions by updated_at,\n11:17 \u003cyikun_jiang\u003e so we think need just keep same behaviour with list instances\n\nSo I think this different resource than the instances, I didn\u0027t see why we should keep same behaviour.","commit_id":"d4f1581369fedcd8193c947c98a2af76bf51d241"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e18a8998a51f74923224a6898011e9b6a2770317","unresolved":false,"context_lines":[{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Currently, os-instance-actions API does not support pagination."},{"line_number":26,"context_line":"As in production deployment the number of instance action records can"},{"line_number":27,"context_line":"be also very large and querying them all can lead to performance bottleneck,"},{"line_number":28,"context_line":"it will be very useful to support pagination."},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f4b6375_da8887c7","line":26,"range":{"start_line":26,"start_character":42,"end_line":26,"end_character":65},"updated":"2017-10-19 15:42:16.000000000","message":"records *per instance*, just nit.","commit_id":"0fbe7fe30b9c1ea36c227871b20c8edeb2bbdee4"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5eda661fe25124cafb3e5ee3e15483df280b7a2a","unresolved":false,"context_lines":[{"line_number":74,"context_line":"Data model impact"},{"line_number":75,"context_line":"-----------------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"A database index will be added on instance_actions.updated_at to improve the"},{"line_number":78,"context_line":"performance of filtering instance actions by \u0027changes-since\u0027 parameter."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f4b6375_8b21b550","line":77,"range":{"start_line":77,"start_character":34,"end_line":77,"end_character":61},"updated":"2017-10-19 05:10:12.000000000","message":"Emm...I think this is more complex, like we always filter on the instance uuid as the instance actions result is per instance. so at least, this should be a multiple columns index. Also plus the considering of the pagination, there may need to more columns(probably the columns of sort key) join into this multiple columns index. (probably we have same issue with the another pagination spec you proposed)\n\nMaybe we can just have a generic description at here, then figure out the detail in the patch review.\n\nLet see what other reviewers\u0027 option","commit_id":"0fbe7fe30b9c1ea36c227871b20c8edeb2bbdee4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b213fbc5a2145a72ac371313c65e5889351c7303","unresolved":false,"context_lines":[{"line_number":74,"context_line":"Data model impact"},{"line_number":75,"context_line":"-----------------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"A database index will be added on instance_actions.updated_at to improve the"},{"line_number":78,"context_line":"performance of filtering instance actions by \u0027changes-since\u0027 parameter."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f4b6375_4495d5e3","line":77,"range":{"start_line":77,"start_character":34,"end_line":77,"end_character":61},"in_reply_to":"3f4b6375_5dbc91db","updated":"2017-10-19 21:28:48.000000000","message":"\u003e and also explain that even if we have a deleted field given the mixin, since we don\u0027t support API deletions for action records, I think it\u0027s fine to not add \u0027deleted\u0027 in the index tuple.\n\nI thought we deleted instance actions when we deleted an instance, but apparently not:\n\nhttps://github.com/openstack/nova/blob/af4703cb38580a8cb9c9b293dd4b1637f2734cad/nova/db/sqlalchemy/api.py#L1906\n\nThat\u0027s due to microversion 2.21 so that you can list instance actions for deleted instances.","commit_id":"0fbe7fe30b9c1ea36c227871b20c8edeb2bbdee4"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"29d1bafe23bfb4a74923b069bb82cb980c7bc464","unresolved":false,"context_lines":[{"line_number":74,"context_line":"Data model impact"},{"line_number":75,"context_line":"-----------------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"A database index will be added on instance_actions.updated_at to improve the"},{"line_number":78,"context_line":"performance of filtering instance actions by \u0027changes-since\u0027 parameter."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f4b6375_3dd7954e","line":77,"range":{"start_line":77,"start_character":34,"end_line":77,"end_character":61},"in_reply_to":"3f4b6375_8b21b550","updated":"2017-10-19 15:56:02.000000000","message":"@alex_xu is absolutely correct. The index should be left-prefixed with any column that is *always* used in joins or filters. For some reason, the instance_actions table has the instance_uuid column (instead of the instances.id reference). So, yeah, we\u0027d want the index on (instance_uuid, updated_at).","commit_id":"0fbe7fe30b9c1ea36c227871b20c8edeb2bbdee4"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"00bad4faaf8f530b67a147b6c185ffda14ce0dcd","unresolved":false,"context_lines":[{"line_number":74,"context_line":"Data model impact"},{"line_number":75,"context_line":"-----------------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"A database index will be added on instance_actions.updated_at to improve the"},{"line_number":78,"context_line":"performance of filtering instance actions by \u0027changes-since\u0027 parameter."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f4b6375_fe78daf8","line":77,"range":{"start_line":77,"start_character":34,"end_line":77,"end_character":61},"in_reply_to":"3f4b6375_8b21b550","updated":"2017-10-19 13:37:54.000000000","message":"Ideally, during the implementation, some analysis would be done on the query plan created from the queries that result, and indexes will be tweaked as required.  We probably ought to do that kind of thing as a general rule and not need to be explicit about it in the spec.","commit_id":"0fbe7fe30b9c1ea36c227871b20c8edeb2bbdee4"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7ca12e617c4c259b3f67e9ef6cd8cafd971c2024","unresolved":false,"context_lines":[{"line_number":74,"context_line":"Data model impact"},{"line_number":75,"context_line":"-----------------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"A database index will be added on instance_actions.updated_at to improve the"},{"line_number":78,"context_line":"performance of filtering instance actions by \u0027changes-since\u0027 parameter."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f4b6375_bd3dc5bc","line":77,"range":{"start_line":77,"start_character":34,"end_line":77,"end_character":61},"in_reply_to":"3f4b6375_9a2e8fa3","updated":"2017-10-19 15:48:47.000000000","message":"You can include fields from a mixin just fine in multi-column indexes. No problem there.\n\nHere\u0027s an example that uses the deleted column from the SoftDeleteMixin in a constraint (constraints are same as indexes in SQLAlchemy):\n\nhttps://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/models.py#L83","commit_id":"0fbe7fe30b9c1ea36c227871b20c8edeb2bbdee4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"d9dd7e1c7bb43fc74b5c4d6a9707c9497da43839","unresolved":false,"context_lines":[{"line_number":74,"context_line":"Data model impact"},{"line_number":75,"context_line":"-----------------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"A database index will be added on instance_actions.updated_at to improve the"},{"line_number":78,"context_line":"performance of filtering instance actions by \u0027changes-since\u0027 parameter."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f4b6375_5dbc91db","line":77,"range":{"start_line":77,"start_character":34,"end_line":77,"end_character":61},"in_reply_to":"3f4b6375_bd3dc5bc","updated":"2017-10-19 16:01:28.000000000","message":"Oh snap, right, the deleted field is also coming from the same mixin. My bad.\nThat said, the point is still valid, you should amend the spec by telling about the index (and also explain that even if we have a deleted field given the mixin, since we don\u0027t support API deletions for action records, I think it\u0027s fine to not add \u0027deleted\u0027 in the index tuple.","commit_id":"0fbe7fe30b9c1ea36c227871b20c8edeb2bbdee4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e18a8998a51f74923224a6898011e9b6a2770317","unresolved":false,"context_lines":[{"line_number":74,"context_line":"Data model impact"},{"line_number":75,"context_line":"-----------------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"A database index will be added on instance_actions.updated_at to improve the"},{"line_number":78,"context_line":"performance of filtering instance actions by \u0027changes-since\u0027 parameter."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f4b6375_9a2e8fa3","line":77,"range":{"start_line":77,"start_character":34,"end_line":77,"end_character":61},"in_reply_to":"3f4b6375_fe78daf8","updated":"2017-10-19 15:42:16.000000000","message":"Alex made a good point. Querying a supposed large number of records (because that\u0027s the main reason of that spec) without having proper indexes is just a performance hit. That\u0027s the crux of the spec and surely not just an implementation detail if we propose to filter by time, which is I suppose something operators will love (without even using the pagination).\n\nSo, yeah I feel we need to be very clear that we will at least index on the (instance_uuid, updated_at) tuple but since updated_at comes from the SoftDeleteMixin, you see the Python problem ? :-)","commit_id":"0fbe7fe30b9c1ea36c227871b20c8edeb2bbdee4"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"00bad4faaf8f530b67a147b6c185ffda14ce0dcd","unresolved":false,"context_lines":[{"line_number":163,"context_line":"          \"project_id\": \"0721e55af7904e3b83f1276cd7ef769d\""},{"line_number":164,"context_line":"        }"},{"line_number":165,"context_line":"      ],"},{"line_number":166,"context_line":"      \"instanceActions_links\": ["},{"line_number":167,"context_line":"          {"},{"line_number":168,"context_line":"              \"href\": \"https://openstack.example.com/v2.1/os-instance-actions?limit\u003d2\u0026marker\u003dreq-c3053bed-f1f0-4cb3-bde0-21cca81f0543\","},{"line_number":169,"context_line":"              \"rel\": \"next\""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f4b6375_9e87a6d8","line":166,"updated":"2017-10-19 13:37:54.000000000","message":"is this name following an existing convention? what\u0027s wrong with just \"links\"?","commit_id":"0fbe7fe30b9c1ea36c227871b20c8edeb2bbdee4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e18a8998a51f74923224a6898011e9b6a2770317","unresolved":false,"context_lines":[{"line_number":163,"context_line":"          \"project_id\": \"0721e55af7904e3b83f1276cd7ef769d\""},{"line_number":164,"context_line":"        }"},{"line_number":165,"context_line":"      ],"},{"line_number":166,"context_line":"      \"instanceActions_links\": ["},{"line_number":167,"context_line":"          {"},{"line_number":168,"context_line":"              \"href\": \"https://openstack.example.com/v2.1/os-instance-actions?limit\u003d2\u0026marker\u003dreq-c3053bed-f1f0-4cb3-bde0-21cca81f0543\","},{"line_number":169,"context_line":"              \"rel\": \"next\""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f4b6375_7a04f317","line":166,"in_reply_to":"3f4b6375_9e87a6d8","updated":"2017-10-19 15:42:16.000000000","message":"Good point","commit_id":"0fbe7fe30b9c1ea36c227871b20c8edeb2bbdee4"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"29d1bafe23bfb4a74923b069bb82cb980c7bc464","unresolved":false,"context_lines":[{"line_number":163,"context_line":"          \"project_id\": \"0721e55af7904e3b83f1276cd7ef769d\""},{"line_number":164,"context_line":"        }"},{"line_number":165,"context_line":"      ],"},{"line_number":166,"context_line":"      \"instanceActions_links\": ["},{"line_number":167,"context_line":"          {"},{"line_number":168,"context_line":"              \"href\": \"https://openstack.example.com/v2.1/os-instance-actions?limit\u003d2\u0026marker\u003dreq-c3053bed-f1f0-4cb3-bde0-21cca81f0543\","},{"line_number":169,"context_line":"              \"rel\": \"next\""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f4b6375_5d6011a6","line":166,"in_reply_to":"3f4b6375_9e87a6d8","updated":"2017-10-19 15:56:02.000000000","message":"yup, should just be \"links\"","commit_id":"0fbe7fe30b9c1ea36c227871b20c8edeb2bbdee4"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5eda661fe25124cafb3e5ee3e15483df280b7a2a","unresolved":false,"context_lines":[{"line_number":171,"context_line":"      ]"},{"line_number":172,"context_line":"    }"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"3) Get all instance actions after changes-since\u003d2013-10-22T13:45:02.000000 ::"},{"line_number":175,"context_line":"Request format ::"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    GET /os-instance-actions/ccc6afd4-2484-4c32-bd42-70cacf571a0e?changes-since\u003d2015-10-30T03:16:10.000000\""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f4b6375_6b9f9950","line":174,"range":{"start_line":174,"start_character":34,"end_line":174,"end_character":47},"updated":"2017-10-19 05:10:12.000000000","message":"Still think this result is sorted by the updated_at more make sense.","commit_id":"0fbe7fe30b9c1ea36c227871b20c8edeb2bbdee4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a393e0205524726b89bd2bd35638d6e24b7fbdd0","unresolved":false,"context_lines":[{"line_number":65,"context_line":"* **marker**: The last instance\u0027s action request_id of the previous page."},{"line_number":66,"context_line":"  Displays list of instance actions after \"marker\"."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":".. todo:: We need to decide if we would sort on the updated_at field or the"},{"line_number":69,"context_line":"   created_at field when the changes-since parameter is specified. Since"},{"line_number":70,"context_line":"   changes-since filters by the updated_at field, it might make the most sense"},{"line_number":71,"context_line":"   to sort by the updated_at field. However, that would be inconsistent with"}],"source_content_type":"text/x-rst","patch_set":13,"id":"3f4b6375_ab69f4be","line":68,"updated":"2017-10-20 02:14:17.000000000","message":"http://lists.openstack.org/pipermail/openstack-dev/2017-October/123802.html","commit_id":"5d10f512a687e7dc4d481f40179dc5347c419b10"}]}
