)]}'
{"specs/mitaka/approved/list-server-invalid-option-as-error.rst":[{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"ebf26a4ad8edfc7eeb689f2bbcc753d321aa30fa","unresolved":false,"context_lines":[{"line_number":50,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"API Microversion will be introduced, after the change, if API\u0027s input"},{"line_number":53,"context_line":"option is invalid, nova will raise exception and reject the request."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba15a1d1_9aa7820a","line":53,"updated":"2015-09-17 15:43:29.000000000","message":"in the description you say that nova should notify the user but here there is the notion of rejection.\nI\u0027d prefer to give a warning back to the user, please see my alternative proposal","commit_id":"f00c83128c3a80fcd0a98493d7d72e5dafd3bed9"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"ebf26a4ad8edfc7eeb689f2bbcc753d321aa30fa","unresolved":false,"context_lines":[{"line_number":56,"context_line":"------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Don\u0027t do the change, let the invalid option accepted."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Data model impact"},{"line_number":61,"context_line":"-----------------"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba15a1d1_5af80ac3","line":59,"updated":"2015-09-17 15:43:29.000000000","message":"An alternative I can see is to return the data without applying the unknown filters (current behaviour) and add an http warning header (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.46) with a 299 warn-code.\nIn the header we can clearly indicate which filters have been applied and which one have been stripped as invalid","commit_id":"f00c83128c3a80fcd0a98493d7d72e5dafd3bed9"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"ebf26a4ad8edfc7eeb689f2bbcc753d321aa30fa","unresolved":false,"context_lines":[{"line_number":129,"context_line":"Documentation Impact"},{"line_number":130,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Specify that invalid option will be rejected if user is not admin."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"References"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba15a1d1_5a7b2a28","line":132,"updated":"2015-09-17 15:43:29.000000000","message":"as I said I prefer to accept the request and return a response with a warning-header and in that case I\u0027d do the same for the requests coming from admin users with invalid search parameters","commit_id":"f00c83128c3a80fcd0a98493d7d72e5dafd3bed9"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"b39237ac53be7817f2a96ae52d3e9d96634d4629","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Validate options to list-servers"},{"line_number":9,"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"\u003cblueprint link\u003e"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Users sometimes make spelling and other mistakes. It\u0027s important that Nova"},{"line_number":14,"context_line":"validate requests or a user may think Nova is answering a different query than"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a29b11f_d171dca9","line":11,"updated":"2015-10-20 04:21:24.000000000","message":"You\u0027ll make one of these right?","commit_id":"abff881e9d796b54330de68df253e49596593047"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"b39237ac53be7817f2a96ae52d3e9d96634d4629","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Users sometimes make spelling and other mistakes. It\u0027s important that Nova"},{"line_number":14,"context_line":"validate requests or a user may think Nova is answering a different query than"},{"line_number":15,"context_line":"the one it\u0027s actually answering."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"},{"line_number":18,"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":5,"id":"3a29b11f_71032843","line":15,"updated":"2015-10-20 04:21:24.000000000","message":"Okay this part I get and I think it\u0027s reasonable.\n\nI think more data validation is good.","commit_id":"abff881e9d796b54330de68df253e49596593047"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"b39237ac53be7817f2a96ae52d3e9d96634d4629","unresolved":false,"context_lines":[{"line_number":29,"context_line":"  nova.servers.list(detailed\u003dTrue, search_opts\u003d{\u0027id\u0027: \u0027FAKE-UUID\u0027})"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"We get all the instances back, despite none of them having an \u0027id\u0027 matching"},{"line_number":32,"context_line":"\u0027FAKE-UUID\u0027."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Use Cases"},{"line_number":35,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a29b11f_11cbd41f","line":32,"updated":"2015-10-20 04:21:24.000000000","message":"Okay so I\u0027m clearly missing something:\n\n \u003e\u003e\u003e c \u003d client.Client(2.1, os.environ[\u0027OS_USERNAME\u0027], os.environ[\u0027OS_PASSWORD\u0027], os.environ[\u0027OS_TENANT_NAME\u0027], os.environ[\u0027OS_AUTH_URL\u0027])\n \u003e\u003e\u003e servers \u003d c.servers.list(detailed\u003dTrue, search_opts\u003d{\u0027id\u0027: \u0027foo\u0027})\n \u003e\u003e\u003e print servers\n []\n\nIf we\u0027re specifying a search_opts and returning data that doesn\u0027t match that query that\u0027s a simple bug right?","commit_id":"abff881e9d796b54330de68df253e49596593047"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"fef2f152c0d49bf685fdc4c8d199a6a450adb45d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"  nova.servers.list(detailed\u003dTrue, search_opts\u003d{\u0027id\u0027: \u0027FAKE-UUID\u0027})"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"We get all the instances back, despite none of them having an \u0027id\u0027 matching"},{"line_number":32,"context_line":"\u0027FAKE-UUID\u0027."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Use Cases"},{"line_number":35,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a29b11f_c041a8aa","line":32,"in_reply_to":"3a29b11f_11cbd41f","updated":"2015-10-21 18:46:10.000000000","message":"are you using admin tenant cause the code has different process in here?\n\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/servers.py#L1161","commit_id":"abff881e9d796b54330de68df253e49596593047"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"0d94f1009edbf113048603b807f4d15fa0de60ab","unresolved":false,"context_lines":[{"line_number":29,"context_line":"  nova.servers.list(detailed\u003dTrue, search_opts\u003d{\u0027id\u0027: \u0027FAKE-UUID\u0027})"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"We get all the instances back, despite none of them having an \u0027id\u0027 matching"},{"line_number":32,"context_line":"\u0027FAKE-UUID\u0027."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Use Cases"},{"line_number":35,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a29b11f_86c65d98","line":32,"in_reply_to":"3a29b11f_c041a8aa","updated":"2015-10-22 03:11:02.000000000","message":"Ah yes I was.","commit_id":"abff881e9d796b54330de68df253e49596593047"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"505b01a8836921043ee6c1ef6868cf0cc197f34c","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Use Cases"},{"line_number":35,"context_line":"---------"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Sam writes a script to query Nova for certain names and if duplicates are"},{"line_number":38,"context_line":"found, delete the first one. Unfortunately Sam makes a mistake in the options."},{"line_number":39,"context_line":"This causes Nova to return all servers every request. Sam\u0027s script deletes the"},{"line_number":40,"context_line":"first one for each name, slowly destroying all servers. This makes Sam sad."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a29b11f_24648547","line":37,"updated":"2015-10-20 10:15:38.000000000","message":"Who is Sam?\nA sample user or someone?\nIf so, it is better to write \"A user\". I guessed \"Sam\" implies someone special.","commit_id":"abff881e9d796b54330de68df253e49596593047"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"b39237ac53be7817f2a96ae52d3e9d96634d4629","unresolved":false,"context_lines":[{"line_number":69,"context_line":"---------------"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"The ``GET /servers/detail`` endpoint will be modified to validate options."},{"line_number":72,"context_line":"Although admins are permitted more options than non-admins, requests"},{"line_number":73,"context_line":"referencing unknown options will still be rejected. Rejected requests will have"},{"line_number":74,"context_line":"an HTTP 400 code (BadRequest). The body will be a list of strings, each"},{"line_number":75,"context_line":"describing an invalid option."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a29b11f_31fdb03a","line":72,"updated":"2015-10-20 04:21:24.000000000","message":"What is an example of something we\u0027d query on that isn\u0027t visible to a non-admin","commit_id":"abff881e9d796b54330de68df253e49596593047"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"fef2f152c0d49bf685fdc4c8d199a6a450adb45d","unresolved":false,"context_lines":[{"line_number":69,"context_line":"---------------"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"The ``GET /servers/detail`` endpoint will be modified to validate options."},{"line_number":72,"context_line":"Although admins are permitted more options than non-admins, requests"},{"line_number":73,"context_line":"referencing unknown options will still be rejected. Rejected requests will have"},{"line_number":74,"context_line":"an HTTP 400 code (BadRequest). The body will be a list of strings, each"},{"line_number":75,"context_line":"describing an invalid option."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a29b11f_00b4807f","line":72,"in_reply_to":"3a29b11f_31fdb03a","updated":"2015-10-21 18:46:10.000000000","message":"anything we are supporting now, such as \u0027id\u0027..","commit_id":"abff881e9d796b54330de68df253e49596593047"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"505b01a8836921043ee6c1ef6868cf0cc197f34c","unresolved":false,"context_lines":[{"line_number":72,"context_line":"Although admins are permitted more options than non-admins, requests"},{"line_number":73,"context_line":"referencing unknown options will still be rejected. Rejected requests will have"},{"line_number":74,"context_line":"an HTTP 400 code (BadRequest). The body will be a list of strings, each"},{"line_number":75,"context_line":"describing an invalid option."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Security impact"},{"line_number":78,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a29b11f_a473b5e6","line":75,"updated":"2015-10-20 10:15:38.000000000","message":"The above means\n\n If a client GETs /servers/detail with the other options except\n \u0027sort_key\u0027/\u0027sort_dir\u0027/\u0027limit\u0027/\u0027marker\u0027, Nova returns HTTP400\n response instead of ignoring.\n\nright?\n\nand how about adding the same behavior to /servers also?","commit_id":"abff881e9d796b54330de68df253e49596593047"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"0d94f1009edbf113048603b807f4d15fa0de60ab","unresolved":false,"context_lines":[{"line_number":72,"context_line":"Although admins are permitted more options than non-admins, requests"},{"line_number":73,"context_line":"referencing unknown options will still be rejected. Rejected requests will have"},{"line_number":74,"context_line":"an HTTP 400 code (BadRequest). The body will be a list of strings, each"},{"line_number":75,"context_line":"describing an invalid option."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Security impact"},{"line_number":78,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a29b11f_666781b7","line":75,"in_reply_to":"3a29b11f_0039e0f1","updated":"2015-10-22 03:11:02.000000000","message":"Clearly you wouldn\u0027t implement it this way but ....\n\nif remove_invalid_options() would modify search_opts then we\u0027d raise a BadRequest?","commit_id":"abff881e9d796b54330de68df253e49596593047"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"a582f52e147c0373d14f26284d6ee77aa176f1fa","unresolved":false,"context_lines":[{"line_number":72,"context_line":"Although admins are permitted more options than non-admins, requests"},{"line_number":73,"context_line":"referencing unknown options will still be rejected. Rejected requests will have"},{"line_number":74,"context_line":"an HTTP 400 code (BadRequest). The body will be a list of strings, each"},{"line_number":75,"context_line":"describing an invalid option."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Security impact"},{"line_number":78,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a29b11f_a1c33237","line":75,"in_reply_to":"3a29b11f_666781b7","updated":"2015-10-22 12:47:15.000000000","message":"I guess so ... a Badrequest will be raised","commit_id":"abff881e9d796b54330de68df253e49596593047"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"fef2f152c0d49bf685fdc4c8d199a6a450adb45d","unresolved":false,"context_lines":[{"line_number":72,"context_line":"Although admins are permitted more options than non-admins, requests"},{"line_number":73,"context_line":"referencing unknown options will still be rejected. Rejected requests will have"},{"line_number":74,"context_line":"an HTTP 400 code (BadRequest). The body will be a list of strings, each"},{"line_number":75,"context_line":"describing an invalid option."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Security impact"},{"line_number":78,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a29b11f_0039e0f1","line":75,"in_reply_to":"3a29b11f_a473b5e6","updated":"2015-10-21 18:46:10.000000000","message":"I think should be this? \n\nopt_list \u003d (\u0027reservation_id\u0027, \u0027name\u0027, \u0027status\u0027, \u0027image\u0027, \u0027flavor\u0027,\n            \u0027ip\u0027, \u0027changes-since\u0027, \u0027all_tenants\u0027)","commit_id":"abff881e9d796b54330de68df253e49596593047"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"737f4723f5a23c4f56251bc898af851b6ea80032","unresolved":false,"context_lines":[{"line_number":73,"context_line":"referencing unknown options will still be rejected. Rejected requests will have"},{"line_number":74,"context_line":"an HTTP 400 code (BadRequest). The body will be a list of strings, each"},{"line_number":75,"context_line":"describing an invalid option."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Security impact"},{"line_number":78,"context_line":"---------------"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a8ffd7b_75daa07a","line":76,"updated":"2015-11-24 11:34:39.000000000","message":"This change would have to be added in new micro-version, and not added to the existing APIs, as I understand it. We should certainly comment on that here.","commit_id":"abff881e9d796b54330de68df253e49596593047"}]}
