)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"a9dc4f9413159f82c5fb170646ce36839b2aae70","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     jichenjc \u003cjichenjc@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-04-14 02:49:49 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Create Nova Scheduler Num Instances Weighter"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add a new nova scheduler weighter, sort the filter"},{"line_number":10,"context_line":"hosts according to instances number on host, aims to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"bab921fb_926ec5ff","line":7,"updated":"2015-04-24 14:24:23.000000000","message":"Minor nit: the term is \u0027weigher\u0027, not \u0027weighter\u0027. Because English is strange. :)","commit_id":"a5a7a1c9e87d84c691ebef1a1586ae71b93e4216"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"1a8de1b8504239ef7ddfcd43470b5bfbb9df12f4","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     jichenjc \u003cjichenjc@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-04-14 02:49:49 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Create Nova Scheduler Num Instances Weighter"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add a new nova scheduler weighter, sort the filter"},{"line_number":10,"context_line":"hosts according to instances number on host, aims to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"5ad0253b_ded4b948","line":7,"in_reply_to":"bab921fb_926ec5ff","updated":"2015-04-28 16:47:56.000000000","message":"Done, thanks :)","commit_id":"a5a7a1c9e87d84c691ebef1a1586ae71b93e4216"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"49c87a09bbcfd369343362de813530bcedc85d0d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     jichenjc \u003cjichenjc@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-04-15 10:41:19 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Create Nova Scheduler Num Instances Weighter"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add a new nova scheduler weigher, sort the filter"},{"line_number":10,"context_line":"hosts according to instances number on host, aims to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"5ad0253b_497903fc","line":7,"updated":"2015-04-28 22:49:06.000000000","message":"You only fixed one of the two places where \u0027weigther\u0027 was used. :(","commit_id":"33579709f562ffbdff221ea256d248326b6192cf"}],"doc/source/devref/filter_scheduler.rst":[{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"d00931fc33155c74fcc16a858cddf6c3fcc16cdd","unresolved":false,"context_lines":[{"line_number":371,"context_line":""},{"line_number":372,"context_line":"* |NumInstancesWeigher| The weigher can compute the weight based on the number"},{"line_number":373,"context_line":"  of host\u0027s instance. The default is to preferably choose light workload compute"},{"line_number":374,"context_line":"  hosts (less number of instances). If the multiplier is positive, "},{"line_number":375,"context_line":"  the weigher prefer choosing heavy workload compute hosts, "},{"line_number":376,"context_line":"  the weighing has the opposite effect of the default."},{"line_number":377,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"9aa7fdbe_774df63d","line":374,"updated":"2014-10-23 18:35:03.000000000","message":"fix white space","commit_id":"dcf369dfb82bb5d75a592eecd44beffb6c643905"},{"author":{"_account_id":9550,"name":"Eugeniya Kudryashova","email":"ekudryashova@mirantis.com","username":"ekudryashova"},"change_message_id":"dcf5573f6980682c2b14bcecad5422613e561d4d","unresolved":false,"context_lines":[{"line_number":370,"context_line":"  workload compute hosts, the weighing has the opposite effect of the default."},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"* |NumInstancesWeigher| The weigher can compute the weight based on the number"},{"line_number":373,"context_line":"  of host\u0027s instance. The default is to preferably choose light workload compute"},{"line_number":374,"context_line":"  hosts (less number of instances). If the multiplier is positive,"},{"line_number":375,"context_line":"  the weigher prefer choosing heavy workload compute hosts,"},{"line_number":376,"context_line":"  the weighing has the opposite effect of the default."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9aa7fdbe_50df060d","line":373,"updated":"2014-10-24 14:28:31.000000000","message":"instance -\u003e instances","commit_id":"46d801923786e948d873b9dbf25c369891b3fbd0"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"a9dc4f9413159f82c5fb170646ce36839b2aae70","unresolved":false,"context_lines":[{"line_number":364,"context_line":""},{"line_number":365,"context_line":"* |NumInstancesWeigher| The weigher can compute the weight based on the number"},{"line_number":366,"context_line":"  of host\u0027s instances. The default is to preferably choose light workload compute"},{"line_number":367,"context_line":"  hosts (less number of instances). If the multiplier is positive,"},{"line_number":368,"context_line":"  the weigher prefer choosing heavy workload compute hosts,"},{"line_number":369,"context_line":"  the weighing has the opposite effect of the default."},{"line_number":370,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"bab921fb_b23549f8","line":367,"updated":"2015-04-24 14:24:23.000000000","message":"Minor grammar nit: replace \u0027less\u0027 with \u0027fewer\u0027.","commit_id":"a5a7a1c9e87d84c691ebef1a1586ae71b93e4216"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"1a8de1b8504239ef7ddfcd43470b5bfbb9df12f4","unresolved":false,"context_lines":[{"line_number":364,"context_line":""},{"line_number":365,"context_line":"* |NumInstancesWeigher| The weigher can compute the weight based on the number"},{"line_number":366,"context_line":"  of host\u0027s instances. The default is to preferably choose light workload compute"},{"line_number":367,"context_line":"  hosts (less number of instances). If the multiplier is positive,"},{"line_number":368,"context_line":"  the weigher prefer choosing heavy workload compute hosts,"},{"line_number":369,"context_line":"  the weighing has the opposite effect of the default."},{"line_number":370,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"5ad0253b_7eafe5e3","line":367,"in_reply_to":"bab921fb_b23549f8","updated":"2015-04-28 16:47:56.000000000","message":"Done","commit_id":"a5a7a1c9e87d84c691ebef1a1586ae71b93e4216"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"a9dc4f9413159f82c5fb170646ce36839b2aae70","unresolved":false,"context_lines":[{"line_number":366,"context_line":"  of host\u0027s instances. The default is to preferably choose light workload compute"},{"line_number":367,"context_line":"  hosts (less number of instances). If the multiplier is positive,"},{"line_number":368,"context_line":"  the weigher prefer choosing heavy workload compute hosts,"},{"line_number":369,"context_line":"  the weighing has the opposite effect of the default."},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"Filter Scheduler finds local list of acceptable hosts by repeated filtering and"},{"line_number":372,"context_line":"weighing. Each time it chooses a host, it virtually consumes resources on it,"}],"source_content_type":"text/x-rst","patch_set":11,"id":"bab921fb_ad9f2eb3","line":369,"updated":"2015-04-24 14:24:23.000000000","message":"This isn\u0027t very clear. What is \u0027the multiplier\u0027? Remember that this is a doc that someone will be reading without having the code in front of them. Maybe something like:\n\n|NumInstancesWeigher| Hosts are weighed based upon the total number of instances already running on that host. There is a configuration option for this weigher: \u0027num_instances_weight_multiplier\u0027. Negative values for this configuration option indicate a preference for hosts with fewer running instances (lighter workload). Positive values will favor hosts with more existing instances. The default of -1 will result in hosts with lighter workloads being selected.","commit_id":"a5a7a1c9e87d84c691ebef1a1586ae71b93e4216"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"1a8de1b8504239ef7ddfcd43470b5bfbb9df12f4","unresolved":false,"context_lines":[{"line_number":366,"context_line":"  of host\u0027s instances. The default is to preferably choose light workload compute"},{"line_number":367,"context_line":"  hosts (less number of instances). If the multiplier is positive,"},{"line_number":368,"context_line":"  the weigher prefer choosing heavy workload compute hosts,"},{"line_number":369,"context_line":"  the weighing has the opposite effect of the default."},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"Filter Scheduler finds local list of acceptable hosts by repeated filtering and"},{"line_number":372,"context_line":"weighing. Each time it chooses a host, it virtually consumes resources on it,"}],"source_content_type":"text/x-rst","patch_set":11,"id":"5ad0253b_9ea9a1e2","line":369,"in_reply_to":"bab921fb_ad9f2eb3","updated":"2015-04-28 16:47:56.000000000","message":"Done","commit_id":"a5a7a1c9e87d84c691ebef1a1586ae71b93e4216"}],"doc/source/filter_scheduler.rst":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"13b3f83b8f446c672c90db48ebe18bd27961bf12","unresolved":false,"context_lines":[{"line_number":375,"context_line":"  for this configuration option indicate a preference for hosts with fewer"},{"line_number":376,"context_line":"  running instances (lighter workload). Positive values will favor hosts"},{"line_number":377,"context_line":"  with more existing instances. The default of -1 will result in hosts"},{"line_number":378,"context_line":"  with lighter workloads being selected."},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"Filter Scheduler finds local list of acceptable hosts by repeated filtering and"},{"line_number":381,"context_line":"weighing. Each time it chooses a host, it virtually consumes resources on it,"}],"source_content_type":"text/x-rst","patch_set":15,"id":"ba3cc151_ebd6a1f0","line":378,"updated":"2015-07-10 16:03:10.000000000","message":"Can you provide some indication of what the units of this number are? Does it scale with instances or compute hosts? I know that it\u0027s a weight, but some understanding of how to set this reasonably would be good I think.\n\nIf I have 10 compute nodes and I set this \u003d1, will it fill one node before moving on to the next? Will \u003d10 do that?","commit_id":"f45861ced5b2f5d961d350e2ffd6ec500f765e75"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"5acf9e2eacd7eac8ab39d192e3c2ac82105f88de","unresolved":false,"context_lines":[{"line_number":375,"context_line":"  for this configuration option indicate a preference for hosts with fewer"},{"line_number":376,"context_line":"  running instances (lighter workload). Positive values will favor hosts"},{"line_number":377,"context_line":"  with more existing instances. The default of -1 will result in hosts"},{"line_number":378,"context_line":"  with lighter workloads being selected."},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"Filter Scheduler finds local list of acceptable hosts by repeated filtering and"},{"line_number":381,"context_line":"weighing. Each time it chooses a host, it virtually consumes resources on it,"}],"source_content_type":"text/x-rst","patch_set":15,"id":"9a41bdd9_6a8ca235","line":378,"in_reply_to":"ba3cc151_ebd6a1f0","updated":"2015-07-13 16:04:19.000000000","message":"10 compute nodes, set this value to 1 has less possiblity to fill in one compute then to other \nset this value to 10 has high possiblity to fill one compute host before switch to another\n\nthe units are number of the virtual machines on the compute host\nI think it should be fine to scale just like other weighters","commit_id":"f45861ced5b2f5d961d350e2ffd6ec500f765e75"}],"nova/conf/scheduler.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"26febf666dc7f08d4b3be29b196b9fe2dc7f1bb3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011-2012 Openstack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":17,"id":"da6ed579_2b07f482","line":1,"updated":"2016-01-15 14:56:01.000000000","message":"I don\u0027t understand this change, a bad rebase?","commit_id":"aea1cff92cc2a832f2ddd678bbb9f65ad6100d50"}],"nova/scheduler/weights/num_instances.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6905f429d98bbec8514a031deaf3f85ed836d805","unresolved":false,"context_lines":[{"line_number":35,"context_line":"CONF.register_opts(num_instances_weight_opts)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class NumInstancesWeigher(weights.BaseHostWeigher):"},{"line_number":39,"context_line":"    minval \u003d 0"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def weight_multiplier(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_a2f4b6cf","line":38,"updated":"2014-11-12 16:09:19.000000000","message":"Well, I really understand the need, I just wonder if there is something we should do before preventing a huge inflation of the number of weighters we will have...","commit_id":"3d2505ec604d9f9a53caa2696b6f17d3d7439a15"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"d1b364796f8db0bb28061bb9624690f127797166","unresolved":false,"context_lines":[{"line_number":35,"context_line":"CONF.register_opts(num_instances_weight_opts)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class NumInstancesWeigher(weights.BaseHostWeigher):"},{"line_number":39,"context_line":"    minval \u003d 0"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def weight_multiplier(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_ea482c89","line":38,"in_reply_to":"5a890539_57e81be2","updated":"2014-11-13 17:21:04.000000000","message":"Well, I\u0027m just thinking that possibly there could be one weigher per Compute resource, so a conf option per resource, which is extremely expensive...\n\nI don\u0027t have yet a clear answer to that, but I think we need to think about modularity here for the future patches","commit_id":"3d2505ec604d9f9a53caa2696b6f17d3d7439a15"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"94951f97ddf46b6bff027da6693369263fc5537d","unresolved":false,"context_lines":[{"line_number":35,"context_line":"CONF.register_opts(num_instances_weight_opts)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class NumInstancesWeigher(weights.BaseHostWeigher):"},{"line_number":39,"context_line":"    minval \u003d 0"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def weight_multiplier(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_57e81be2","line":38,"in_reply_to":"5a890539_a2f4b6cf","updated":"2014-11-13 11:23:13.000000000","message":"My thoughts is we can let admin decide whether they need the weight or not , so we can define the default multiplier to 0 or even consider to avoid load specified weight\ne.g some cluster may has pay attention to RAM load balance and some pay attention to number of instances ...\nthoughts?","commit_id":"3d2505ec604d9f9a53caa2696b6f17d3d7439a15"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"112e904be3926f2175a2b592adcf79e6bd7fd794","unresolved":false,"context_lines":[{"line_number":35,"context_line":"CONF.register_opts(num_instances_weight_opts)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class NumInstancesWeigher(weights.BaseHostWeigher):"},{"line_number":39,"context_line":"    minval \u003d 0"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def weight_multiplier(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_caf759d3","line":38,"in_reply_to":"5a890539_ea482c89","updated":"2014-11-19 04:22:25.000000000","message":"I agree, too many weights might lead to performance degradation\n\nbut we can make a default way and let admin to judge whether they need additional one \n\nso I will think about it and maybe submit a bp","commit_id":"3d2505ec604d9f9a53caa2696b6f17d3d7439a15"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6905f429d98bbec8514a031deaf3f85ed836d805","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class NumInstancesWeigher(weights.BaseHostWeigher):"},{"line_number":39,"context_line":"    minval \u003d 0"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def weight_multiplier(self):"},{"line_number":42,"context_line":"        \"\"\"Override the weight multiplier.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_c21aa216","line":39,"updated":"2014-11-12 16:09:19.000000000","message":"that\u0027s not necessary, see nova.weights","commit_id":"3d2505ec604d9f9a53caa2696b6f17d3d7439a15"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"94951f97ddf46b6bff027da6693369263fc5537d","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class NumInstancesWeigher(weights.BaseHostWeigher):"},{"line_number":39,"context_line":"    minval \u003d 0"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def weight_multiplier(self):"},{"line_number":42,"context_line":"        \"\"\"Override the weight multiplier.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_97f283d0","line":39,"in_reply_to":"5a890539_c21aa216","updated":"2014-11-13 11:23:13.000000000","message":"Done","commit_id":"3d2505ec604d9f9a53caa2696b6f17d3d7439a15"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f39a83c083aa2a827b2732fdcf8ea16ed415998","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab921fb_4ba08590","line":1,"updated":"2015-04-24 12:42:47.000000000","message":"nit: please note you\u0027re donating to the foundation which is just no-brainer. That\u0027s not really need to put such copyright IMHO.","commit_id":"a5a7a1c9e87d84c691ebef1a1586ae71b93e4216"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"a9dc4f9413159f82c5fb170646ce36839b2aae70","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab921fb_8821f8a1","line":1,"in_reply_to":"bab921fb_4ba08590","updated":"2015-04-24 14:24:23.000000000","message":"Typically the copyright contains the employer of the person creating the script. The contributor agreement gives unlimited use to the OSF, but the employer still owns the copyright.","commit_id":"a5a7a1c9e87d84c691ebef1a1586ae71b93e4216"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bb6323f70949cd1c87036d621fdf6590c15fcdb1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab921fb_ae2de547","line":1,"in_reply_to":"bab921fb_8821f8a1","updated":"2015-04-24 14:40:36.000000000","message":"That\u0027s not that simple. There are some litterature about that in various pointers given by https://wiki.openstack.org/wiki/LegalIssuesFAQ#Copyright_Headers but here I just wanted to explain it was like a no-op thing because by default the copyright goes to the Foundation\n\nsee also http://lists.openstack.org/pipermail/legal-discuss/2014-January/000150.html\n\nBut honestly, we\u0027re overdiscussing that, I don\u0027t care of the change hence my +1","commit_id":"a5a7a1c9e87d84c691ebef1a1586ae71b93e4216"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"db0d8ac574e43ecfa036ba09fadd18bccc47a37f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab921fb_ae904544","line":1,"in_reply_to":"bab921fb_ae2de547","updated":"2015-04-24 14:43:22.000000000","message":"I actually pointed the bad URL...\nhttps://wiki.openstack.org/wiki/LegalIssuesFAQ#OpenStack_Foundation_Copyright_Headers","commit_id":"a5a7a1c9e87d84c691ebef1a1586ae71b93e4216"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"1a8de1b8504239ef7ddfcd43470b5bfbb9df12f4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":11,"id":"5ad0253b_7e96c595","line":1,"in_reply_to":"bab921fb_ae904544","updated":"2015-04-28 16:47:56.000000000","message":"I used\nIBM instead :), thanks","commit_id":"a5a7a1c9e87d84c691ebef1a1586ae71b93e4216"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f39a83c083aa2a827b2732fdcf8ea16ed415998","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"num_instances_weight_opts \u003d ["},{"line_number":28,"context_line":"    cfg.FloatOpt(\u0027num_instances_weight_multiplier\u0027,"},{"line_number":29,"context_line":"                 default\u003d-1.0,"},{"line_number":30,"context_line":"                 help\u003d\u0027Multiplier used for weighing number of instances on\u0027"},{"line_number":31,"context_line":"                      \u0027the host. Negative numbers mean a preference to \u0027"},{"line_number":32,"context_line":"                      \u0027choose light workload compute hosts.\u0027),"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab921fb_ab5ba186","line":29,"updated":"2015-04-24 12:42:47.000000000","message":"++","commit_id":"a5a7a1c9e87d84c691ebef1a1586ae71b93e4216"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"d2088bd4c7bb1e4a6356ecaa087e6d794403f162","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        \"\"\"Higher weights win. We want to choose light workload host"},{"line_number":46,"context_line":"        to be the default."},{"line_number":47,"context_line":"        \"\"\""},{"line_number":48,"context_line":"        return host_state.num_instances"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_7f2ffa3e","line":48,"updated":"2015-06-18 13:10:35.000000000","message":"are we really needing this ? Why not using the IOOpsWeigher ?","commit_id":"0e68fd46ad862c00c786d9dbae505fa12b1c701a"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"1f4b7021b0b14b38654bb30eec5e3bfce2314296","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        \"\"\"Higher weights win. We want to choose light workload host"},{"line_number":46,"context_line":"        to be the default."},{"line_number":47,"context_line":"        \"\"\""},{"line_number":48,"context_line":"        return host_state.num_instances"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_7a485dcc","line":48,"in_reply_to":"fa32b979_2998551b","updated":"2015-06-18 16:45:47.000000000","message":"it\u0027s my own understanding , not sure :\n\nsomeone might have private weight method for their own optimization and not upstreamed ,\nthe existing solutions offer all possible weighter to operators and up to them to decide whether it\u0027s used or not\n\nI am considering whether we can do like scheduler\nhave some default weighters and don\u0027t use others\ncurrently we will use all weighters by default, I agree it\u0027s not that helpful","commit_id":"0e68fd46ad862c00c786d9dbae505fa12b1c701a"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"37e705a19a225bd657925485e39187bc7072661f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        \"\"\"Higher weights win. We want to choose light workload host"},{"line_number":46,"context_line":"        to be the default."},{"line_number":47,"context_line":"        \"\"\""},{"line_number":48,"context_line":"        return host_state.num_instances"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_2998551b","line":48,"in_reply_to":"fa32b979_6e074682","updated":"2015-06-18 15:55:36.000000000","message":"Ah I see the difference, you don\u0027t want the current building instances but rather the total instances... What I\u0027m still afraid is the number of weighers we could create and if all of them are necessary to be upstreamed.\n\nI don\u0027t really see the benefit of having that weigher, or I would prefer it more generic... Just wondering if we should just have a generic Weigher leaving the operator defining which key they want to weigh and how...","commit_id":"0e68fd46ad862c00c786d9dbae505fa12b1c701a"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"a7c6b0eb8fa9a2da6020ac5d9426d3db7e609371","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        \"\"\"Higher weights win. We want to choose light workload host"},{"line_number":46,"context_line":"        to be the default."},{"line_number":47,"context_line":"        \"\"\""},{"line_number":48,"context_line":"        return host_state.num_instances"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_6e074682","line":48,"in_reply_to":"fa32b979_7f2ffa3e","updated":"2015-06-18 14:40:44.000000000","message":"IOOps is current instances ongoing\n\nthis is total instances in the host \n\nso different concept","commit_id":"0e68fd46ad862c00c786d9dbae505fa12b1c701a"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"417ec769d56b6bb78461ef9176166b664d995348","unresolved":false,"context_lines":[{"line_number":29,"context_line":"                 default\u003d-1.0,"},{"line_number":30,"context_line":"                 help\u003d\u0027Multiplier used for weighing number of instances on\u0027"},{"line_number":31,"context_line":"                      \u0027the host. Negative numbers mean a preference to \u0027"},{"line_number":32,"context_line":"                      \u0027choose light workload compute hosts.\u0027),"},{"line_number":33,"context_line":"]"},{"line_number":34,"context_line":"CONF \u003d cfg.CONF"},{"line_number":35,"context_line":"CONF.register_opts(num_instances_weight_opts)"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba3cc151_fece642c","line":32,"updated":"2015-07-10 14:55:39.000000000","message":"I\u0027d really like to have a help which is more descriptive. This help will be exported to the \"configuration reference\" manual and doesn\u0027t explicitly explain what happens when you use:\n* positive numbers\n* zero\n\nAdditionally is doesn\u0027t say:\n* if there is a upper or lower bound\n* which service will use this config option.\n\nAt last (nit):\n* Does -1000 or -1 intensify the tendency to to choose a light workload compute host?\n\nI ask these question from an operator perspective who doesn\u0027t want to read the code in order to understand the config option and uses the \"configuration reference\" manual.","commit_id":"f45861ced5b2f5d961d350e2ffd6ec500f765e75"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"13b3f83b8f446c672c90db48ebe18bd27961bf12","unresolved":false,"context_lines":[{"line_number":29,"context_line":"                 default\u003d-1.0,"},{"line_number":30,"context_line":"                 help\u003d\u0027Multiplier used for weighing number of instances on\u0027"},{"line_number":31,"context_line":"                      \u0027the host. Negative numbers mean a preference to \u0027"},{"line_number":32,"context_line":"                      \u0027choose light workload compute hosts.\u0027),"},{"line_number":33,"context_line":"]"},{"line_number":34,"context_line":"CONF \u003d cfg.CONF"},{"line_number":35,"context_line":"CONF.register_opts(num_instances_weight_opts)"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba3cc151_eb71c145","line":32,"in_reply_to":"ba3cc151_fece642c","updated":"2015-07-10 16:03:10.000000000","message":"I think this is fine for the config option. There is more documentation in the doc file, which seems appropriate. However, I have a comment on that.","commit_id":"f45861ced5b2f5d961d350e2ffd6ec500f765e75"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3fdd3c38285b13937ff510ee76b1880743f48697","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# under the License."},{"line_number":15,"context_line":"\"\"\""},{"line_number":16,"context_line":"Num instances Weigher. Weigh hosts by instances on the compute host."},{"line_number":17,"context_line":"The default is to preferably choose less instances compute hosts. If you prefer"},{"line_number":18,"context_line":"choosing more instances compute hosts, you can set"},{"line_number":19,"context_line":"\u0027num_instances_weight_multiplier\u0027 option to a positive number and the"},{"line_number":20,"context_line":"weighing has the opposite effect of the default."}],"source_content_type":"text/x-python","patch_set":16,"id":"fa69d971_1b50d609","line":17,"updated":"2016-01-08 12:12:51.000000000","message":"The default is to choose compute hosts that have fewer instances. If you prefer choosing hosts with more instances, you can set...","commit_id":"14253a8d501636e566cf34711f273efbde3835cd"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3fdd3c38285b13937ff510ee76b1880743f48697","unresolved":false,"context_lines":[{"line_number":29,"context_line":"                 default\u003d-1.0,"},{"line_number":30,"context_line":"                 help\u003d\u0027Multiplier used for weighing number of instances on\u0027"},{"line_number":31,"context_line":"                      \u0027the host. Negative numbers mean a preference to \u0027"},{"line_number":32,"context_line":"                      \u0027choose light workload compute hosts.\u0027),"},{"line_number":33,"context_line":"]"},{"line_number":34,"context_line":"CONF \u003d cfg.CONF"},{"line_number":35,"context_line":"CONF.register_opts(num_instances_weight_opts)"}],"source_content_type":"text/x-python","patch_set":16,"id":"fa69d971_bb566a04","line":32,"updated":"2016-01-08 12:12:51.000000000","message":"I think this help string is misleading. Number of instances doesn\u0027t really say that much about \"workload\". Probably better to be explicit about what it actually means: Negative numbers mean a prefernce to choose computes hosts with fewer existing instances.","commit_id":"14253a8d501636e566cf34711f273efbde3835cd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"26febf666dc7f08d4b3be29b196b9fe2dc7f1bb3","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"# under the License."},{"line_number":15,"context_line":"\"\"\""},{"line_number":16,"context_line":"Num instances Weigher. Weigh hosts by instances on the compute host."},{"line_number":17,"context_line":"The default is to choose hosts that have fewer instances. If you prefer"},{"line_number":18,"context_line":"to choose hosts with more instances, you can set"}],"source_content_type":"text/x-python","patch_set":17,"id":"da6ed579_8b71400e","line":15,"updated":"2016-01-15 14:56:01.000000000","message":"I would remove this, as its likely to not be maintained. Its already covered in the various docs.\n\nI would rather we have a better conf description.","commit_id":"aea1cff92cc2a832f2ddd678bbb9f65ad6100d50"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"26febf666dc7f08d4b3be29b196b9fe2dc7f1bb3","unresolved":false,"context_lines":[{"line_number":29,"context_line":"                 default\u003d-1.0,"},{"line_number":30,"context_line":"                 help\u003d\u0027Multiplier used for weighing number of instances on\u0027"},{"line_number":31,"context_line":"                      \u0027the host. Negative numbers mean a preference to \u0027"},{"line_number":32,"context_line":"                      \u0027choose light workload compute hosts.\u0027),"},{"line_number":33,"context_line":"]"},{"line_number":34,"context_line":"CONF \u003d cfg.CONF"},{"line_number":35,"context_line":"CONF.register_opts(num_instances_weight_opts)"}],"source_content_type":"text/x-python","patch_set":17,"id":"da6ed579_6b4decc2","line":32,"updated":"2016-01-15 14:56:01.000000000","message":"Same comment as cdent put on the previous patchset.\n\nThis text should describe what the negative and positive number mean, please.","commit_id":"aea1cff92cc2a832f2ddd678bbb9f65ad6100d50"}],"nova/tests/scheduler/test_weights.py":[{"author":{"_account_id":9550,"name":"Eugeniya Kudryashova","email":"ekudryashova@mirantis.com","username":"ekudryashova"},"change_message_id":"dcf5573f6980682c2b14bcecad5422613e561d4d","unresolved":false,"context_lines":[{"line_number":284,"context_line":"             stats\u003djsonutils.dumps({\u0027io_workload\u0027: \u00270\u0027, \u0027num_instances\u0027: 3})),"},{"line_number":285,"context_line":"        # host4: num_io_ops\u003d4, so host4 should win in the case of positive"},{"line_number":286,"context_line":"        # io_ops_weight_multiplier configure."},{"line_number":287,"context_line":"        # host3: num_instances\u003d0, so host4 should win in the case of default"},{"line_number":288,"context_line":"        # io_ops_weight_multiplier configure."},{"line_number":289,"context_line":"        dict(id\u003d4, local_gb\u003d8192, memory_mb\u003d8192, vcpus\u003d8,"},{"line_number":290,"context_line":"             disk_available_least\u003d8192, free_ram_mb\u003d8192, vcpus_used\u003d0,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_90332e61","line":287,"updated":"2014-10-24 14:28:31.000000000","message":"host3 -\u003e host4","commit_id":"46d801923786e948d873b9dbf25c369891b3fbd0"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"6c4e781d78b9703f1282b3090c356ea26504b9b4","unresolved":false,"context_lines":[{"line_number":284,"context_line":"             stats\u003djsonutils.dumps({\u0027io_workload\u0027: \u00270\u0027, \u0027num_instances\u0027: 3})),"},{"line_number":285,"context_line":"        # host4: num_io_ops\u003d4, so host4 should win in the case of positive"},{"line_number":286,"context_line":"        # io_ops_weight_multiplier configure."},{"line_number":287,"context_line":"        # host3: num_instances\u003d0, so host4 should win in the case of default"},{"line_number":288,"context_line":"        # io_ops_weight_multiplier configure."},{"line_number":289,"context_line":"        dict(id\u003d4, local_gb\u003d8192, memory_mb\u003d8192, vcpus\u003d8,"},{"line_number":290,"context_line":"             disk_available_least\u003d8192, free_ram_mb\u003d8192, vcpus_used\u003d0,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_44f58b55","line":287,"in_reply_to":"9aa7fdbe_90332e61","updated":"2014-10-24 14:56:42.000000000","message":"Done","commit_id":"46d801923786e948d873b9dbf25c369891b3fbd0"},{"author":{"_account_id":9550,"name":"Eugeniya Kudryashova","email":"ekudryashova@mirantis.com","username":"ekudryashova"},"change_message_id":"dcf5573f6980682c2b14bcecad5422613e561d4d","unresolved":false,"context_lines":[{"line_number":378,"context_line":"        if expected_host:"},{"line_number":379,"context_line":"            self.assertEqual(weighed_host.obj.host, expected_host)"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"    def test_io_ops_weight_multiplier_by_default(self):"},{"line_number":382,"context_line":"        self._do_test(num_instances_weight_multiplier\u003dNone,"},{"line_number":383,"context_line":"                      expected_weight\u003d0.0,"},{"line_number":384,"context_line":"                      expected_host\u003d\u0027host4\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_3049a2b7","line":381,"updated":"2014-10-24 14:28:31.000000000","message":"test_num_instances_weight ...","commit_id":"46d801923786e948d873b9dbf25c369891b3fbd0"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"6c4e781d78b9703f1282b3090c356ea26504b9b4","unresolved":false,"context_lines":[{"line_number":378,"context_line":"        if expected_host:"},{"line_number":379,"context_line":"            self.assertEqual(weighed_host.obj.host, expected_host)"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"    def test_io_ops_weight_multiplier_by_default(self):"},{"line_number":382,"context_line":"        self._do_test(num_instances_weight_multiplier\u003dNone,"},{"line_number":383,"context_line":"                      expected_weight\u003d0.0,"},{"line_number":384,"context_line":"                      expected_host\u003d\u0027host4\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_e4e2ff9e","line":381,"in_reply_to":"9aa7fdbe_3049a2b7","updated":"2014-10-24 14:56:42.000000000","message":"Done","commit_id":"46d801923786e948d873b9dbf25c369891b3fbd0"},{"author":{"_account_id":9550,"name":"Eugeniya Kudryashova","email":"ekudryashova@mirantis.com","username":"ekudryashova"},"change_message_id":"dcf5573f6980682c2b14bcecad5422613e561d4d","unresolved":false,"context_lines":[{"line_number":383,"context_line":"                      expected_weight\u003d0.0,"},{"line_number":384,"context_line":"                      expected_host\u003d\u0027host4\u0027)"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"    def test_io_ops_weight_multiplier_zero_value(self):"},{"line_number":387,"context_line":"        # We do not know the host, all have same weight."},{"line_number":388,"context_line":"        self._do_test(num_instances_weight_multiplier\u003d0.0,"},{"line_number":389,"context_line":"                      expected_weight\u003d0.0,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_f0d9daf3","line":386,"updated":"2014-10-24 14:28:31.000000000","message":"Ditto","commit_id":"46d801923786e948d873b9dbf25c369891b3fbd0"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"6c4e781d78b9703f1282b3090c356ea26504b9b4","unresolved":false,"context_lines":[{"line_number":383,"context_line":"                      expected_weight\u003d0.0,"},{"line_number":384,"context_line":"                      expected_host\u003d\u0027host4\u0027)"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"    def test_io_ops_weight_multiplier_zero_value(self):"},{"line_number":387,"context_line":"        # We do not know the host, all have same weight."},{"line_number":388,"context_line":"        self._do_test(num_instances_weight_multiplier\u003d0.0,"},{"line_number":389,"context_line":"                      expected_weight\u003d0.0,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_04e0e394","line":386,"in_reply_to":"9aa7fdbe_f0d9daf3","updated":"2014-10-24 14:56:42.000000000","message":"Done","commit_id":"46d801923786e948d873b9dbf25c369891b3fbd0"},{"author":{"_account_id":9550,"name":"Eugeniya Kudryashova","email":"ekudryashova@mirantis.com","username":"ekudryashova"},"change_message_id":"dcf5573f6980682c2b14bcecad5422613e561d4d","unresolved":false,"context_lines":[{"line_number":389,"context_line":"                      expected_weight\u003d0.0,"},{"line_number":390,"context_line":"                      expected_host\u003dNone)"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"    def test_io_ops_weight_multiplier_positive_value(self):"},{"line_number":393,"context_line":"        self._do_test(num_instances_weight_multiplier\u003d2.0,"},{"line_number":394,"context_line":"                      expected_weight\u003d2.0,"},{"line_number":395,"context_line":"                      expected_host\u003d\u0027host2\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_30e0c295","line":392,"updated":"2014-10-24 14:28:31.000000000","message":"Ditto","commit_id":"46d801923786e948d873b9dbf25c369891b3fbd0"},{"author":{"_account_id":9550,"name":"Eugeniya Kudryashova","email":"ekudryashova@mirantis.com","username":"ekudryashova"},"change_message_id":"728df6bf1262fe6be5f36edb6580bec130000eeb","unresolved":false,"context_lines":[{"line_number":284,"context_line":"             stats\u003djsonutils.dumps({\u0027io_workload\u0027: \u00270\u0027, \u0027num_instances\u0027: 3})),"},{"line_number":285,"context_line":"        # host4: num_io_ops\u003d4, so host4 should win in the case of positive"},{"line_number":286,"context_line":"        # io_ops_weight_multiplier configure."},{"line_number":287,"context_line":"        # host3: num_instances\u003d0, so host333hould win in the case of default"},{"line_number":288,"context_line":"        # io_ops_weight_multiplier configure."},{"line_number":289,"context_line":"        dict(id\u003d4, local_gb\u003d8192, memory_mb\u003d8192, vcpus\u003d8,"},{"line_number":290,"context_line":"             disk_available_least\u003d8192, free_ram_mb\u003d8192, vcpus_used\u003d0,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_078e25d0","line":287,"updated":"2014-10-24 15:30:41.000000000","message":"host333hould \nsomething goes wrong? :)\nStill think that here should be host4, host3 described higher\nor am I mistaken?","commit_id":"55bff2fe5f2a905e0e9b5afdebbae158081fc8d7"},{"author":{"_account_id":5387,"name":"Andrew Melton","email":"andrew.melton@rackspace.com","username":"andrew-melton"},"change_message_id":"f4b2e9910b2ef62fa78b3d11e92b2e13442ee76c","unresolved":false,"context_lines":[{"line_number":284,"context_line":"             stats\u003djsonutils.dumps({\u0027io_workload\u0027: \u00270\u0027, \u0027num_instances\u0027: 3})),"},{"line_number":285,"context_line":"        # host4: num_io_ops\u003d4, so host4 should win in the case of positive"},{"line_number":286,"context_line":"        # io_ops_weight_multiplier configure."},{"line_number":287,"context_line":"        # host3: num_instances\u003d0, so host333hould win in the case of default"},{"line_number":288,"context_line":"        # io_ops_weight_multiplier configure."},{"line_number":289,"context_line":"        dict(id\u003d4, local_gb\u003d8192, memory_mb\u003d8192, vcpus\u003d8,"},{"line_number":290,"context_line":"             disk_available_least\u003d8192, free_ram_mb\u003d8192, vcpus_used\u003d0,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_38eb4414","line":287,"in_reply_to":"9aa7fdbe_078e25d0","updated":"2014-10-24 16:38:26.000000000","message":"This does look odd, could we get it fixed up? After this, I should be +1","commit_id":"55bff2fe5f2a905e0e9b5afdebbae158081fc8d7"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"39e3553cab7c78e818b52c890ebd603c2c782a51","unresolved":false,"context_lines":[{"line_number":284,"context_line":"             stats\u003djsonutils.dumps({\u0027io_workload\u0027: \u00270\u0027, \u0027num_instances\u0027: 3})),"},{"line_number":285,"context_line":"        # host4: num_io_ops\u003d4, so host4 should win in the case of positive"},{"line_number":286,"context_line":"        # io_ops_weight_multiplier configure."},{"line_number":287,"context_line":"        # host3: num_instances\u003d0, so host333hould win in the case of default"},{"line_number":288,"context_line":"        # io_ops_weight_multiplier configure."},{"line_number":289,"context_line":"        dict(id\u003d4, local_gb\u003d8192, memory_mb\u003d8192, vcpus\u003d8,"},{"line_number":290,"context_line":"             disk_available_least\u003d8192, free_ram_mb\u003d8192, vcpus_used\u003d0,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_38c98426","line":287,"in_reply_to":"9aa7fdbe_38eb4414","updated":"2014-10-24 16:49:08.000000000","message":"I use vim ,... guess I hit wrong key :), thanks","commit_id":"55bff2fe5f2a905e0e9b5afdebbae158081fc8d7"},{"author":{"_account_id":5387,"name":"Andrew Melton","email":"andrew.melton@rackspace.com","username":"andrew-melton"},"change_message_id":"fe2fd1fd3d287fdfcdf1d349740da74bef1f7cb6","unresolved":false,"context_lines":[{"line_number":284,"context_line":"             stats\u003djsonutils.dumps({\u0027io_workload\u0027: \u00270\u0027, \u0027num_instances\u0027: 3})),"},{"line_number":285,"context_line":"        # host4: num_io_ops\u003d4, so host4 should win in the case of positive"},{"line_number":286,"context_line":"        # io_ops_weight_multiplier configure."},{"line_number":287,"context_line":"        # host3: num_instances\u003d0, so host3 hould win in the case of default"},{"line_number":288,"context_line":"        # io_ops_weight_multiplier configure."},{"line_number":289,"context_line":"        dict(id\u003d4, local_gb\u003d8192, memory_mb\u003d8192, vcpus\u003d8,"},{"line_number":290,"context_line":"             disk_available_least\u003d8192, free_ram_mb\u003d8192, vcpus_used\u003d0,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_73f16f00","line":287,"updated":"2014-10-24 17:02:21.000000000","message":"With the default configuration, shouldn\u0027t host4 (with the lowest number of instances) win? In that case, shouldn\u0027t this comment read:\n\n# host4: num_instances\u003d0, so host4 should win in the case of default","commit_id":"9d9e7ceb48c42eccedd7304f0585b8fac0c79a8b"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"b4dd29811e4690376a2e81b0d59e1d889eb54e7b","unresolved":false,"context_lines":[{"line_number":284,"context_line":"             stats\u003djsonutils.dumps({\u0027io_workload\u0027: \u00270\u0027, \u0027num_instances\u0027: 3})),"},{"line_number":285,"context_line":"        # host4: num_io_ops\u003d4, so host4 should win in the case of positive"},{"line_number":286,"context_line":"        # io_ops_weight_multiplier configure."},{"line_number":287,"context_line":"        # host3: num_instances\u003d0, so host3 hould win in the case of default"},{"line_number":288,"context_line":"        # io_ops_weight_multiplier configure."},{"line_number":289,"context_line":"        dict(id\u003d4, local_gb\u003d8192, memory_mb\u003d8192, vcpus\u003d8,"},{"line_number":290,"context_line":"             disk_available_least\u003d8192, free_ram_mb\u003d8192, vcpus_used\u003d0,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_99f50859","line":287,"in_reply_to":"9aa7fdbe_73f16f00","updated":"2014-10-25 13:09:32.000000000","message":"yes, I missed that part, thanks","commit_id":"9d9e7ceb48c42eccedd7304f0585b8fac0c79a8b"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6905f429d98bbec8514a031deaf3f85ed836d805","unresolved":false,"context_lines":[{"line_number":345,"context_line":"                      expected_host\u003d\u0027host4\u0027)"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"class NumInstancesWeigherTestCase(test.NoDBTestCase):"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"    def setUp(self):"},{"line_number":351,"context_line":"        super(NumInstancesWeigherTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_82ceda81","line":348,"updated":"2014-11-12 16:09:19.000000000","message":"Here the same comment goes : could we just prevent to put all our testcases within the same module ?","commit_id":"3d2505ec604d9f9a53caa2696b6f17d3d7439a15"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"d1b364796f8db0bb28061bb9624690f127797166","unresolved":false,"context_lines":[{"line_number":345,"context_line":"                      expected_host\u003d\u0027host4\u0027)"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"class NumInstancesWeigherTestCase(test.NoDBTestCase):"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"    def setUp(self):"},{"line_number":351,"context_line":"        super(NumInstancesWeigherTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_eaa3cc4c","line":348,"in_reply_to":"5a890539_17adb39c","updated":"2014-11-13 17:21:04.000000000","message":"thanks","commit_id":"3d2505ec604d9f9a53caa2696b6f17d3d7439a15"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"94951f97ddf46b6bff027da6693369263fc5537d","unresolved":false,"context_lines":[{"line_number":345,"context_line":"                      expected_host\u003d\u0027host4\u0027)"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"class NumInstancesWeigherTestCase(test.NoDBTestCase):"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"    def setUp(self):"},{"line_number":351,"context_line":"        super(NumInstancesWeigherTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_17adb39c","line":348,"in_reply_to":"5a890539_82ceda81","updated":"2014-11-13 11:23:13.000000000","message":"so you want to split them ? works for me","commit_id":"3d2505ec604d9f9a53caa2696b6f17d3d7439a15"}],"nova/tests/unit/scheduler/test_weights_num_instance.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"cd1133bb62dcec9705d708ba8dcf9c210eb8787c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011-2012 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba3cc151_cc4f45bd","line":1,"updated":"2015-07-10 11:38:15.000000000","message":"this need update I guess","commit_id":"f45861ced5b2f5d961d350e2ffd6ec500f765e75"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"5acf9e2eacd7eac8ab39d192e3c2ac82105f88de","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011-2012 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a41bdd9_ca6e0e2f","line":1,"in_reply_to":"ba3cc151_cc4f45bd","updated":"2015-07-13 16:04:19.000000000","message":"ok","commit_id":"f45861ced5b2f5d961d350e2ffd6ec500f765e75"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"417ec769d56b6bb78461ef9176166b664d995348","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            (\u0027host1\u0027, \u0027node1\u0027, {\u0027num_instances\u0027: 2}),"},{"line_number":40,"context_line":"            (\u0027host2\u0027, \u0027node2\u0027, {\u0027num_instances\u0027: 5}),"},{"line_number":41,"context_line":"            (\u0027host3\u0027, \u0027node3\u0027, {\u0027num_instances\u0027: 3}),"},{"line_number":42,"context_line":"            (\u0027host4\u0027, \u0027node4\u0027, {\u0027num_instances\u0027: 0})"},{"line_number":43,"context_line":"        ]"},{"line_number":44,"context_line":"        return [fakes.FakeHostState(host, node, values)"},{"line_number":45,"context_line":"            for host, node, values in host_values]"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba3cc151_5cb759f5","line":42,"updated":"2015-07-10 14:55:39.000000000","message":"I think there is testcase missing when I have two or more hosts which have the same amount of instances (see host4 and host5).\n\n    (\u0027host1\u0027, \u0027node1\u0027, {\u0027num_instances\u0027: 2}),\n    (\u0027host2\u0027, \u0027node2\u0027, {\u0027num_instances\u0027: 5}),\n    (\u0027host3\u0027, \u0027node3\u0027, {\u0027num_instances\u0027: 3}),\n    (\u0027host4\u0027, \u0027node4\u0027, {\u0027num_instances\u0027: 0}),\n    (\u0027host5\u0027, \u0027node5\u0027, {\u0027num_instances\u0027: 0}),","commit_id":"f45861ced5b2f5d961d350e2ffd6ec500f765e75"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"5acf9e2eacd7eac8ab39d192e3c2ac82105f88de","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            (\u0027host1\u0027, \u0027node1\u0027, {\u0027num_instances\u0027: 2}),"},{"line_number":40,"context_line":"            (\u0027host2\u0027, \u0027node2\u0027, {\u0027num_instances\u0027: 5}),"},{"line_number":41,"context_line":"            (\u0027host3\u0027, \u0027node3\u0027, {\u0027num_instances\u0027: 3}),"},{"line_number":42,"context_line":"            (\u0027host4\u0027, \u0027node4\u0027, {\u0027num_instances\u0027: 0})"},{"line_number":43,"context_line":"        ]"},{"line_number":44,"context_line":"        return [fakes.FakeHostState(host, node, values)"},{"line_number":45,"context_line":"            for host, node, values in host_values]"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a41bdd9_ea3bd236","line":42,"in_reply_to":"ba3cc151_5cb759f5","updated":"2015-07-13 16:04:19.000000000","message":"make sense","commit_id":"f45861ced5b2f5d961d350e2ffd6ec500f765e75"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"417ec769d56b6bb78461ef9176166b664d995348","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                                              num_instances_weight_multiplier)"},{"line_number":52,"context_line":"        self.assertEqual(weighed_host.weight, expected_weight)"},{"line_number":53,"context_line":"        if expected_host:"},{"line_number":54,"context_line":"            self.assertEqual(weighed_host.obj.host, expected_host)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def test_io_ops_weight_multiplier_by_default(self):"},{"line_number":57,"context_line":"        self._do_test(num_instances_weight_multiplier\u003dNone,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba3cc151_7f99efcf","line":54,"updated":"2015-07-10 14:55:39.000000000","message":"This has two responsibilities. It tests the order of the weighted hosts (more specifically if the first one in the order is a specific host) AND tests if the weighing (of the first host) was calculated as expected. This *doesn\u0027t* test if the N-1 other hosts have correctly calculated weightings too. I\u0027d rather have that rewritten so that it tests an expected order and all expected weightings.","commit_id":"f45861ced5b2f5d961d350e2ffd6ec500f765e75"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"417ec769d56b6bb78461ef9176166b664d995348","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        # We do not know the host, all have same weight."},{"line_number":63,"context_line":"        self._do_test(num_instances_weight_multiplier\u003d0.0,"},{"line_number":64,"context_line":"                      expected_weight\u003d0.0,"},{"line_number":65,"context_line":"                      expected_host\u003dNone)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def test_num_instances_weight_multiplier_positive_value(self):"},{"line_number":68,"context_line":"        self._do_test(num_instances_weight_multiplier\u003d2.0,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba3cc151_1c223102","line":65,"updated":"2015-07-10 14:55:39.000000000","message":"The ``expected_host\u003dNone`` can be misleading. At first I thought it is expected that *no* host is valid, but it should be that *all* hosts are valid equally, isn\u0027t it?","commit_id":"f45861ced5b2f5d961d350e2ffd6ec500f765e75"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"417ec769d56b6bb78461ef9176166b664d995348","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def test_num_instances_weight_multiplier_positive_value(self):"},{"line_number":68,"context_line":"        self._do_test(num_instances_weight_multiplier\u003d2.0,"},{"line_number":69,"context_line":"                      expected_weight\u003d2.0,"},{"line_number":70,"context_line":"                      expected_host\u003d\u0027host2\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba3cc151_bf18d71f","line":69,"updated":"2015-07-10 14:55:39.000000000","message":"As said in line 54, I\u0027d like to have a more explicit test how the weightings will look like for all hosts with different (positive and negative) values for ``num_instances_weight_multiplier``. I have to admit that I don\u0027t understand why the expected_weight is 2.0. A part of the responsibility of a unit test is to document the behavior, imo, and that can be improved here.","commit_id":"f45861ced5b2f5d961d350e2ffd6ec500f765e75"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"26febf666dc7f08d4b3be29b196b9fe2dc7f1bb3","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def _get_weighed_host(self, hosts, weight_properties):"},{"line_number":32,"context_line":"        if weight_properties is not None:"},{"line_number":33,"context_line":"            self.flags(num_instances_weight_multiplier\u003dweight_properties)"},{"line_number":34,"context_line":"        return self.weight_handler.get_weighed_objects(self.weighers,"},{"line_number":35,"context_line":"            hosts, {})[0]"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"da6ed579_4be348d9","line":33,"updated":"2016-01-15 14:56:01.000000000","message":"Nit: I prefer explicitly setting this at the top of each test method, rather than hiding it down here.","commit_id":"aea1cff92cc2a832f2ddd678bbb9f65ad6100d50"}]}
