)]}'
{"doc/source/devref/filter_scheduler.rst":[{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"593fd267afef9dcd912d68c7223fc4bbfd0c0c48","unresolved":false,"context_lines":[{"line_number":285,"context_line":""},{"line_number":286,"context_line":"* |RamWeigher| Hosts are then weighted and sorted with the largest weight winning."},{"line_number":287,"context_line":"  If the ``ram_weight_inverse`` flag is set to ``True`` the host with less RAM"},{"line_number":288,"context_line":"  available will win (useful for stacking hosts, instead of spreading). If the "},{"line_number":289,"context_line":"  ``ram_weight_percentage`` flag is used, the ordering will be made regarding"},{"line_number":290,"context_line":"  the percentage of RAM available, not the absolute value."},{"line_number":291,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAASn%2F%2FzIg%3D","line":288,"updated":"2013-08-29 12:52:41.000000000","message":"Please remove trailing space","commit_id":"9f7f2e6eb102d4dff394a80168ac204e370566f9"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"95d84fbd6d775e0e06052c8adbbd25fd8a5f67f7","unresolved":false,"context_lines":[{"line_number":285,"context_line":""},{"line_number":286,"context_line":"* |RamWeigher| Hosts are then weighted and sorted with the largest weight winning."},{"line_number":287,"context_line":"  If the ``ram_weight_inverse`` flag is set to ``True`` the host with less RAM"},{"line_number":288,"context_line":"  available will win (useful for stacking hosts, instead of spreading). If the "},{"line_number":289,"context_line":"  ``ram_weight_percentage`` flag is used, the ordering will be made regarding"},{"line_number":290,"context_line":"  the percentage of RAM available, not the absolute value."},{"line_number":291,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAASn%2F%2FoDU%3D","line":288,"in_reply_to":"AAAASn%2F%2FzIg%3D","updated":"2013-09-02 09:49:49.000000000","message":"Done","commit_id":"9f7f2e6eb102d4dff394a80168ac204e370566f9"}],"etc/nova/nova.conf.sample":[{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"7bea0f9ebb61ca7df5edf8ddbb8b8c88e313ba62","unresolved":false,"context_lines":[{"line_number":1850,"context_line":"# Multiplier used for weighing ram. (floating point value)"},{"line_number":1851,"context_line":"#ram_weight_multiplier\u003d1.0"},{"line_number":1852,"context_line":""},{"line_number":1853,"context_line":"# If set to True, the % of free RAM will be used instead of"},{"line_number":1854,"context_line":"# the absolute value. (boolean value)"},{"line_number":1855,"context_line":"#ram_weight_percentage\u003dfalse"},{"line_number":1856,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":13,"id":"AAAATn%2F9awE%3D","line":1853,"updated":"2013-12-11 18:34:42.000000000","message":"lets just say percent instead of using the abrivation","commit_id":"394839bd32d1a55e067e92104bd4cb39c198505c"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"9a09e59979385200b46e0e346f9f4368c2030869","unresolved":false,"context_lines":[{"line_number":1850,"context_line":"# Multiplier used for weighing ram. (floating point value)"},{"line_number":1851,"context_line":"#ram_weight_multiplier\u003d1.0"},{"line_number":1852,"context_line":""},{"line_number":1853,"context_line":"# If set to True, the % of free RAM will be used instead of"},{"line_number":1854,"context_line":"# the absolute value. (boolean value)"},{"line_number":1855,"context_line":"#ram_weight_percentage\u003dfalse"},{"line_number":1856,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":14,"id":"AAAATn%2F9aSo%3D","line":1853,"updated":"2013-12-11 20:03:11.000000000","message":"You changed it to \"percent\" in the other place but missed this one.","commit_id":"aad81f596fe0d81e51b4414d5b6930408f2f4621"}],"nova/scheduler/weights/ram.py":[{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"7e64033dd95f83d7e80ab15a98f4f84582f7b4f5","unresolved":false,"context_lines":[{"line_number":32,"context_line":"                     default\u003d1.0,"},{"line_number":33,"context_line":"                     help\u003d\u0027Multiplier used for weighing ram.\u0027),"},{"line_number":34,"context_line":"        cfg.BoolOpt(\u0027ram_weight_percentage\u0027,"},{"line_number":35,"context_line":"                    default\u003dFalse,"},{"line_number":36,"context_line":"                    help\u003d\u0027If set to True, the % of free RAM will be used \u0027"},{"line_number":37,"context_line":"                         \u0027instead of the absolute value.\u0027),"},{"line_number":38,"context_line":"        cfg.BoolOpt(\u0027ram_weight_stacking\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAASn%2F%2FhXc%3D","line":35,"updated":"2013-09-03 20:39:38.000000000","message":"I Would prefer to have a separate weigher instead of another config option","commit_id":"b899065abbe95ba5780fd41a30981980ae490640"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"6f15bd1b214b20ab7f362d873d0da3ab9d1ef8e6","unresolved":false,"context_lines":[{"line_number":32,"context_line":"                     default\u003d1.0,"},{"line_number":33,"context_line":"                     help\u003d\u0027Multiplier used for weighing ram.\u0027),"},{"line_number":34,"context_line":"        cfg.BoolOpt(\u0027ram_weight_percentage\u0027,"},{"line_number":35,"context_line":"                    default\u003dFalse,"},{"line_number":36,"context_line":"                    help\u003d\u0027If set to True, the % of free RAM will be used \u0027"},{"line_number":37,"context_line":"                         \u0027instead of the absolute value.\u0027),"},{"line_number":38,"context_line":"        cfg.BoolOpt(\u0027ram_weight_stacking\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAASn%2F%2FYyk%3D","line":35,"in_reply_to":"AAAASn%2F%2FhXc%3D","updated":"2013-09-05 11:10:34.000000000","message":"Do you mean that we should have two weighers, or that we should have just one, percentage based? I\u0027m towards the former.","commit_id":"b899065abbe95ba5780fd41a30981980ae490640"},{"author":{"_account_id":7069,"name":"Joshua Hesketh","email":"josh@nitrotech.org","username":"jhesketh"},"change_message_id":"0d3e7efe2ddd8a8239a074bf567592f111fec874","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def _weigh_object(self, host_state, weight_properties):"},{"line_number":57,"context_line":"        \"\"\"Higher weights win.  We want spreading to be the default.\"\"\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        host_weight \u003d host_state.free_ram_mb"},{"line_number":60,"context_line":"        if CONF.ram_weight_percentage:"},{"line_number":61,"context_line":"            host_weight *\u003d 100.0 / host_state.total_usable_ram_mb"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAASn%2F%2FnU0%3D","line":58,"updated":"2013-09-02 13:21:27.000000000","message":"Unnecessary white space","commit_id":"b899065abbe95ba5780fd41a30981980ae490640"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"6f15bd1b214b20ab7f362d873d0da3ab9d1ef8e6","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def _weigh_object(self, host_state, weight_properties):"},{"line_number":57,"context_line":"        \"\"\"Higher weights win.  We want spreading to be the default.\"\"\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        host_weight \u003d host_state.free_ram_mb"},{"line_number":60,"context_line":"        if CONF.ram_weight_percentage:"},{"line_number":61,"context_line":"            host_weight *\u003d 100.0 / host_state.total_usable_ram_mb"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAASn%2F%2FYyo%3D","line":58,"in_reply_to":"AAAASn%2F%2FnU0%3D","updated":"2013-09-05 11:10:34.000000000","message":"Done","commit_id":"b899065abbe95ba5780fd41a30981980ae490640"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"7a686b0d6aee78c1941d128870907e0e4bb145b5","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"class RAMWeigher(weights.BaseHostWeigher):"},{"line_number":54,"context_line":"    minval \u003d 0"},{"line_number":55,"context_line":"    maxval \u003d 100 if CONF.ram_weight_percentage else None"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def __init__(self):"},{"line_number":58,"context_line":"        self.percentage \u003d CONF.ram_weight_percentage"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F9ZgY%3D","line":55,"updated":"2013-12-11 22:36:58.000000000","message":"Hang on a sec, I should have caught this earlier—wouldn\u0027t maxval always be None here, since the maxval is set when the class is created…which will be when the file is loaded…which is probably before the configuration is read?  What uses maxval?","commit_id":"75e8490f469d87c96736e8af96024d5ca7c92e89"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"d35b48801402be206237479f91c9526a1520fef5","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"class RAMWeigher(weights.BaseHostWeigher):"},{"line_number":54,"context_line":"    minval \u003d 0"},{"line_number":55,"context_line":"    maxval \u003d 100 if CONF.ram_weight_percentage else None"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def __init__(self):"},{"line_number":58,"context_line":"        self.percentage \u003d CONF.ram_weight_percentage"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F9W%2F4%3D","line":55,"in_reply_to":"AAAATn%2F9XH0%3D","updated":"2013-12-12 09:25:46.000000000","message":"I\u0027ve been thinking and IMHO I think that this should not be set so that the winner (i.e. the node with more free RAM) will get the highest score.\n\nIn an scenario with node1, 50% free, node2 25% free:\n\n- Without maxval the winner will be node1 with a weight of 1.0.\n- With maxval set to 100 the winner will be node1 with a weight of 0.50.\n\nI, as a deployer, prefer the 1st one, but I am open to suggestions...","commit_id":"75e8490f469d87c96736e8af96024d5ca7c92e89"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"0873c9bbefe7817718730fd5649d3e7db9f2cc88","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"class RAMWeigher(weights.BaseHostWeigher):"},{"line_number":54,"context_line":"    minval \u003d 0"},{"line_number":55,"context_line":"    maxval \u003d 100 if CONF.ram_weight_percentage else None"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def __init__(self):"},{"line_number":58,"context_line":"        self.percentage \u003d CONF.ram_weight_percentage"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F9XH0%3D","line":55,"in_reply_to":"AAAATn%2F9ZgY%3D","updated":"2013-12-12 08:57:05.000000000","message":"maxval is used by the normalization function in https://review.openstack.org/gitweb?p\u003dopenstack/nova.git;a\u003dblob;f\u003dnova/weights.py;h\u003dc8ee1cd3557445d0cb534dbea0e4dc4cb658023e;hb\u003de5ba8494374a1b049eae257fe05b10c5804049ae#l25\n\nI will change this.","commit_id":"75e8490f469d87c96736e8af96024d5ca7c92e89"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"628f19c42dd1c33507bbf9ea6d065d61f903e8c8","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"class RAMWeigher(weights.BaseHostWeigher):"},{"line_number":54,"context_line":"    minval \u003d 0"},{"line_number":55,"context_line":"    maxval \u003d None"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def __init__(self):"},{"line_number":58,"context_line":"        self.percentage \u003d CONF.ram_weight_percentage"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F9UvY%3D","line":55,"updated":"2013-12-12 16:51:28.000000000","message":"So, wouldn\u0027t the thing to do be to eliminate the maxval attribute entirely?  Just asking, but that seems consistent with what was here before…","commit_id":"55d50d7d1c049f181918d2574029306efa2fd83f"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"f7e5b90e1b60175e511f8baab22182463a465967","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"class RAMWeigher(weights.BaseHostWeigher):"},{"line_number":54,"context_line":"    minval \u003d 0"},{"line_number":55,"context_line":"    maxval \u003d None"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def __init__(self):"},{"line_number":58,"context_line":"        self.percentage \u003d CONF.ram_weight_percentage"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2F3wU%3D","line":55,"in_reply_to":"AAAATn%2F9UvY%3D","updated":"2014-01-07 12:14:50.000000000","message":"Yes, indeed. It can be removed safely.","commit_id":"55d50d7d1c049f181918d2574029306efa2fd83f"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"061986db6b9196f13e9703d3cfc115d331b7b1b9","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    minval \u003d 0"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def __init__(self):"},{"line_number":57,"context_line":"        self.percentage \u003d CONF.ram_weight_percentage"},{"line_number":58,"context_line":"        self.multiplier \u003d CONF.ram_weight_multiplier"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        if self.multiplier \u003c 0:"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAUH%2F%2F26E%3D","line":57,"updated":"2014-01-07 15:58:09.000000000","message":"Should we assgin maxval\u003d100 when self.percentage\u003dTrue?\nBecause if maxval\u003d\u003dNone, it will choose max value based on percentage of ram usage that non-relevant.","commit_id":"9a63aae61f71efe7c947e0b33b4e564c50d56223"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"99c36ac0f213ef7fc283013e6462d9660d8301d1","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    minval \u003d 0"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def __init__(self):"},{"line_number":57,"context_line":"        self.percentage \u003d CONF.ram_weight_percentage"},{"line_number":58,"context_line":"        self.multiplier \u003d CONF.ram_weight_multiplier"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        if self.multiplier \u003c 0:"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAUH%2F%2F2cU%3D","line":57,"in_reply_to":"AAAAUH%2F%2F26E%3D","updated":"2014-01-07 17:23:01.000000000","message":"It depends on the behavior that you want to get.\n\nIf you set maxval to 100, one node with 50% and another with 25% of free RAM will get a normalized weight of 0.50 and 0.25 respectively.\n\nIf you don\u0027t set it, the same two nodes will get a normalized weight of 1.0 and 0.50 respectively (since the normalization function will get 50% as the maximum value).\n\nIn this particular weigher and thinking as an operator, I\u0027d prefer the second case.","commit_id":"9a63aae61f71efe7c947e0b33b4e564c50d56223"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"b35b0f6b31cf2da7bbc108cddab5cf04e447aca7","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    minval \u003d 0"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def __init__(self):"},{"line_number":57,"context_line":"        self.percentage \u003d CONF.ram_weight_percentage"},{"line_number":58,"context_line":"        self.multiplier \u003d CONF.ram_weight_multiplier"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        if self.multiplier \u003c 0:"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAUH%2F%2F0p8%3D","line":57,"in_reply_to":"AAAAUH%2F%2F2cU%3D","updated":"2014-01-08 02:41:43.000000000","message":"thanks for the explanation.","commit_id":"9a63aae61f71efe7c947e0b33b4e564c50d56223"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"7ff21e413405e9f289c499242c55fe1df3ea7b3b","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        \"\"\"Higher weights win.  We want spreading to be the default.\"\"\""},{"line_number":75,"context_line":"        host_weight \u003d host_state.free_ram_mb"},{"line_number":76,"context_line":"        if self.percentage:"},{"line_number":77,"context_line":"            host_weight *\u003d 100.0 / host_state.total_usable_ram_mb"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        if self.stacking:"},{"line_number":80,"context_line":"            host_weight \u003d -host_weight"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAUH%2F%2F2ZE%3D","line":77,"updated":"2014-01-07 17:33:26.000000000","message":"wait... wouldn\u0027t making total_usable_ram_mb the denominator make this fraction get smaller as the amount of usable ram increases?","commit_id":"52ae3617db383e5926d4e1e75b5cf4f6ff0a817e"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"a7c2e57b995f0b225fcbbc66ed7b6c38e58171fe","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        \"\"\"Higher weights win.  We want spreading to be the default.\"\"\""},{"line_number":75,"context_line":"        host_weight \u003d host_state.free_ram_mb"},{"line_number":76,"context_line":"        if self.percentage:"},{"line_number":77,"context_line":"            host_weight *\u003d 100.0 / host_state.total_usable_ram_mb"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        if self.stacking:"},{"line_number":80,"context_line":"            host_weight \u003d -host_weight"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAUH%2F%2Fsu8%3D","line":77,"in_reply_to":"AAAAUH%2F%2F13U%3D","updated":"2014-01-09 13:40:40.000000000","message":"Ah, this is why I shouldn\u0027t review tired. Here\u0027s why I was confused. You assign host_weight to the free_ram_mb *then* you use that in a *\u003d assignment.\n\n host_weight \u003d host_state.free_ram_mb / host_state.total_usable_ram_mb\n host_weight *\u003d 100.0\n\nwould have been uglier but it wouldn\u0027t have confused me in the first examination.","commit_id":"52ae3617db383e5926d4e1e75b5cf4f6ff0a817e"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"1a62983a958f052e8eb0114364f0a534c7560fe4","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        \"\"\"Higher weights win.  We want spreading to be the default.\"\"\""},{"line_number":75,"context_line":"        host_weight \u003d host_state.free_ram_mb"},{"line_number":76,"context_line":"        if self.percentage:"},{"line_number":77,"context_line":"            host_weight *\u003d 100.0 / host_state.total_usable_ram_mb"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        if self.stacking:"},{"line_number":80,"context_line":"            host_weight \u003d -host_weight"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAUH%2F%2F13U%3D","line":77,"in_reply_to":"AAAAUH%2F%2F2ZE%3D","updated":"2014-01-07 20:12:19.000000000","message":"Yes, but this is correct unless I am confused about the meaning of total_usable_ram_mb. If I am not wrong, total_usable_ram_mb is the amount of memory that might be usable by the hypervisor, not the actual free memory, isn\u0027t it? Therefore: \n\n- A node with 256 of free_ram_mb from a 512 of total_usable_ram_mb will get 0.50.\n- A node with 256 of free_ram_mb from a 1024 of total_usable_ram_mb will get 0.25.\n\nSince this change introduces the weight of objects regarding the percentage of free RAM I think this is correct.","commit_id":"52ae3617db383e5926d4e1e75b5cf4f6ff0a817e"}],"nova/tests/scheduler/test_weights.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"d05b8a0083314c01dceba95be56e4a19b14ec99e","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        weights \u003d self._get_weighed_hosts(hostinfo_list)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        weighed_host \u003d weights[0]"},{"line_number":170,"context_line":"        self.assertEqual(weighed_host.weight, 1)"},{"line_number":171,"context_line":"        self.assertEqual(weighed_host.obj.host, \"host4\")"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        # and negativehost should lose"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2F%2Bzc%3D","line":170,"updated":"2014-01-05 11:03:15.000000000","message":"assertEqual(expected, observed)\n\nAll of the following assert should be updated","commit_id":"55d50d7d1c049f181918d2574029306efa2fd83f"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"f7e5b90e1b60175e511f8baab22182463a465967","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        weights \u003d self._get_weighed_hosts(hostinfo_list)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        weighed_host \u003d weights[0]"},{"line_number":170,"context_line":"        self.assertEqual(weighed_host.weight, 1)"},{"line_number":171,"context_line":"        self.assertEqual(weighed_host.obj.host, \"host4\")"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        # and negativehost should lose"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2F3vc%3D","line":170,"in_reply_to":"AAAAUH%2F%2F%2Bzc%3D","updated":"2014-01-07 12:14:50.000000000","message":"Hi Jay.\n\nAlthough I agree, I think it is better to change it separately (there are a lot of them in this file). If you agree, I will submit another change to address your comment and leave this as it is right now.","commit_id":"55d50d7d1c049f181918d2574029306efa2fd83f"}]}
