)]}'
{"doc/source/api_microversion_dev.rst":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"d00501ec4481555728817b7a087656879e4d1f67","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    However the attribute ``os:scheduler_hints`` of \"create a server\" API is"},{"line_number":64,"context_line":"    an exception in this case. A new scheduler which addes a new attributes"},{"line_number":65,"context_line":"    to ``os:scheduler_hints`` don\u0027t require a new microversion, because"},{"line_number":66,"context_line":"    available schedulers depend on cloud environments and we accept customized"},{"line_number":67,"context_line":"    schedulers as the rule."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"da20952f_8c8125c6","line":65,"range":{"start_line":65,"start_character":30,"end_line":65,"end_character":35},"updated":"2015-09-09 09:32:27.000000000","message":"don\u0027t \u003d\u003e doesn\u0027t","commit_id":"5e69033752ae35b73efb78a306a68a9680f53ff9"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"096a841dc84028976a1cca832775c9667649aef9","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    However the attribute ``os:scheduler_hints`` of \"create a server\" API is"},{"line_number":64,"context_line":"    an exception in this case. A new scheduler which addes a new attributes"},{"line_number":65,"context_line":"    to ``os:scheduler_hints`` don\u0027t require a new microversion, because"},{"line_number":66,"context_line":"    available schedulers depend on cloud environments and we accept customized"},{"line_number":67,"context_line":"    schedulers as the rule."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"da20952f_8cb4c582","line":65,"in_reply_to":"da20952f_8c8125c6","updated":"2015-09-09 09:35:49.000000000","message":"too fast review, thanks :)","commit_id":"5e69033752ae35b73efb78a306a68a9680f53ff9"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"be0c7d42734485764b50ebd2af972de9f9b2be52","unresolved":false,"context_lines":[{"line_number":59,"context_line":"  - the list of attributes and data structures accepted."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    Example: adding a new attribute \u0027locked\u0027: True/False to the request body"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    However the attribute ``os:scheduler_hints`` of \"create a server\" API is"},{"line_number":64,"context_line":"    an exception in this case. A new scheduler which addes a new attributes"},{"line_number":65,"context_line":"    to ``os:scheduler_hints`` doesn\u0027t require a new microversion, because"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da20952f_11aae019","line":62,"updated":"2015-09-10 09:38:16.000000000","message":"I  will separate the first part and the second part because the first part is exactly necessary soon.\nand it is nice to discuss more about the second part later.","commit_id":"7dd076affeca354f610abdfaf582fd05e6cf1384"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5b9c0a3177a1a5e3d49ce2676c94c3b74c3c664a","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    an exception in this case. A new scheduler which addes a new attributes"},{"line_number":65,"context_line":"    to ``os:scheduler_hints`` doesn\u0027t require a new microversion, because"},{"line_number":66,"context_line":"    available schedulers depend on cloud environments and we accept customized"},{"line_number":67,"context_line":"    schedulers as the rule."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- the Response"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"da20952f_1d02210c","line":67,"updated":"2015-09-09 10:38:17.000000000","message":"I am not sure about that second part, I think we should leave that off? The version bump would help advertise we now support that hint in the official API, and I think thats useful, regardless of the validation.","commit_id":"7dd076affeca354f610abdfaf582fd05e6cf1384"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"6905c38e763cf4d4563aaec59977c06dc6797962","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    an exception in this case. A new scheduler which addes a new attributes"},{"line_number":65,"context_line":"    to ``os:scheduler_hints`` doesn\u0027t require a new microversion, because"},{"line_number":66,"context_line":"    available schedulers depend on cloud environments and we accept customized"},{"line_number":67,"context_line":"    schedulers as the rule."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- the Response"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"da20952f_20c3358c","line":67,"in_reply_to":"da20952f_1d02210c","updated":"2015-09-09 12:52:03.000000000","message":"I feel the opposite on this.  If we\u0027re backporting a change through all API microversions I don\u0027t think we should add a new microversion.  But I think we need to only do that in cases where it\u0027s a clear bug fix, i.e. 5xx to 4xx/2xx based on the request.\n\nIf we need to advertise a change in the API then the change should just be at that microversion or later.  This is another aspect of why I don\u0027t think hints and microversions make sense because we\u0027re using different rules for just this section of the API.","commit_id":"7dd076affeca354f610abdfaf582fd05e6cf1384"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f2dda2b08abe586b80e550f52d869d886c4b8850","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    an exception in this case. A new scheduler which addes a new attributes"},{"line_number":65,"context_line":"    to ``os:scheduler_hints`` doesn\u0027t require a new microversion, because"},{"line_number":66,"context_line":"    available schedulers depend on cloud environments and we accept customized"},{"line_number":67,"context_line":"    schedulers as the rule."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- the Response"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"da20952f_449d18ba","line":67,"in_reply_to":"da20952f_20c3358c","updated":"2015-09-09 14:30:37.000000000","message":"The following section is the above second part:\n\nfilter_scheduler.rst\n 313 If you want to create **your own filter** you just need to inherit from\n 314 |BaseHostFilter| and implement one method:\n 315 ``host_passes``. This method should return ``True`` if host passes the filter. It\n 316 takes ``host_state`` (describes host) and ``filter_properties`` dictionary as the\n 317 parameters.\n\nI think we accept consumer own filters as the rule, and we cannot know it as upstream developers. So I think we cannot manage scheduler-hint attribute and that should be out of scope from microversion bump.\n\nAs Andrew said, two factors(microversion and filter_scheduler) are based on different rules. and we need to write it clearly here, I feel now.","commit_id":"7dd076affeca354f610abdfaf582fd05e6cf1384"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"6bc4d217a1d0709d0d5d35042a61530dffa4427a","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    an exception in this case. A new scheduler which addes a new attributes"},{"line_number":65,"context_line":"    to ``os:scheduler_hints`` doesn\u0027t require a new microversion, because"},{"line_number":66,"context_line":"    available schedulers depend on cloud environments and we accept customized"},{"line_number":67,"context_line":"    schedulers as the rule."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- the Response"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"da20952f_aacddb87","line":67,"in_reply_to":"da20952f_449d18ba","updated":"2015-09-09 15:16:53.000000000","message":"In this case, I think that the API contract is that we optionally accept a \u0027scheduler_hints\u0027 parameter, and that if present, it must be a key/value dict. I don\u0027t think that restricting the keys adds any value to the user, and as we\u0027ve seen, can negatively affect them.\n\nFilters were always intended to be customizable by each deployment, as upstream can never be expected to handle every use case. Scheduler hints likewise need to be customizable.","commit_id":"7dd076affeca354f610abdfaf582fd05e6cf1384"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"5d08857d1cafa7f5bef21cc44d9bd7db855c7e9c","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    an exception in this case. A new scheduler which addes a new attributes"},{"line_number":65,"context_line":"    to ``os:scheduler_hints`` doesn\u0027t require a new microversion, because"},{"line_number":66,"context_line":"    available schedulers depend on cloud environments and we accept customized"},{"line_number":67,"context_line":"    schedulers as the rule."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- the Response"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"da20952f_958573d0","line":67,"in_reply_to":"da20952f_830b067d","updated":"2015-09-10 13:45:13.000000000","message":"John, I agree that if we change the API from point x forward then it\u0027s valuable to have a microversion.  My opposition was only in the case where a change affects all previous versions, I find a bump somewhat useless in that case.  More specifically I think we\u0027re overloading what a microversion means.  I thought it meant that from microversion 2.x forward the API can be called like this and you can expect this response.  Which means clients are free to ignore all microversions above what they decide they want to use.  However if microversion 2.y means that 2.x, where x \u003c y, is different then we\u0027re saying that it\u0027s not safe to use 2.x forever because it\u0027s behavior may change without a real indication.  Yes it\u0027s indicated but in a place that someone who just wants to use 2.x shouldn\u0027t need to look.\n\nI still fundamentally disagree that scheduler hints should be part of the API contract.  They keep getting roped into talks of interoperability between clouds but I am unconvinced at this point that providing a strict API contract there does anything to help that.  And I am unconvinced that it\u0027s a place where we need to look at interoperability right now.  This is a place where innovation should be accepted IMO and not all of it needs to live in-tree.  What that says is there is no room to experiment and iterate on a solution before proposing it upstream.  And I don\u0027t think everything in that space needs to live upstream.  I\u0027m not sure I\u0027m gaining any traction with my arguments though.","commit_id":"7dd076affeca354f610abdfaf582fd05e6cf1384"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"5e40da4733a934d4cce998f32c9d0984b10c4d28","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    an exception in this case. A new scheduler which addes a new attributes"},{"line_number":65,"context_line":"    to ``os:scheduler_hints`` doesn\u0027t require a new microversion, because"},{"line_number":66,"context_line":"    available schedulers depend on cloud environments and we accept customized"},{"line_number":67,"context_line":"    schedulers as the rule."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- the Response"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"da20952f_107c11b4","line":67,"in_reply_to":"da20952f_958573d0","updated":"2015-09-10 14:07:43.000000000","message":"If we make hints part of the API contract, will disabling a filter that uses one of those hints break the API? After all, passing a valid hint that is not used will not return an error, but if it supposed to be part of the API contract, then the API should *always* honor it.\n\nReally, I wish we would stop for a second and think about why we have API contracts: at the most basic level, it\u0027s so users will not be surprised by the results of an API call. Adding hints to that contract will now require all deployments to run all of those filters, or they change the result of identical API calls. And Andrew, you are certainly making excellent arguments.","commit_id":"7dd076affeca354f610abdfaf582fd05e6cf1384"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"1c140a85e9507fda78b8a8e438ddbeced42c7c0e","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    an exception in this case. A new scheduler which addes a new attributes"},{"line_number":65,"context_line":"    to ``os:scheduler_hints`` doesn\u0027t require a new microversion, because"},{"line_number":66,"context_line":"    available schedulers depend on cloud environments and we accept customized"},{"line_number":67,"context_line":"    schedulers as the rule."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- the Response"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"da20952f_c32b3e32","line":67,"in_reply_to":"da20952f_aacddb87","updated":"2015-09-10 08:38:05.000000000","message":"Well, all of that makes me very concerned about exposing some Scheduler bits at the API level. Since we accept that the scheduler is modular and extensible, it means that the API contract can be impacted as well.\n\nGiven that we really want to have clouds interoperable, we potentially have to consider first-class citizens (in-tree hints) that would be consistent across all OpenStack trademarked clouds, and second-class citizens (out-of-tree hints) that would not guarantee that you would have the same behaviour (like the same hint name shared between two totally different filters). MHO is that this distinction has to be very explicit by the API and we should stop to propose the same HintsController for both in-tree and out-of-tree, but rather discriminate out-of-tree hints in a specific other free-form key/value-ish attribute.\n\n\nSo, to summarize,\n- I\u0027d even consider to microversion in-tree hints\n- I\u0027d propose another attribute for out-of-tree hints that wouldn\u0027t be versioned","commit_id":"7dd076affeca354f610abdfaf582fd05e6cf1384"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"96d9aacf7d1f890f80f82d97d72531b034707d21","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    an exception in this case. A new scheduler which addes a new attributes"},{"line_number":65,"context_line":"    to ``os:scheduler_hints`` doesn\u0027t require a new microversion, because"},{"line_number":66,"context_line":"    available schedulers depend on cloud environments and we accept customized"},{"line_number":67,"context_line":"    schedulers as the rule."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- the Response"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"da20952f_830b067d","line":67,"in_reply_to":"da20952f_c32b3e32","updated":"2015-09-10 08:44:07.000000000","message":"Andrew, so I do agree that if we backport a fix to all version, there is little point in bumping the version number. The change that follows this, I am totally fine with, its a screw up thats getting fixed.\n\nYou could argue the max API version could advertise that bug fix to a client, but that seems of minimal benefit.\n\nMy thinking here was more, if we add a scheduler hint, we probably only want to add that in a specific micro version, to match the rest of the API, and thats fine. In those cases its good to advertise the version, because with the relaxed validation its hard to know when a hint is accepted by the system vs, just being ignored to allow for out of three schedulers to pick up that hint.\n\nHaving said all that, I could be totally overthinking all this.","commit_id":"7dd076affeca354f610abdfaf582fd05e6cf1384"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"e8c497704f27b1f0c48bb3310963fd84abdec221","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    an exception in this case. A new scheduler which addes a new attributes"},{"line_number":65,"context_line":"    to ``os:scheduler_hints`` doesn\u0027t require a new microversion, because"},{"line_number":66,"context_line":"    available schedulers depend on cloud environments and we accept customized"},{"line_number":67,"context_line":"    schedulers as the rule."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- the Response"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da20952f_40c94eab","line":67,"updated":"2015-09-10 17:29:46.000000000","message":"Some small English suggestions:\n\n    However, the attribute ``os.scheduler_hints`` of the \"create a server\" API is\n    an exception to this. A new scheduler which adds a new attribute\n    to ``os:scheduler_hints`` doesn\u0027t require a new microversion, because\n    available schedulers depend on cloud environments, and we accept customized\n    schedulers as a rule.\n\n(Preserved existing word wrapping as a way to help you see the suggested changes…)","commit_id":"cd885eee257529c12be5329ddf682d08f72ecc72"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2330340b7137e02b6389c9490305a37269dd49e8","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    an exception in this case. A new scheduler which addes a new attributes"},{"line_number":65,"context_line":"    to ``os:scheduler_hints`` doesn\u0027t require a new microversion, because"},{"line_number":66,"context_line":"    available schedulers depend on cloud environments and we accept customized"},{"line_number":67,"context_line":"    schedulers as the rule."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- the Response"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da20952f_dddd3b71","line":67,"in_reply_to":"da20952f_40c94eab","updated":"2015-09-10 23:35:25.000000000","message":"Hi Kevin-san,\n\nThank you for your suggestion, I will update this soon.","commit_id":"cd885eee257529c12be5329ddf682d08f72ecc72"}]}
