)]}'
{"nova/api/openstack/compute/scheduler_hints.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ec6ebc507fcd947a2d61916349ff820c1b87e5b5","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    def _extend_api_schema(self, ext, sched_schema):"},{"line_number":51,"context_line":"        handler \u003d ext.obj"},{"line_number":52,"context_line":"        schema \u003d handler.get_scheduler_hint_api_schema()"},{"line_number":53,"context_line":"        sched_schema[\u0027os:scheduler_hints\u0027][\u0027properties\u0027].update(schema)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def get_server_create_schema(self):"},{"line_number":56,"context_line":"        def _check_load_filters():"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_92f3d772","line":53,"updated":"2015-09-07 09:45:19.000000000","message":"sched_schema[OS-SCH-HNT:scheduler_hints\u0027][\u0027properties\u0027].update(schema) too","commit_id":"1f89b01fd76d6c95d1892c6ab9c86d12645527b8"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"ca487896912a7bd3bd41193cdd159d644849ba7d","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    def _extend_api_schema(self, ext, sched_schema):"},{"line_number":51,"context_line":"        handler \u003d ext.obj"},{"line_number":52,"context_line":"        schema \u003d handler.get_scheduler_hint_api_schema()"},{"line_number":53,"context_line":"        sched_schema[\u0027os:scheduler_hints\u0027][\u0027properties\u0027].update(schema)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def get_server_create_schema(self):"},{"line_number":56,"context_line":"        def _check_load_filters():"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_cd5bee20","line":53,"in_reply_to":"da20952f_92f3d772","updated":"2015-09-07 09:53:27.000000000","message":"@gmann\n\nThat is not necessary intentionally ;)\n\nbecause os:scheduler_hints and OS-SCH-HNT:scheduler_hints are sharing the same internal dict and the unit test which is contained in this patch has tested it.","commit_id":"1f89b01fd76d6c95d1892c6ab9c86d12645527b8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"47227b955206af645f9126fcd56c123b0821995a","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    def _extend_api_schema(self, ext, sched_schema):"},{"line_number":51,"context_line":"        handler \u003d ext.obj"},{"line_number":52,"context_line":"        schema \u003d handler.get_scheduler_hint_api_schema()"},{"line_number":53,"context_line":"        sched_schema[\u0027os:scheduler_hints\u0027][\u0027properties\u0027].update(schema)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def get_server_create_schema(self):"},{"line_number":56,"context_line":"        def _check_load_filters():"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_cd652eaf","line":53,"in_reply_to":"da20952f_cd5bee20","updated":"2015-09-07 09:58:34.000000000","message":"oh, yes it updating common properties. Thanks","commit_id":"1f89b01fd76d6c95d1892c6ab9c86d12645527b8"}],"nova/scheduler/filters/affinity_filter.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"296fe7127f3469f1f4fde8a75fe49d9814b69a8a","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import netaddr"},{"line_number":19,"context_line":"from oslo_log import log as logging"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from nova.api.validation import parameter_types"},{"line_number":22,"context_line":"from nova.scheduler import filters"},{"line_number":23,"context_line":"from nova.scheduler.filters import utils"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_01e0d727","line":21,"updated":"2015-09-07 08:06:34.000000000","message":"Sorry but I\u0027m very against providing to the scheduler some way to know or infer how the API is working - that just breaks our layer isolation policy IMHO\n\nI\u0027d rather prefer to consider that the API should expose a set of Hints and only provide those, while the Filters should just consume what\u0027s passed.\n\nOf course, that needs that the configuration bits necessary for enabling filters and hints should necessarly be consistent between all the services (n-api and n-sch).\nThat tends to expose at the API level which filters are run, what I quite dislike too (because we could run a ChanceScheduler requiring no filters, or just because it breaks the layer isolation rule that I mentioned above), so I just think we should ask the operator to specific which ***hints*** are exposed at the API level, and just provide as documentation what hints are necessary for which filters.","commit_id":"6d139d716bb7bf0861c975e0adfc724d00377681"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"15ab8f848d4a5b0487e5bae25b98cf93e14b2a7e","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import netaddr"},{"line_number":19,"context_line":"from oslo_log import log as logging"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from nova.api.validation import parameter_types"},{"line_number":22,"context_line":"from nova.scheduler import filters"},{"line_number":23,"context_line":"from nova.scheduler.filters import utils"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_9768a9f6","line":21,"in_reply_to":"da20952f_01e0d727","updated":"2015-09-07 09:17:55.000000000","message":"That\u0027s very nice point. There is not any module file which import nova.api, and I\u0027d like to avoid it.","commit_id":"6d139d716bb7bf0861c975e0adfc724d00377681"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7cca8b852a857fd763d9ff25e25624533e7d1136","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                \u0027type\u0027: [\u0027string\u0027, \u0027array\u0027],"},{"line_number":66,"context_line":"                \u0027items\u0027: {\u0027type\u0027: \u0027string\u0027}"},{"line_number":67,"context_line":"            }"},{"line_number":68,"context_line":"        }"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class SimpleCIDRAffinityFilter(filters.BaseHostFilter):"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_d97f2a15","line":68,"updated":"2015-09-07 14:31:49.000000000","message":"like I said over IRC, I\u0027m not particulary fan of exposing some API details within the filters.\n\nI\u0027d rather prefer to have the API HintController managing a list of Hints thru a config flag (that can be loaded thru a specific stevedore entrypoint or not) and where it would be the operator\u0027s responsibility to ensure that if enabling DifferentHost filter on the nova-scheduler, he would also have to enable DifferentHost hint on the nova-api.\n\nIf DifferentHost hint is enabled without the corresponding filter, that\u0027s not really a problem because we\u0027re enforcing for something which is not really used.\nIf DifferentHost hint is disabled while DifferentHost filter is enabled, then even if the user was passing an hint, it wouldn\u0027t given to the filter so it would always return True.","commit_id":"1f89b01fd76d6c95d1892c6ab9c86d12645527b8"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"490622493cf192555ebbf6a06116dba26a0b71ab","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                \u0027type\u0027: [\u0027string\u0027, \u0027array\u0027],"},{"line_number":66,"context_line":"                \u0027items\u0027: {\u0027type\u0027: \u0027string\u0027}"},{"line_number":67,"context_line":"            }"},{"line_number":68,"context_line":"        }"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class SimpleCIDRAffinityFilter(filters.BaseHostFilter):"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_2354ac1f","line":68,"in_reply_to":"da20952f_23390df3","updated":"2015-09-09 08:23:06.000000000","message":"Yeah, agreed, let\u0027s discuss the implementation details within a spec. You can CC me when you\u0027re done with that, I\u0027d be glad to help you on that.","commit_id":"1f89b01fd76d6c95d1892c6ab9c86d12645527b8"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"93f9a1e9f7e90ee4796687a2caf8808d92603f2e","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                \u0027type\u0027: [\u0027string\u0027, \u0027array\u0027],"},{"line_number":66,"context_line":"                \u0027items\u0027: {\u0027type\u0027: \u0027string\u0027}"},{"line_number":67,"context_line":"            }"},{"line_number":68,"context_line":"        }"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class SimpleCIDRAffinityFilter(filters.BaseHostFilter):"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_9aedeeb9","line":68,"in_reply_to":"da20952f_8f095733","updated":"2015-09-08 20:21:21.000000000","message":"Apologies if I was unclear, my best enemy is my native language...\n\nLet me try to rephrase : I\u0027m not sure we should provide the schema within the filter but rather separately in a different module (called by the hint name for example) because that\u0027s for two disctinct services possibly not on the same physical hosts.\n\nI was originally thinking that setting which hints were active should be done using a new configuration options but then it would be up to the operator to make sure that the active hints are sync\u0027d with the active filters.\n\nBy thinking about that again, I just wonder that if by all of that is needed because of the synchronisation between 2 services, we should rather follow the same pattern that we usually do and take or create some NovaObjects for getting that relationship, like a FilterObject which would have a remotable get_hints()","commit_id":"1f89b01fd76d6c95d1892c6ab9c86d12645527b8"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a9fa99129a121cd5c22288bab4da0645b796e2da","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                \u0027type\u0027: [\u0027string\u0027, \u0027array\u0027],"},{"line_number":66,"context_line":"                \u0027items\u0027: {\u0027type\u0027: \u0027string\u0027}"},{"line_number":67,"context_line":"            }"},{"line_number":68,"context_line":"        }"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class SimpleCIDRAffinityFilter(filters.BaseHostFilter):"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_23390df3","line":68,"in_reply_to":"da20952f_9aedeeb9","updated":"2015-09-09 07:50:58.000000000","message":"@Sylvain\n\n \u003e because that\u0027s for two disctinct services possibly not on the same physical hosts.\n\nYeah, that is a nice point.\n\n \u003e I just wonder that if by all of that is needed because of the synchronisation between 2 services\n\nYeah, that also is a nice point. We need to consider this carefully for covering most scenarios on the real world.\nand I need to know most standard live-upgrade way.\n\nAnyway, I think this is a big topic than I expected when creating this patch.\nSo we need some nova-specs for this, and I\u0027d like to mark this as WIP now.","commit_id":"1f89b01fd76d6c95d1892c6ab9c86d12645527b8"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"da894f108dd3958071914adfcddbfb6587614912","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                \u0027type\u0027: [\u0027string\u0027, \u0027array\u0027],"},{"line_number":66,"context_line":"                \u0027items\u0027: {\u0027type\u0027: \u0027string\u0027}"},{"line_number":67,"context_line":"            }"},{"line_number":68,"context_line":"        }"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class SimpleCIDRAffinityFilter(filters.BaseHostFilter):"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_8f095733","line":68,"in_reply_to":"da20952f_d97f2a15","updated":"2015-09-07 23:43:41.000000000","message":"@Sylvain\n\nI guess you mean we need to implement another layer between nova-api and nova-scheduler.\n\nI think that is redundant and it is not smart way.\nAs you see, this patch\u0027s merit is that we can see API parameters which nova-scheduler uses in the same file, that has merit for the maintenance.\nIf putting another layer, we cannot do that because the corresponding API parameters need to be put on the layer which is different from the using file.\n\nSo still I cannot understand your point. nova-scheduler is using API parameters exactly, and it extracts them from the above filter_properties. So what is a big problem on current implementation?","commit_id":"1f89b01fd76d6c95d1892c6ab9c86d12645527b8"}]}
