)]}'
{"specs/ocata/approved/resource-providers-get-by-request.rst":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"fd912cbbd0d002eca4515c6895367fac7f8ffb82","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"There is currently no way to get a list of resource providers that can fulfill"},{"line_number":21,"context_line":"a set of requested resources by verifying that the respective inventories can"},{"line_number":22,"context_line":"support the existing allocation plus the requested overhead."},{"line_number":23,"context_line":"That work is a necessary prerequisite for the scheduler being able to call the"},{"line_number":24,"context_line":"placement API in order to narrow the list of acceptable hosts before calling"},{"line_number":25,"context_line":"the filters."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_7f5223df","line":22,"updated":"2016-11-14 19:25:50.000000000","message":"s/overhead/amounts/\n\noverhead has a specific connotation with regards to the instance_extra_overhead crap that some virt drivers use, so better to not use that term here I think.","commit_id":"a57d03deb03ab53bf462f54e5f1999acebac2e02"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"29adc0ba06d60735eaa92715dcdd1a4a27486c20","unresolved":false,"context_lines":[{"line_number":36,"context_line":"support a request body (yes, we know, it\u0027s again the HTTP standards but we"},{"line_number":37,"context_line":"want to be pragmatic here) that would describe a list of requested amounts"},{"line_number":38,"context_line":"of resource classes and would return a list of resource providers supporting"},{"line_number":39,"context_line":"those amounts."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"To be clear, the math for knowing whether a resource provider is acceptable"},{"line_number":42,"context_line":"would be, for each resource class, take the related inventory, lookup the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa6399be_df91eff2","line":39,"updated":"2016-10-13 11:50:46.000000000","message":"POST is more correct, see below.","commit_id":"a57d03deb03ab53bf462f54e5f1999acebac2e02"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ef2f96ddd574daa306b7024b0d527ac4a0690f3a","unresolved":false,"context_lines":[{"line_number":36,"context_line":"support a request body (yes, we know, it\u0027s again the HTTP standards but we"},{"line_number":37,"context_line":"want to be pragmatic here) that would describe a list of requested amounts"},{"line_number":38,"context_line":"of resource classes and would return a list of resource providers supporting"},{"line_number":39,"context_line":"those amounts."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"To be clear, the math for knowing whether a resource provider is acceptable"},{"line_number":42,"context_line":"would be, for each resource class, take the related inventory, lookup the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a629dbe_93b438d2","line":39,"in_reply_to":"fa6399be_df91eff2","updated":"2016-11-14 14:30:56.000000000","message":"+1","commit_id":"a57d03deb03ab53bf462f54e5f1999acebac2e02"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"fd912cbbd0d002eca4515c6895367fac7f8ffb82","unresolved":false,"context_lines":[{"line_number":42,"context_line":"would be, for each resource class, take the related inventory, lookup the"},{"line_number":43,"context_line":"allocations against that inventory and make sure that the amount of free"},{"line_number":44,"context_line":"resource for the inventory is more or equal than the requested amount, with"},{"line_number":45,"context_line":"respect to the defined allocation ratio and the reserved size."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Alternatives"},{"line_number":48,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_9fb9bfef","line":45,"updated":"2016-11-14 19:25:50.000000000","message":"There is also the matter of the \"limits\" -- which are handled using the min_unit and max_unit values of the inventory records, but it\u0027s not critical that you mention it here. Just be aware that we\u0027ll need to handle these as part of the \"math\" you mention above :)","commit_id":"a57d03deb03ab53bf462f54e5f1999acebac2e02"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"29adc0ba06d60735eaa92715dcdd1a4a27486c20","unresolved":false,"context_lines":[{"line_number":45,"context_line":"respect to the defined allocation ratio and the reserved size."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Alternatives"},{"line_number":48,"context_line":"------------"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"The fact that we allow a GET method having a request body can be hard to accept"},{"line_number":51,"context_line":"but we favor that than providing a POST method that would conceptually say that"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa6399be_b4437d41","line":48,"updated":"2016-10-13 11:50:46.000000000","message":"We could list the several alternatives here:\n\n* GET /resource_providers with a query string representing the request spec\n* POST /resource_providers with a request body representing the request spec (for which there are at least three sub options):\n    * provide a query string flag to distinguish from the other POST at this same URI\n    * use jsonschema validation fall through cascades to distinguish between the two different bodies that can be posted\n    * use a different content-type for each request body form (this is the canonical way of doing it, but content negotiation is evidently uncommon in openstack)\n* Use a different URI (not a great idea because we already have the existing resource providers collection uri)\n* Use a different request method (SEARCH is one idea that\u0027s been mooted)","commit_id":"a57d03deb03ab53bf462f54e5f1999acebac2e02"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b5cf3a57826a4b6d54888603666a1ca665fcda86","unresolved":false,"context_lines":[{"line_number":45,"context_line":"respect to the defined allocation ratio and the reserved size."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Alternatives"},{"line_number":48,"context_line":"------------"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"The fact that we allow a GET method having a request body can be hard to accept"},{"line_number":51,"context_line":"but we favor that than providing a POST method that would conceptually say that"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa6399be_de8ba7c1","line":48,"in_reply_to":"fa6399be_b4437d41","updated":"2016-10-13 14:42:14.000000000","message":"Aye, and detailing the downsides of each of these would be helpful. I know there are limitations on URL length, for example, which might rule out a GET model, but why not the POST model?","commit_id":"a57d03deb03ab53bf462f54e5f1999acebac2e02"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"29adc0ba06d60735eaa92715dcdd1a4a27486c20","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"The fact that we allow a GET method having a request body can be hard to accept"},{"line_number":51,"context_line":"but we favor that than providing a POST method that would conceptually say that"},{"line_number":52,"context_line":"we\u0027re committing a request."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Data model impact"},{"line_number":55,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa6399be_f14c27ca","line":52,"updated":"2016-10-13 11:50:46.000000000","message":"I think a common misconception about POST is being stated here. It doesn\u0027t mean write some stuff, or create a thing. It means process a request according to its own semantics. See the first few parts of https://tools.ietf.org/html/rfc7231#section-4.3.3 which defines POST\n\nFurther while in IRC some people effectively said \"standards schmandards, let\u0027s be pragmatic\" even if we set aside the risk that some servers and proxies will not pass the body of a it is directly against the intent of GET to use one. See several of the comments on http://stackoverflow.com/questions/978061/http-get-with-request-body\n\nThe gist is that GET means \"get what\u0027s stated by the URI (which includes the query string)\" and since we\u0027re trying to modify what we\u0027re getting back based on the body, we\u0027re \"not doing it right\". Based on the conversation in IRC some people apparently don\u0027t care about doing it right, but I do because it\u0027s a sets an example and tone for how we do everything. If anyone just does what they like in arena A it is very hard to ask for quality somewhere else with any legitimacy.\n\nSimilarly its extremely bad form for a project within OpenStack that has the history that Nova has to flounce around and not follow the \"rules\" when other projects are trying hard to do so. It\u0027s really quite offensive to all the hard work that is being done by others to try to achieve consistency.","commit_id":"a57d03deb03ab53bf462f54e5f1999acebac2e02"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ef2f96ddd574daa306b7024b0d527ac4a0690f3a","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"The fact that we allow a GET method having a request body can be hard to accept"},{"line_number":51,"context_line":"but we favor that than providing a POST method that would conceptually say that"},{"line_number":52,"context_line":"we\u0027re committing a request."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Data model impact"},{"line_number":55,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a629dbe_3381ac4e","line":52,"in_reply_to":"fa6399be_25f81549","updated":"2016-11-14 14:30:56.000000000","message":"Feels like this should be POST to me. Seems odd to GET with a body, no matter whether its possible or not.","commit_id":"a57d03deb03ab53bf462f54e5f1999acebac2e02"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"1d227633a783c980d2b526d4379bf6307b3abdd7","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"The fact that we allow a GET method having a request body can be hard to accept"},{"line_number":51,"context_line":"but we favor that than providing a POST method that would conceptually say that"},{"line_number":52,"context_line":"we\u0027re committing a request."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Data model impact"},{"line_number":55,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa6399be_25f81549","line":52,"in_reply_to":"fa6399be_f14c27ca","updated":"2016-10-13 12:52:18.000000000","message":"^^ Yeah, what he said.","commit_id":"a57d03deb03ab53bf462f54e5f1999acebac2e02"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"4d898d0b8884026bef73e4fe00e7a737f2444197","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"We propose to change the existing GET /resource_providers index method to"},{"line_number":36,"context_line":"support a request body (yes, we know, it\u0027s again the HTTP standards but we"},{"line_number":37,"context_line":"want to be pragmatic here) that would describe a list of requested amounts"},{"line_number":38,"context_line":"of resource classes and would return a list of resource providers supporting"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_2b206949","line":35,"updated":"2016-11-14 21:30:19.000000000","message":"Mixing GET here and POST below.","commit_id":"87bfb0401481445d8b028e6b1990b7e710fdafdc"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"4d898d0b8884026bef73e4fe00e7a737f2444197","unresolved":false,"context_lines":[{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"We propose to change the existing GET /resource_providers index method to"},{"line_number":36,"context_line":"support a request body (yes, we know, it\u0027s again the HTTP standards but we"},{"line_number":37,"context_line":"want to be pragmatic here) that would describe a list of requested amounts"},{"line_number":38,"context_line":"of resource classes and would return a list of resource providers supporting"},{"line_number":39,"context_line":"those amounts."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_6b1a6119","line":36,"updated":"2016-11-14 21:30:19.000000000","message":"against","commit_id":"87bfb0401481445d8b028e6b1990b7e710fdafdc"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"4d898d0b8884026bef73e4fe00e7a737f2444197","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Example::"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    POST /resource_providers?request"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    200 OK"},{"line_number":83,"context_line":"    Content-Type: application/json"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_6bc8a175","line":80,"updated":"2016-11-14 21:30:19.000000000","message":"_If_ we\u0027re going to do a POST I think it\u0027s fine to branch based on which jsonschema the body passes. Sending a query string is oogly. But how we handle a POST is an implementation detail that we can worry about in the implementation, I think.","commit_id":"87bfb0401481445d8b028e6b1990b7e710fdafdc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"f66432d63c101fbbf743df805151c8c0b50194b6","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Example::"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    POST /resource_providers?request"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    200 OK"},{"line_number":83,"context_line":"    Content-Type: application/json"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_15f3b574","line":80,"in_reply_to":"7a77a97e_6bc8a175","updated":"2016-11-15 09:54:27.000000000","message":"Well, I tend to prefer being explicit about which behaviour the operator would want for POST if we agree with that one.\n\nSee the disclaimer tho, I don\u0027t want to run over that discussion for that spec yet another week.","commit_id":"87bfb0401481445d8b028e6b1990b7e710fdafdc"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"4d898d0b8884026bef73e4fe00e7a737f2444197","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    POST /resource_providers?request"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    200 OK"},{"line_number":83,"context_line":"    Content-Type: application/json"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    {"},{"line_number":86,"context_line":"      \"resource_providers\": ["}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_eb8111fd","line":83,"updated":"2016-11-14 21:30:19.000000000","message":"It\u0027s difficult from your choice of presentation to understand that what\u0027s below is the response body. I\u0027d prefer you order things:\n\nrequest \n\nrequest body\n\nresponse  headers\n\nresponse body","commit_id":"87bfb0401481445d8b028e6b1990b7e710fdafdc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b9674fbb1c8116e5ff8c2f1be27e2e575604f5df","unresolved":false,"context_lines":[{"line_number":27,"context_line":"Use Cases"},{"line_number":28,"context_line":"----------"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"None."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a77a97e_61b3b6e9","line":30,"updated":"2016-11-17 22:02:47.000000000","message":"Really? As the nova-scheduler, I want to query the placement service for a list of resource providers that can satisfy a request for a certain amount of inventory of specific resource classes.","commit_id":"20c17838f057402e915280036be0977e51d7122f"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"07cba628a22c9afff3179d48c49f0e3670e078cf","unresolved":false,"context_lines":[{"line_number":27,"context_line":"Use Cases"},{"line_number":28,"context_line":"----------"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"None."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a77a97e_ecd41d21","line":30,"in_reply_to":"7a77a97e_61b3b6e9","updated":"2016-11-17 22:06:42.000000000","message":"Specs with no use case should be closed as irrelevant, right? :)","commit_id":"20c17838f057402e915280036be0977e51d7122f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b9674fbb1c8116e5ff8c2f1be27e2e575604f5df","unresolved":false,"context_lines":[{"line_number":40,"context_line":"To be clear, the math for knowing whether a resource provider is acceptable"},{"line_number":41,"context_line":"would be, for each resource class, take the related inventory, lookup the"},{"line_number":42,"context_line":"allocations against that inventory and make sure that the amount of free"},{"line_number":43,"context_line":"resource for the inventory is more or equal than the requested amount, with"},{"line_number":44,"context_line":"respect to the defined allocation ratio and the reserved size."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a77a97e_41fcfa71","line":43,"range":{"start_line":43,"start_character":30,"end_line":43,"end_character":34},"updated":"2016-11-17 22:02:47.000000000","message":"nit: if we\u0027re talking math, I prefer \u0027greater than or equal to\u0027. :)","commit_id":"20c17838f057402e915280036be0977e51d7122f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b9674fbb1c8116e5ff8c2f1be27e2e575604f5df","unresolved":false,"context_lines":[{"line_number":59,"context_line":"REST API impact"},{"line_number":60,"context_line":"---------------"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":".. warning ::"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"  The following REST API proposal is a possible solution that will be reviewed"},{"line_number":65,"context_line":"  during the implementation. That means that the REST resource or the HTTP"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a77a97e_e1ed06b8","line":62,"updated":"2016-11-17 22:02:47.000000000","message":"uh oh...here come the dragons...","commit_id":"20c17838f057402e915280036be0977e51d7122f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b9674fbb1c8116e5ff8c2f1be27e2e575604f5df","unresolved":false,"context_lines":[{"line_number":71,"context_line":"`POST /resource_providers`"},{"line_number":72,"context_line":"*************************"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"The POST method for that /resource_providers REST resource will now accept"},{"line_number":75,"context_line":"a new query string in the URI called \u0027request\u0027 that will return a list of"},{"line_number":76,"context_line":"all the resource providers accepted a list of resource requirements."},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a77a97e_ec27bdb3","line":74,"range":{"start_line":74,"start_character":4,"end_line":74,"end_character":8},"updated":"2016-11-17 22:02:47.000000000","message":"I believe some of the argument over this spec was GET vs POST but reading:\n\nhttp://www.w3schools.com/tags/ref_httpmethods.asp\n\nI think I\u0027m buying the POST argument for this, especially as we start sending over gobs of required/preferred placement data.","commit_id":"20c17838f057402e915280036be0977e51d7122f"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"07cba628a22c9afff3179d48c49f0e3670e078cf","unresolved":false,"context_lines":[{"line_number":71,"context_line":"`POST /resource_providers`"},{"line_number":72,"context_line":"*************************"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"The POST method for that /resource_providers REST resource will now accept"},{"line_number":75,"context_line":"a new query string in the URI called \u0027request\u0027 that will return a list of"},{"line_number":76,"context_line":"all the resource providers accepted a list of resource requirements."},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a77a97e_ccecc1f5","line":74,"range":{"start_line":74,"start_character":4,"end_line":74,"end_character":8},"in_reply_to":"7a77a97e_ec27bdb3","updated":"2016-11-17 22:06:42.000000000","message":"...and the warning above is reserving the right to continue the argument past this spec merge :)\n\nBut yeah, I\u0027m pro-POST as well.","commit_id":"20c17838f057402e915280036be0977e51d7122f"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"4331adda6f6b99072545781fb445f709441caa1f","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Example::"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    POST /resource_providers?request"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"The body of the request must match the following JSONSchema document::"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a71b18c_86d081f9","line":80,"updated":"2016-12-07 21:09:48.000000000","message":"so, just semantically, it\u0027s definitely an oddity to use both URL params and POST body. It\u0027s probably not a spec violation, but it\u0027s definitely not done a lot, so I would be a little concerned in tooling always being able to support this. And while params don\u0027t *have* to be of the form, ?a\u003db\u0026c\u003dd, they often are.\n\nIs there a reason that we don\u0027t POST /resource_providers/request instead?","commit_id":"20c17838f057402e915280036be0977e51d7122f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b9674fbb1c8116e5ff8c2f1be27e2e575604f5df","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    }"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"In case a requested resource class doesn\u0027t exist, a HTTP400 will be returned."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Security impact"},{"line_number":177,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a77a97e_2ca37501","line":174,"range":{"start_line":174,"start_character":52,"end_line":174,"end_character":59},"updated":"2016-11-17 22:02:47.000000000","message":"404 seems more appropriate but I\u0027m sure there is some API WG guideline explaining why it\u0027s 400.\n\nhttps://specs.openstack.org/openstack/api-wg/guidelines/http.html#failure-code-clarifications","commit_id":"20c17838f057402e915280036be0977e51d7122f"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"07cba628a22c9afff3179d48c49f0e3670e078cf","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    }"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"In case a requested resource class doesn\u0027t exist, a HTTP400 will be returned."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Security impact"},{"line_number":177,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a77a97e_acc6a565","line":174,"range":{"start_line":174,"start_character":52,"end_line":174,"end_character":59},"in_reply_to":"7a77a97e_2ca37501","updated":"2016-11-17 22:06:42.000000000","message":"And space between HTTP and 4xx I think.","commit_id":"20c17838f057402e915280036be0977e51d7122f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8f24686e490b8c2cdbabb46c6de7f9eb7e740498","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    }"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"In case a requested resource class doesn\u0027t exist, a HTTP400 will be returned."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Security impact"},{"line_number":177,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a77a97e_c7fe5aad","line":174,"range":{"start_line":174,"start_character":52,"end_line":174,"end_character":59},"in_reply_to":"7a77a97e_acc6a565","updated":"2016-11-17 22:26:47.000000000","message":"That\u0027s a given.","commit_id":"20c17838f057402e915280036be0977e51d7122f"}]}
