)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"2ed2b9355f1c9005cac1042130528e6876dc1551","unresolved":false,"context_lines":[{"line_number":15,"context_line":"entrypoint namespace \u0027nova.scheduler.host_manager\u0027."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Miscs:"},{"line_number":18,"context_line":"Rebased onto I08d50e873f71601a26ce768feac635243d0570f4 and added reno"},{"line_number":19,"context_line":"file."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"UpgradeImpact - see the reno file attached."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"9a8ffd7b_c79ca75f","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":54},"updated":"2015-11-25 18:10:07.000000000","message":"nit: probably not necessary but doesn\u0027t hurt anyone.","commit_id":"2d0e1e6e958bcba6fa47fac7228af8f6e55cbee4"}],"nova/conf/scheduler.py":[{"author":{"_account_id":13790,"name":"Zhenzan Zhou","email":"linuxosa@gmail.com","username":"zhenzanzhou"},"change_message_id":"7817ddb07709d95b16bc765a51f09a5da5e873b0","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        help\u003d\"Absolute path to scheduler configuration JSON file.\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"sched_driver_host_mgr_opt \u003d cfg.StrOpt(\"scheduler_host_manager\","},{"line_number":91,"context_line":"        default\u003d\"nova.scheduler.host_manager.HostManager\","},{"line_number":92,"context_line":"        help\u003d\"The scheduler host manager class to use.\""},{"line_number":93,"context_line":"             \"DEPRECATED: use scheduler_host_manager_driver \""},{"line_number":94,"context_line":"             \"to specify driver instead.\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_a81b931b","line":91,"updated":"2015-11-23 06:40:38.000000000","message":"I think we should add \"deprecated_for_removal\u003dTrue\", too.","commit_id":"7cc4c9a1121807dcb82afe527f69b5ae3628ddc8"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"c10917f58418872053c5d4f05d6a8d1c6aff647b","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        help\u003d\"Absolute path to scheduler configuration JSON file.\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"sched_driver_host_mgr_opt \u003d cfg.StrOpt(\"scheduler_host_manager\","},{"line_number":91,"context_line":"        default\u003d\"nova.scheduler.host_manager.HostManager\","},{"line_number":92,"context_line":"        help\u003d\"The scheduler host manager class to use.\""},{"line_number":93,"context_line":"             \"DEPRECATED: use scheduler_host_manager_driver \""},{"line_number":94,"context_line":"             \"to specify driver instead.\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_6e5053d5","line":91,"in_reply_to":"ba8a016a_a81b931b","updated":"2015-11-23 08:38:43.000000000","message":"sorry, missed that","commit_id":"7cc4c9a1121807dcb82afe527f69b5ae3628ddc8"},{"author":{"_account_id":13790,"name":"Zhenzan Zhou","email":"linuxosa@gmail.com","username":"zhenzanzhou"},"change_message_id":"7817ddb07709d95b16bc765a51f09a5da5e873b0","unresolved":false,"context_lines":[{"line_number":93,"context_line":"             \"DEPRECATED: use scheduler_host_manager_driver \""},{"line_number":94,"context_line":"             \"to specify driver instead.\")"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"sched_new_driver_host_mgr_opt \u003d cfg.StrOpt(\"scheduler_host_manager_driver\","},{"line_number":97,"context_line":"        default\u003d\"host_manager\","},{"line_number":98,"context_line":"        help\u003d\"The scheduler host manager driver to use\")"},{"line_number":99,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_4890e795","line":96,"updated":"2015-11-23 06:40:38.000000000","message":"Nit: I prefer to use name \"sche_driver_host_mgr_driver_opt\" which matches the option name better.","commit_id":"7cc4c9a1121807dcb82afe527f69b5ae3628ddc8"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"c10917f58418872053c5d4f05d6a8d1c6aff647b","unresolved":false,"context_lines":[{"line_number":93,"context_line":"             \"DEPRECATED: use scheduler_host_manager_driver \""},{"line_number":94,"context_line":"             \"to specify driver instead.\")"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"sched_new_driver_host_mgr_opt \u003d cfg.StrOpt(\"scheduler_host_manager_driver\","},{"line_number":97,"context_line":"        default\u003d\"host_manager\","},{"line_number":98,"context_line":"        help\u003d\"The scheduler host manager driver to use\")"},{"line_number":99,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_ee5a03f2","line":96,"in_reply_to":"ba8a016a_4890e795","updated":"2015-11-23 08:38:43.000000000","message":"Done","commit_id":"7cc4c9a1121807dcb82afe527f69b5ae3628ddc8"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"14820a526216688f9a9a5a602d2e947aeb8ab10c","unresolved":false,"context_lines":[{"line_number":94,"context_line":"             \"to specify driver instead.\","},{"line_number":95,"context_line":"        deprecated_for_removal\u003dTrue)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"sched_driver_host_mgr_driver_opt \u003d cfg.StrOpt(\"scheduler_host_manager_driver\","},{"line_number":98,"context_line":"        default\u003d\"host_manager\","},{"line_number":99,"context_line":"        help\u003d\"The scheduler host manager driver to use\")"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba8a016a_4b38ab3d","line":97,"updated":"2015-11-24 02:02:41.000000000","message":"I don\u0027t think that going with two different config options is a good way forward. Instead, I would keep the existing option, and change the default and help strings for it.","commit_id":"ac83d10c5b02e4b34b49dcd9303437d0c98fd782"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"a425d5e4afb3291d3c8b465b47a10de1d423f46e","unresolved":false,"context_lines":[{"line_number":94,"context_line":"             \"to specify driver instead.\","},{"line_number":95,"context_line":"        deprecated_for_removal\u003dTrue)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"sched_driver_host_mgr_driver_opt \u003d cfg.StrOpt(\"scheduler_host_manager_driver\","},{"line_number":98,"context_line":"        default\u003d\"host_manager\","},{"line_number":99,"context_line":"        help\u003d\"The scheduler host manager driver to use\")"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_e3c1e381","line":97,"in_reply_to":"9a8ffd7b_04bf64d1","updated":"2015-11-24 17:50:05.000000000","message":"@Ed: I understand now how this would prevent a change in behavior, thanks for the explanation. I\u0027m still worried about the change in *meaning*. But after reading the policy again, I see now that I could be too picky here. I guess both ways work.","commit_id":"ac83d10c5b02e4b34b49dcd9303437d0c98fd782"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"f05437b570297d6feda0087a6d6f475374676fef","unresolved":false,"context_lines":[{"line_number":94,"context_line":"             \"to specify driver instead.\","},{"line_number":95,"context_line":"        deprecated_for_removal\u003dTrue)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"sched_driver_host_mgr_driver_opt \u003d cfg.StrOpt(\"scheduler_host_manager_driver\","},{"line_number":98,"context_line":"        default\u003d\"host_manager\","},{"line_number":99,"context_line":"        help\u003d\"The scheduler host manager driver to use\")"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_7da57902","line":97,"in_reply_to":"9a8ffd7b_e3c1e381","updated":"2015-11-25 02:42:57.000000000","message":"@Ed, @Markus: I think both can work too, and there is no explicit guide AFAIK. So I\u0027ll keep it to see more opinions, thank you both!","commit_id":"ac83d10c5b02e4b34b49dcd9303437d0c98fd782"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"c2f415c2d34d28b60b2556bfdec7f1dc3d872e39","unresolved":false,"context_lines":[{"line_number":94,"context_line":"             \"to specify driver instead.\","},{"line_number":95,"context_line":"        deprecated_for_removal\u003dTrue)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"sched_driver_host_mgr_driver_opt \u003d cfg.StrOpt(\"scheduler_host_manager_driver\","},{"line_number":98,"context_line":"        default\u003d\"host_manager\","},{"line_number":99,"context_line":"        help\u003d\"The scheduler host manager driver to use\")"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba8a016a_948ea42c","line":97,"in_reply_to":"ba8a016a_4b38ab3d","updated":"2015-11-24 09:22:58.000000000","message":"@Ed: \nChanging the default would be against the \"standard deprecation policy\" [1], especially this quote:\n\n    \"No existing config options will have their meaning \n    changed in such a way that it would alter the software\n    behavior or otherwise render an existing config file\n    broken.\"\n\nWhich makes me believe that his approach in this patch set is the correct one.\n\n[1] http://governance.openstack.org/reference/tags/assert_follows-standard-deprecation.html","commit_id":"ac83d10c5b02e4b34b49dcd9303437d0c98fd782"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"0597c7aa7250d61ee3de34fee0856edf33cfe6e9","unresolved":false,"context_lines":[{"line_number":94,"context_line":"             \"to specify driver instead.\","},{"line_number":95,"context_line":"        deprecated_for_removal\u003dTrue)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"sched_driver_host_mgr_driver_opt \u003d cfg.StrOpt(\"scheduler_host_manager_driver\","},{"line_number":98,"context_line":"        default\u003d\"host_manager\","},{"line_number":99,"context_line":"        help\u003d\"The scheduler host manager driver to use\")"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_04bf64d1","line":97,"in_reply_to":"ba8a016a_948ea42c","updated":"2015-11-24 12:55:07.000000000","message":"@Markus - I don\u0027t believe that that is what that standard means. To me, it means that if I have an option configured with a value of \u0027foo\u0027, leaving it as \u0027foo\u0027 will never result in a behavior change.\n\nWhat I propose is something like this:\n\n    try:\n        use_stevedore()\n    except StevedoreSpecificException:\n        use_old_import()\n\nNow we just update the docs to only refer to the new method, but leave support in the code (along with enough comments to explain to others why it needs to remain) for the current import method.","commit_id":"ac83d10c5b02e4b34b49dcd9303437d0c98fd782"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"887431f8cb850a26e037ab31af9f163f5bf1a937","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        deprecated_for_removal\u003dTrue)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"sched_driver_host_mgr_driver_opt \u003d cfg.StrOpt(\"scheduler_host_manager_driver\","},{"line_number":98,"context_line":"        default\u003d\"host_manager\","},{"line_number":99,"context_line":"        help\u003d\"The scheduler host manager driver to use\")"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"driver_opt \u003d cfg.StrOpt(\"scheduler_driver\","}],"source_content_type":"text/x-python","patch_set":5,"id":"ba8a016a_377cdaea","line":98,"updated":"2015-11-23 09:27:59.000000000","message":"I\u0027m a bit confused here, I haven\u0027t done anything with stevedore yet. So, is this value the name of a specific python module or the key name of an entry point defined in \"setup.cfg\"? I think this question influences how the name of the config option should be. The old config option \"scheduler_host_manager\" pointed to a python class and my assumption was that this new config option pointed to a python class too. If this *is* the name of the key of the entrypoint, then maybe a name like \"scheduler_hostmanager_entrypoint_key\" could make sense to clarify the meaning.","commit_id":"ac83d10c5b02e4b34b49dcd9303437d0c98fd782"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"03b74e3a6751c6a5a71b675d958aca0121e52d2c","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        deprecated_for_removal\u003dTrue)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"sched_driver_host_mgr_driver_opt \u003d cfg.StrOpt(\"scheduler_host_manager_driver\","},{"line_number":98,"context_line":"        default\u003d\"host_manager\","},{"line_number":99,"context_line":"        help\u003d\"The scheduler host manager driver to use\")"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"driver_opt \u003d cfg.StrOpt(\"scheduler_driver\","}],"source_content_type":"text/x-python","patch_set":5,"id":"ba8a016a_4e953d3e","line":98,"in_reply_to":"ba8a016a_377cdaea","updated":"2015-11-24 05:53:27.000000000","message":"Yes, this *is* the name of the key of the entrypoint.","commit_id":"ac83d10c5b02e4b34b49dcd9303437d0c98fd782"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"887431f8cb850a26e037ab31af9f163f5bf1a937","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"sched_driver_host_mgr_driver_opt \u003d cfg.StrOpt(\"scheduler_host_manager_driver\","},{"line_number":98,"context_line":"        default\u003d\"host_manager\","},{"line_number":99,"context_line":"        help\u003d\"The scheduler host manager driver to use\")"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"driver_opt \u003d cfg.StrOpt(\"scheduler_driver\","},{"line_number":102,"context_line":"        default\u003d\"nova.scheduler.filter_scheduler.FilterScheduler\","}],"source_content_type":"text/x-python","patch_set":5,"id":"ba8a016a_774902b7","line":99,"updated":"2015-11-23 09:27:59.000000000","message":"Maybe a few more words would be helpful. Which values can be used for this config option? Are there any restrictions or preconditions?","commit_id":"ac83d10c5b02e4b34b49dcd9303437d0c98fd782"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"03b74e3a6751c6a5a71b675d958aca0121e52d2c","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"sched_driver_host_mgr_driver_opt \u003d cfg.StrOpt(\"scheduler_host_manager_driver\","},{"line_number":98,"context_line":"        default\u003d\"host_manager\","},{"line_number":99,"context_line":"        help\u003d\"The scheduler host manager driver to use\")"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"driver_opt \u003d cfg.StrOpt(\"scheduler_driver\","},{"line_number":102,"context_line":"        default\u003d\"nova.scheduler.filter_scheduler.FilterScheduler\","}],"source_content_type":"text/x-python","patch_set":5,"id":"ba8a016a_4ea3fd9e","line":99,"in_reply_to":"ba8a016a_774902b7","updated":"2015-11-24 05:53:27.000000000","message":"Done, added detailed information.","commit_id":"ac83d10c5b02e4b34b49dcd9303437d0c98fd782"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"10600142cdcb2b5ac946615ea1be064813e48256","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        default\u003d\"\","},{"line_number":91,"context_line":"        help\u003d\"Absolute path to scheduler configuration JSON file.\")"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"sched_driver_host_mgr_opt \u003d cfg.StrOpt(\"scheduler_host_manager\","},{"line_number":94,"context_line":"        default\u003d\"host_manager\","},{"line_number":95,"context_line":"        help\u003d\"\"\""},{"line_number":96,"context_line":"This option chooses the host manager class that the nova scheluler will use."}],"source_content_type":"text/x-python","patch_set":15,"id":"9a8ffd7b_28444419","line":93,"updated":"2015-12-02 10:48:15.000000000","message":"This might clash with ed\u0027s change?","commit_id":"d6269b06e6d3cb6315c6516d79dc93e5eb1fc593"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"19ad874a61d2820934910b509a113011fa076607","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        default\u003d\"\","},{"line_number":91,"context_line":"        help\u003d\"Absolute path to scheduler configuration JSON file.\")"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"sched_driver_host_mgr_opt \u003d cfg.StrOpt(\"scheduler_host_manager\","},{"line_number":94,"context_line":"        default\u003d\"host_manager\","},{"line_number":95,"context_line":"        help\u003d\"\"\""},{"line_number":96,"context_line":"This option chooses the host manager class that the nova scheluler will use."}],"source_content_type":"text/x-python","patch_set":15,"id":"9a8ffd7b_ada7d4bb","line":93,"in_reply_to":"9a8ffd7b_28444419","updated":"2015-12-02 15:16:50.000000000","message":"Think so, rebased to his next patch","commit_id":"d6269b06e6d3cb6315c6516d79dc93e5eb1fc593"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"8440b131f113d60da289da0856cf2dafcd19904a","unresolved":false,"context_lines":[{"line_number":270,"context_line":"sched_driver_host_mgr_opt \u003d cfg.StrOpt(\"scheduler_host_manager\","},{"line_number":271,"context_line":"        default\u003d\"host_manager\","},{"line_number":272,"context_line":"        help\u003d\"\"\""},{"line_number":273,"context_line":"The scheduler host manager to use. It is responsible to manage hosts including"},{"line_number":274,"context_line":"host states and host aggregates."},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"The option value should be chosen from 1 of the entrypoints under the namespace"},{"line_number":277,"context_line":"\u0027nova.scheduler.host_manager\u0027 of file \u0027setup.cfg\u0027. For example, \u0027host_manager\u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a8ffd7b_c4530015","line":274,"range":{"start_line":273,"start_character":35,"end_line":274,"end_character":32},"updated":"2015-12-02 20:18:04.000000000","message":"This really isn\u0027t correct; it only manages the in-memory picture of the hosts that the scheduler uses. It doesn\u0027t directly manage the hosts or aggregates directly. I would stick with the original wording.","commit_id":"03765169f7c49328dcdbb7c9497227121aa9b143"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"e1dc188f84670e92309542fa8f43ebcefe464493","unresolved":false,"context_lines":[{"line_number":271,"context_line":"        default\u003d\"host_manager\","},{"line_number":272,"context_line":"        help\u003d\"\"\""},{"line_number":273,"context_line":"The scheduler host manager to use. It is responsible to manage hosts including"},{"line_number":274,"context_line":"host states and host aggregates."},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"The option value should be chosen from 1 of the entrypoints under the namespace"},{"line_number":277,"context_line":"\u0027nova.scheduler.host_manager\u0027 of file \u0027setup.cfg\u0027. For example, \u0027host_manager\u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"7a740942_f9cbc470","line":274,"in_reply_to":"9a8ffd7b_c4530015","updated":"2015-12-04 06:51:01.000000000","message":"Done","commit_id":"03765169f7c49328dcdbb7c9497227121aa9b143"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"8440b131f113d60da289da0856cf2dafcd19904a","unresolved":false,"context_lines":[{"line_number":273,"context_line":"The scheduler host manager to use. It is responsible to manage hosts including"},{"line_number":274,"context_line":"host states and host aggregates."},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"The option value should be chosen from 1 of the entrypoints under the namespace"},{"line_number":277,"context_line":"\u0027nova.scheduler.host_manager\u0027 of file \u0027setup.cfg\u0027. For example, \u0027host_manager\u0027"},{"line_number":278,"context_line":"is the default setting. Aside from the default, the other option currently is"},{"line_number":279,"context_line":"\u0027ironic_host_manager\u0027, which should be used if you\u0027re using Ironic to provision"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a8ffd7b_247a0c89","line":276,"updated":"2015-12-02 20:18:04.000000000","message":"s/1/one","commit_id":"03765169f7c49328dcdbb7c9497227121aa9b143"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"e1dc188f84670e92309542fa8f43ebcefe464493","unresolved":false,"context_lines":[{"line_number":273,"context_line":"The scheduler host manager to use. It is responsible to manage hosts including"},{"line_number":274,"context_line":"host states and host aggregates."},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"The option value should be chosen from 1 of the entrypoints under the namespace"},{"line_number":277,"context_line":"\u0027nova.scheduler.host_manager\u0027 of file \u0027setup.cfg\u0027. For example, \u0027host_manager\u0027"},{"line_number":278,"context_line":"is the default setting. Aside from the default, the other option currently is"},{"line_number":279,"context_line":"\u0027ironic_host_manager\u0027, which should be used if you\u0027re using Ironic to provision"}],"source_content_type":"text/x-python","patch_set":16,"id":"7a740942_b9c53c5c","line":276,"in_reply_to":"9a8ffd7b_247a0c89","updated":"2015-12-04 06:51:01.000000000","message":"Done","commit_id":"03765169f7c49328dcdbb7c9497227121aa9b143"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"8440b131f113d60da289da0856cf2dafcd19904a","unresolved":false,"context_lines":[{"line_number":281,"context_line":""},{"line_number":282,"context_line":"This option also supports deprecated full class path style currently, for"},{"line_number":283,"context_line":"example, \"nova.scheduler.host_manager.HostManager\". But note: this support will"},{"line_number":284,"context_line":"be dropped on the N Release."},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"* Services that use this:"},{"line_number":287,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9a8ffd7b_a1002e35","line":284,"updated":"2015-12-02 20:18:04.000000000","message":"nit: s/dropped on the/dropped in the/","commit_id":"03765169f7c49328dcdbb7c9497227121aa9b143"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"e1dc188f84670e92309542fa8f43ebcefe464493","unresolved":false,"context_lines":[{"line_number":281,"context_line":""},{"line_number":282,"context_line":"This option also supports deprecated full class path style currently, for"},{"line_number":283,"context_line":"example, \"nova.scheduler.host_manager.HostManager\". But note: this support will"},{"line_number":284,"context_line":"be dropped on the N Release."},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"* Services that use this:"},{"line_number":287,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"7a740942_59a1b8a8","line":284,"in_reply_to":"9a8ffd7b_a1002e35","updated":"2015-12-04 06:51:01.000000000","message":"Done","commit_id":"03765169f7c49328dcdbb7c9497227121aa9b143"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"4627536b7622c136d9dc3aef79f231a4cea455cb","unresolved":false,"context_lines":[{"line_number":251,"context_line":"option as of the Mitaka release is \u0027ironic_host_manager\u0027, which should be used"},{"line_number":252,"context_line":"if you\u0027re using Ironic to provision bare-metal instances."},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"This option also supports deprecated full class path style currently, for"},{"line_number":255,"context_line":"example, \"nova.scheduler.host_manager.HostManager\". But note: this support will"},{"line_number":256,"context_line":"be dropped in the N Release."},{"line_number":257,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"7a740942_79a189f7","line":254,"updated":"2015-12-12 15:28:52.000000000","message":"This could be stated more clearly as: This option also supports a full class path style, for example \"nova.scheduler.host_manager.Hostname\", but note this support is deprecated and will be dropped in the N release.","commit_id":"b1fa771fe53a6e3dcee68cd8ff7826a7f12470c6"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"c2c5ff6e413427f7b9a5af085c1603350f3ebcae","unresolved":false,"context_lines":[{"line_number":251,"context_line":"option as of the Mitaka release is \u0027ironic_host_manager\u0027, which should be used"},{"line_number":252,"context_line":"if you\u0027re using Ironic to provision bare-metal instances."},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"This option also supports deprecated full class path style currently, for"},{"line_number":255,"context_line":"example, \"nova.scheduler.host_manager.HostManager\". But note: this support will"},{"line_number":256,"context_line":"be dropped in the N Release."},{"line_number":257,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"5a710552_6ebe3001","line":254,"in_reply_to":"7a740942_79a189f7","updated":"2015-12-15 06:10:03.000000000","message":"Done, thanks for helping :)","commit_id":"b1fa771fe53a6e3dcee68cd8ff7826a7f12470c6"}],"nova/scheduler/driver.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"1610a92961f08dc97b29da753b2d5bf0766856b3","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        else:"},{"line_number":59,"context_line":"            self.host_manager \u003d driver.DriverManager(\"nova.host_manager\","},{"line_number":60,"context_line":"                    CONF.scheduler_host_manager_driver,"},{"line_number":61,"context_line":"                    invoke_on_load\u003dTrue).driver"},{"line_number":62,"context_line":"        self.servicegroup_api \u003d servicegroup.API()"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def run_periodic_tasks(self, context):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_87b8dce6","line":61,"updated":"2015-11-17 19:31:24.000000000","message":"maybe this worthy a unit test?","commit_id":"19ff2ba6fe8f440406a2404794f90b33e8b24f8f"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"9eab7a40011cd1f9936620d746ad331ac8750c7c","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        else:"},{"line_number":59,"context_line":"            self.host_manager \u003d driver.DriverManager(\"nova.host_manager\","},{"line_number":60,"context_line":"                    CONF.scheduler_host_manager_driver,"},{"line_number":61,"context_line":"                    invoke_on_load\u003dTrue).driver"},{"line_number":62,"context_line":"        self.servicegroup_api \u003d servicegroup.API()"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def run_periodic_tasks(self, context):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_396fc5c6","line":61,"in_reply_to":"ba8a016a_87b8dce6","updated":"2015-11-18 01:50:21.000000000","message":"Meaning a unit test for the old option \u0027scheduler_host_manager\u0027?\n\nThe tests have already covered the new option \u0027scheduler_host_manager_driver\u0027 because \u0027scheduler_host_manager\u0027 is default to None.","commit_id":"19ff2ba6fe8f440406a2404794f90b33e8b24f8f"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"887431f8cb850a26e037ab31af9f163f5bf1a937","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    def __init__(self):"},{"line_number":40,"context_line":"        # NOTE(Yingxin): Deprecate scheduler_host_manager option, while still"},{"line_number":41,"context_line":"        # be compatible"},{"line_number":42,"context_line":"        if CONF.scheduler_host_manager is not None:"},{"line_number":43,"context_line":"            self.host_manager \u003d importutils.import_object("},{"line_number":44,"context_line":"                    CONF.scheduler_host_manager)"},{"line_number":45,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba8a016a_973fc624","line":42,"updated":"2015-11-23 09:27:59.000000000","message":"Because this config option has a default value, one has to set the config option explicitly to \"None\" to use the new config option. It\u0027s worth mentioning this in the release notes.","commit_id":"ac83d10c5b02e4b34b49dcd9303437d0c98fd782"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"03b74e3a6751c6a5a71b675d958aca0121e52d2c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    def __init__(self):"},{"line_number":40,"context_line":"        # NOTE(Yingxin): Deprecate scheduler_host_manager option, while still"},{"line_number":41,"context_line":"        # be compatible"},{"line_number":42,"context_line":"        if CONF.scheduler_host_manager is not None:"},{"line_number":43,"context_line":"            self.host_manager \u003d importutils.import_object("},{"line_number":44,"context_line":"                    CONF.scheduler_host_manager)"},{"line_number":45,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba8a016a_a1f3979e","line":42,"in_reply_to":"ba8a016a_973fc624","updated":"2015-11-24 05:53:27.000000000","message":"Sorry. I had set this default to \"None\", but missed it during patch 2 rebasing.\n\nWill move it back.","commit_id":"ac83d10c5b02e4b34b49dcd9303437d0c98fd782"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"887431f8cb850a26e037ab31af9f163f5bf1a937","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        if CONF.scheduler_host_manager is not None:"},{"line_number":43,"context_line":"            self.host_manager \u003d importutils.import_object("},{"line_number":44,"context_line":"                    CONF.scheduler_host_manager)"},{"line_number":45,"context_line":"        else:"},{"line_number":46,"context_line":"            self.host_manager \u003d driver.DriverManager("},{"line_number":47,"context_line":"                    \"nova.scheduler.host_manager\","},{"line_number":48,"context_line":"                    CONF.scheduler_host_manager_driver,"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba8a016a_372e1afb","line":45,"updated":"2015-11-23 09:27:59.000000000","message":"Is it possible to write a test for this two code branches?","commit_id":"ac83d10c5b02e4b34b49dcd9303437d0c98fd782"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"03b74e3a6751c6a5a71b675d958aca0121e52d2c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        if CONF.scheduler_host_manager is not None:"},{"line_number":43,"context_line":"            self.host_manager \u003d importutils.import_object("},{"line_number":44,"context_line":"                    CONF.scheduler_host_manager)"},{"line_number":45,"context_line":"        else:"},{"line_number":46,"context_line":"            self.host_manager \u003d driver.DriverManager("},{"line_number":47,"context_line":"                    \"nova.scheduler.host_manager\","},{"line_number":48,"context_line":"                    CONF.scheduler_host_manager_driver,"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba8a016a_61edafb6","line":45,"in_reply_to":"ba8a016a_372e1afb","updated":"2015-11-24 05:53:27.000000000","message":"Done","commit_id":"ac83d10c5b02e4b34b49dcd9303437d0c98fd782"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"10600142cdcb2b5ac946615ea1be064813e48256","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                    invoke_on_load\u003dTrue).driver"},{"line_number":49,"context_line":"        except Exception as e:"},{"line_number":50,"context_line":"            # Try to load host_manager using classloader"},{"line_number":51,"context_line":"            LOG.warning(_LW(\"Failed to load scheduler host manager \""},{"line_number":52,"context_line":"                            \"using entrypoint: %(entrypoint)s, \""},{"line_number":53,"context_line":"                            \"trying to use classloader instead. \""},{"line_number":54,"context_line":"                            \"Error: %(error)s\"),"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a8ffd7b_287f6467","line":51,"updated":"2015-12-02 10:48:15.000000000","message":"I think we should deprecate this method of loading, and make it clear in this message that this legacy loading method will be removed during the next release.","commit_id":"d6269b06e6d3cb6315c6516d79dc93e5eb1fc593"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"19ad874a61d2820934910b509a113011fa076607","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                    invoke_on_load\u003dTrue).driver"},{"line_number":49,"context_line":"        except Exception as e:"},{"line_number":50,"context_line":"            # Try to load host_manager using classloader"},{"line_number":51,"context_line":"            LOG.warning(_LW(\"Failed to load scheduler host manager \""},{"line_number":52,"context_line":"                            \"using entrypoint: %(entrypoint)s, \""},{"line_number":53,"context_line":"                            \"trying to use classloader instead. \""},{"line_number":54,"context_line":"                            \"Error: %(error)s\"),"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a8ffd7b_2d944441","line":51,"in_reply_to":"9a8ffd7b_287f6467","updated":"2015-12-02 15:16:50.000000000","message":"Done","commit_id":"d6269b06e6d3cb6315c6516d79dc93e5eb1fc593"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"8440b131f113d60da289da0856cf2dafcd19904a","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                    \"nova.scheduler.host_manager\","},{"line_number":47,"context_line":"                    CONF.scheduler_host_manager,"},{"line_number":48,"context_line":"                    invoke_on_load\u003dTrue).driver"},{"line_number":49,"context_line":"        except Exception as e:"},{"line_number":50,"context_line":"            # NOTE(Yingxin): Loading full class path is deprecated and"},{"line_number":51,"context_line":"            # should be removed on the N release."},{"line_number":52,"context_line":"            LOG.warning(_LW(\"Failed to load scheduler host manager \""}],"source_content_type":"text/x-python","patch_set":16,"id":"9a8ffd7b_04d4a81d","line":49,"updated":"2015-12-02 20:18:04.000000000","message":"You should catch the specific exception that stevedore raises when it can\u0027t find the entrypoint. Then check if you can load it using the class path method. If so, emit the deprecation warning. If not, then the problem is something else, such as a typo in the entrypoint config option.","commit_id":"03765169f7c49328dcdbb7c9497227121aa9b143"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"bfbc4d3d1ca194c7a58e4ac45d1adc26950e440b","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                    \"nova.scheduler.host_manager\","},{"line_number":47,"context_line":"                    CONF.scheduler_host_manager,"},{"line_number":48,"context_line":"                    invoke_on_load\u003dTrue).driver"},{"line_number":49,"context_line":"        except Exception as e:"},{"line_number":50,"context_line":"            # NOTE(Yingxin): Loading full class path is deprecated and"},{"line_number":51,"context_line":"            # should be removed on the N release."},{"line_number":52,"context_line":"            LOG.warning(_LW(\"Failed to load scheduler host manager \""}],"source_content_type":"text/x-python","patch_set":16,"id":"7a740942_3b94b2e0","line":49,"in_reply_to":"7a740942_8fb01545","updated":"2015-12-05 04:13:59.000000000","message":"Of course, but there is no `stevedore.exception.NoMatches` yet in version 1.9.0.\n\nhttps://github.com/openstack/stevedore/tree/1.9.0/stevedore","commit_id":"03765169f7c49328dcdbb7c9497227121aa9b143"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"54709aea075ee12e03ae3f679f56b17d89e58c26","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                    \"nova.scheduler.host_manager\","},{"line_number":47,"context_line":"                    CONF.scheduler_host_manager,"},{"line_number":48,"context_line":"                    invoke_on_load\u003dTrue).driver"},{"line_number":49,"context_line":"        except Exception as e:"},{"line_number":50,"context_line":"            # NOTE(Yingxin): Loading full class path is deprecated and"},{"line_number":51,"context_line":"            # should be removed on the N release."},{"line_number":52,"context_line":"            LOG.warning(_LW(\"Failed to load scheduler host manager \""}],"source_content_type":"text/x-python","patch_set":16,"id":"7a740942_8fb01545","line":49,"in_reply_to":"7a740942_d902883e","updated":"2015-12-04 15:56:58.000000000","message":"You can catch multiple exception classes, of course:\n\n    except (RuntimeError, NoMatches) as e:\n\nCatching *all* exceptions here was the problem I was concerned about.","commit_id":"03765169f7c49328dcdbb7c9497227121aa9b143"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"e1dc188f84670e92309542fa8f43ebcefe464493","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                    \"nova.scheduler.host_manager\","},{"line_number":47,"context_line":"                    CONF.scheduler_host_manager,"},{"line_number":48,"context_line":"                    invoke_on_load\u003dTrue).driver"},{"line_number":49,"context_line":"        except Exception as e:"},{"line_number":50,"context_line":"            # NOTE(Yingxin): Loading full class path is deprecated and"},{"line_number":51,"context_line":"            # should be removed on the N release."},{"line_number":52,"context_line":"            LOG.warning(_LW(\"Failed to load scheduler host manager \""}],"source_content_type":"text/x-python","patch_set":16,"id":"7a740942_d902883e","line":49,"in_reply_to":"9a8ffd7b_04d4a81d","updated":"2015-12-04 06:51:01.000000000","message":"Changed to catch RuntimeError according to https://github.com/openstack/stevedore/blob/1.9.0/stevedore/driver.py#L96-L97","commit_id":"03765169f7c49328dcdbb7c9497227121aa9b143"}],"nova/tests/unit/scheduler/test_host_manager.py":[{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"c7bfa2b219b2302c97e49a9226cdb60662b40721","unresolved":false,"context_lines":[{"line_number":727,"context_line":"        self.flags(scheduler_hostmanager_entrypoint\u003d\u0027host_manager\u0027)"},{"line_number":728,"context_line":"        manager \u003d fakes.FakeScheduler().host_manager"},{"line_number":729,"context_line":"        self.assertIsInstance(manager, host_manager.HostManager)"},{"line_number":730,"context_line":""},{"line_number":731,"context_line":""},{"line_number":732,"context_line":"class HostManagerChangedNodesTestCase(test.NoDBTestCase):"},{"line_number":733,"context_line":"    \"\"\"Test case for HostManager class.\"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba8a016a_5a0b8524","line":730,"updated":"2015-11-24 09:58:45.000000000","message":"The unit tests are not HostManager type specific, which makes me think \nif it would be better in a new TestCase module\n\n    nova/tests/unit/scheduler/test_init_host_manager_type.py\n\nwhich then has these 4 tests:\n1) no config option is set\n   \u003d\u003e ``scheduler_host_manager`` is used for the init\n2) only ``scheduler_host_manager`` is set\n   \u003d\u003e ``scheduler_host_manager`` is used for the init\n3) only ``scheduler_hostmanager_entrypoint`` is set\n   \u003d\u003e ``scheduler_hostmanager_entrypoint`` is used for the init\n4) both options are set\n   \u003d\u003e ``scheduler_host_manager`` is used for the init\n\nMaybe as three seperate unit tests to be sure that the values of the\nconfig options are reset to their default value between the execution\nof the test methods. Some pseudo-code:\n\n    def test_init_backwards_compatible(...)\n        # use only the default values of the config options\n        manager \u003d fakes.FakeScheduler().host_manager\n        self.assertIsInstance(manager, host_manager.HostManager)\n\n    def test_deprecated_init(...)\n        self.flags(\n            scheduler_host_manager\u003d\n            \u0027nova.scheduler.ironic_host_manager.IronicHostManager\u0027)\n        manager \u003d fakes.FakeScheduler().host_manager\n        self.assertIsInstance(manager,\n                              ironic_host_manager.IronicHostManager)\n\n    def test_entrypoint_init(...)\n        self.flags(scheduler_host_manager\u003dNone)\n        self.flags(scheduler_hostmanager_entrypoint\u003d\u0027ironic_host_manager\u0027)\n        manager \u003d fakes.FakeScheduler().host_manager\n        self.assertIsInstance(manager,\n                              ironic_host_manager.IronicHostManager)\n\n    def test_init_precedence(...)\n        self.flags(\n            scheduler_host_manager\u003d\n            \u0027nova.scheduler.ironic_host_manager.IronicHostManager\u0027)\n        self.flags(scheduler_hostmanager_entrypoint\u003d\u0027host_manager\u0027)    \n        manager \u003d fakes.FakeScheduler().host_manager\n        self.assertIsInstance(manager,\n                              ironic_host_manager.IronicHostManager)","commit_id":"6c8fb6c62b41317742d6c571608e1f0519ad0ca8"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"4a52ee1542e4743a523815bd9ae463ba21e26cb1","unresolved":false,"context_lines":[{"line_number":727,"context_line":"        self.flags(scheduler_hostmanager_entrypoint\u003d\u0027host_manager\u0027)"},{"line_number":728,"context_line":"        manager \u003d fakes.FakeScheduler().host_manager"},{"line_number":729,"context_line":"        self.assertIsInstance(manager, host_manager.HostManager)"},{"line_number":730,"context_line":""},{"line_number":731,"context_line":""},{"line_number":732,"context_line":"class HostManagerChangedNodesTestCase(test.NoDBTestCase):"},{"line_number":733,"context_line":"    \"\"\"Test case for HostManager class.\"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a8ffd7b_47c4375e","line":730,"in_reply_to":"9a8ffd7b_59ee8a8c","updated":"2015-11-25 18:08:00.000000000","message":"The way with the least surprise is probably the way to go, which means 2). Let me look at the latest patch set.","commit_id":"6c8fb6c62b41317742d6c571608e1f0519ad0ca8"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"52f21fed0261d0f84f1d9901677959f24082d917","unresolved":false,"context_lines":[{"line_number":727,"context_line":"        self.flags(scheduler_hostmanager_entrypoint\u003d\u0027host_manager\u0027)"},{"line_number":728,"context_line":"        manager \u003d fakes.FakeScheduler().host_manager"},{"line_number":729,"context_line":"        self.assertIsInstance(manager, host_manager.HostManager)"},{"line_number":730,"context_line":""},{"line_number":731,"context_line":""},{"line_number":732,"context_line":"class HostManagerChangedNodesTestCase(test.NoDBTestCase):"},{"line_number":733,"context_line":"    \"\"\"Test case for HostManager class.\"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a8ffd7b_59ee8a8c","line":730,"in_reply_to":"ba8a016a_5a0b8524","updated":"2015-11-25 02:50:32.000000000","message":"In the next patch, I\u0027ll modify another option \"scheduler_driver\" with new tests added. If I follow this pattern, I should add another module(file) `test_init_scheduler_type.py` to test that. Finally, every configuration test in scheduler will have a separate file, which could be messy.\n\nInstead, I have two alternative options:\n\n1. Gather all configuration tests into one single file. (i.e. a unit test suite for all configurations of scheduler)\n\n2. Test configurations according to modules. Since the module `scheduler/driver.py` uses the option `scheduler_host_manager` and `scheduler_hostmanager_entrypoint`, I\u0027ll test them in the TestModule `nova/tests/unit/scheduler/test_driver.py`.\n\nI prefer the 2nd one, because that is how current unit tests are organized: according to files.","commit_id":"6c8fb6c62b41317742d6c571608e1f0519ad0ca8"}],"nova/tests/unit/scheduler/test_scheduler.py":[{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"2ed2b9355f1c9005cac1042130528e6876dc1551","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        manager \u003d self.driver_cls().host_manager"},{"line_number":147,"context_line":"        self.assertIsInstance(manager, ironic_host_manager.IronicHostManager)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"class SchedulerTestCase(test.NoDBTestCase):"},{"line_number":151,"context_line":"    \"\"\"Test case for base scheduler driver class.\"\"\""},{"line_number":152,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"9a8ffd7b_4772f74a","line":149,"updated":"2015-11-25 18:10:07.000000000","message":"Yeah, that looks nice and clean and clear, great!","commit_id":"2d0e1e6e958bcba6fa47fac7228af8f6e55cbee4"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"8440b131f113d60da289da0856cf2dafcd19904a","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        self.assertIsInstance(manager, host_manager.HostManager)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    # NOTE(Yingxin): Loading full class path is deprecated and should be"},{"line_number":124,"context_line":"    # removed on the N release."},{"line_number":125,"context_line":"    @mock.patch.object(host_manager.HostManager, \u0027_init_instance_info\u0027)"},{"line_number":126,"context_line":"    @mock.patch.object(host_manager.HostManager, \u0027_init_aggregates\u0027)"},{"line_number":127,"context_line":"    def test_init_using_classpath_to_hostmanager(self,"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a8ffd7b_844c1843","line":124,"updated":"2015-12-02 20:18:04.000000000","message":"I would add a mock for the LOG.warn() call, and assert that it was called with \u0027deprecated\u0027 in the message.","commit_id":"03765169f7c49328dcdbb7c9497227121aa9b143"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"e1dc188f84670e92309542fa8f43ebcefe464493","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        self.assertIsInstance(manager, host_manager.HostManager)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    # NOTE(Yingxin): Loading full class path is deprecated and should be"},{"line_number":124,"context_line":"    # removed on the N release."},{"line_number":125,"context_line":"    @mock.patch.object(host_manager.HostManager, \u0027_init_instance_info\u0027)"},{"line_number":126,"context_line":"    @mock.patch.object(host_manager.HostManager, \u0027_init_aggregates\u0027)"},{"line_number":127,"context_line":"    def test_init_using_classpath_to_hostmanager(self,"}],"source_content_type":"text/x-python","patch_set":16,"id":"7a740942_99fc0040","line":124,"in_reply_to":"9a8ffd7b_844c1843","updated":"2015-12-04 06:51:01.000000000","message":"Done","commit_id":"03765169f7c49328dcdbb7c9497227121aa9b143"}],"releasenotes/notes/config_scheduler_host_manager_driver-a543a74ea70f5e90.yaml":[{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"887431f8cb850a26e037ab31af9f163f5bf1a937","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The option \u0027scheduler_host_manager\u0027 is now deprecated so the full class"},{"line_number":5,"context_line":"    path is no longer required in the configuration. That option will be"},{"line_number":6,"context_line":"    removed in the near future."},{"line_number":7,"context_line":"    Use \u0027scheduler_host_manager_driver\u0027 instead and set one of the entrypoint"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"ba8a016a_97f8267e","line":4,"updated":"2015-11-23 09:27:59.000000000","message":"nit: We can use restructured text here, so if we use the double backticks we can indicate better that this is code related stuff. For example:\n\n    The option ``scheduler_host_manager`` is now ...","commit_id":"ac83d10c5b02e4b34b49dcd9303437d0c98fd782"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"03b74e3a6751c6a5a71b675d958aca0121e52d2c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The option \u0027scheduler_host_manager\u0027 is now deprecated so the full class"},{"line_number":5,"context_line":"    path is no longer required in the configuration. That option will be"},{"line_number":6,"context_line":"    removed in the near future."},{"line_number":7,"context_line":"    Use \u0027scheduler_host_manager_driver\u0027 instead and set one of the entrypoint"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"ba8a016a_444e79c2","line":4,"in_reply_to":"ba8a016a_97f8267e","updated":"2015-11-24 05:53:27.000000000","message":"Done","commit_id":"ac83d10c5b02e4b34b49dcd9303437d0c98fd782"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"887431f8cb850a26e037ab31af9f163f5bf1a937","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    removed in the near future."},{"line_number":7,"context_line":"    Use \u0027scheduler_host_manager_driver\u0027 instead and set one of the entrypoint"},{"line_number":8,"context_line":"    under the namespace \u0027nova.scheduler.host_manager\u0027. The default value is"},{"line_number":9,"context_line":"    \u0027host_manager\u0027."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"ba8a016a_b7f3ea9e","line":9,"updated":"2015-11-23 09:27:59.000000000","message":"I think it\u0027s worth pointing out that the old config option has precedence over the new config option (see the if-else in \"scheduler.py\") in case both are set.\n\nAlso it makes sense to say that the old config option has to set explicitly to \"None\" to use the new config option.","commit_id":"ac83d10c5b02e4b34b49dcd9303437d0c98fd782"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"03b74e3a6751c6a5a71b675d958aca0121e52d2c","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    removed in the near future."},{"line_number":7,"context_line":"    Use \u0027scheduler_host_manager_driver\u0027 instead and set one of the entrypoint"},{"line_number":8,"context_line":"    under the namespace \u0027nova.scheduler.host_manager\u0027. The default value is"},{"line_number":9,"context_line":"    \u0027host_manager\u0027."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"ba8a016a_04c71113","line":9,"in_reply_to":"ba8a016a_b7f3ea9e","updated":"2015-11-24 05:53:27.000000000","message":"Done","commit_id":"ac83d10c5b02e4b34b49dcd9303437d0c98fd782"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"10600142cdcb2b5ac946615ea1be064813e48256","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    \u0027nova.scheduler.host_manager\u0027 in \u0027setup.cfg\u0027. Its default value is"},{"line_number":7,"context_line":"    \u0027host_manager\u0027. The full class path style is still supported in current"},{"line_number":8,"context_line":"    release. But it is not recommended because class path can be changed and"},{"line_number":9,"context_line":"    this support may be dropped in the future."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"9a8ffd7b_68d32c60","line":9,"updated":"2015-12-02 10:48:15.000000000","message":"I think we should go further and say it will be dropped in the next major release.","commit_id":"d6269b06e6d3cb6315c6516d79dc93e5eb1fc593"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"19ad874a61d2820934910b509a113011fa076607","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    \u0027nova.scheduler.host_manager\u0027 in \u0027setup.cfg\u0027. Its default value is"},{"line_number":7,"context_line":"    \u0027host_manager\u0027. The full class path style is still supported in current"},{"line_number":8,"context_line":"    release. But it is not recommended because class path can be changed and"},{"line_number":9,"context_line":"    this support may be dropped in the future."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"9a8ffd7b_8d89b028","line":9,"in_reply_to":"9a8ffd7b_68d32c60","updated":"2015-12-02 15:16:50.000000000","message":"Done","commit_id":"d6269b06e6d3cb6315c6516d79dc93e5eb1fc593"}],"setup.cfg":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"1610a92961f08dc97b29da753b2d5bf0766856b3","unresolved":false,"context_lines":[{"line_number":191,"context_line":"    rfc2462 \u003d nova.ipv6.rfc2462"},{"line_number":192,"context_line":"    account_identifier \u003d nova.ipv6.account_identifier"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"nova.host_manager \u003d"},{"line_number":195,"context_line":"    host_manager \u003d nova.scheduler.host_manager:HostManager"},{"line_number":196,"context_line":"    ironic_host_manager \u003d nova.scheduler.ironic_host_manager:IronicHostManager"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-ttcn-cfg","patch_set":1,"id":"ba8a016a_07ee2cec","line":194,"updated":"2015-11-17 19:31:24.000000000","message":"do we need to say  nova.scheduler.host_manager compare to definitions above?","commit_id":"19ff2ba6fe8f440406a2404794f90b33e8b24f8f"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"9eab7a40011cd1f9936620d746ad331ac8750c7c","unresolved":false,"context_lines":[{"line_number":191,"context_line":"    rfc2462 \u003d nova.ipv6.rfc2462"},{"line_number":192,"context_line":"    account_identifier \u003d nova.ipv6.account_identifier"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"nova.host_manager \u003d"},{"line_number":195,"context_line":"    host_manager \u003d nova.scheduler.host_manager:HostManager"},{"line_number":196,"context_line":"    ironic_host_manager \u003d nova.scheduler.ironic_host_manager:IronicHostManager"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-ttcn-cfg","patch_set":1,"id":"ba8a016a_b963b5db","line":194,"in_reply_to":"ba8a016a_07ee2cec","updated":"2015-11-18 01:50:21.000000000","message":"sure, thank you","commit_id":"19ff2ba6fe8f440406a2404794f90b33e8b24f8f"}]}
