)]}'
{"nova/conf/scheduler.py":[{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"6889dfccac97430a21e0b9b0a57c58f52cdbae2e","unresolved":false,"context_lines":[{"line_number":141,"context_line":"This option is the list of weigher class names that will be used to order the"},{"line_number":142,"context_line":"hosts that pass all the filter tests in order to determine which one is the"},{"line_number":143,"context_line":"best fit for the given request. Each weigher assigns a weight to a host"},{"line_number":144,"context_line":"depending on various critieria, and this weighted list is used to pick the best"},{"line_number":145,"context_line":"host for a request."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Each name in the list for this option can be either a full module path, such as"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_2c477a78","line":144,"updated":"2015-11-24 06:39:59.000000000","message":"nit: s/critieria/criteria","commit_id":"3cddbc9656cf9f394bdf6f6fe20391103fc41a58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":22,"context_line":"        default\u003d1,"},{"line_number":23,"context_line":"        help\u003d\"\"\""},{"line_number":24,"context_line":"In order to reduce potential race conditions, new instances will be scheduled"},{"line_number":25,"context_line":"on a host chosen randomly from a subset of the N best hosts. This option"},{"line_number":26,"context_line":"determines N: the size of that subset. Valid values are 1 or greater. Any value"},{"line_number":27,"context_line":"less than one will be treated as 1."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* Services that use this:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_a2263e66","line":26,"range":{"start_line":25,"start_character":61,"end_line":26,"end_character":38},"updated":"2015-11-25 16:56:04.000000000","message":"Instead of \". This option...\" I\u0027d say \", where N is this option\".","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":22,"context_line":"        default\u003d1,"},{"line_number":23,"context_line":"        help\u003d\"\"\""},{"line_number":24,"context_line":"In order to reduce potential race conditions, new instances will be scheduled"},{"line_number":25,"context_line":"on a host chosen randomly from a subset of the N best hosts. This option"},{"line_number":26,"context_line":"determines N: the size of that subset. Valid values are 1 or greater. Any value"},{"line_number":27,"context_line":"less than one will be treated as 1."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* Services that use this:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_0c9f34b5","line":26,"range":{"start_line":25,"start_character":61,"end_line":26,"end_character":38},"in_reply_to":"9a8ffd7b_a2263e66","updated":"2015-11-25 19:56:35.000000000","message":"Done","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* Interdependencies to other options:"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    None"},{"line_number":36,"context_line":"\"\"\")"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"bm_default_filter_opt \u003d cfg.ListOpt(\"baremetal_scheduler_default_filters\","}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_0ebad123","line":35,"updated":"2015-11-25 16:56:04.000000000","message":"in fact this is particular to the FilterScheduler, so if you enable the ChanceScheduler, this will be ignored. This applies to several other options as well.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* Interdependencies to other options:"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    None"},{"line_number":36,"context_line":"\"\"\")"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"bm_default_filter_opt \u003d cfg.ListOpt(\"baremetal_scheduler_default_filters\","}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_6ce840e3","line":35,"in_reply_to":"9a8ffd7b_0ebad123","updated":"2015-11-25 19:56:35.000000000","message":"I added a line to clarify that point.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            \"ExactCoreFilter\","},{"line_number":48,"context_line":"        ],"},{"line_number":49,"context_line":"        help\u003d\"\"\""},{"line_number":50,"context_line":"This options specified the filters used for filtering baremetal hosts when not"},{"line_number":51,"context_line":"otherwise specified in the request. The value should be a list of strings, with"},{"line_number":52,"context_line":"each string being the name of the filter class to be used."},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_a2ddde43","line":50,"updated":"2015-11-25 16:56:04.000000000","message":"These options specify","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"4543e912723e801318378a909245c52f0f39b02a","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            \"ExactCoreFilter\","},{"line_number":48,"context_line":"        ],"},{"line_number":49,"context_line":"        help\u003d\"\"\""},{"line_number":50,"context_line":"This options specified the filters used for filtering baremetal hosts when not"},{"line_number":51,"context_line":"otherwise specified in the request. The value should be a list of strings, with"},{"line_number":52,"context_line":"each string being the name of the filter class to be used."},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_7378262c","line":50,"range":{"start_line":50,"start_character":5,"end_line":50,"end_character":22},"updated":"2015-11-25 17:46:35.000000000","message":"typo(?): \"option specifies\"","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            \"ExactCoreFilter\","},{"line_number":48,"context_line":"        ],"},{"line_number":49,"context_line":"        help\u003d\"\"\""},{"line_number":50,"context_line":"This options specified the filters used for filtering baremetal hosts when not"},{"line_number":51,"context_line":"otherwise specified in the request. The value should be a list of strings, with"},{"line_number":52,"context_line":"each string being the name of the filter class to be used."},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_4ced3cee","line":50,"in_reply_to":"9a8ffd7b_a2ddde43","updated":"2015-11-25 19:56:35.000000000","message":"Done","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        help\u003d\"\"\""},{"line_number":50,"context_line":"This options specified the filters used for filtering baremetal hosts when not"},{"line_number":51,"context_line":"otherwise specified in the request. The value should be a list of strings, with"},{"line_number":52,"context_line":"each string being the name of the filter class to be used."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* Services that use this:"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_22f24ed3","line":52,"updated":"2015-11-25 16:56:04.000000000","message":"a filter class","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        help\u003d\"\"\""},{"line_number":50,"context_line":"This options specified the filters used for filtering baremetal hosts when not"},{"line_number":51,"context_line":"otherwise specified in the request. The value should be a list of strings, with"},{"line_number":52,"context_line":"each string being the name of the filter class to be used."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* Services that use this:"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_ccb7ecf3","line":52,"in_reply_to":"9a8ffd7b_22f24ed3","updated":"2015-11-25 19:56:35.000000000","message":"Done","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    ``nova-scheduler``"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Interdependencies to other options:"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    If the \u0027scheduler_use_baremetal_filters\u0027 option is False, this option has"},{"line_number":61,"context_line":"    no effect."}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_82c69a47","line":58,"updated":"2015-11-25 16:56:04.000000000","message":"\"Related options:\" is plain, simple and works","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    ``nova-scheduler``"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Interdependencies to other options:"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    If the \u0027scheduler_use_baremetal_filters\u0027 option is False, this option has"},{"line_number":61,"context_line":"    no effect."}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_4cc0dc2a","line":58,"in_reply_to":"9a8ffd7b_82c69a47","updated":"2015-11-25 19:56:35.000000000","message":"Hmmm... related just means that they affect similar parts of the system (the scheduler in this case), not that they can directly affect another setting. IOW, the setting of X option changes how Y option works.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Interdependencies to other options:"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    If the \u0027scheduler_use_baremetal_filters\u0027 option is False, this option has"},{"line_number":61,"context_line":"    no effect."},{"line_number":62,"context_line":"\"\"\")"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_62d29602","line":60,"updated":"2015-11-25 16:56:04.000000000","message":"nit: don\u0027t need \"the\" or \"option\", the bare name works","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        help\u003d\"\"\""},{"line_number":67,"context_line":"Set this to True to tell the nova scheduler that it should use the filters"},{"line_number":68,"context_line":"specified in the \u0027baremetal_scheduler_default_filters\u0027 option. If you are not"},{"line_number":69,"context_line":"scheduling baremetal nodes, leave this at the default setting of False."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* Services that use this:"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_022f0af7","line":69,"updated":"2015-11-25 16:56:04.000000000","message":"The default is stated on line 65 and presumably output already somehow, we don\u0027t need it in the help text. I\u0027d delete the whole last sentence.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        help\u003d\"\"\""},{"line_number":67,"context_line":"Set this to True to tell the nova scheduler that it should use the filters"},{"line_number":68,"context_line":"specified in the \u0027baremetal_scheduler_default_filters\u0027 option. If you are not"},{"line_number":69,"context_line":"scheduling baremetal nodes, leave this at the default setting of False."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* Services that use this:"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_cc384c40","line":69,"in_reply_to":"9a8ffd7b_022f0af7","updated":"2015-11-25 19:56:35.000000000","message":"I think in a document aimed at operators, adding some possibly redundant text to make things clear is a good thing. I\u0027d be interested in what others say.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":75,"context_line":"* Interdependencies to other options:"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    If this option is set to True, then the filters specified in the"},{"line_number":78,"context_line":"    \u0027baremetal_scheduler_default_filters\u0027 are used."},{"line_number":79,"context_line":"\"\"\")"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"host_mgr_avail_filt_opt \u003d cfg.MultiStrOpt(\"scheduler_available_filters\","}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_2221eefb","line":78,"updated":"2015-11-25 16:56:04.000000000","message":"Maybe just \"Activates option \u0027...\u0027\" ?","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":75,"context_line":"* Interdependencies to other options:"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    If this option is set to True, then the filters specified in the"},{"line_number":78,"context_line":"    \u0027baremetal_scheduler_default_filters\u0027 are used."},{"line_number":79,"context_line":"\"\"\")"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"host_mgr_avail_filt_opt \u003d cfg.MultiStrOpt(\"scheduler_available_filters\","}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_4c1c5cc1","line":78,"in_reply_to":"9a8ffd7b_2221eefb","updated":"2015-11-25 19:56:35.000000000","message":"Well, I meant \u0027instead of the scheduler_default_filters\u0027. I\u0027ll add that bit.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":85,"context_line":"Since every deployment may have different filtering requirements, you can"},{"line_number":86,"context_line":"customize the scheduling choices made by enabling different filters with this"},{"line_number":87,"context_line":"option. The order of the filters in this option will determine the order they"},{"line_number":88,"context_line":"are applied to the available hosts."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"A request may specify particular filters to use for that request, but anything"},{"line_number":91,"context_line":"specified must be marked as available by being included in this option. No"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_c2eb4277","line":88,"updated":"2015-11-25 16:56:04.000000000","message":"\"This is an ordered list of the filter classes the Nova scheduler may apply. Customise this to suit your requirements. For performance, order more powerful filters earlier.\"","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":85,"context_line":"Since every deployment may have different filtering requirements, you can"},{"line_number":86,"context_line":"customize the scheduling choices made by enabling different filters with this"},{"line_number":87,"context_line":"option. The order of the filters in this option will determine the order they"},{"line_number":88,"context_line":"are applied to the available hosts."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"A request may specify particular filters to use for that request, but anything"},{"line_number":91,"context_line":"specified must be marked as available by being included in this option. No"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_2c9478e0","line":88,"in_reply_to":"9a8ffd7b_c2eb4277","updated":"2015-11-25 19:56:35.000000000","message":"I like that wording.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"4543e912723e801318378a909245c52f0f39b02a","unresolved":false,"context_lines":[{"line_number":90,"context_line":"A request may specify particular filters to use for that request, but anything"},{"line_number":91,"context_line":"specified must be marked as available by being included in this option. No"},{"line_number":92,"context_line":"request can specify a filter that is not included in this option; if that"},{"line_number":93,"context_line":"happens, a SchedulerHostFilterNotFound exception will be raised."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Each name in the list for this option can be either a full module path, such as"},{"line_number":96,"context_line":"\u0027nova.scheduler.filters.foo_filter\u0027, or the full path to a method that returns"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_42c98d77","line":93,"range":{"start_line":93,"start_character":11,"end_line":93,"end_character":38},"updated":"2015-11-25 17:46:35.000000000","message":"nit: maybe too specific?","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"d7c767b52bb118aefbedb1dbb566c33cf7d8d669","unresolved":false,"context_lines":[{"line_number":90,"context_line":"A request may specify particular filters to use for that request, but anything"},{"line_number":91,"context_line":"specified must be marked as available by being included in this option. No"},{"line_number":92,"context_line":"request can specify a filter that is not included in this option; if that"},{"line_number":93,"context_line":"happens, a SchedulerHostFilterNotFound exception will be raised."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Each name in the list for this option can be either a full module path, such as"},{"line_number":96,"context_line":"\u0027nova.scheduler.filters.foo_filter\u0027, or the full path to a method that returns"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_2833df63","line":93,"range":{"start_line":93,"start_character":11,"end_line":93,"end_character":38},"in_reply_to":"9a8ffd7b_37fa7c76","updated":"2015-11-26 10:44:13.000000000","message":"True, the operator would have a handle to figure out *why* something went wrong. I\u0027m just (a tiny bit) worried if someone in the future will rename the exception because of reasons that this information will get stale. I haven\u0027t yet digged deep enough in our error handling strategy and if an exception should provide itself enough information to allow a correction. I have to think more about this, but this is *nothing* which should prevent this patch from merging.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"dcdd343afee266d38a245bf63e4fc22f45a6067f","unresolved":false,"context_lines":[{"line_number":90,"context_line":"A request may specify particular filters to use for that request, but anything"},{"line_number":91,"context_line":"specified must be marked as available by being included in this option. No"},{"line_number":92,"context_line":"request can specify a filter that is not included in this option; if that"},{"line_number":93,"context_line":"happens, a SchedulerHostFilterNotFound exception will be raised."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Each name in the list for this option can be either a full module path, such as"},{"line_number":96,"context_line":"\u0027nova.scheduler.filters.foo_filter\u0027, or the full path to a method that returns"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_37fa7c76","line":93,"range":{"start_line":93,"start_character":11,"end_line":93,"end_character":38},"in_reply_to":"9a8ffd7b_42c98d77","updated":"2015-11-25 20:06:43.000000000","message":"Hmmm... don\u0027t think so. That\u0027s what they would grep for in the logs, no? And that\u0027s the only exception class raised by an incorrect setting.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    This option must include all of the filters specified in the"},{"line_number":109,"context_line":"    \u0027scheduler_default_filters\u0027 option. It may also contain additional filters"},{"line_number":110,"context_line":"    that can be used by specifying them in individual requests."},{"line_number":111,"context_line":"\"\"\")"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"host_mgr_default_filt_opt \u003d cfg.ListOpt(\"scheduler_default_filters\","}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_2d8c7f7e","line":110,"updated":"2015-11-25 16:56:04.000000000","message":"\"which may be specified by individual requests\"?\n\nI want to say \"which may be requested per-request\" but that\u0027s awful.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    This option must include all of the filters specified in the"},{"line_number":109,"context_line":"    \u0027scheduler_default_filters\u0027 option. It may also contain additional filters"},{"line_number":110,"context_line":"    that can be used by specifying them in individual requests."},{"line_number":111,"context_line":"\"\"\")"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"host_mgr_default_filt_opt \u003d cfg.ListOpt(\"scheduler_default_filters\","}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_a709632e","line":110,"in_reply_to":"9a8ffd7b_2d8c7f7e","updated":"2015-11-25 19:56:35.000000000","message":"I see your point. I changed it to some better wording mixing the two.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        ],"},{"line_number":125,"context_line":"        help\u003d\"\"\""},{"line_number":126,"context_line":"This option is the list of filter class names that will be used for filtering"},{"line_number":127,"context_line":"hosts when the request doesn\u0027t name specific filters to use."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* Services that use this:"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_cd5e13e9","line":127,"updated":"2015-11-25 16:56:04.000000000","message":"It\u0027d be helpful to note here that the order is unimportant.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        ],"},{"line_number":125,"context_line":"        help\u003d\"\"\""},{"line_number":126,"context_line":"This option is the list of filter class names that will be used for filtering"},{"line_number":127,"context_line":"hosts when the request doesn\u0027t name specific filters to use."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* Services that use this:"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_271ed363","line":127,"in_reply_to":"9a8ffd7b_cd5e13e9","updated":"2015-11-25 19:56:35.000000000","message":"Ummm... the order *is* important. They will be applied in the order they are listed. I added wording to that effect.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":144,"context_line":"hosts that pass all the filter tests in order to determine which one is the"},{"line_number":145,"context_line":"best fit for the given request. Each weigher assigns a weight to a host"},{"line_number":146,"context_line":"depending on various critieria, and this weighted list is sorted by weight in"},{"line_number":147,"context_line":"order to determine the best host for a request."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Each name in the list for this option can be either a full module path, such as"},{"line_number":150,"context_line":"\u0027nova.scheduler.weights.foo_weigher\u0027, or the full path to a method that returns"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_2d547f1f","line":147,"updated":"2015-11-25 16:56:04.000000000","message":"To avoid one sentence getting too complicated, I\u0027d limit to \"This is a list of weigher class names. Only hosts which survive the filters are weighed. The weighers order these hosts by affecting or overriding the weight assigned by the previous weigher. Weights may become negative.\"\n\n\"An instance will be assigned to one of the N most weighted hosts, where N is \u0027scheduler_host_subset_size\u0027.\"","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        default\u003dTrue,"},{"line_number":167,"context_line":"        help\u003d\"\"\""},{"line_number":168,"context_line":"The scheduler may need information about the instances on a host in order to"},{"line_number":169,"context_line":"evaluate its filters and weighers. The most common need for this are the"},{"line_number":170,"context_line":"(anti-)affinity filters, which base suitability decisions on the instances"},{"line_number":171,"context_line":"already running on a host."},{"line_number":172,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_e829858a","line":169,"updated":"2015-11-25 16:56:04.000000000","message":"This is most commonly needed by the","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        default\u003dTrue,"},{"line_number":167,"context_line":"        help\u003d\"\"\""},{"line_number":168,"context_line":"The scheduler may need information about the instances on a host in order to"},{"line_number":169,"context_line":"evaluate its filters and weighers. The most common need for this are the"},{"line_number":170,"context_line":"(anti-)affinity filters, which base suitability decisions on the instances"},{"line_number":171,"context_line":"already running on a host."},{"line_number":172,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_a6640422","line":169,"in_reply_to":"9a8ffd7b_e829858a","updated":"2015-11-25 19:56:35.000000000","message":"eww... passive voice!","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        help\u003d\"\"\""},{"line_number":168,"context_line":"The scheduler may need information about the instances on a host in order to"},{"line_number":169,"context_line":"evaluate its filters and weighers. The most common need for this are the"},{"line_number":170,"context_line":"(anti-)affinity filters, which base suitability decisions on the instances"},{"line_number":171,"context_line":"already running on a host."},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Some deployments may not use filters or weighers that need this information, so"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_48421140","line":170,"updated":"2015-11-25 16:56:04.000000000","message":"which decide according to the instances ?","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":175,"context_line":"very large deployments, the overhead of tracking instance information in the"},{"line_number":176,"context_line":"scheduler can be too much, so by setting this to False they can improve"},{"line_number":177,"context_line":"performance, although each filter or weigher that needs this information will"},{"line_number":178,"context_line":"have to run a DB query on each request, which will add to the overhead."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"* Services that use this:"},{"line_number":181,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_88355947","line":178,"updated":"2015-11-25 16:56:04.000000000","message":"I prefer second-person for help text but I\u0027ve provided a passive option too. NB this file is mainly passive with occasional second-person interjections, it\u0027d be lovely to be more consistent.\n\n\"If you know your configured filters and weighers do not need this information, disabling this option will improve performance. You may also want to disable this option if you find the tracking overhead too heavy, although this will cause classes requiring host usage data to query the database on each request instead.\"\n\n\"If the configured filters and weighers do not need this information, disabling this option will improve performance. It may also be disabled when the tracking overhead proves too heavy, although this will cause classes requiring host usage data to query the database on each request instead.\"","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":175,"context_line":"very large deployments, the overhead of tracking instance information in the"},{"line_number":176,"context_line":"scheduler can be too much, so by setting this to False they can improve"},{"line_number":177,"context_line":"performance, although each filter or weigher that needs this information will"},{"line_number":178,"context_line":"have to run a DB query on each request, which will add to the overhead."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"* Services that use this:"},{"line_number":181,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_89a9d1e1","line":178,"in_reply_to":"9a8ffd7b_88355947","updated":"2015-11-25 19:56:35.000000000","message":"The second option reads better to me.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        default\u003d\"scheduler\","},{"line_number":191,"context_line":"        help\u003d\"\"\""},{"line_number":192,"context_line":"This is the message queue topic that the scheduler \u0027listens\u0027 on. It is used"},{"line_number":193,"context_line":"when the scheduler service is started up to configure the queue, and whenever"},{"line_number":194,"context_line":"an RPC call to the scheduler is made. There is almost never any reason to ever"},{"line_number":195,"context_line":"change this value from its default."},{"line_number":196,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_c831210d","line":193,"range":{"start_line":193,"start_character":63,"end_line":193,"end_character":64},"updated":"2015-11-25 16:56:04.000000000","message":"war on superfluous commas","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        default\u003d\"scheduler\","},{"line_number":191,"context_line":"        help\u003d\"\"\""},{"line_number":192,"context_line":"This is the message queue topic that the scheduler \u0027listens\u0027 on. It is used"},{"line_number":193,"context_line":"when the scheduler service is started up to configure the queue, and whenever"},{"line_number":194,"context_line":"an RPC call to the scheduler is made. There is almost never any reason to ever"},{"line_number":195,"context_line":"change this value from its default."},{"line_number":196,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_29fb05c3","line":193,"range":{"start_line":193,"start_character":63,"end_line":193,"end_character":64},"in_reply_to":"9a8ffd7b_c831210d","updated":"2015-11-25 19:56:35.000000000","message":"When I read something I hear it in my head. That long part before the comma is one breath, and a speaker would naturally pause. Pause \u003d\u003d comma.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"4543e912723e801318378a909245c52f0f39b02a","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        help\u003d\"\"\""},{"line_number":192,"context_line":"This is the message queue topic that the scheduler \u0027listens\u0027 on. It is used"},{"line_number":193,"context_line":"when the scheduler service is started up to configure the queue, and whenever"},{"line_number":194,"context_line":"an RPC call to the scheduler is made. There is almost never any reason to ever"},{"line_number":195,"context_line":"change this value from its default."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"* Services that use this:"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_455677d3","line":195,"range":{"start_line":194,"start_character":38,"end_line":195,"end_character":34},"updated":"2015-11-25 17:46:35.000000000","message":"excellent!","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":192,"context_line":"This is the message queue topic that the scheduler \u0027listens\u0027 on. It is used"},{"line_number":193,"context_line":"when the scheduler service is started up to configure the queue, and whenever"},{"line_number":194,"context_line":"an RPC call to the scheduler is made. There is almost never any reason to ever"},{"line_number":195,"context_line":"change this value from its default."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"* Services that use this:"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_d326b2b9","line":195,"range":{"start_line":195,"start_character":17,"end_line":195,"end_character":34},"updated":"2015-11-25 16:56:04.000000000","message":"nit: don\u0027t need last 3 words","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":192,"context_line":"This is the message queue topic that the scheduler \u0027listens\u0027 on. It is used"},{"line_number":193,"context_line":"when the scheduler service is started up to configure the queue, and whenever"},{"line_number":194,"context_line":"an RPC call to the scheduler is made. There is almost never any reason to ever"},{"line_number":195,"context_line":"change this value from its default."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"* Services that use this:"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_e9565dd1","line":195,"range":{"start_line":195,"start_character":17,"end_line":195,"end_character":34},"in_reply_to":"9a8ffd7b_d326b2b9","updated":"2015-11-25 19:56:35.000000000","message":"Fair enough, but as I\u0027m re-reading, the one thought that comes to mind is \"Almost never? So when is it needed?\" I guess I\u0027ll leave them guessing, since I have no idea.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"d7c767b52bb118aefbedb1dbb566c33cf7d8d669","unresolved":false,"context_lines":[{"line_number":192,"context_line":"This is the message queue topic that the scheduler \u0027listens\u0027 on. It is used"},{"line_number":193,"context_line":"when the scheduler service is started up to configure the queue, and whenever"},{"line_number":194,"context_line":"an RPC call to the scheduler is made. There is almost never any reason to ever"},{"line_number":195,"context_line":"change this value from its default."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"* Services that use this:"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_2842ff68","line":195,"range":{"start_line":195,"start_character":17,"end_line":195,"end_character":34},"in_reply_to":"9a8ffd7b_e9565dd1","updated":"2015-11-26 10:44:13.000000000","message":"I would let it as it is. I\u0027ve noted it down in the etherpad to be re-evaluated later.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":206,"context_line":"# This option specifies an option group, so register separately"},{"line_number":207,"context_line":"rpcapi_cap_opt \u003d cfg.StrOpt(\"scheduler\","},{"line_number":208,"context_line":"        help\u003d\"\"\""},{"line_number":209,"context_line":"Set a version cap for messages sent to scheduler services. If you had multiple"},{"line_number":210,"context_line":"scheduler services running, and you were not upgrading them all at once, set"},{"line_number":211,"context_line":"this to the lowest deployed version in order to guarantee that other services"},{"line_number":212,"context_line":"never send messages that all of your running schedulers cannot understand."}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_733d86ba","line":209,"range":{"start_line":209,"start_character":66,"end_line":209,"end_character":69},"updated":"2015-11-25 16:56:04.000000000","message":"have and (next line) are, examples are usually present tense not um, past subjunctive? Grammar terminology failing me :)","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        help\u003d\"\"\""},{"line_number":209,"context_line":"Set a version cap for messages sent to scheduler services. If you had multiple"},{"line_number":210,"context_line":"scheduler services running, and you were not upgrading them all at once, set"},{"line_number":211,"context_line":"this to the lowest deployed version in order to guarantee that other services"},{"line_number":212,"context_line":"never send messages that all of your running schedulers cannot understand."},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"This is almost never needed in practice, and exists mainly for design"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_d3e9d21b","line":211,"range":{"start_line":211,"start_character":36,"end_line":211,"end_character":44},"updated":"2015-11-25 16:56:04.000000000","message":"s/in order //","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":209,"context_line":"Set a version cap for messages sent to scheduler services. If you had multiple"},{"line_number":210,"context_line":"scheduler services running, and you were not upgrading them all at once, set"},{"line_number":211,"context_line":"this to the lowest deployed version in order to guarantee that other services"},{"line_number":212,"context_line":"never send messages that all of your running schedulers cannot understand."},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"This is almost never needed in practice, and exists mainly for design"},{"line_number":215,"context_line":"compatibility with the other services, such as compute, whice are routinely"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_f3d3b65d","line":212,"range":{"start_line":212,"start_character":25,"end_line":212,"end_character":28},"updated":"2015-11-25 16:56:04.000000000","message":"s/all/any/","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":211,"context_line":"this to the lowest deployed version in order to guarantee that other services"},{"line_number":212,"context_line":"never send messages that all of your running schedulers cannot understand."},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"This is almost never needed in practice, and exists mainly for design"},{"line_number":215,"context_line":"compatibility with the other services, such as compute, whice are routinely"},{"line_number":216,"context_line":"upgraded in a rolling fashion."},{"line_number":217,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_93582afc","line":214,"range":{"start_line":214,"start_character":8,"end_line":214,"end_character":39},"updated":"2015-11-25 16:56:04.000000000","message":"I\u0027d prefer \"rarely needed in practice as most operators upgrade their schedulers simultaneously\".","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":212,"context_line":"never send messages that all of your running schedulers cannot understand."},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"This is almost never needed in practice, and exists mainly for design"},{"line_number":215,"context_line":"compatibility with the other services, such as compute, whice are routinely"},{"line_number":216,"context_line":"upgraded in a rolling fashion."},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"* Services that use this:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_136d1a98","line":215,"range":{"start_line":215,"start_character":56,"end_line":215,"end_character":61},"updated":"2015-11-25 16:56:04.000000000","message":"s/whice/which/","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"* Services that use this:"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    ``All services that send RPC messages to the scheduler``"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"* Interdependencies to other options:"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_53e882e2","line":220,"updated":"2015-11-25 16:56:04.000000000","message":"We can probably enumerate them - API, conductor, compute? Presumably if you\u0027re reading the help text you don\u0027t \"just know\" stuff like this","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"* Services that use this:"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    ``All services that send RPC messages to the scheduler``"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"* Interdependencies to other options:"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_89eb11b0","line":220,"in_reply_to":"9a8ffd7b_53e882e2","updated":"2015-11-25 19:56:35.000000000","message":"Good point. In that case, it\u0027s probably just conductor and compute for now.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        \"scheduler_json_config_location\","},{"line_number":229,"context_line":"        default\u003d\"\","},{"line_number":230,"context_line":"        help\u003d\"\"\""},{"line_number":231,"context_line":"The absolute path to scheduler configuration JSON file, if any. This file"},{"line_number":232,"context_line":"location is monitored by the scheduler for changes and loads it if needed. It"},{"line_number":233,"context_line":"is converted from JSON to a Python data structure, and passed into the"},{"line_number":234,"context_line":"filtering and weighing functions of the scheduler, which can use it for dynamic"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_f38bb61c","line":231,"updated":"2015-11-25 16:56:04.000000000","message":"to the","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"4543e912723e801318378a909245c52f0f39b02a","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        \"scheduler_json_config_location\","},{"line_number":229,"context_line":"        default\u003d\"\","},{"line_number":230,"context_line":"        help\u003d\"\"\""},{"line_number":231,"context_line":"The absolute path to scheduler configuration JSON file, if any. This file"},{"line_number":232,"context_line":"location is monitored by the scheduler for changes and loads it if needed. It"},{"line_number":233,"context_line":"is converted from JSON to a Python data structure, and passed into the"},{"line_number":234,"context_line":"filtering and weighing functions of the scheduler, which can use it for dynamic"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_e5ae8b97","line":231,"range":{"start_line":231,"start_character":18,"end_line":231,"end_character":30},"updated":"2015-11-25 17:46:35.000000000","message":"typo(?): \"to a scheduler\"","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        default\u003d\"\","},{"line_number":230,"context_line":"        help\u003d\"\"\""},{"line_number":231,"context_line":"The absolute path to scheduler configuration JSON file, if any. This file"},{"line_number":232,"context_line":"location is monitored by the scheduler for changes and loads it if needed. It"},{"line_number":233,"context_line":"is converted from JSON to a Python data structure, and passed into the"},{"line_number":234,"context_line":"filtering and weighing functions of the scheduler, which can use it for dynamic"},{"line_number":235,"context_line":"configuration."}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_f392d64a","line":232,"updated":"2015-11-25 16:56:04.000000000","message":"reloads","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        default\u003d\"nova.scheduler.host_manager.HostManager\","},{"line_number":248,"context_line":"        help\u003d\"\"\""},{"line_number":249,"context_line":"The scheduler host manager class to use. This is currently only changed when"},{"line_number":250,"context_line":"using ironic to provision bare-metal instances; in that case this is set to"},{"line_number":251,"context_line":"\u0027nova.scheduler.ironic_host_manager.IronicHostManager\u0027."},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"* Services that use this:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_93feea69","line":250,"range":{"start_line":250,"start_character":6,"end_line":250,"end_character":12},"updated":"2015-11-25 16:56:04.000000000","message":"Ironic","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        default\u003d\"nova.scheduler.host_manager.HostManager\","},{"line_number":248,"context_line":"        help\u003d\"\"\""},{"line_number":249,"context_line":"The scheduler host manager class to use. This is currently only changed when"},{"line_number":250,"context_line":"using ironic to provision bare-metal instances; in that case this is set to"},{"line_number":251,"context_line":"\u0027nova.scheduler.ironic_host_manager.IronicHostManager\u0027."},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"* Services that use this:"},{"line_number":254,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_d379d2fd","line":251,"range":{"start_line":250,"start_character":6,"end_line":251,"end_character":55},"updated":"2015-11-25 16:56:04.000000000","message":"Simpler: \"Aside from the default, the other option is \u0027nova.scheduler.ironic_host_manager.IronicHostManager\u0027, which should be used if you\u0027re using Ironic to provision bare-metal instances.\"","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        default\u003d\"nova.scheduler.host_manager.HostManager\","},{"line_number":248,"context_line":"        help\u003d\"\"\""},{"line_number":249,"context_line":"The scheduler host manager class to use. This is currently only changed when"},{"line_number":250,"context_line":"using ironic to provision bare-metal instances; in that case this is set to"},{"line_number":251,"context_line":"\u0027nova.scheduler.ironic_host_manager.IronicHostManager\u0027."},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"* Services that use this:"},{"line_number":254,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_690d8d8f","line":251,"range":{"start_line":250,"start_character":6,"end_line":251,"end_character":55},"in_reply_to":"9a8ffd7b_d379d2fd","updated":"2015-11-25 19:56:35.000000000","message":"Like it. Done.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        help\u003d\"\"\""},{"line_number":265,"context_line":"The class of the driver used by the scheduler. This should be the full Python"},{"line_number":266,"context_line":"path to the class to be used. If nothing is specified in this option, the"},{"line_number":267,"context_line":"FilterScheduler is used."},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"* Services that use this:"},{"line_number":270,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_6e0fdd2e","line":267,"updated":"2015-11-25 16:56:04.000000000","message":"\"Other options are:\n\n  * \u0027nova.scheduler.caching_scheduler.CachingScheduler\u0027 which aggressively\n    caches the system state for better individual scheduler performance at\n    the risk of more retries when running multiple schedulers.\n  * \u0027nova.scheduler.chance.ChanceScheduler\u0027 which schedules randomly.\"","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        help\u003d\"\"\""},{"line_number":265,"context_line":"The class of the driver used by the scheduler. This should be the full Python"},{"line_number":266,"context_line":"path to the class to be used. If nothing is specified in this option, the"},{"line_number":267,"context_line":"FilterScheduler is used."},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"* Services that use this:"},{"line_number":270,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_e9fdfd3a","line":267,"in_reply_to":"9a8ffd7b_6e0fdd2e","updated":"2015-11-25 19:56:35.000000000","message":"Done","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        default\u003d60,"},{"line_number":280,"context_line":"        help\u003d\"\"\""},{"line_number":281,"context_line":"This value controls how often (in seconds) to run periodic tasks in the"},{"line_number":282,"context_line":"scheduler driver of your choice. The specific tasks that are run for each"},{"line_number":283,"context_line":"period are determined by the particular driver in use."},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"Please note that there is a setting in nova/service for \u0027service_down_time\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_4e277912","line":282,"updated":"2015-11-25 16:56:04.000000000","message":"Took me a minute to realise what the scheduler driver is... an \"(EG FilterScheduler)\" might be nice for the slow of brain","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        default\u003d60,"},{"line_number":280,"context_line":"        help\u003d\"\"\""},{"line_number":281,"context_line":"This value controls how often (in seconds) to run periodic tasks in the"},{"line_number":282,"context_line":"scheduler driver of your choice. The specific tasks that are run for each"},{"line_number":283,"context_line":"period are determined by the particular driver in use."},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"Please note that there is a setting in nova/service for \u0027service_down_time\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_e9941de3","line":282,"in_reply_to":"9a8ffd7b_4e277912","updated":"2015-11-25 19:56:35.000000000","message":"Yeah, I think I\u0027ll just shorten it to \"in the Scheduler.\"","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":288,"context_line":"their periodic tasks, so changing this value to a longer interval than the"},{"line_number":289,"context_line":"service_down_time value may result in nova thinking that the scheduler service"},{"line_number":290,"context_line":"has died. As each driver can work a little differently than the others, be sure"},{"line_number":291,"context_line":"to test this with your selected driver."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"* Services that use this:"},{"line_number":294,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_0e309100","line":291,"updated":"2015-11-25 16:56:04.000000000","message":"Simpler: \"If this is larger than the nova/service \u0027service_down_time\u0027 setting, Nova may report the scheduler service as down. This is because the scheduler driver is responsible for sending a heartbeat and it will only do that as often as this option allows.\"","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":288,"context_line":"their periodic tasks, so changing this value to a longer interval than the"},{"line_number":289,"context_line":"service_down_time value may result in nova thinking that the scheduler service"},{"line_number":290,"context_line":"has died. As each driver can work a little differently than the others, be sure"},{"line_number":291,"context_line":"to test this with your selected driver."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"* Services that use this:"},{"line_number":294,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_8948f188","line":291,"in_reply_to":"9a8ffd7b_0e309100","updated":"2015-11-25 19:56:35.000000000","message":"Done","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":304,"context_line":"        help\u003d\"\"\""},{"line_number":305,"context_line":"This is the virtual disk to physical disk allocation ratio used by the"},{"line_number":306,"context_line":"disk_filter.py script to determine if a host has sufficient disk space to fit"},{"line_number":307,"context_line":"the requested instance. A ratio greater than 1.0 will result in"},{"line_number":308,"context_line":"over-subscription of the available physical disk, which can be useful for more"},{"line_number":309,"context_line":"efficiently packing instances on a host with compressed images. It can be set"},{"line_number":310,"context_line":"to a value between 0.0 and 1.0 in order to preserve a percentage of the disk"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_823bf5d0","line":307,"updated":"2015-11-25 16:56:04.000000000","message":"s/^the/a/","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":319,"context_line":"    None"},{"line_number":320,"context_line":"\"\"\")"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"isolated_img_opt \u003d cfg.ListOpt(\"isolated_images\","},{"line_number":323,"context_line":"        default\u003d[],"},{"line_number":324,"context_line":"        help\u003d\"\"\""},{"line_number":325,"context_line":"If there is a need to restrict some images to only run on certain designated"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_d85b2af5","line":322,"updated":"2015-11-25 16:56:04.000000000","message":"need to consider whether this is a legacy feature and we should advise users to prefer aggregate_image_properties_isolation_namespace nowadays","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":319,"context_line":"    None"},{"line_number":320,"context_line":"\"\"\")"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"isolated_img_opt \u003d cfg.ListOpt(\"isolated_images\","},{"line_number":323,"context_line":"        default\u003d[],"},{"line_number":324,"context_line":"        help\u003d\"\"\""},{"line_number":325,"context_line":"If there is a need to restrict some images to only run on certain designated"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_cc03670c","line":322,"in_reply_to":"9a8ffd7b_d85b2af5","updated":"2015-11-25 19:56:35.000000000","message":"I think that\u0027s a separate patch. This is to document things as they exist, and I don\u0027t know the consensus of the Nova community as to which is a) preferred and b) in more common use in the field today.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":324,"context_line":"        help\u003d\"\"\""},{"line_number":325,"context_line":"If there is a need to restrict some images to only run on certain designated"},{"line_number":326,"context_line":"hosts, set this option to the list of image UUIDs that need to be run only on"},{"line_number":327,"context_line":"isolated hosts."},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"* Services that use this:"},{"line_number":330,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_8296954a","line":327,"updated":"2015-11-25 16:56:04.000000000","message":"If some images must be restricted to a set of hosts, list those image UUIDs here.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":324,"context_line":"        help\u003d\"\"\""},{"line_number":325,"context_line":"If there is a need to restrict some images to only run on certain designated"},{"line_number":326,"context_line":"hosts, set this option to the list of image UUIDs that need to be run only on"},{"line_number":327,"context_line":"isolated hosts."},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"* Services that use this:"},{"line_number":330,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_0c1acf6e","line":327,"in_reply_to":"9a8ffd7b_8296954a","updated":"2015-11-25 19:56:35.000000000","message":"Done","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":339,"context_line":"isolated_host_opt \u003d cfg.ListOpt(\"isolated_hosts\","},{"line_number":340,"context_line":"        default\u003d[],"},{"line_number":341,"context_line":"        help\u003d\"\"\""},{"line_number":342,"context_line":"If there is a need to restrict some images to only run on certain designated"},{"line_number":343,"context_line":"hosts, set this option to the list of host names that are acceptable hosts for"},{"line_number":344,"context_line":"the isolated images."},{"line_number":345,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_82cbf552","line":342,"updated":"2015-11-25 16:56:04.000000000","message":"If some images must be restricted to a set of hosts, list the host names here.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":339,"context_line":"isolated_host_opt \u003d cfg.ListOpt(\"isolated_hosts\","},{"line_number":340,"context_line":"        default\u003d[],"},{"line_number":341,"context_line":"        help\u003d\"\"\""},{"line_number":342,"context_line":"If there is a need to restrict some images to only run on certain designated"},{"line_number":343,"context_line":"hosts, set this option to the list of host names that are acceptable hosts for"},{"line_number":344,"context_line":"the isolated images."},{"line_number":345,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_cc860765","line":342,"in_reply_to":"9a8ffd7b_82cbf552","updated":"2015-11-25 19:56:35.000000000","message":"Love the consistency: images are listed by UUID, hosts by name...  :)","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":341,"context_line":"        help\u003d\"\"\""},{"line_number":342,"context_line":"If there is a need to restrict some images to only run on certain designated"},{"line_number":343,"context_line":"hosts, set this option to the list of host names that are acceptable hosts for"},{"line_number":344,"context_line":"the isolated images."},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"* Services that use this:"},{"line_number":347,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_c2a57d04","line":344,"updated":"2015-11-25 16:56:04.000000000","message":"Does this behaviour rely on a particular filter being applied?","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":341,"context_line":"        help\u003d\"\"\""},{"line_number":342,"context_line":"If there is a need to restrict some images to only run on certain designated"},{"line_number":343,"context_line":"hosts, set this option to the list of host names that are acceptable hosts for"},{"line_number":344,"context_line":"the isolated images."},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"* Services that use this:"},{"line_number":347,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_ccd4c748","line":344,"in_reply_to":"9a8ffd7b_c2a57d04","updated":"2015-11-25 19:56:35.000000000","message":"Yeah: \u0027isolated_hosts_filter\u0027. I\u0027ve added wording about that.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"4543e912723e801318378a909245c52f0f39b02a","unresolved":false,"context_lines":[{"line_number":350,"context_line":"* Interdependencies to other options:"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    scheduler/isolated_images"},{"line_number":353,"context_line":"    scheduler/restrict_isolated_hosts_to_isolated_images"},{"line_number":354,"context_line":"\"\"\")"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"restrict_iso_host_img_opt \u003d cfg.BoolOpt("}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_f8bcee6d","line":353,"updated":"2015-11-25 17:46:35.000000000","message":"I made a note in the etherpad to double-check if these isolated options still make sense:\nhttps://etherpad.openstack.org/p/config-options","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"4543e912723e801318378a909245c52f0f39b02a","unresolved":false,"context_lines":[{"line_number":380,"context_line":"trusted_opts \u003d ["},{"line_number":381,"context_line":"    cfg.StrOpt(\"attestation_server\","},{"line_number":382,"context_line":"            help\u003d\"\"\""},{"line_number":383,"context_line":"The host to use  as the attestation server. This option is only used by the"},{"line_number":384,"context_line":"scheduler\u0027s trusted_filter."},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"The value is a string, and can be either an IP address or FQDN."}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_d847aa75","line":383,"range":{"start_line":383,"start_character":15,"end_line":383,"end_character":17},"updated":"2015-11-25 17:46:35.000000000","message":"tiniest possible nit: one space too much","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"4543e912723e801318378a909245c52f0f39b02a","unresolved":false,"context_lines":[{"line_number":400,"context_line":"\"\"\"),"},{"line_number":401,"context_line":"    cfg.StrOpt(\"attestation_server_ca_file\","},{"line_number":402,"context_line":"            help\u003d\"\"\""},{"line_number":403,"context_line":"The path to the certificate to use for authentication when connecting to the"},{"line_number":404,"context_line":"attestation server. This option is only used by the scheduler\u0027s trusted_filter."},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"The value is a string, and must point to a file that is readable by the"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_fbd06855","line":403,"range":{"start_line":403,"start_character":4,"end_line":403,"end_character":8},"updated":"2015-11-25 17:46:35.000000000","message":"I guess the absolute path is needed? Or do we assume a specific path?","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"dcdd343afee266d38a245bf63e4fc22f45a6067f","unresolved":false,"context_lines":[{"line_number":400,"context_line":"\"\"\"),"},{"line_number":401,"context_line":"    cfg.StrOpt(\"attestation_server_ca_file\","},{"line_number":402,"context_line":"            help\u003d\"\"\""},{"line_number":403,"context_line":"The path to the certificate to use for authentication when connecting to the"},{"line_number":404,"context_line":"attestation server. This option is only used by the scheduler\u0027s trusted_filter."},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"The value is a string, and must point to a file that is readable by the"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_b77aecef","line":403,"range":{"start_line":403,"start_character":4,"end_line":403,"end_character":8},"in_reply_to":"9a8ffd7b_fbd06855","updated":"2015-11-25 20:06:43.000000000","message":"yeah, let me add \u0027absolute\u0027 here.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"4543e912723e801318378a909245c52f0f39b02a","unresolved":false,"context_lines":[{"line_number":425,"context_line":"The port to use when connecting to the attestation server. This option is only"},{"line_number":426,"context_line":"used by the scheduler\u0027s trusted_filter."},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"Valid values are strings, not integers, but must be digits only."},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"* Services that use this:"},{"line_number":431,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_1b30cc9d","line":428,"updated":"2015-11-25 17:46:35.000000000","message":"Yeah, should probably be an IntOpt. I made a note in the etherpad to re-evaluate it later.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"4543e912723e801318378a909245c52f0f39b02a","unresolved":false,"context_lines":[{"line_number":462,"context_line":"    scheduler/trusted_computing.attestation_auth_timeout"},{"line_number":463,"context_line":"    scheduler/trusted_computing.attestation_insecure_ssl"},{"line_number":464,"context_line":"\"\"\"),"},{"line_number":465,"context_line":"    cfg.StrOpt(\"attestation_auth_blob\","},{"line_number":466,"context_line":"            help\u003d\"\"\""},{"line_number":467,"context_line":"Attestation servers require a specific blob that is used to authenticate. The"},{"line_number":468,"context_line":"content and format of the blob are determined by the particular attestation"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_f64ddf72","line":465,"range":{"start_line":465,"start_character":16,"end_line":465,"end_character":37},"updated":"2015-11-25 17:46:35.000000000","message":"this sure looks nice in the \"nova.conf\" file :)","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"4543e912723e801318378a909245c52f0f39b02a","unresolved":false,"context_lines":[{"line_number":490,"context_line":"period has elapsed, a new attestation request will be made. This option is only"},{"line_number":491,"context_line":"used by the scheduler\u0027s trusted_filter."},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"The value is in seconds. Valid values must be integers."},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"* Services that use this:"},{"line_number":496,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_365607d3","line":493,"updated":"2015-11-25 17:46:35.000000000","message":"IIUC, values lower than 1 will disable the caching. That\u0027s worth mentioning, I guess.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"dcdd343afee266d38a245bf63e4fc22f45a6067f","unresolved":false,"context_lines":[{"line_number":490,"context_line":"period has elapsed, a new attestation request will be made. This option is only"},{"line_number":491,"context_line":"used by the scheduler\u0027s trusted_filter."},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"The value is in seconds. Valid values must be integers."},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"* Services that use this:"},{"line_number":496,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_77a00444","line":493,"in_reply_to":"9a8ffd7b_365607d3","updated":"2015-11-25 20:06:43.000000000","message":"It\u0027s just the acceptable diff in time since the last attestation, so I think if you are changing a cache value, you understand how caches work. :)","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"d7c767b52bb118aefbedb1dbb566c33cf7d8d669","unresolved":false,"context_lines":[{"line_number":490,"context_line":"period has elapsed, a new attestation request will be made. This option is only"},{"line_number":491,"context_line":"used by the scheduler\u0027s trusted_filter."},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"The value is in seconds. Valid values must be integers."},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"* Services that use this:"},{"line_number":496,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_f3438840","line":493,"in_reply_to":"9a8ffd7b_77a00444","updated":"2015-11-26 10:44:13.000000000","message":"True","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"4543e912723e801318378a909245c52f0f39b02a","unresolved":false,"context_lines":[{"line_number":529,"context_line":"\"\"\"),"},{"line_number":530,"context_line":"]"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"max_io_ops_per_host_opt \u003d cfg.IntOpt(\"max_io_ops_per_host\","},{"line_number":533,"context_line":"        default\u003d8,"},{"line_number":534,"context_line":"        help\u003d\"\"\""},{"line_number":535,"context_line":"This setting is the threshold of instances on a host that can be in an active"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_163503f6","line":532,"updated":"2015-11-25 17:46:35.000000000","message":"This seems to have overlap to the compute option \"max_concurrent_builds\". Noted down to be re-evaluated.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"dcdd343afee266d38a245bf63e4fc22f45a6067f","unresolved":false,"context_lines":[{"line_number":529,"context_line":"\"\"\"),"},{"line_number":530,"context_line":"]"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"max_io_ops_per_host_opt \u003d cfg.IntOpt(\"max_io_ops_per_host\","},{"line_number":533,"context_line":"        default\u003d8,"},{"line_number":534,"context_line":"        help\u003d\"\"\""},{"line_number":535,"context_line":"This setting is the threshold of instances on a host that can be in an active"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_7745646e","line":532,"in_reply_to":"9a8ffd7b_163503f6","updated":"2015-11-25 20:06:43.000000000","message":"They are similar in concept, but one doesn\u0027t interact directly with the other.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"d7c767b52bb118aefbedb1dbb566c33cf7d8d669","unresolved":false,"context_lines":[{"line_number":529,"context_line":"\"\"\"),"},{"line_number":530,"context_line":"]"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"max_io_ops_per_host_opt \u003d cfg.IntOpt(\"max_io_ops_per_host\","},{"line_number":533,"context_line":"        default\u003d8,"},{"line_number":534,"context_line":"        help\u003d\"\"\""},{"line_number":535,"context_line":"This setting is the threshold of instances on a host that can be in an active"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_9389dc77","line":532,"in_reply_to":"9a8ffd7b_7745646e","updated":"2015-11-26 10:44:13.000000000","message":"True. I assume we re-invented \"max_concurrent_builds\" because this option here wasn\u0027t well known.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":537,"context_line":"and still be eligible to receive a request to build a new instance. If the"},{"line_number":538,"context_line":"number of existing instances in one of these states is equal to or greater than"},{"line_number":539,"context_line":"the value of this option, the host is removed from consideration for any new"},{"line_number":540,"context_line":"scheduled instances. This option is only used by the io_ops_filter."},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"Valid values are positive integers: 1 or greater."},{"line_number":543,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_a5aba3d5","line":540,"updated":"2015-11-25 16:56:04.000000000","message":"This setting caps the number of instances on a host that can be actively performing IO (in a build, resize, snapshot, migrate, rescue or unshelve task state) before that host becomes ineligible to build new instances. This option is only active if the io_ops_filter is.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":537,"context_line":"and still be eligible to receive a request to build a new instance. If the"},{"line_number":538,"context_line":"number of existing instances in one of these states is equal to or greater than"},{"line_number":539,"context_line":"the value of this option, the host is removed from consideration for any new"},{"line_number":540,"context_line":"scheduled instances. This option is only used by the io_ops_filter."},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"Valid values are positive integers: 1 or greater."},{"line_number":543,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_8ce1df00","line":540,"in_reply_to":"9a8ffd7b_a5aba3d5","updated":"2015-11-25 19:56:35.000000000","message":"Sounds good.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":551,"context_line":"\"\"\")"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"agg_img_prop_iso_namespace_opt \u003d cfg.StrOpt("},{"line_number":554,"context_line":"        \"aggregate_image_properties_isolation_namespace\","},{"line_number":555,"context_line":"        help\u003d\"\"\""},{"line_number":556,"context_line":"Images and hosts can be configured so that certain images can only be scheduled"},{"line_number":557,"context_line":"to hosts in a particular aggregate. This is done with metadata values set on"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_c5ca67a1","line":554,"updated":"2015-11-25 16:56:04.000000000","message":"as an aside, it seems we should remove isolated_hosts now?","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":551,"context_line":"\"\"\")"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"agg_img_prop_iso_namespace_opt \u003d cfg.StrOpt("},{"line_number":554,"context_line":"        \"aggregate_image_properties_isolation_namespace\","},{"line_number":555,"context_line":"        help\u003d\"\"\""},{"line_number":556,"context_line":"Images and hosts can be configured so that certain images can only be scheduled"},{"line_number":557,"context_line":"to hosts in a particular aggregate. This is done with metadata values set on"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_8cb8ffe6","line":554,"in_reply_to":"9a8ffd7b_c5ca67a1","updated":"2015-11-25 19:56:35.000000000","message":"You should discuss this with johnthetubaguy at the nova meeting tomorrow. I would also ditch the separate separator setting, but that\u0027s just me.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":556,"context_line":"Images and hosts can be configured so that certain images can only be scheduled"},{"line_number":557,"context_line":"to hosts in a particular aggregate. This is done with metadata values set on"},{"line_number":558,"context_line":"the host aggregate that are identified by beginning with the value of this"},{"line_number":559,"context_line":"option. If the host is part of an aggregate with such a metadata key, the image"},{"line_number":560,"context_line":"in the request spec must have the value of that metadata in its properties in"},{"line_number":561,"context_line":"order for the scheduler to consider the host as acceptable. This option is only"},{"line_number":562,"context_line":"used by the aggregate_image_properties_isolation filter."}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_05062fce","line":559,"updated":"2015-11-25 16:56:04.000000000","message":"need an example","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":556,"context_line":"Images and hosts can be configured so that certain images can only be scheduled"},{"line_number":557,"context_line":"to hosts in a particular aggregate. This is done with metadata values set on"},{"line_number":558,"context_line":"the host aggregate that are identified by beginning with the value of this"},{"line_number":559,"context_line":"option. If the host is part of an aggregate with such a metadata key, the image"},{"line_number":560,"context_line":"in the request spec must have the value of that metadata in its properties in"},{"line_number":561,"context_line":"order for the scheduler to consider the host as acceptable. This option is only"},{"line_number":562,"context_line":"used by the aggregate_image_properties_isolation filter."}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_cca5a7b5","line":559,"in_reply_to":"9a8ffd7b_05062fce","updated":"2015-11-25 19:56:35.000000000","message":"If I had one, I would supply it. I have zero experience with this in the field.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":600,"context_line":"If you need to limit the number of instances on any given host, set this option"},{"line_number":601,"context_line":"to the maximum number of instances you want to allow. The num_instances_filter"},{"line_number":602,"context_line":"will reject any host that has at least as many instances as this option\u0027s"},{"line_number":603,"context_line":"value. This option is only used by the num_instances_filter filter."},{"line_number":604,"context_line":""},{"line_number":605,"context_line":"Valid values are positive integers; setting it to zero will cause all hosts to"},{"line_number":606,"context_line":"be rejected if the num_instances_filter is active."}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_e5e0cbfc","line":603,"range":{"start_line":603,"start_character":60,"end_line":603,"end_character":66},"updated":"2015-11-25 16:56:04.000000000","message":"nit: don\u0027t need the second \u0027filter\u0027.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":600,"context_line":"If you need to limit the number of instances on any given host, set this option"},{"line_number":601,"context_line":"to the maximum number of instances you want to allow. The num_instances_filter"},{"line_number":602,"context_line":"will reject any host that has at least as many instances as this option\u0027s"},{"line_number":603,"context_line":"value. This option is only used by the num_instances_filter filter."},{"line_number":604,"context_line":""},{"line_number":605,"context_line":"Valid values are positive integers; setting it to zero will cause all hosts to"},{"line_number":606,"context_line":"be rejected if the num_instances_filter is active."}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_4cc77745","line":603,"range":{"start_line":603,"start_character":60,"end_line":603,"end_character":66},"in_reply_to":"9a8ffd7b_e5e0cbfc","updated":"2015-11-25 19:56:35.000000000","message":"disagree. If there are two filters named \u0027foo_filter\u0027 and \u0027max_bar\u0027 (which is the case for naming filters in nova), they are just names. The fact that one has \u0027filter\u0027 within it is simply a poor naming decision.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":622,"context_line":"available RAM, and a negative number will result in the scheduler preferring"},{"line_number":623,"context_line":"hosts with less available RAM. Another way to look at it is that positive"},{"line_number":624,"context_line":"values for this option will tend to spread instances across many hosts, while"},{"line_number":625,"context_line":"negative values will tend to fill up a host as much as possible before"},{"line_number":626,"context_line":"scheduling to a different host. The larger the absolute value, whether positive"},{"line_number":627,"context_line":"or negative, determines how strong this preference is when selecting a host."},{"line_number":628,"context_line":"This option is only used by the RAM weigher."}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_85969f4a","line":625,"updated":"2015-11-25 16:56:04.000000000","message":"\"fill up (stack) \u0027scheduler_host_subset_size\u0027 hosts before gradually choosing a new block to fill. The absolute value, whether positive or negative, controls how strong the RAM weigher is relative to other weighers.\"","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":622,"context_line":"available RAM, and a negative number will result in the scheduler preferring"},{"line_number":623,"context_line":"hosts with less available RAM. Another way to look at it is that positive"},{"line_number":624,"context_line":"values for this option will tend to spread instances across many hosts, while"},{"line_number":625,"context_line":"negative values will tend to fill up a host as much as possible before"},{"line_number":626,"context_line":"scheduling to a different host. The larger the absolute value, whether positive"},{"line_number":627,"context_line":"or negative, determines how strong this preference is when selecting a host."},{"line_number":628,"context_line":"This option is only used by the RAM weigher."}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_cc2fe7f4","line":625,"in_reply_to":"9a8ffd7b_85969f4a","updated":"2015-11-25 19:56:35.000000000","message":"Done","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":644,"context_line":"This option determines how hosts with differing workloads are weighed. A"},{"line_number":645,"context_line":"positive value will result in the scheduler preferring hosts with heavier"},{"line_number":646,"context_line":"workloads, while a negative number will result in the scheduler preferring"},{"line_number":647,"context_line":"hosts with lighter workloads. Another way to look at it is that positive values"},{"line_number":648,"context_line":"for this option will tend to schedule instances onto hosts that are already"},{"line_number":649,"context_line":"busy, while negative values will tend to distribute the workload across more"},{"line_number":650,"context_line":"hosts. The larger the absolute value, whether positive or negative, determines"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_a55ac34e","line":647,"updated":"2015-11-25 16:56:04.000000000","message":"\"Negative values, like the default, will result in the scheduler preferring\nhosts with lighter workloads whereas positive values will prefer hosts with heavier workloads.\"","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":644,"context_line":"This option determines how hosts with differing workloads are weighed. A"},{"line_number":645,"context_line":"positive value will result in the scheduler preferring hosts with heavier"},{"line_number":646,"context_line":"workloads, while a negative number will result in the scheduler preferring"},{"line_number":647,"context_line":"hosts with lighter workloads. Another way to look at it is that positive values"},{"line_number":648,"context_line":"for this option will tend to schedule instances onto hosts that are already"},{"line_number":649,"context_line":"busy, while negative values will tend to distribute the workload across more"},{"line_number":650,"context_line":"hosts. The larger the absolute value, whether positive or negative, determines"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_4c51b761","line":647,"in_reply_to":"9a8ffd7b_a55ac34e","updated":"2015-11-25 19:56:35.000000000","message":"Done","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":648,"context_line":"for this option will tend to schedule instances onto hosts that are already"},{"line_number":649,"context_line":"busy, while negative values will tend to distribute the workload across more"},{"line_number":650,"context_line":"hosts. The larger the absolute value, whether positive or negative, determines"},{"line_number":651,"context_line":"how strong this preference is when selecting a host. This option is only used"},{"line_number":652,"context_line":"by the io_ops weigher."},{"line_number":653,"context_line":""},{"line_number":654,"context_line":"Valid values are numeric, either integer or float."}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_a508832e","line":651,"updated":"2015-11-25 16:56:04.000000000","message":"The absolute value, whether positive or negative, controls how strong the io_ops weigher is relative to other weighers.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":648,"context_line":"for this option will tend to schedule instances onto hosts that are already"},{"line_number":649,"context_line":"busy, while negative values will tend to distribute the workload across more"},{"line_number":650,"context_line":"hosts. The larger the absolute value, whether positive or negative, determines"},{"line_number":651,"context_line":"how strong this preference is when selecting a host. This option is only used"},{"line_number":652,"context_line":"by the io_ops weigher."},{"line_number":653,"context_line":""},{"line_number":654,"context_line":"Valid values are numeric, either integer or float."}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_ec4f4bbb","line":651,"in_reply_to":"9a8ffd7b_a508832e","updated":"2015-11-25 19:56:35.000000000","message":"Done","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":666,"context_line":"metrics_weight_opts \u003d ["},{"line_number":667,"context_line":"     cfg.FloatOpt(\"weight_multiplier\","},{"line_number":668,"context_line":"            default\u003d1.0,"},{"line_number":669,"context_line":"            help\u003d\"\"\""},{"line_number":670,"context_line":"When using metrics to weight the suitability of a host, you can use this option"},{"line_number":671,"context_line":"to change how the calculated weight influences the weight assigned to a host as"},{"line_number":672,"context_line":"follows:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_983da2bd","line":669,"updated":"2015-11-25 16:56:04.000000000","message":"We need a brief explanation of how the metric value is obtained. Hm, or maybe if the related options section was more complete, that would serve.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":666,"context_line":"metrics_weight_opts \u003d ["},{"line_number":667,"context_line":"     cfg.FloatOpt(\"weight_multiplier\","},{"line_number":668,"context_line":"            default\u003d1.0,"},{"line_number":669,"context_line":"            help\u003d\"\"\""},{"line_number":670,"context_line":"When using metrics to weight the suitability of a host, you can use this option"},{"line_number":671,"context_line":"to change how the calculated weight influences the weight assigned to a host as"},{"line_number":672,"context_line":"follows:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_2c047348","line":669,"in_reply_to":"9a8ffd7b_983da2bd","updated":"2015-11-25 19:56:35.000000000","message":"I really don\u0027t think that how metrics are gathered is relevant here. The point is how those metrics are used, and how each of these options affect that.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":685,"context_line":""},{"line_number":686,"context_line":"    * -1.0: the effect is reversed"},{"line_number":687,"context_line":""},{"line_number":688,"context_line":"    * Less than -1.0: the effect is increased proportionally and reversed."},{"line_number":689,"context_line":""},{"line_number":690,"context_line":"Valid values are numeric, either integer or float."},{"line_number":691,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_386356de","line":688,"updated":"2015-11-25 16:56:04.000000000","message":"This is kinda cool but you managed to explain this far more succinctly for the previous two options","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":685,"context_line":""},{"line_number":686,"context_line":"    * -1.0: the effect is reversed"},{"line_number":687,"context_line":""},{"line_number":688,"context_line":"    * Less than -1.0: the effect is increased proportionally and reversed."},{"line_number":689,"context_line":""},{"line_number":690,"context_line":"Valid values are numeric, either integer or float."},{"line_number":691,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_0cf96f4d","line":688,"in_reply_to":"9a8ffd7b_386356de","updated":"2015-11-25 19:56:35.000000000","message":"I originally had it, but this option behaves differently, especially the case for zero.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":695,"context_line":""},{"line_number":696,"context_line":"* Interdependencies to other options:"},{"line_number":697,"context_line":""},{"line_number":698,"context_line":"    weight_of_unavailable"},{"line_number":699,"context_line":"\"\"\"),"},{"line_number":700,"context_line":"     cfg.ListOpt(\"weight_setting\","},{"line_number":701,"context_line":"            default\u003d[],"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_189f72b5","line":698,"updated":"2015-11-25 16:56:04.000000000","message":"weight_setting also seems related? in fact Shirley all the options in metrics_weight_opts are related to each other? although weight_of_unavailable is pretty tertiary to this particular option.\n\nI\u0027m guessing your eyes had glazed over a bit by this point, mine certainly have! :)","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":695,"context_line":""},{"line_number":696,"context_line":"* Interdependencies to other options:"},{"line_number":697,"context_line":""},{"line_number":698,"context_line":"    weight_of_unavailable"},{"line_number":699,"context_line":"\"\"\"),"},{"line_number":700,"context_line":"     cfg.ListOpt(\"weight_setting\","},{"line_number":701,"context_line":"            default\u003d[],"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_8cba3f6d","line":698,"in_reply_to":"9a8ffd7b_189f72b5","updated":"2015-11-25 19:56:35.000000000","message":"I didn\u0027t see it as \u0027interdependent\u0027 on that option. IOW, changing one won\u0027t affect how this option works.\n\nAnd stop calling me Shirley.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":700,"context_line":"     cfg.ListOpt(\"weight_setting\","},{"line_number":701,"context_line":"            default\u003d[],"},{"line_number":702,"context_line":"            help\u003d\"\"\""},{"line_number":703,"context_line":"This setting specifies the metrics to be weighed, and the relative ratios for"},{"line_number":704,"context_line":"each metric. This should be a single string value, consisting of a series of"},{"line_number":705,"context_line":"one or more \u0027name\u003dratio\u0027 pairs, separated by commas, where \u0027name\u0027 is the name"},{"line_number":706,"context_line":"of the metric to be weighed, and \u0027ratio\u0027 is the relative weight for that"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_f8a14eaa","line":703,"range":{"start_line":703,"start_character":48,"end_line":703,"end_character":49},"updated":"2015-11-25 16:56:04.000000000","message":"war on superfluous commas","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":700,"context_line":"     cfg.ListOpt(\"weight_setting\","},{"line_number":701,"context_line":"            default\u003d[],"},{"line_number":702,"context_line":"            help\u003d\"\"\""},{"line_number":703,"context_line":"This setting specifies the metrics to be weighed, and the relative ratios for"},{"line_number":704,"context_line":"each metric. This should be a single string value, consisting of a series of"},{"line_number":705,"context_line":"one or more \u0027name\u003dratio\u0027 pairs, separated by commas, where \u0027name\u0027 is the name"},{"line_number":706,"context_line":"of the metric to be weighed, and \u0027ratio\u0027 is the relative weight for that"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_4cad3730","line":703,"range":{"start_line":703,"start_character":48,"end_line":703,"end_character":49},"in_reply_to":"9a8ffd7b_f8a14eaa","updated":"2015-11-25 19:56:35.000000000","message":"ok, I\u0027ll give you this one.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":729,"context_line":"            default\u003dTrue,"},{"line_number":730,"context_line":"            help\u003d\"\"\""},{"line_number":731,"context_line":"This setting determines how any unavailable metrics are treated. If this option"},{"line_number":732,"context_line":"is set to be True, any hosts for which a metric is unavailable would raise an"},{"line_number":733,"context_line":"exception, so it is recommended to also use the MetricFilter to filter out"},{"line_number":734,"context_line":"those hosts before weighing."},{"line_number":735,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_b8998670","line":732,"range":{"start_line":732,"start_character":63,"end_line":732,"end_character":68},"updated":"2015-11-25 16:56:04.000000000","message":"s/be//. As a pet peeve, \"set\" implies \"to True\" while \"unset\" and \"reset\" imply \"to False\" - but I realise that isn\u0027t commonly recognised.\n\nwill raise","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":729,"context_line":"            default\u003dTrue,"},{"line_number":730,"context_line":"            help\u003d\"\"\""},{"line_number":731,"context_line":"This setting determines how any unavailable metrics are treated. If this option"},{"line_number":732,"context_line":"is set to be True, any hosts for which a metric is unavailable would raise an"},{"line_number":733,"context_line":"exception, so it is recommended to also use the MetricFilter to filter out"},{"line_number":734,"context_line":"those hosts before weighing."},{"line_number":735,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_ec598b5b","line":732,"range":{"start_line":732,"start_character":63,"end_line":732,"end_character":68},"in_reply_to":"9a8ffd7b_b8998670","updated":"2015-11-25 19:56:35.000000000","message":"I think the more common understanding of the term is \"changed from the default\". Most options are never set; instead, the default values suffice. Your interpretation really only applied to boolean options.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":735,"context_line":""},{"line_number":736,"context_line":"When this option is set to False, any unavailable metrics would cause the host"},{"line_number":737,"context_line":"to be considered unsuitable in the weighing process, and the returned value"},{"line_number":738,"context_line":"would be set by the option \u0027weight_of_unavailable\u0027."},{"line_number":739,"context_line":""},{"line_number":740,"context_line":"* Services that use this:"},{"line_number":741,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_78555e4e","line":738,"updated":"2015-11-25 16:56:04.000000000","message":"\"When this option is False, any metric being unavailable for a host will set the host weight to \u0027weight_of_unavailable\u0027.\"\n\nIt\u0027s simpler to avoid talk of suitable vs unsuitable and just talk about the number.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":748,"context_line":"    cfg.FloatOpt(\"weight_of_unavailable\","},{"line_number":749,"context_line":"            default\u003dfloat(-10000.0),"},{"line_number":750,"context_line":"            help\u003d\"\"\""},{"line_number":751,"context_line":"When there is a problem detected with a host\u0027s metrics, this is the weight"},{"line_number":752,"context_line":"value that is returned. Conditions which can cause this are:"},{"line_number":753,"context_line":""},{"line_number":754,"context_line":"    * One of the metrics named in \u0027weight_setting\u0027 is not available for a host,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_18c0d2df","line":751,"updated":"2015-11-25 16:56:04.000000000","message":"When a metric is unavailable for a host","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":748,"context_line":"    cfg.FloatOpt(\"weight_of_unavailable\","},{"line_number":749,"context_line":"            default\u003dfloat(-10000.0),"},{"line_number":750,"context_line":"            help\u003d\"\"\""},{"line_number":751,"context_line":"When there is a problem detected with a host\u0027s metrics, this is the weight"},{"line_number":752,"context_line":"value that is returned. Conditions which can cause this are:"},{"line_number":753,"context_line":""},{"line_number":754,"context_line":"    * One of the metrics named in \u0027weight_setting\u0027 is not available for a host,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_573700e3","line":751,"in_reply_to":"9a8ffd7b_18c0d2df","updated":"2015-11-25 19:56:35.000000000","message":"Not entirely correct, because of the possibility of the ratio being zero.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":749,"context_line":"            default\u003dfloat(-10000.0),"},{"line_number":750,"context_line":"            help\u003d\"\"\""},{"line_number":751,"context_line":"When there is a problem detected with a host\u0027s metrics, this is the weight"},{"line_number":752,"context_line":"value that is returned. Conditions which can cause this are:"},{"line_number":753,"context_line":""},{"line_number":754,"context_line":"    * One of the metrics named in \u0027weight_setting\u0027 is not available for a host,"},{"line_number":755,"context_line":"    and the value of \u0027required\u0027 is False."}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_98acc236","line":752,"updated":"2015-11-25 16:56:04.000000000","message":"\"Some conditions\", unless you\u0027re confident this is a comprehensive list?","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":749,"context_line":"            default\u003dfloat(-10000.0),"},{"line_number":750,"context_line":"            help\u003d\"\"\""},{"line_number":751,"context_line":"When there is a problem detected with a host\u0027s metrics, this is the weight"},{"line_number":752,"context_line":"value that is returned. Conditions which can cause this are:"},{"line_number":753,"context_line":""},{"line_number":754,"context_line":"    * One of the metrics named in \u0027weight_setting\u0027 is not available for a host,"},{"line_number":755,"context_line":"    and the value of \u0027required\u0027 is False."}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_b74e6c6d","line":752,"in_reply_to":"9a8ffd7b_98acc236","updated":"2015-11-25 19:56:35.000000000","message":"Super-confident! :) Grep is your friend!","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ec273915bdd0c7c5126e0fcd85ec92f5dfb3fb89","unresolved":false,"context_lines":[{"line_number":776,"context_line":"This is the maximum number of attempts that will be made to schedule an"},{"line_number":777,"context_line":"instance before it is assumed that the failures aren\u0027t due to normal occasional"},{"line_number":778,"context_line":"race conflicts, but rather some other problem. When this is reached a"},{"line_number":779,"context_line":"MaxRetriesExceeded exception is raised."},{"line_number":780,"context_line":""},{"line_number":781,"context_line":"Valid values are positive integers (1 or greater)."},{"line_number":782,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_b83bc6ea","line":779,"updated":"2015-11-25 16:56:04.000000000","message":"causing the instance to enter an error state.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7eb42ebe6b3469256d11f28aa8a5e9e891bb6a79","unresolved":false,"context_lines":[{"line_number":776,"context_line":"This is the maximum number of attempts that will be made to schedule an"},{"line_number":777,"context_line":"instance before it is assumed that the failures aren\u0027t due to normal occasional"},{"line_number":778,"context_line":"race conflicts, but rather some other problem. When this is reached a"},{"line_number":779,"context_line":"MaxRetriesExceeded exception is raised."},{"line_number":780,"context_line":""},{"line_number":781,"context_line":"Valid values are positive integers (1 or greater)."},{"line_number":782,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_1748985a","line":779,"in_reply_to":"9a8ffd7b_b83bc6ea","updated":"2015-11-25 19:56:35.000000000","message":"Done.","commit_id":"a8ea256992f68131f366ceb620abbd7d16865d58"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d19a5bf4b8d74c2fcf8f03c8ec55e782db36f71e","unresolved":false,"context_lines":[{"line_number":53,"context_line":"This option specifies the filters used for filtering baremetal hosts when not"},{"line_number":54,"context_line":"otherwise specified in the request. The value should be a list of strings, with"},{"line_number":55,"context_line":"each string being the name of a filter class to be used."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* Services that use this:"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    ``nova-scheduler``"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_6e332f15","line":56,"updated":"2015-11-26 11:45:43.000000000","message":"for host_subset_size_opt you explicitly stated that it is only used by the FilterScheduler, I guess this is also true for this option.","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9dbaba4d23275a091342bd69dea34e2cf1cda005","unresolved":false,"context_lines":[{"line_number":53,"context_line":"This option specifies the filters used for filtering baremetal hosts when not"},{"line_number":54,"context_line":"otherwise specified in the request. The value should be a list of strings, with"},{"line_number":55,"context_line":"each string being the name of a filter class to be used."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* Services that use this:"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    ``nova-scheduler``"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_aea99292","line":56,"in_reply_to":"9a8ffd7b_6e332f15","updated":"2015-11-30 16:05:13.000000000","message":"I\u0027ve gone through all the options and added text about this to all that only work with the FilterScheduler.","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"bdbea5e4221175e36337e62d04231edbce63d438","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    ``nova-scheduler``"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Interdependencies to other options:"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    If the \u0027scheduler_use_baremetal_filters\u0027 option is False, this option has"},{"line_number":64,"context_line":"    no effect."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_b484c10a","line":61,"updated":"2015-11-27 17:32:59.000000000","message":"\"Interdependencies\", aka relations \u003d\u003e \"related options\" :)\nPlease have pity on our non-native-English-reading contributors.\n\nOther reviewers, ideas on other alternatives please?","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"55d794292590579118980c16479b4fc14542f656","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    ``nova-scheduler``"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Interdependencies to other options:"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    If the \u0027scheduler_use_baremetal_filters\u0027 option is False, this option has"},{"line_number":64,"context_line":"    no effect."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_84190a7c","line":61,"in_reply_to":"9a8ffd7b_8ecdae5f","updated":"2015-11-30 17:06:05.000000000","message":"@Alexis: Yeah, sorry, my fault :)","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9dbaba4d23275a091342bd69dea34e2cf1cda005","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    ``nova-scheduler``"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Interdependencies to other options:"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    If the \u0027scheduler_use_baremetal_filters\u0027 option is False, this option has"},{"line_number":64,"context_line":"    no effect."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_8ecdae5f","line":61,"in_reply_to":"9a8ffd7b_b484c10a","updated":"2015-11-30 16:05:13.000000000","message":"Actually, it was a non-native English-reader (markus_z) who came up with that; I simply copied him. So if we come up with a better term, we can change all of them in a subsequent patch.","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d19a5bf4b8d74c2fcf8f03c8ec55e782db36f71e","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        help\u003d\"\"\""},{"line_number":70,"context_line":"Set this to True to tell the nova scheduler that it should use the filters"},{"line_number":71,"context_line":"specified in the \u0027baremetal_scheduler_default_filters\u0027 option. If you are not"},{"line_number":72,"context_line":"scheduling baremetal nodes, leave this at the default setting of False."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* Services that use this:"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_b932bff0","line":72,"updated":"2015-11-26 11:45:43.000000000","message":"Is it also an ordered list as the scheduler_available_filters?","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"bdbea5e4221175e36337e62d04231edbce63d438","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        help\u003d\"\"\""},{"line_number":70,"context_line":"Set this to True to tell the nova scheduler that it should use the filters"},{"line_number":71,"context_line":"specified in the \u0027baremetal_scheduler_default_filters\u0027 option. If you are not"},{"line_number":72,"context_line":"scheduling baremetal nodes, leave this at the default setting of False."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* Services that use this:"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_f4956932","line":72,"in_reply_to":"9a8ffd7b_b932bff0","updated":"2015-11-27 17:32:59.000000000","message":"No, this is a Boolean","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d19a5bf4b8d74c2fcf8f03c8ec55e782db36f71e","unresolved":false,"context_lines":[{"line_number":70,"context_line":"Set this to True to tell the nova scheduler that it should use the filters"},{"line_number":71,"context_line":"specified in the \u0027baremetal_scheduler_default_filters\u0027 option. If you are not"},{"line_number":72,"context_line":"scheduling baremetal nodes, leave this at the default setting of False."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* Services that use this:"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    ``nova-scheduler``"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_ce01fb07","line":73,"updated":"2015-11-26 11:45:43.000000000","message":"This is also FilterScheduler specific.","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d19a5bf4b8d74c2fcf8f03c8ec55e782db36f71e","unresolved":false,"context_lines":[{"line_number":85,"context_line":"host_mgr_avail_filt_opt \u003d cfg.MultiStrOpt(\"scheduler_available_filters\","},{"line_number":86,"context_line":"        default\u003d[\"nova.scheduler.filters.all_filters\"],"},{"line_number":87,"context_line":"        help\u003d\"\"\""},{"line_number":88,"context_line":"This is an ordered list of the filter classes the Nova scheduler may apply."},{"line_number":89,"context_line":"Customize this to suit your requirements. For performance, order more powerful"},{"line_number":90,"context_line":"filters earlier."},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_19418b38","line":88,"range":{"start_line":88,"start_character":50,"end_line":88,"end_character":64},"updated":"2015-11-26 11:45:43.000000000","message":"This opt is also FilterScheduler specific","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"bdbea5e4221175e36337e62d04231edbce63d438","unresolved":false,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    This option must include all of the filters specified in the"},{"line_number":111,"context_line":"    \u0027scheduler_default_filters\u0027 option. It may also contain additional filters"},{"line_number":112,"context_line":"    that will then be available when requested on individual requests."},{"line_number":113,"context_line":"\"\"\")"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"host_mgr_default_filt_opt \u003d cfg.ListOpt(\"scheduler_default_filters\","}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_54ceb563","line":112,"range":{"start_line":112,"start_character":47,"end_line":112,"end_character":49},"updated":"2015-11-27 17:32:59.000000000","message":"femtonit: s/on/by/","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9dbaba4d23275a091342bd69dea34e2cf1cda005","unresolved":false,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    This option must include all of the filters specified in the"},{"line_number":111,"context_line":"    \u0027scheduler_default_filters\u0027 option. It may also contain additional filters"},{"line_number":112,"context_line":"    that will then be available when requested on individual requests."},{"line_number":113,"context_line":"\"\"\")"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"host_mgr_default_filt_opt \u003d cfg.ListOpt(\"scheduler_default_filters\","}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_8ef4ce87","line":112,"range":{"start_line":112,"start_character":47,"end_line":112,"end_character":49},"in_reply_to":"9a8ffd7b_54ceb563","updated":"2015-11-30 16:05:13.000000000","message":"Done","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"bdbea5e4221175e36337e62d04231edbce63d438","unresolved":false,"context_lines":[{"line_number":128,"context_line":"This option is the list of filter class names that will be used for filtering"},{"line_number":129,"context_line":"hosts when the request doesn\u0027t name specific filters to use. When used, they"},{"line_number":130,"context_line":"will be applied in order, so place your most restrictive filters first to make"},{"line_number":131,"context_line":"the filtering process more efficient."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"* Services that use this:"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_54d555e5","line":131,"updated":"2015-11-27 17:32:59.000000000","message":"-1: so if scheduler_available_filters and scheduler_default_filters are both ordered - which controls filter execution order?","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9dbaba4d23275a091342bd69dea34e2cf1cda005","unresolved":false,"context_lines":[{"line_number":128,"context_line":"This option is the list of filter class names that will be used for filtering"},{"line_number":129,"context_line":"hosts when the request doesn\u0027t name specific filters to use. When used, they"},{"line_number":130,"context_line":"will be applied in order, so place your most restrictive filters first to make"},{"line_number":131,"context_line":"the filtering process more efficient."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"* Services that use this:"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_0ec0dedf","line":131,"in_reply_to":"9a8ffd7b_54d555e5","updated":"2015-11-30 16:05:13.000000000","message":"The available filters is not ordered; it is simply a list of all allowed filters. The default filters are ordered. I will add text to available filters to clarify that the order there is not important.","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"bdbea5e4221175e36337e62d04231edbce63d438","unresolved":false,"context_lines":[{"line_number":147,"context_line":"This is a list of weigher class names. Only hosts which pass the filters are"},{"line_number":148,"context_line":"weighed. The weight for any host starts at 0, and the weighers order these"},{"line_number":149,"context_line":"hosts by adding to or subtracting from the weight assigned by the previous"},{"line_number":150,"context_line":"weigher. Weights may become negative."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"An instance will be scheduled to one of the N most-weighted hosts, where N is"},{"line_number":153,"context_line":"\u0027scheduler_host_subset_size\u0027."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_542a35dc","line":150,"updated":"2015-11-27 17:32:59.000000000","message":"Weighers may also multiply, bitshift, cube etc the weight. Hence \"affect\".","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9dbaba4d23275a091342bd69dea34e2cf1cda005","unresolved":false,"context_lines":[{"line_number":147,"context_line":"This is a list of weigher class names. Only hosts which pass the filters are"},{"line_number":148,"context_line":"weighed. The weight for any host starts at 0, and the weighers order these"},{"line_number":149,"context_line":"hosts by adding to or subtracting from the weight assigned by the previous"},{"line_number":150,"context_line":"weigher. Weights may become negative."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"An instance will be scheduled to one of the N most-weighted hosts, where N is"},{"line_number":153,"context_line":"\u0027scheduler_host_subset_size\u0027."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_71daabeb","line":150,"in_reply_to":"9a8ffd7b_542a35dc","updated":"2015-11-30 16:05:13.000000000","message":"Wow, that\u0027s nitpicky. Technically and pedantically, \u0027multiply\u0027 and \u0027cube\u0027 are forms of adding, etc.","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d19a5bf4b8d74c2fcf8f03c8ec55e782db36f71e","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"* Interdependencies to other options:"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    None"},{"line_number":169,"context_line":"\"\"\")"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"host_mgr_tracks_inst_chg_opt \u003d cfg.BoolOpt(\"scheduler_tracks_instance_changes\","}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_b9bcff06","line":168,"updated":"2015-11-26 11:45:43.000000000","message":"scheduler_host_subset_size","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9dbaba4d23275a091342bd69dea34e2cf1cda005","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"* Interdependencies to other options:"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    None"},{"line_number":169,"context_line":"\"\"\")"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"host_mgr_tracks_inst_chg_opt \u003d cfg.BoolOpt(\"scheduler_tracks_instance_changes\","}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_11f23f70","line":168,"in_reply_to":"9a8ffd7b_b9bcff06","updated":"2015-11-30 16:05:13.000000000","message":"No, subset size doesn\u0027t affect this, nor does this affect subset size. They both can affect the chosen host, but that\u0027s true of every option here.","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"bdbea5e4221175e36337e62d04231edbce63d438","unresolved":false,"context_lines":[{"line_number":166,"context_line":"* Interdependencies to other options:"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    None"},{"line_number":169,"context_line":"\"\"\")"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"host_mgr_tracks_inst_chg_opt \u003d cfg.BoolOpt(\"scheduler_tracks_instance_changes\","},{"line_number":172,"context_line":"        default\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_348e91d0","line":169,"updated":"2015-11-27 17:32:59.000000000","message":"FilterScheduler specific","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"bdbea5e4221175e36337e62d04231edbce63d438","unresolved":false,"context_lines":[{"line_number":172,"context_line":"        default\u003dTrue,"},{"line_number":173,"context_line":"        help\u003d\"\"\""},{"line_number":174,"context_line":"The scheduler may need information about the instances on a host in order to"},{"line_number":175,"context_line":"evaluate its filters and weighers. The most common use for this information are"},{"line_number":176,"context_line":"the (anti-)affinity filters, which need to choose a host based on the instances"},{"line_number":177,"context_line":"already running on a host."},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_34a53146","line":175,"updated":"2015-11-27 17:32:59.000000000","message":"s/are/is by/","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"bdbea5e4221175e36337e62d04231edbce63d438","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        default\u003d\"scheduler\","},{"line_number":195,"context_line":"        help\u003d\"\"\""},{"line_number":196,"context_line":"This is the message queue topic that the scheduler \u0027listens\u0027 on. It is used"},{"line_number":197,"context_line":"when the scheduler service is started up to configure the queue, and whenever"},{"line_number":198,"context_line":"an RPC call to the scheduler is made. There is almost never any reason to ever"},{"line_number":199,"context_line":"change this value."},{"line_number":200,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_2f463c4f","line":197,"range":{"start_line":197,"start_character":63,"end_line":197,"end_character":64},"updated":"2015-11-27 17:32:59.000000000","message":"nit: I do not pause after \u0027and\u0027 when speaking :)\n\nI\u0027m totally nitpicking here - I\u0027ll be obliged if you take this as a lighthearted conversation orthogonal to the patch - but it feels like you want to pronounce \"It is used when: clause1; and when clause2\". Whereas I\u0027m fully comfortable with \"It is used when clause1 and when clause2\".","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9dbaba4d23275a091342bd69dea34e2cf1cda005","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        default\u003d\"scheduler\","},{"line_number":195,"context_line":"        help\u003d\"\"\""},{"line_number":196,"context_line":"This is the message queue topic that the scheduler \u0027listens\u0027 on. It is used"},{"line_number":197,"context_line":"when the scheduler service is started up to configure the queue, and whenever"},{"line_number":198,"context_line":"an RPC call to the scheduler is made. There is almost never any reason to ever"},{"line_number":199,"context_line":"change this value."},{"line_number":200,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_2c036a0f","line":197,"range":{"start_line":197,"start_character":63,"end_line":197,"end_character":64},"in_reply_to":"9a8ffd7b_2f463c4f","updated":"2015-11-30 16:05:13.000000000","message":"I don\u0027t pause after \u0027and\u0027, either. But I do pause *before*. :-P\n\nOf course I take it as good-natured back-and-forth.","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"bdbea5e4221175e36337e62d04231edbce63d438","unresolved":false,"context_lines":[{"line_number":196,"context_line":"This is the message queue topic that the scheduler \u0027listens\u0027 on. It is used"},{"line_number":197,"context_line":"when the scheduler service is started up to configure the queue, and whenever"},{"line_number":198,"context_line":"an RPC call to the scheduler is made. There is almost never any reason to ever"},{"line_number":199,"context_line":"change this value."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"* Services that use this:"},{"line_number":202,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_efd6f44d","line":199,"updated":"2015-11-27 17:32:59.000000000","message":"You could replace the final sentence with \"Do not change this without good reason\".","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"bdbea5e4221175e36337e62d04231edbce63d438","unresolved":false,"context_lines":[{"line_number":211,"context_line":"rpcapi_cap_opt \u003d cfg.StrOpt(\"scheduler\","},{"line_number":212,"context_line":"        help\u003d\"\"\""},{"line_number":213,"context_line":"Sets a version cap (limit) for messages sent to scheduler services. In the"},{"line_number":214,"context_line":"situation where there were multiple scheduler services running, and they were"},{"line_number":215,"context_line":"not ibeing upgraded together, you would set this to the lowest deployed version"},{"line_number":216,"context_line":"to guarantee that other services never send messages that any of your running"},{"line_number":217,"context_line":"schedulers cannot understand."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_4ffdc0b2","line":214,"range":{"start_line":214,"start_character":62,"end_line":214,"end_character":63},"updated":"2015-11-27 17:32:59.000000000","message":"nit: I\u0027d use \"... - interjection - ...\" here","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d19a5bf4b8d74c2fcf8f03c8ec55e782db36f71e","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        help\u003d\"\"\""},{"line_number":213,"context_line":"Sets a version cap (limit) for messages sent to scheduler services. In the"},{"line_number":214,"context_line":"situation where there were multiple scheduler services running, and they were"},{"line_number":215,"context_line":"not ibeing upgraded together, you would set this to the lowest deployed version"},{"line_number":216,"context_line":"to guarantee that other services never send messages that any of your running"},{"line_number":217,"context_line":"schedulers cannot understand."},{"line_number":218,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_b9ef1fe8","line":215,"range":{"start_line":215,"start_character":4,"end_line":215,"end_character":10},"updated":"2015-11-26 11:45:43.000000000","message":"typo","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d19a5bf4b8d74c2fcf8f03c8ec55e782db36f71e","unresolved":false,"context_lines":[{"line_number":286,"context_line":""},{"line_number":287,"context_line":"* Interdependencies to other options:"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    None"},{"line_number":290,"context_line":"\"\"\")"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"driver_period_opt \u003d cfg.IntOpt(\"scheduler_driver_task_period\","}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_59b393e9","line":289,"updated":"2015-11-26 11:45:43.000000000","message":"All the FilterScheduler specific options","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"bdbea5e4221175e36337e62d04231edbce63d438","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        default\u003d60,"},{"line_number":294,"context_line":"        help\u003d\"\"\""},{"line_number":295,"context_line":"This value controls how often (in seconds) to run periodic tasks in the"},{"line_number":296,"context_line":"Scheduler. The specific tasks that are run for each period are determined by"},{"line_number":297,"context_line":"the particular scheduler being used."},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"If this is larger than the nova-service \u0027service_down_time\u0027 setting, Nova may"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_4feb80df","line":296,"range":{"start_line":296,"start_character":0,"end_line":296,"end_character":1},"updated":"2015-11-27 17:32:59.000000000","message":"nit: we don\u0027t usually capitalise scheduler","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9dbaba4d23275a091342bd69dea34e2cf1cda005","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        default\u003d60,"},{"line_number":294,"context_line":"        help\u003d\"\"\""},{"line_number":295,"context_line":"This value controls how often (in seconds) to run periodic tasks in the"},{"line_number":296,"context_line":"Scheduler. The specific tasks that are run for each period are determined by"},{"line_number":297,"context_line":"the particular scheduler being used."},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"If this is larger than the nova-service \u0027service_down_time\u0027 setting, Nova may"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_ec29e238","line":296,"range":{"start_line":296,"start_character":0,"end_line":296,"end_character":1},"in_reply_to":"9a8ffd7b_4feb80df","updated":"2015-11-30 16:05:13.000000000","message":"Done","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"bdbea5e4221175e36337e62d04231edbce63d438","unresolved":false,"context_lines":[{"line_number":300,"context_line":"report the scheduler service as down. This is because the scheduler driver is"},{"line_number":301,"context_line":"responsible for sending a heartbeat and it will only do that as often as this"},{"line_number":302,"context_line":"option allows. As each driver can work a little differently than the others, be"},{"line_number":303,"context_line":"sure to test this with your selected driver."},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"* Services that use this:"},{"line_number":306,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_4fd2a029","line":303,"updated":"2015-11-27 17:32:59.000000000","message":"can we remove \u0027driver\u0027 from last sentence please?","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9dbaba4d23275a091342bd69dea34e2cf1cda005","unresolved":false,"context_lines":[{"line_number":300,"context_line":"report the scheduler service as down. This is because the scheduler driver is"},{"line_number":301,"context_line":"responsible for sending a heartbeat and it will only do that as often as this"},{"line_number":302,"context_line":"option allows. As each driver can work a little differently than the others, be"},{"line_number":303,"context_line":"sure to test this with your selected driver."},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"* Services that use this:"},{"line_number":306,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_cca97e92","line":303,"in_reply_to":"9a8ffd7b_4fd2a029","updated":"2015-11-30 16:05:13.000000000","message":"What would you use instead? Each driver can behave differently.","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"bdbea5e4221175e36337e62d04231edbce63d438","unresolved":false,"context_lines":[{"line_number":380,"context_line":"non-isolated hosts alike."},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"Note that this setting only affects scheduling if the \u0027isolated_hosts_filter\u0027"},{"line_number":383,"context_line":"filter is enabled. And if that filter is used, this option doesn\u0027t affect the"},{"line_number":384,"context_line":"behavior of requests for isolated images. These will *always* be restricted to"},{"line_number":385,"context_line":"isolated hosts."},{"line_number":386,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_cf92104c","line":383,"range":{"start_line":383,"start_character":19,"end_line":383,"end_character":23},"updated":"2015-11-27 17:32:59.000000000","message":"s/And if that filter is used/Even then/","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9dbaba4d23275a091342bd69dea34e2cf1cda005","unresolved":false,"context_lines":[{"line_number":380,"context_line":"non-isolated hosts alike."},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"Note that this setting only affects scheduling if the \u0027isolated_hosts_filter\u0027"},{"line_number":383,"context_line":"filter is enabled. And if that filter is used, this option doesn\u0027t affect the"},{"line_number":384,"context_line":"behavior of requests for isolated images. These will *always* be restricted to"},{"line_number":385,"context_line":"isolated hosts."},{"line_number":386,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_0cdc6617","line":383,"range":{"start_line":383,"start_character":19,"end_line":383,"end_character":23},"in_reply_to":"9a8ffd7b_cf92104c","updated":"2015-11-30 16:05:13.000000000","message":"Done","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"bdbea5e4221175e36337e62d04231edbce63d438","unresolved":false,"context_lines":[{"line_number":573,"context_line":"Images and hosts can be configured so that certain images can only be scheduled"},{"line_number":574,"context_line":"to hosts in a particular aggregate. This is done with metadata values set on"},{"line_number":575,"context_line":"the host aggregate that are identified by beginning with the value of this"},{"line_number":576,"context_line":"option. If the host is part of an aggregate with such a metadata key, the image"},{"line_number":577,"context_line":"in the request spec must have the value of that metadata in its properties in"},{"line_number":578,"context_line":"order for the scheduler to consider the host as acceptable. This option is only"},{"line_number":579,"context_line":"used by the aggregate_image_properties_isolation filter."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_afb22ce3","line":576,"updated":"2015-11-27 17:32:59.000000000","message":"nit: Still needs an example, but I can\u0027t provide one either so labelling this a nit :)","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9dbaba4d23275a091342bd69dea34e2cf1cda005","unresolved":false,"context_lines":[{"line_number":573,"context_line":"Images and hosts can be configured so that certain images can only be scheduled"},{"line_number":574,"context_line":"to hosts in a particular aggregate. This is done with metadata values set on"},{"line_number":575,"context_line":"the host aggregate that are identified by beginning with the value of this"},{"line_number":576,"context_line":"option. If the host is part of an aggregate with such a metadata key, the image"},{"line_number":577,"context_line":"in the request spec must have the value of that metadata in its properties in"},{"line_number":578,"context_line":"order for the scheduler to consider the host as acceptable. This option is only"},{"line_number":579,"context_line":"used by the aggregate_image_properties_isolation filter."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_6c45f2b1","line":576,"in_reply_to":"9a8ffd7b_afb22ce3","updated":"2015-11-30 16:05:13.000000000","message":"If you come up with an example, you can add it on a subsequent patch.","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"bdbea5e4221175e36337e62d04231edbce63d438","unresolved":false,"context_lines":[{"line_number":639,"context_line":"available RAM, and a negative number will result in the scheduler preferring"},{"line_number":640,"context_line":"hosts with less available RAM. Another way to look at it is that positive"},{"line_number":641,"context_line":"values for this option will tend to spread instances across many hosts, while"},{"line_number":642,"context_line":"negative values will tend to fill up (stack) a host as much as possible before"},{"line_number":643,"context_line":"scheduling to a different host. The absolute value, whether positive or"},{"line_number":644,"context_line":"negative, controls how strong the RAM weigher is relative to other weighers."},{"line_number":645,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_afe9ccb8","line":642,"updated":"2015-11-27 17:32:59.000000000","message":"-1: this is inaccurate, it will still spread over the weightiest \u0027scheduler_host_subset_size\u0027 hosts.","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9dbaba4d23275a091342bd69dea34e2cf1cda005","unresolved":false,"context_lines":[{"line_number":639,"context_line":"available RAM, and a negative number will result in the scheduler preferring"},{"line_number":640,"context_line":"hosts with less available RAM. Another way to look at it is that positive"},{"line_number":641,"context_line":"values for this option will tend to spread instances across many hosts, while"},{"line_number":642,"context_line":"negative values will tend to fill up (stack) a host as much as possible before"},{"line_number":643,"context_line":"scheduling to a different host. The absolute value, whether positive or"},{"line_number":644,"context_line":"negative, controls how strong the RAM weigher is relative to other weighers."},{"line_number":645,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_cce65eb0","line":642,"in_reply_to":"9a8ffd7b_afe9ccb8","updated":"2015-11-30 16:05:13.000000000","message":"Well, it isn\u0027t inaccurate, in that it will stack among N hosts, not just one. I\u0027ll change the wording to reflect this.","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"bdbea5e4221175e36337e62d04231edbce63d438","unresolved":false,"context_lines":[{"line_number":685,"context_line":"metrics_weight_opts \u003d ["},{"line_number":686,"context_line":"     cfg.FloatOpt(\"weight_multiplier\","},{"line_number":687,"context_line":"            default\u003d1.0,"},{"line_number":688,"context_line":"            help\u003d\"\"\""},{"line_number":689,"context_line":"When using metrics to weight the suitability of a host, you can use this option"},{"line_number":690,"context_line":"to change how the calculated weight influences the weight assigned to a host as"},{"line_number":691,"context_line":"follows:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_0ffc983c","line":688,"updated":"2015-11-27 17:32:59.000000000","message":"We need to say something like \"When metrics are gathered, they are accumulated into a single value according to \u0027weight_setting\u0027. This value is then multiplied by the value of this option. A high multiplier increases the impact of the metrics, a small multiplier diminishes it. A negative multiplier inverts the effect (so heavier loaded hosts are preferred). A multiplier of zero will cause the \u0027weight_of_unavailable\u0027 to always be used, the actual metrics will be ignored.\"","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9dbaba4d23275a091342bd69dea34e2cf1cda005","unresolved":false,"context_lines":[{"line_number":685,"context_line":"metrics_weight_opts \u003d ["},{"line_number":686,"context_line":"     cfg.FloatOpt(\"weight_multiplier\","},{"line_number":687,"context_line":"            default\u003d1.0,"},{"line_number":688,"context_line":"            help\u003d\"\"\""},{"line_number":689,"context_line":"When using metrics to weight the suitability of a host, you can use this option"},{"line_number":690,"context_line":"to change how the calculated weight influences the weight assigned to a host as"},{"line_number":691,"context_line":"follows:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_e771fda9","line":688,"in_reply_to":"9a8ffd7b_0ffc983c","updated":"2015-11-30 16:05:13.000000000","message":"Hmmm... that doesn\u0027t seem any clearer. I\u0027d be interested in others\u0027 reactions.","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"bdbea5e4221175e36337e62d04231edbce63d438","unresolved":false,"context_lines":[{"line_number":748,"context_line":"            default\u003dTrue,"},{"line_number":749,"context_line":"            help\u003d\"\"\""},{"line_number":750,"context_line":"This setting determines how any unavailable metrics are treated. If this option"},{"line_number":751,"context_line":"is set to be True, any hosts for which a metric is unavailable will raise an"},{"line_number":752,"context_line":"exception, so it is recommended to also use the MetricFilter to filter out"},{"line_number":753,"context_line":"those hosts before weighing."},{"line_number":754,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_af6f8cfa","line":751,"updated":"2015-11-27 17:32:59.000000000","message":"Good point re: set/unset being relative to default and good spot on would/will.\n\nStill s/set to be True/set to True/","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9dbaba4d23275a091342bd69dea34e2cf1cda005","unresolved":false,"context_lines":[{"line_number":748,"context_line":"            default\u003dTrue,"},{"line_number":749,"context_line":"            help\u003d\"\"\""},{"line_number":750,"context_line":"This setting determines how any unavailable metrics are treated. If this option"},{"line_number":751,"context_line":"is set to be True, any hosts for which a metric is unavailable will raise an"},{"line_number":752,"context_line":"exception, so it is recommended to also use the MetricFilter to filter out"},{"line_number":753,"context_line":"those hosts before weighing."},{"line_number":754,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_27862566","line":751,"in_reply_to":"9a8ffd7b_af6f8cfa","updated":"2015-11-30 16:05:13.000000000","message":"Done","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"bdbea5e4221175e36337e62d04231edbce63d438","unresolved":false,"context_lines":[{"line_number":766,"context_line":"    cfg.FloatOpt(\"weight_of_unavailable\","},{"line_number":767,"context_line":"            default\u003dfloat(-10000.0),"},{"line_number":768,"context_line":"            help\u003d\"\"\""},{"line_number":769,"context_line":"When there is a problem detected with a host\u0027s metrics, this is the weight"},{"line_number":770,"context_line":"value that is returned. Conditions which can cause this are:"},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"    * One of the metrics named in \u0027weight_setting\u0027 is not available for a host,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_8f11685f","line":769,"updated":"2015-11-27 17:32:59.000000000","message":"I\u0027d prefer to avoid judgemental language like \"a problem\". Let\u0027s simply say \"When one of the following conditions is met, this value will be used in place of the metric sum:\"","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9dbaba4d23275a091342bd69dea34e2cf1cda005","unresolved":false,"context_lines":[{"line_number":766,"context_line":"    cfg.FloatOpt(\"weight_of_unavailable\","},{"line_number":767,"context_line":"            default\u003dfloat(-10000.0),"},{"line_number":768,"context_line":"            help\u003d\"\"\""},{"line_number":769,"context_line":"When there is a problem detected with a host\u0027s metrics, this is the weight"},{"line_number":770,"context_line":"value that is returned. Conditions which can cause this are:"},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"    * One of the metrics named in \u0027weight_setting\u0027 is not available for a host,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_470249b6","line":769,"in_reply_to":"9a8ffd7b_8f11685f","updated":"2015-11-30 16:05:13.000000000","message":"Done","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"bdbea5e4221175e36337e62d04231edbce63d438","unresolved":false,"context_lines":[{"line_number":794,"context_line":"This is the maximum number of attempts that will be made to schedule an"},{"line_number":795,"context_line":"instance before it is assumed that the failures aren\u0027t due to normal occasional"},{"line_number":796,"context_line":"race conflicts, but rather some other problem. When this is reached a"},{"line_number":797,"context_line":"MaxRetriesExceeded exception is raised, and the instance is set to an error"},{"line_number":798,"context_line":"state."},{"line_number":799,"context_line":""},{"line_number":800,"context_line":"Valid values are positive integers (1 or greater)."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_4f106057","line":797,"range":{"start_line":797,"start_character":38,"end_line":797,"end_character":39},"updated":"2015-11-27 17:32:59.000000000","message":"war on superfluous commas!","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9dbaba4d23275a091342bd69dea34e2cf1cda005","unresolved":false,"context_lines":[{"line_number":794,"context_line":"This is the maximum number of attempts that will be made to schedule an"},{"line_number":795,"context_line":"instance before it is assumed that the failures aren\u0027t due to normal occasional"},{"line_number":796,"context_line":"race conflicts, but rather some other problem. When this is reached a"},{"line_number":797,"context_line":"MaxRetriesExceeded exception is raised, and the instance is set to an error"},{"line_number":798,"context_line":"state."},{"line_number":799,"context_line":""},{"line_number":800,"context_line":"Valid values are positive integers (1 or greater)."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_c7db994e","line":797,"range":{"start_line":797,"start_character":38,"end_line":797,"end_character":39},"in_reply_to":"9a8ffd7b_4f106057","updated":"2015-11-30 16:05:13.000000000","message":"http://imgur.com/gallery/fycHx","commit_id":"6f1b2a0d4d7b106b48cc9d0db2cb3f985eb5fea3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"57e9ba4d7dd710cbb42f6301482115d0124f8edd","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        ],"},{"line_number":52,"context_line":"        help\u003d\"\"\""},{"line_number":53,"context_line":"This option specifies the filters used for filtering baremetal hosts when not"},{"line_number":54,"context_line":"otherwise specified in the request. The value should be a list of strings, with"},{"line_number":55,"context_line":"each string being the name of a filter class to be used."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_f525e35b","line":54,"range":{"start_line":54,"start_character":58,"end_line":54,"end_character":62},"updated":"2015-12-01 16:21:55.000000000","message":"Is it also an ordered list as the scheduler_default_filters?","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7f16d1808df58e781eee86fcc7b54b1ebd21bdfe","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        ],"},{"line_number":52,"context_line":"        help\u003d\"\"\""},{"line_number":53,"context_line":"This option specifies the filters used for filtering baremetal hosts when not"},{"line_number":54,"context_line":"otherwise specified in the request. The value should be a list of strings, with"},{"line_number":55,"context_line":"each string being the name of a filter class to be used."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_fbc62815","line":54,"in_reply_to":"9a8ffd7b_f525e35b","updated":"2015-12-01 19:55:12.000000000","message":"Yes, good catch.","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ebde44fce9c4d15930be7e74e53f7c88968ba117","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    ``nova-scheduler``"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"* Interdependencies to other options:"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    If the \u0027scheduler_use_baremetal_filters\u0027 option is False, this option has"},{"line_number":67,"context_line":"    no effect."}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_3cb91dcc","line":64,"updated":"2015-12-01 15:12:00.000000000","message":"I will always hate this and with all respect Markus it makes so much sense it was invented by a German! Although the portmanteau may be technically accurate, it\u0027s not a common word so it feels inappropriate in technical doc which should strive to be plain English.\n\nI won\u0027t -1 for this though.","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7f16d1808df58e781eee86fcc7b54b1ebd21bdfe","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    ``nova-scheduler``"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"* Interdependencies to other options:"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    If the \u0027scheduler_use_baremetal_filters\u0027 option is False, this option has"},{"line_number":67,"context_line":"    no effect."}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_1b668c29","line":64,"in_reply_to":"9a8ffd7b_0444ff71","updated":"2015-12-01 19:55:12.000000000","message":"I\u0027ll be happy to change it - just wanted to be consistent with the style Markus was using. I trust that you\u0027ll update your changes to match?","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"e43356676622548445e6aaa44e97255f02467457","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    ``nova-scheduler``"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"* Interdependencies to other options:"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    If the \u0027scheduler_use_baremetal_filters\u0027 option is False, this option has"},{"line_number":67,"context_line":"    no effect."}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_0444ff71","line":64,"in_reply_to":"9a8ffd7b_3cb91dcc","updated":"2015-12-01 15:42:11.000000000","message":":) I wasn\u0027t aware that it was not common. \"Related options\" is fine for me. If all of the other information is good enough (and it definitely is in this review) then we make the live of the ops much better imo.","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ebde44fce9c4d15930be7e74e53f7c88968ba117","unresolved":false,"context_lines":[{"line_number":91,"context_line":"host_mgr_avail_filt_opt \u003d cfg.MultiStrOpt(\"scheduler_available_filters\","},{"line_number":92,"context_line":"        default\u003d[\"nova.scheduler.filters.all_filters\"],"},{"line_number":93,"context_line":"        help\u003d\"\"\""},{"line_number":94,"context_line":"This is an ordered list of the filter classes the Nova scheduler may apply."},{"line_number":95,"context_line":"Customize this to suit your requirements. For performance, order more powerful"},{"line_number":96,"context_line":"filters earlier."},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_dc34914b","line":94,"updated":"2015-12-01 15:12:00.000000000","message":"-1: s/ordered/unordered/","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7f16d1808df58e781eee86fcc7b54b1ebd21bdfe","unresolved":false,"context_lines":[{"line_number":91,"context_line":"host_mgr_avail_filt_opt \u003d cfg.MultiStrOpt(\"scheduler_available_filters\","},{"line_number":92,"context_line":"        default\u003d[\"nova.scheduler.filters.all_filters\"],"},{"line_number":93,"context_line":"        help\u003d\"\"\""},{"line_number":94,"context_line":"This is an ordered list of the filter classes the Nova scheduler may apply."},{"line_number":95,"context_line":"Customize this to suit your requirements. For performance, order more powerful"},{"line_number":96,"context_line":"filters earlier."},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_1b344cf9","line":94,"in_reply_to":"9a8ffd7b_dc34914b","updated":"2015-12-01 19:55:12.000000000","message":"Done","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ebde44fce9c4d15930be7e74e53f7c88968ba117","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        help\u003d\"\"\""},{"line_number":94,"context_line":"This is an ordered list of the filter classes the Nova scheduler may apply."},{"line_number":95,"context_line":"Customize this to suit your requirements. For performance, order more powerful"},{"line_number":96,"context_line":"filters earlier."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"A request may specify particular filters to use for that request, but anything"},{"line_number":99,"context_line":"specified must be marked as available by being included in this option. No"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_fc007568","line":96,"updated":"2015-12-01 15:12:00.000000000","message":"-1: Need to remove last sentence","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7f16d1808df58e781eee86fcc7b54b1ebd21bdfe","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        help\u003d\"\"\""},{"line_number":94,"context_line":"This is an ordered list of the filter classes the Nova scheduler may apply."},{"line_number":95,"context_line":"Customize this to suit your requirements. For performance, order more powerful"},{"line_number":96,"context_line":"filters earlier."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"A request may specify particular filters to use for that request, but anything"},{"line_number":99,"context_line":"specified must be marked as available by being included in this option. No"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_bb3ae0e5","line":96,"in_reply_to":"9a8ffd7b_fc007568","updated":"2015-12-01 19:55:12.000000000","message":"Done","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ebde44fce9c4d15930be7e74e53f7c88968ba117","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    \u0027scheduler_default_filters\u0027 option. It may also contain additional filters"},{"line_number":121,"context_line":"    that will then be available when requested by individual requests. The"},{"line_number":122,"context_line":"    order of these filters is not important; as long as the filter for the"},{"line_number":123,"context_line":"    request appears in this list, it will be allowed."},{"line_number":124,"context_line":"\"\"\")"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"host_mgr_default_filt_opt \u003d cfg.ListOpt(\"scheduler_default_filters\","}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_50296588","line":123,"updated":"2015-12-01 15:12:00.000000000","message":"nit: not sure the second half of this sentence adds anything.","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7f16d1808df58e781eee86fcc7b54b1ebd21bdfe","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    \u0027scheduler_default_filters\u0027 option. It may also contain additional filters"},{"line_number":121,"context_line":"    that will then be available when requested by individual requests. The"},{"line_number":122,"context_line":"    order of these filters is not important; as long as the filter for the"},{"line_number":123,"context_line":"    request appears in this list, it will be allowed."},{"line_number":124,"context_line":"\"\"\")"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"host_mgr_default_filt_opt \u003d cfg.ListOpt(\"scheduler_default_filters\","}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_364b675b","line":123,"in_reply_to":"9a8ffd7b_50296588","updated":"2015-12-01 19:55:12.000000000","message":"I added that in response to the comments that the options where order is either important or unimportant needs to be stressed to make the difference clear.","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ebde44fce9c4d15930be7e74e53f7c88968ba117","unresolved":false,"context_lines":[{"line_number":161,"context_line":"This is a list of weigher class names. Only hosts which pass the filters are"},{"line_number":162,"context_line":"weighed. The weight for any host starts at 0, and the weighers order these"},{"line_number":163,"context_line":"hosts by adding to or subtracting from the weight assigned by the previous"},{"line_number":164,"context_line":"weigher. Weights may become negative."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"An instance will be scheduled to one of the N most-weighted hosts, where N is"},{"line_number":167,"context_line":"\u0027scheduler_host_subset_size\u0027."}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_f00e59e4","line":164,"updated":"2015-12-01 15:12:00.000000000","message":"-1: I\u0027m not just nitpicking here. It\u0027s important that a weigher might, say, double the incoming value rather than adding a fixed amount. For example, say you have a RAMWeigher (+RAM), a FooWeigher (*2) and a BarWeigher (w if w \u003e 0 else 0).\n\n (+10) (*2) (\u003dw) \u003d 20\n (+1) (*2) (\u003d0) \u003d 0\n\nIf you replace the *2 with +10, that\u0027s the same for the first case but radically different for the second:\n\n (+10) (+10) (\u003dw) \u003d 20\n (+1) (+10) (\u003dw) \u003d 11\n\nSaying advanced operators are \u0027fancy adding\u0027 is technically accurate but misleading.","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7f16d1808df58e781eee86fcc7b54b1ebd21bdfe","unresolved":false,"context_lines":[{"line_number":161,"context_line":"This is a list of weigher class names. Only hosts which pass the filters are"},{"line_number":162,"context_line":"weighed. The weight for any host starts at 0, and the weighers order these"},{"line_number":163,"context_line":"hosts by adding to or subtracting from the weight assigned by the previous"},{"line_number":164,"context_line":"weigher. Weights may become negative."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"An instance will be scheduled to one of the N most-weighted hosts, where N is"},{"line_number":167,"context_line":"\u0027scheduler_host_subset_size\u0027."}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_16e0a3cb","line":164,"in_reply_to":"9a8ffd7b_f00e59e4","updated":"2015-12-01 19:55:12.000000000","message":"Sorry, but that\u0027s simply not correct. One weigher cannot change another\u0027s result. See https://github.com/openstack/nova/blob/master/nova/weights.py#L131-L141\n\nEach weigher generates a weight and (optionally) a multiplier. The multiplier *only* affects that weigher\u0027s output; it cannot be applied to the previous result. And then the weights are added together.","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ebde44fce9c4d15930be7e74e53f7c88968ba117","unresolved":false,"context_lines":[{"line_number":317,"context_line":"the particular scheduler being used."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"If this is larger than the nova-service \u0027service_down_time\u0027 setting, Nova may"},{"line_number":320,"context_line":"report the scheduler service as down. This is because the scheduler driver is"},{"line_number":321,"context_line":"responsible for sending a heartbeat and it will only do that as often as this"},{"line_number":322,"context_line":"option allows. As each driver can work a little differently than the others, be"},{"line_number":323,"context_line":"sure to test this with your selected driver."}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_1070bddb","line":320,"updated":"2015-12-01 15:12:00.000000000","message":"s/driver//","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7f16d1808df58e781eee86fcc7b54b1ebd21bdfe","unresolved":false,"context_lines":[{"line_number":317,"context_line":"the particular scheduler being used."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"If this is larger than the nova-service \u0027service_down_time\u0027 setting, Nova may"},{"line_number":320,"context_line":"report the scheduler service as down. This is because the scheduler driver is"},{"line_number":321,"context_line":"responsible for sending a heartbeat and it will only do that as often as this"},{"line_number":322,"context_line":"option allows. As each driver can work a little differently than the others, be"},{"line_number":323,"context_line":"sure to test this with your selected driver."}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_f62abfe6","line":320,"in_reply_to":"9a8ffd7b_1070bddb","updated":"2015-12-01 19:55:12.000000000","message":"Done","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ebde44fce9c4d15930be7e74e53f7c88968ba117","unresolved":false,"context_lines":[{"line_number":320,"context_line":"report the scheduler service as down. This is because the scheduler driver is"},{"line_number":321,"context_line":"responsible for sending a heartbeat and it will only do that as often as this"},{"line_number":322,"context_line":"option allows. As each driver can work a little differently than the others, be"},{"line_number":323,"context_line":"sure to test this with your selected driver."},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"* Services that use this:"},{"line_number":326,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_f0b5f97d","line":323,"updated":"2015-12-01 15:12:00.000000000","message":"On line 317 you removed \u0027driver\u0027 in favor of \u0027scheduler\u0027, I\u0027d recommend doing that.","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7f16d1808df58e781eee86fcc7b54b1ebd21bdfe","unresolved":false,"context_lines":[{"line_number":320,"context_line":"report the scheduler service as down. This is because the scheduler driver is"},{"line_number":321,"context_line":"responsible for sending a heartbeat and it will only do that as often as this"},{"line_number":322,"context_line":"option allows. As each driver can work a little differently than the others, be"},{"line_number":323,"context_line":"sure to test this with your selected driver."},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"* Services that use this:"},{"line_number":326,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_b634374a","line":323,"in_reply_to":"9a8ffd7b_f0b5f97d","updated":"2015-12-01 19:55:12.000000000","message":"Done","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ebde44fce9c4d15930be7e74e53f7c88968ba117","unresolved":false,"context_lines":[{"line_number":701,"context_line":"available RAM, and a negative number will result in the scheduler preferring"},{"line_number":702,"context_line":"hosts with less available RAM. Another way to look at it is that positive"},{"line_number":703,"context_line":"values for this option will tend to spread instances across many hosts, while"},{"line_number":704,"context_line":"negative values will tend to fill up (stack) hosts as much as possible before"},{"line_number":705,"context_line":"scheduling to a less-used host. The absolute value, whether positive or"},{"line_number":706,"context_line":"negative, controls how strong the RAM weigher is relative to other weighers."},{"line_number":707,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_46ec4f29","line":704,"updated":"2015-12-01 15:12:00.000000000","message":"Well, I\u0027d have preferred you took my wording but this\u0027ll do.","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ebde44fce9c4d15930be7e74e53f7c88968ba117","unresolved":false,"context_lines":[{"line_number":751,"context_line":"metrics_weight_opts \u003d ["},{"line_number":752,"context_line":"     cfg.FloatOpt(\"weight_multiplier\","},{"line_number":753,"context_line":"            default\u003d1.0,"},{"line_number":754,"context_line":"            help\u003d\"\"\""},{"line_number":755,"context_line":"When using metrics to weight the suitability of a host, you can use this option"},{"line_number":756,"context_line":"to change how the calculated weight influences the weight assigned to a host as"},{"line_number":757,"context_line":"follows:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_a6ce5b81","line":754,"updated":"2015-12-01 15:12:00.000000000","message":"My wording is more concise, explains more (EG effect of a negative multiplier) and gives just enough context to explain how we are treating a set of metrics as a single value.","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ebde44fce9c4d15930be7e74e53f7c88968ba117","unresolved":false,"context_lines":[{"line_number":841,"context_line":"    cfg.FloatOpt(\"weight_of_unavailable\","},{"line_number":842,"context_line":"            default\u003dfloat(-10000.0),"},{"line_number":843,"context_line":"            help\u003d\"\"\""},{"line_number":844,"context_line":"When any of the following conditions is met, this value will be used in place"},{"line_number":845,"context_line":"of any actual metric value:"},{"line_number":846,"context_line":""},{"line_number":847,"context_line":"    * One of the metrics named in \u0027weight_setting\u0027 is not available for a host,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_a6f89b7d","line":844,"updated":"2015-12-01 15:12:00.000000000","message":"s/is/are/, or you could say \"any one of\"","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7f16d1808df58e781eee86fcc7b54b1ebd21bdfe","unresolved":false,"context_lines":[{"line_number":841,"context_line":"    cfg.FloatOpt(\"weight_of_unavailable\","},{"line_number":842,"context_line":"            default\u003dfloat(-10000.0),"},{"line_number":843,"context_line":"            help\u003d\"\"\""},{"line_number":844,"context_line":"When any of the following conditions is met, this value will be used in place"},{"line_number":845,"context_line":"of any actual metric value:"},{"line_number":846,"context_line":""},{"line_number":847,"context_line":"    * One of the metrics named in \u0027weight_setting\u0027 is not available for a host,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_76db2fee","line":844,"in_reply_to":"9a8ffd7b_a6f89b7d","updated":"2015-12-01 19:55:12.000000000","message":"Done","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ebde44fce9c4d15930be7e74e53f7c88968ba117","unresolved":false,"context_lines":[{"line_number":872,"context_line":"This is the maximum number of attempts that will be made to schedule an"},{"line_number":873,"context_line":"instance before it is assumed that the failures aren\u0027t due to normal occasional"},{"line_number":874,"context_line":"race conflicts, but rather some other problem. When this is reached a"},{"line_number":875,"context_line":"MaxRetriesExceeded exception is raised, and the instance is set to an error"},{"line_number":876,"context_line":"state."},{"line_number":877,"context_line":""},{"line_number":878,"context_line":"Valid values are positive integers (1 or greater)."}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_a6541b54","line":875,"updated":"2015-12-01 15:12:00.000000000","message":"This only adds to my argument, life without the Oxford comma is clearly more fun. Maybe if Stalin was more interested in corsetry and make-up the world would have been a happier place.\n\nBesides, there\u0027s no ambiguity introduced here.","commit_id":"647558c04eef7363a6c10a608fab00284357c349"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"0902a85dc705df15e5290004c4bb7b1886bae734","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    ``nova-scheduler``"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* Related options:"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    None"},{"line_number":39,"context_line":"\"\"\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a8ffd7b_f2f4ebcf","line":36,"updated":"2015-12-02 10:20:54.000000000","message":"*party time*","commit_id":"49e46f34f0e78a0023f44bcb8ce20ce7c6fc01cd"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"0902a85dc705df15e5290004c4bb7b1886bae734","unresolved":false,"context_lines":[{"line_number":160,"context_line":"This is a list of weigher class names. Only hosts which pass the filters are"},{"line_number":161,"context_line":"weighed. The weight for any host starts at 0, and the weighers order these"},{"line_number":162,"context_line":"hosts by adding to or subtracting from the weight assigned by the previous"},{"line_number":163,"context_line":"weigher. Weights may become negative."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"An instance will be scheduled to one of the N most-weighted hosts, where N is"},{"line_number":166,"context_line":"\u0027scheduler_host_subset_size\u0027."}],"source_content_type":"text/x-python","patch_set":7,"id":"9a8ffd7b_52885722","line":163,"updated":"2015-12-02 10:20:54.000000000","message":"You and your darn facts! I stand corrected, thank you.","commit_id":"49e46f34f0e78a0023f44bcb8ce20ce7c6fc01cd"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"0902a85dc705df15e5290004c4bb7b1886bae734","unresolved":false,"context_lines":[{"line_number":316,"context_line":"the particular scheduler being used."},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"If this is larger than the nova-service \u0027service_down_time\u0027 setting, Nova may"},{"line_number":319,"context_line":"report the scheduler service as down. This is because the scheduler driver is"},{"line_number":320,"context_line":"responsible for sending a heartbeat and it will only do that as often as this"},{"line_number":321,"context_line":"option allows. As each scheduler can work a little differently than the others,"},{"line_number":322,"context_line":"be sure to test this with your selected scheduler."}],"source_content_type":"text/x-python","patch_set":7,"id":"9a8ffd7b_d27c4722","line":319,"range":{"start_line":319,"start_character":68,"end_line":319,"end_character":74},"updated":"2015-12-02 10:20:54.000000000","message":"still s/driver//","commit_id":"49e46f34f0e78a0023f44bcb8ce20ce7c6fc01cd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"89c5d8fa306c1f607f236cc593cb787c4adab8da","unresolved":false,"context_lines":[{"line_number":21,"context_line":"host_subset_size_opt \u003d cfg.IntOpt(\"scheduler_host_subset_size\","},{"line_number":22,"context_line":"        default\u003d1,"},{"line_number":23,"context_line":"        help\u003d\"\"\""},{"line_number":24,"context_line":"In order to reduce potential race conditions, new instances will be scheduled"},{"line_number":25,"context_line":"on a host chosen randomly from a subset of the N best hosts, where N is the"},{"line_number":26,"context_line":"value set by this option.  Valid values are 1 or greater. Any value less than"},{"line_number":27,"context_line":"one will be treated as 1."}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_66b5d62f","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":44},"updated":"2015-12-04 15:59:01.000000000","message":"That sentence sounds a bit opiniated. It comes from https://review.openstack.org/#/c/19823/ which refers to https://bugs.launchpad.net/nova/+bug/1098635\n\nThat\u0027s not because of race conditions, but rather because we should introduce some randomness for picking an host. Anyway, I don\u0027t feel the need to explain why it has been introduced, we should stay factual and only explain what it does.","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"fb9ad49175d07c7d50838c10944fda28c39d8cde","unresolved":false,"context_lines":[{"line_number":21,"context_line":"host_subset_size_opt \u003d cfg.IntOpt(\"scheduler_host_subset_size\","},{"line_number":22,"context_line":"        default\u003d1,"},{"line_number":23,"context_line":"        help\u003d\"\"\""},{"line_number":24,"context_line":"In order to reduce potential race conditions, new instances will be scheduled"},{"line_number":25,"context_line":"on a host chosen randomly from a subset of the N best hosts, where N is the"},{"line_number":26,"context_line":"value set by this option.  Valid values are 1 or greater. Any value less than"},{"line_number":27,"context_line":"one will be treated as 1."}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_9e7b228c","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":44},"in_reply_to":"7a740942_66b5d62f","updated":"2015-12-07 17:44:39.000000000","message":"The audience for this help are cloud operators. It is important to explain \"why\" they would ever want/need to change the setting.\n\nYou are correct about the origin of the setting, but one of the reasons why the top weighted host may not be the best is because similar requests close together will choose the same host, no? The bug report doesn\u0027t state why; it just makes this assertion.","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"89c5d8fa306c1f607f236cc593cb787c4adab8da","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    None"},{"line_number":39,"context_line":"\"\"\")"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"bm_default_filter_opt \u003d cfg.ListOpt(\"baremetal_scheduler_default_filters\","},{"line_number":42,"context_line":"        default\u003d["},{"line_number":43,"context_line":"            \"RetryFilter\","},{"line_number":44,"context_line":"            \"AvailabilityZoneFilter\","}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_e60f8686","line":41,"updated":"2015-12-04 15:59:01.000000000","message":"nit: given that option is depending on if the below option is True, we could explain that one after scheduler_use_baremetal_filters","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"fb9ad49175d07c7d50838c10944fda28c39d8cde","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    None"},{"line_number":39,"context_line":"\"\"\")"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"bm_default_filter_opt \u003d cfg.ListOpt(\"baremetal_scheduler_default_filters\","},{"line_number":42,"context_line":"        default\u003d["},{"line_number":43,"context_line":"            \"RetryFilter\","},{"line_number":44,"context_line":"            \"AvailabilityZoneFilter\","}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_3ef1ce01","line":41,"in_reply_to":"7a740942_e60f8686","updated":"2015-12-07 17:44:39.000000000","message":"It does. All options that interact/depend on each other are listed in the \u0027Related options:\u0027 section.","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"89c5d8fa306c1f607f236cc593cb787c4adab8da","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            \"ExactCoreFilter\","},{"line_number":51,"context_line":"        ],"},{"line_number":52,"context_line":"        help\u003d\"\"\""},{"line_number":53,"context_line":"This option specifies the filters used for filtering baremetal hosts. The use"},{"line_number":54,"context_line":"of \u0027default\u0027 in the name of this option implies that other filters may"},{"line_number":55,"context_line":"sometimes be used, but that is not the case. The value should be a list of"},{"line_number":56,"context_line":"strings, with each string being the name of a filter class to be used. When"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_c6836acb","line":53,"range":{"start_line":53,"start_character":53,"end_line":53,"end_character":68},"updated":"2015-12-04 15:59:01.000000000","message":"I would be a bit more explicit and say it\u0027s only for using with Ironic given nova-baremetal has been removed from tree and that could be confusing.","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"fb9ad49175d07c7d50838c10944fda28c39d8cde","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            \"ExactCoreFilter\","},{"line_number":51,"context_line":"        ],"},{"line_number":52,"context_line":"        help\u003d\"\"\""},{"line_number":53,"context_line":"This option specifies the filters used for filtering baremetal hosts. The use"},{"line_number":54,"context_line":"of \u0027default\u0027 in the name of this option implies that other filters may"},{"line_number":55,"context_line":"sometimes be used, but that is not the case. The value should be a list of"},{"line_number":56,"context_line":"strings, with each string being the name of a filter class to be used. When"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_3edb0e51","line":53,"range":{"start_line":53,"start_character":53,"end_line":53,"end_character":68},"in_reply_to":"7a740942_c6836acb","updated":"2015-12-07 17:44:39.000000000","message":"The name of the option says \"baremetal\", not ironic, so I think that this is more consistent.","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"89c5d8fa306c1f607f236cc593cb787c4adab8da","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        help\u003d\"\"\""},{"line_number":53,"context_line":"This option specifies the filters used for filtering baremetal hosts. The use"},{"line_number":54,"context_line":"of \u0027default\u0027 in the name of this option implies that other filters may"},{"line_number":55,"context_line":"sometimes be used, but that is not the case. The value should be a list of"},{"line_number":56,"context_line":"strings, with each string being the name of a filter class to be used. When"},{"line_number":57,"context_line":"used, they will be applied in order, so place your most restrictive filters"},{"line_number":58,"context_line":"first to make the filtering process more efficient."}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_c9093d2e","line":55,"range":{"start_line":55,"start_character":19,"end_line":55,"end_character":43},"updated":"2015-12-04 15:59:01.000000000","message":"no, that means that you can replace that by any list of strings you want, that\u0027s it.\n\nYou can even add another filter name to the list by doing\n\n  baremetal_scheduler_default_filters +\u003d MyCustomFilter\n\n(because it\u0027s a ListOpt)","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"fb9ad49175d07c7d50838c10944fda28c39d8cde","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        help\u003d\"\"\""},{"line_number":53,"context_line":"This option specifies the filters used for filtering baremetal hosts. The use"},{"line_number":54,"context_line":"of \u0027default\u0027 in the name of this option implies that other filters may"},{"line_number":55,"context_line":"sometimes be used, but that is not the case. The value should be a list of"},{"line_number":56,"context_line":"strings, with each string being the name of a filter class to be used. When"},{"line_number":57,"context_line":"used, they will be applied in order, so place your most restrictive filters"},{"line_number":58,"context_line":"first to make the filtering process more efficient."}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_db1bf171","line":55,"range":{"start_line":55,"start_character":19,"end_line":55,"end_character":43},"in_reply_to":"7a740942_c9093d2e","updated":"2015-12-07 17:44:39.000000000","message":"OK, thanks - that wasn\u0027t clear in the code.","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"89c5d8fa306c1f607f236cc593cb787c4adab8da","unresolved":false,"context_lines":[{"line_number":57,"context_line":"used, they will be applied in order, so place your most restrictive filters"},{"line_number":58,"context_line":"first to make the filtering process more efficient."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"},{"line_number":61,"context_line":"a different scheduler, this option has no effect."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* Services that use this:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_662b9695","line":60,"range":{"start_line":60,"start_character":32,"end_line":60,"end_character":66},"updated":"2015-12-04 15:59:01.000000000","message":"no, by the IronicHostManager","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"fb9ad49175d07c7d50838c10944fda28c39d8cde","unresolved":false,"context_lines":[{"line_number":57,"context_line":"used, they will be applied in order, so place your most restrictive filters"},{"line_number":58,"context_line":"first to make the filtering process more efficient."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"},{"line_number":61,"context_line":"a different scheduler, this option has no effect."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* Services that use this:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_3b72357c","line":60,"range":{"start_line":60,"start_character":32,"end_line":60,"end_character":66},"in_reply_to":"7a740942_662b9695","updated":"2015-12-07 17:44:39.000000000","message":"This is the standard wording used throughout to separate options that are used by different schedulers. Specifying \u0027IronicHostManager\u0027 is an implementation detail that doesn\u0027t mean anything to an operator.","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"89c5d8fa306c1f607f236cc593cb787c4adab8da","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        help\u003d\"\"\""},{"line_number":76,"context_line":"Set this to True to tell the nova scheduler that it should use the filters"},{"line_number":77,"context_line":"specified in the \u0027baremetal_scheduler_default_filters\u0027 option. If you are not"},{"line_number":78,"context_line":"scheduling baremetal nodes, leave this at the default setting of False."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"},{"line_number":81,"context_line":"a different scheduler, this option has no effect."}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_2951e10e","line":78,"range":{"start_line":78,"start_character":11,"end_line":78,"end_character":20},"updated":"2015-12-04 15:59:01.000000000","message":"s/Ironic/","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"fb9ad49175d07c7d50838c10944fda28c39d8cde","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        help\u003d\"\"\""},{"line_number":76,"context_line":"Set this to True to tell the nova scheduler that it should use the filters"},{"line_number":77,"context_line":"specified in the \u0027baremetal_scheduler_default_filters\u0027 option. If you are not"},{"line_number":78,"context_line":"scheduling baremetal nodes, leave this at the default setting of False."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"},{"line_number":81,"context_line":"a different scheduler, this option has no effect."}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_9b2ec941","line":78,"range":{"start_line":78,"start_character":11,"end_line":78,"end_character":20},"in_reply_to":"7a740942_2951e10e","updated":"2015-12-07 17:44:39.000000000","message":"Again, the option is named with \u0027baremetal\u0027, so I\u0027ll stick with being consistent.","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"89c5d8fa306c1f607f236cc593cb787c4adab8da","unresolved":false,"context_lines":[{"line_number":77,"context_line":"specified in the \u0027baremetal_scheduler_default_filters\u0027 option. If you are not"},{"line_number":78,"context_line":"scheduling baremetal nodes, leave this at the default setting of False."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"},{"line_number":81,"context_line":"a different scheduler, this option has no effect."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"* Services that use this:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_2978018f","line":80,"range":{"start_line":80,"start_character":32,"end_line":80,"end_character":66},"updated":"2015-12-04 15:59:01.000000000","message":"s/IronicHostManager","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"fb9ad49175d07c7d50838c10944fda28c39d8cde","unresolved":false,"context_lines":[{"line_number":77,"context_line":"specified in the \u0027baremetal_scheduler_default_filters\u0027 option. If you are not"},{"line_number":78,"context_line":"scheduling baremetal nodes, leave this at the default setting of False."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"},{"line_number":81,"context_line":"a different scheduler, this option has no effect."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"* Services that use this:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_7b299d36","line":80,"range":{"start_line":80,"start_character":32,"end_line":80,"end_character":66},"in_reply_to":"7a740942_2978018f","updated":"2015-12-07 17:44:39.000000000","message":"same reply as above.","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"89c5d8fa306c1f607f236cc593cb787c4adab8da","unresolved":false,"context_lines":[{"line_number":99,"context_line":"used, but any filter appearing in that option must also be included in this"},{"line_number":100,"context_line":"list."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Each name in the list for this option can be either a full module path, such as"},{"line_number":103,"context_line":"\u0027nova.scheduler.filters.foo_filter\u0027, or the full path to a method that returns"},{"line_number":104,"context_line":"a list of filters. The most common use case for the latter is when you want to"},{"line_number":105,"context_line":"use all filters, which you would do by specifying"},{"line_number":106,"context_line":"\u0027nova.scheduler.filters.all_filters\u0027, which is a method that will return a list"},{"line_number":107,"context_line":"of all filters included with Nova."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"},{"line_number":110,"context_line":"a different scheduler, this option has no effect."}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_a99f114f","line":107,"range":{"start_line":102,"start_character":0,"end_line":107,"end_character":34},"updated":"2015-12-04 15:59:01.000000000","message":"I feel you\u0027re complicating things. I would propose that :\n\u0027By default it loads all the classes found in modules located in nova.scheduler.filters package, but you can amend that by either replacing the default value or adding new values to the list.\u0027","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"fb9ad49175d07c7d50838c10944fda28c39d8cde","unresolved":false,"context_lines":[{"line_number":99,"context_line":"used, but any filter appearing in that option must also be included in this"},{"line_number":100,"context_line":"list."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Each name in the list for this option can be either a full module path, such as"},{"line_number":103,"context_line":"\u0027nova.scheduler.filters.foo_filter\u0027, or the full path to a method that returns"},{"line_number":104,"context_line":"a list of filters. The most common use case for the latter is when you want to"},{"line_number":105,"context_line":"use all filters, which you would do by specifying"},{"line_number":106,"context_line":"\u0027nova.scheduler.filters.all_filters\u0027, which is a method that will return a list"},{"line_number":107,"context_line":"of all filters included with Nova."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"},{"line_number":110,"context_line":"a different scheduler, this option has no effect."}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_1bd17923","line":107,"range":{"start_line":102,"start_character":0,"end_line":107,"end_character":34},"in_reply_to":"7a740942_a99f114f","updated":"2015-12-07 17:44:39.000000000","message":"I think saying you can append to something already called \u0027all_filters\u0027 is confusing, too. :)\n\nI\u0027ll simplify the wording a bit.","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"89c5d8fa306c1f607f236cc593cb787c4adab8da","unresolved":false,"context_lines":[{"line_number":106,"context_line":"\u0027nova.scheduler.filters.all_filters\u0027, which is a method that will return a list"},{"line_number":107,"context_line":"of all filters included with Nova."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"},{"line_number":110,"context_line":"a different scheduler, this option has no effect."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"* Services that use this:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_8921f54f","line":109,"range":{"start_line":109,"start_character":32,"end_line":109,"end_character":66},"updated":"2015-12-04 15:59:01.000000000","message":"no it\u0027s used by the HostManager and you can use another SchedulerDriver but the FilterScheduler provided that you call get_filtered_hosts()\n\nYeah, that sounds silly, but that\u0027s possible.","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"fb9ad49175d07c7d50838c10944fda28c39d8cde","unresolved":false,"context_lines":[{"line_number":106,"context_line":"\u0027nova.scheduler.filters.all_filters\u0027, which is a method that will return a list"},{"line_number":107,"context_line":"of all filters included with Nova."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"},{"line_number":110,"context_line":"a different scheduler, this option has no effect."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"* Services that use this:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_db1e91ba","line":109,"range":{"start_line":109,"start_character":32,"end_line":109,"end_character":66},"in_reply_to":"7a740942_8921f54f","updated":"2015-12-07 17:44:39.000000000","message":"I feel that you\u0027re going waaaaaayyyyy too deep into implementation details here and in other comments. This needs to be useful information to an operator, not a Nova developer.","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"89c5d8fa306c1f607f236cc593cb787c4adab8da","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        ],"},{"line_number":133,"context_line":"        help\u003d\"\"\""},{"line_number":134,"context_line":"This option is the list of filter class names that will be used for filtering"},{"line_number":135,"context_line":"hosts. The use of \u0027default\u0027 in the name of this option implies that other"},{"line_number":136,"context_line":"filters may sometimes be used, but that is not the case. These filters will be"},{"line_number":137,"context_line":"applied in the order they are listed, so place your most restrictive filters"},{"line_number":138,"context_line":"first to make the filtering process more efficient."},{"line_number":139,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_69c0492b","line":136,"range":{"start_line":135,"start_character":7,"end_line":136,"end_character":56},"updated":"2015-12-04 15:59:01.000000000","message":"that comment is unnecessary. You\u0027re just commenting whether operators want to leave the default value or prefer replacing it, that\u0027s it. That sounds really opiniated while I would prefer a factual comment.","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"fb9ad49175d07c7d50838c10944fda28c39d8cde","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        ],"},{"line_number":133,"context_line":"        help\u003d\"\"\""},{"line_number":134,"context_line":"This option is the list of filter class names that will be used for filtering"},{"line_number":135,"context_line":"hosts. The use of \u0027default\u0027 in the name of this option implies that other"},{"line_number":136,"context_line":"filters may sometimes be used, but that is not the case. These filters will be"},{"line_number":137,"context_line":"applied in the order they are listed, so place your most restrictive filters"},{"line_number":138,"context_line":"first to make the filtering process more efficient."},{"line_number":139,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_3b02353e","line":136,"range":{"start_line":135,"start_character":7,"end_line":136,"end_character":56},"in_reply_to":"7a740942_69c0492b","updated":"2015-12-07 17:44:39.000000000","message":"This came about after the discussion last week where we found places in the documentation that declared that you could pass a list of filters in with each request to spin up a VM, which isn\u0027t true, and \u0027default\u0027 implies that they will only be used if nothing else is specified.","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"89c5d8fa306c1f607f236cc593cb787c4adab8da","unresolved":false,"context_lines":[{"line_number":137,"context_line":"applied in the order they are listed, so place your most restrictive filters"},{"line_number":138,"context_line":"first to make the filtering process more efficient."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"},{"line_number":141,"context_line":"a different scheduler, this option has no effect."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"* Services that use this:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_898a55be","line":140,"range":{"start_line":140,"start_character":32,"end_line":140,"end_character":66},"updated":"2015-12-04 15:59:01.000000000","message":"again, same comment","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"fb9ad49175d07c7d50838c10944fda28c39d8cde","unresolved":false,"context_lines":[{"line_number":137,"context_line":"applied in the order they are listed, so place your most restrictive filters"},{"line_number":138,"context_line":"first to make the filtering process more efficient."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"},{"line_number":141,"context_line":"a different scheduler, this option has no effect."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"* Services that use this:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_9b97a9eb","line":140,"range":{"start_line":140,"start_character":32,"end_line":140,"end_character":66},"in_reply_to":"7a740942_898a55be","updated":"2015-12-07 17:44:39.000000000","message":"again, same reply :)","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"89c5d8fa306c1f607f236cc593cb787c4adab8da","unresolved":false,"context_lines":[{"line_number":167,"context_line":"a list of weighers. The most common use case for the latter is when you want to"},{"line_number":168,"context_line":"use all weighers, which you would do by specifying"},{"line_number":169,"context_line":"\u0027nova.scheduler.weights.all_weighers\u0027, which is a method that will return a"},{"line_number":170,"context_line":"list of all weighers included with nova."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"},{"line_number":173,"context_line":"a different scheduler, this option has no effect."}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_cf7cdd74","line":170,"updated":"2015-12-04 15:59:01.000000000","message":"the same comment applies as for L107","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"fb9ad49175d07c7d50838c10944fda28c39d8cde","unresolved":false,"context_lines":[{"line_number":167,"context_line":"a list of weighers. The most common use case for the latter is when you want to"},{"line_number":168,"context_line":"use all weighers, which you would do by specifying"},{"line_number":169,"context_line":"\u0027nova.scheduler.weights.all_weighers\u0027, which is a method that will return a"},{"line_number":170,"context_line":"list of all weighers included with nova."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"},{"line_number":173,"context_line":"a different scheduler, this option has no effect."}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_5b9dc108","line":170,"in_reply_to":"7a740942_cf7cdd74","updated":"2015-12-07 17:44:39.000000000","message":"Done","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"89c5d8fa306c1f607f236cc593cb787c4adab8da","unresolved":false,"context_lines":[{"line_number":169,"context_line":"\u0027nova.scheduler.weights.all_weighers\u0027, which is a method that will return a"},{"line_number":170,"context_line":"list of all weighers included with nova."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"},{"line_number":173,"context_line":"a different scheduler, this option has no effect."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"* Services that use this:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_8f97b58f","line":172,"range":{"start_line":172,"start_character":32,"end_line":172,"end_character":47},"updated":"2015-12-04 15:59:01.000000000","message":"no, HostManager","commit_id":"e2d6bd5cf405fbb240d2c2f56ed895faf33a1668"}]}
