)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Change in host_manager.py to be able to precise which weighers to be used."},{"line_number":19,"context_line":"Add NbHostWeigher which uses number of active instances as note."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"TODO: Provide UnitTest"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I5f3f557ea9b0adbd08116e6b15e7206bac602b18"},{"line_number":24,"context_line":"Implements: blueprint policy-based-scheduler"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F9cqw%3D","line":21,"updated":"2013-12-11 13:14:58.000000000","message":"DocImpact","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"}],"etc/nova/nova.conf.sample":[{"author":{"_account_id":1812,"name":"p-draigbrady","email":"P@draigBrady.com","username":"p-draigbrady"},"change_message_id":"9fab626804d004a66dfc7b0016c33a9a7055ec37","unresolved":false,"context_lines":[{"line_number":1830,"context_line":"# Options defined in nova.scheduler.pbsm"},{"line_number":1831,"context_line":"#"},{"line_number":1832,"context_line":""},{"line_number":1833,"context_line":"# Interval time for updating the pluginsPlugins are"},{"line_number":1834,"context_line":"# added/reloaded/removed at message processing (integer value)"},{"line_number":1835,"context_line":"#scheduler_policy_plugin_update_interval\u003d60"},{"line_number":1836,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F9cnM%3D","line":1833,"updated":"2013-12-11 13:06:59.000000000","message":"pluginsPlugins?","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":1830,"context_line":"# Options defined in nova.scheduler.pbsm"},{"line_number":1831,"context_line":"#"},{"line_number":1832,"context_line":""},{"line_number":1833,"context_line":"# Interval time for updating the pluginsPlugins are"},{"line_number":1834,"context_line":"# added/reloaded/removed at message processing (integer value)"},{"line_number":1835,"context_line":"#scheduler_policy_plugin_update_interval\u003d60"},{"line_number":1836,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F9bgk%3D","line":1833,"in_reply_to":"AAAATn%2F9cnM%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"}],"etc/nova/scheduling_policy.json.sample":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"// IMPORTANT: REMOVE ALL THE COMMENTS before using this sample"},{"line_number":2,"context_line":"// since JSON does not support comments"},{"line_number":3,"context_line":"// You can precise rules for a particular tenant by using Tenant_ID  in \"tenant_rules\""},{"line_number":4,"context_line":"// You can precise your policy for an availability-zone, an aggregate, or the whole "}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F9cmk%3D","line":1,"updated":"2013-12-11 13:14:58.000000000","message":"What about using # for the comments?","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"// IMPORTANT: REMOVE ALL THE COMMENTS before using this sample"},{"line_number":2,"context_line":"// since JSON does not support comments"},{"line_number":3,"context_line":"// You can precise rules for a particular tenant by using Tenant_ID  in \"tenant_rules\""},{"line_number":4,"context_line":"// You can precise your policy for an availability-zone, an aggregate, or the whole "}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F9cqE%3D","line":1,"updated":"2013-12-11 12:58:29.000000000","message":"i wodner if this is the right place for this example. maybe it should be with the filter documentation - https://github.com/openstack/nova/tree/master/doc/source/devref","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"// IMPORTANT: REMOVE ALL THE COMMENTS before using this sample"},{"line_number":2,"context_line":"// since JSON does not support comments"},{"line_number":3,"context_line":"// You can precise rules for a particular tenant by using Tenant_ID  in \"tenant_rules\""},{"line_number":4,"context_line":"// You can precise your policy for an availability-zone, an aggregate, or the whole "}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F9cUQ%3D","line":1,"in_reply_to":"AAAATn%2F9cmk%3D","updated":"2013-12-12 09:38:04.000000000","message":"Python does not support comments, with // or #. This file will be moved to doc folder","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"// IMPORTANT: REMOVE ALL THE COMMENTS before using this sample"},{"line_number":2,"context_line":"// since JSON does not support comments"},{"line_number":3,"context_line":"// You can precise rules for a particular tenant by using Tenant_ID  in \"tenant_rules\""},{"line_number":4,"context_line":"// You can precise your policy for an availability-zone, an aggregate, or the whole "}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F9cR8%3D","line":1,"in_reply_to":"AAAATn%2F9cqE%3D","updated":"2013-12-12 09:38:04.000000000","message":"Good idea. Will do.","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"// IMPORTANT: REMOVE ALL THE COMMENTS before using this sample"},{"line_number":2,"context_line":"// since JSON does not support comments"},{"line_number":3,"context_line":"// You can precise rules for a particular tenant by using Tenant_ID  in \"tenant_rules\""},{"line_number":4,"context_line":"// You can precise your policy for an availability-zone, an aggregate, or the whole "},{"line_number":5,"context_line":"// infrastructure. For instance:"},{"line_number":6,"context_line":"//    \"target\": {\"az\":\"nova\"} : use availability-zone nova"},{"line_number":7,"context_line":"//    \"target\": {\"aggregate\":\"some_aggregate\"} : use aggregate \u0027some_aggregate\u0027"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F9cqs%3D","line":4,"updated":"2013-12-11 12:58:29.000000000","message":"whitespace","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"// IMPORTANT: REMOVE ALL THE COMMENTS before using this sample"},{"line_number":2,"context_line":"// since JSON does not support comments"},{"line_number":3,"context_line":"// You can precise rules for a particular tenant by using Tenant_ID  in \"tenant_rules\""},{"line_number":4,"context_line":"// You can precise your policy for an availability-zone, an aggregate, or the whole "},{"line_number":5,"context_line":"// infrastructure. For instance:"},{"line_number":6,"context_line":"//    \"target\": {\"az\":\"nova\"} : use availability-zone nova"},{"line_number":7,"context_line":"//    \"target\": {\"aggregate\":\"some_aggregate\"} : use aggregate \u0027some_aggregate\u0027"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F9cQQ%3D","line":4,"in_reply_to":"AAAATn%2F9cqs%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":19,"context_line":"        \"effect\" : {\"availability_zone\": \"nova\"},"},{"line_number":20,"context_line":"        \"condition\": \"all\""},{"line_number":21,"context_line":"    },"},{"line_number":22,"context_line":"    // Effect: always create VMs in aggregates with metadata \"service_class\": \"gold\" "},{"line_number":23,"context_line":"    // for tenant \"8ed958f71dcb4fb29d10140690a21ace\""},{"line_number":24,"context_line":"    \"8ed958f71dcb4fb29d10140690a21ace\": {"},{"line_number":25,"context_line":"        \"effect\" : {\"aggregate_metadata\": {\"service_class\": \"gold\"}},"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F9cqk%3D","line":22,"updated":"2013-12-11 12:58:29.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":19,"context_line":"        \"effect\" : {\"availability_zone\": \"nova\"},"},{"line_number":20,"context_line":"        \"condition\": \"all\""},{"line_number":21,"context_line":"    },"},{"line_number":22,"context_line":"    // Effect: always create VMs in aggregates with metadata \"service_class\": \"gold\" "},{"line_number":23,"context_line":"    // for tenant \"8ed958f71dcb4fb29d10140690a21ace\""},{"line_number":24,"context_line":"    \"8ed958f71dcb4fb29d10140690a21ace\": {"},{"line_number":25,"context_line":"        \"effect\" : {\"aggregate_metadata\": {\"service_class\": \"gold\"}},"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F9cQI%3D","line":22,"in_reply_to":"AAAATn%2F9cqk%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"}],"nova/scheduler/filters/ram_filter.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def _get_ram_allocation_ratio(self, host_state, filter_properties):"},{"line_number":72,"context_line":"        #If ram_ratio is not precised in filter_properties, use default value"},{"line_number":73,"context_line":"        if \u0027pbsm_ram_ratio\u0027 in filter_properties:"},{"line_number":74,"context_line":"            return filter_properties[\u0027pbsm_ram_ratio\u0027]"},{"line_number":75,"context_line":"        else:"},{"line_number":76,"context_line":"            return CONF.ram_allocation_ratio"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cqA%3D","line":73,"updated":"2013-12-11 12:58:29.000000000","message":"why not filter_properties.get(\u0027pbsm_ram_ratio\u0027)?","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def _get_ram_allocation_ratio(self, host_state, filter_properties):"},{"line_number":72,"context_line":"        #If ram_ratio is not precised in filter_properties, use default value"},{"line_number":73,"context_line":"        if \u0027pbsm_ram_ratio\u0027 in filter_properties:"},{"line_number":74,"context_line":"            return filter_properties[\u0027pbsm_ram_ratio\u0027]"},{"line_number":75,"context_line":"        else:"},{"line_number":76,"context_line":"            return CONF.ram_allocation_ratio"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cQU%3D","line":73,"in_reply_to":"AAAATn%2F9cqA%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    \"\"\"Ram Filter with over subscription flag.\"\"\""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def _get_ram_allocation_ratio(self, host_state, filter_properties):"},{"line_number":72,"context_line":"        #If ram_ratio is not precised in filter_properties, use default value"},{"line_number":73,"context_line":"        return filter_properties.get(\u0027pbsm_ram_ratio\u0027,"},{"line_number":74,"context_line":"                                     CONF.ram_allocation_ratio)"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9uz8%3D","line":72,"updated":"2014-02-04 16:31:39.000000000","message":"@David: s/precised/specified\n@Yathi: no config for PBSM. It\u0027s just a parameter that the plugin can put into filter_properties, not in CONF.","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    \"\"\"Ram Filter with over subscription flag.\"\"\""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def _get_ram_allocation_ratio(self, host_state, filter_properties):"},{"line_number":72,"context_line":"        #If ram_ratio is not precised in filter_properties, use default value"},{"line_number":73,"context_line":"        return filter_properties.get(\u0027pbsm_ram_ratio\u0027,"},{"line_number":74,"context_line":"                                     CONF.ram_allocation_ratio)"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F97uU%3D","line":72,"updated":"2014-01-31 22:28:41.000000000","message":"I\u0027m not sure what precised means.  Is there a better word?","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8514,"name":"Yathiraj Udupi","email":"yudupi@cisco.com","username":"yudupi"},"change_message_id":"fa1488de898f23d59644235709f0f61522ece3db","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    \"\"\"Ram Filter with over subscription flag.\"\"\""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def _get_ram_allocation_ratio(self, host_state, filter_properties):"},{"line_number":72,"context_line":"        #If ram_ratio is not precised in filter_properties, use default value"},{"line_number":73,"context_line":"        return filter_properties.get(\u0027pbsm_ram_ratio\u0027,"},{"line_number":74,"context_line":"                                     CONF.ram_allocation_ratio)"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9yCE%3D","line":72,"in_reply_to":"AAAAUH%2F97uU%3D","updated":"2014-02-04 00:51:55.000000000","message":"Do we need another config for pbsm ?","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"}],"nova/scheduler/host_manager.py":[{"author":{"_account_id":7238,"name":"Inbar Shapira","email":"inbar_shapira@il.ibm.com","username":"Inbar"},"change_message_id":"1086109513bf780e74c1293324dc2d7bb25197ef","unresolved":false,"context_lines":[{"line_number":456,"context_line":"                bad_weighers.append(weigher_name)"},{"line_number":457,"context_line":"        if bad_weighers:"},{"line_number":458,"context_line":"            msg \u003d \", \".join(bad_weighers)"},{"line_number":459,"context_line":"            raise exception.SchedulerHostFilterNotFound(weigher_name\u003dmsg)"},{"line_number":460,"context_line":"        return good_weighers"},{"line_number":461,"context_line":""},{"line_number":462,"context_line":"    def get_weighed_hosts(self, hosts, weight_properties,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9bpI%3D","line":459,"updated":"2013-12-11 19:14:31.000000000","message":"Should be new exception XXXWeighterNotFound","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":456,"context_line":"                bad_weighers.append(weigher_name)"},{"line_number":457,"context_line":"        if bad_weighers:"},{"line_number":458,"context_line":"            msg \u003d \", \".join(bad_weighers)"},{"line_number":459,"context_line":"            raise exception.SchedulerHostFilterNotFound(weigher_name\u003dmsg)"},{"line_number":460,"context_line":"        return good_weighers"},{"line_number":461,"context_line":""},{"line_number":462,"context_line":"    def get_weighed_hosts(self, hosts, weight_properties,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9XBg%3D","line":459,"in_reply_to":"AAAATn%2F9bpI%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":458,"context_line":""},{"line_number":459,"context_line":"    def get_weighed_hosts(self, hosts, weight_properties,"},{"line_number":460,"context_line":"                          weight_class_names\u003dNone):"},{"line_number":461,"context_line":"        \"\"\"Weigh the hosts. Caller can precise which weighers to use."},{"line_number":462,"context_line":"        If weight_class_names is not set, then all weighers will be used."},{"line_number":463,"context_line":"        \"\"\""},{"line_number":464,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9uxw%3D","line":461,"updated":"2014-02-04 16:31:39.000000000","message":"yes","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8514,"name":"Yathiraj Udupi","email":"yudupi@cisco.com","username":"yudupi"},"change_message_id":"fa1488de898f23d59644235709f0f61522ece3db","unresolved":false,"context_lines":[{"line_number":458,"context_line":""},{"line_number":459,"context_line":"    def get_weighed_hosts(self, hosts, weight_properties,"},{"line_number":460,"context_line":"                          weight_class_names\u003dNone):"},{"line_number":461,"context_line":"        \"\"\"Weigh the hosts. Caller can precise which weighers to use."},{"line_number":462,"context_line":"        If weight_class_names is not set, then all weighers will be used."},{"line_number":463,"context_line":"        \"\"\""},{"line_number":464,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9yTQ%3D","line":461,"updated":"2014-02-04 00:51:55.000000000","message":"you mean \u0027precisely specify\u0027 here I think.","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"}],"nova/scheduler/pbsm.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from nova.scheduler import policy_plugins as plugin_module"},{"line_number":20,"context_line":"from nova.scheduler.policy_repo import PolicyRepo"},{"line_number":21,"context_line":"from nova.scheduler.weights import WeighedHost"},{"line_number":22,"context_line":"from oslo.config import cfg"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cps%3D","line":22,"updated":"2013-12-11 12:58:29.000000000","message":"this is a third part include and should be above this section","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from nova.scheduler import policy_plugins as plugin_module"},{"line_number":20,"context_line":"from nova.scheduler.policy_repo import PolicyRepo"},{"line_number":21,"context_line":"from nova.scheduler.weights import WeighedHost"},{"line_number":22,"context_line":"from oslo.config import cfg"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cOs%3D","line":22,"in_reply_to":"AAAATn%2F9cps%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1812,"name":"p-draigbrady","email":"P@draigBrady.com","username":"p-draigbrady"},"change_message_id":"9fab626804d004a66dfc7b0016c33a9a7055ec37","unresolved":false,"context_lines":[{"line_number":28,"context_line":"filter_scheduler_opts \u003d ["},{"line_number":29,"context_line":"    cfg.IntOpt(\u0027scheduler_policy_plugin_update_interval\u0027,"},{"line_number":30,"context_line":"               default\u003d60,"},{"line_number":31,"context_line":"               help\u003d\u0027Interval time for updating the plugins\u0027"},{"line_number":32,"context_line":"                    \u0027Plugins are added/reloaded/removed at message processing\u0027)"},{"line_number":33,"context_line":"]"},{"line_number":34,"context_line":"CONF.register_opts(filter_scheduler_opts)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cmU%3D","line":31,"updated":"2013-12-11 13:06:59.000000000","message":"Missing \". \" between plugins","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":28,"context_line":"filter_scheduler_opts \u003d ["},{"line_number":29,"context_line":"    cfg.IntOpt(\u0027scheduler_policy_plugin_update_interval\u0027,"},{"line_number":30,"context_line":"               default\u003d60,"},{"line_number":31,"context_line":"               help\u003d\u0027Interval time for updating the plugins\u0027"},{"line_number":32,"context_line":"                    \u0027Plugins are added/reloaded/removed at message processing\u0027)"},{"line_number":33,"context_line":"]"},{"line_number":34,"context_line":"CONF.register_opts(filter_scheduler_opts)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cOw%3D","line":31,"in_reply_to":"AAAATn%2F9cmU%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            if (target \u003d\u003d \"all\") or (target \u003d\u003d \"tenant\"):"},{"line_number":56,"context_line":"                return hostnames"},{"line_number":57,"context_line":"        if not isinstance(target, dict):"},{"line_number":58,"context_line":"            LOG.debug(\"PolicyBasedScheduler: Invalid target.Ignored.\")"},{"line_number":59,"context_line":"            return []"},{"line_number":60,"context_line":"        context \u003d filter_properties[\u0027context\u0027].elevated()"},{"line_number":61,"context_line":"        targeted_hostnames \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9clk%3D","line":58,"updated":"2013-12-11 13:14:58.000000000","message":"I18n should be considered here.","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            if (target \u003d\u003d \"all\") or (target \u003d\u003d \"tenant\"):"},{"line_number":56,"context_line":"                return hostnames"},{"line_number":57,"context_line":"        if not isinstance(target, dict):"},{"line_number":58,"context_line":"            LOG.debug(\"PolicyBasedScheduler: Invalid target.Ignored.\")"},{"line_number":59,"context_line":"            return []"},{"line_number":60,"context_line":"        context \u003d filter_properties[\u0027context\u0027].elevated()"},{"line_number":61,"context_line":"        targeted_hostnames \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cMU%3D","line":58,"in_reply_to":"AAAATn%2F9clk%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                                                        instance_uuids,"},{"line_number":115,"context_line":"                                                        index)"},{"line_number":116,"context_line":"            # Step1: Normalize the retained_hosts so that weights are in [0-1]"},{"line_number":117,"context_line":"            LOG.debug(\"Normalize the retained_hosts\")"},{"line_number":118,"context_line":"            self.normalize(retained_hosts)"},{"line_number":119,"context_line":"            return retained_hosts"},{"line_number":120,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9clc%3D","line":117,"updated":"2013-12-11 13:14:58.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                                                        instance_uuids,"},{"line_number":115,"context_line":"                                                        index)"},{"line_number":116,"context_line":"            # Step1: Normalize the retained_hosts so that weights are in [0-1]"},{"line_number":117,"context_line":"            LOG.debug(\"Normalize the retained_hosts\")"},{"line_number":118,"context_line":"            self.normalize(retained_hosts)"},{"line_number":119,"context_line":"            return retained_hosts"},{"line_number":120,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cMM%3D","line":117,"in_reply_to":"AAAATn%2F9clc%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            return retained_hosts"},{"line_number":120,"context_line":"        else:"},{"line_number":121,"context_line":"            # If the plugin is not installed, return all hosts with 0 weight"},{"line_number":122,"context_line":"            LOG.debug(\"Key \u0027%s\u0027 does not belong to a valid effect plugin.\""},{"line_number":123,"context_line":"                          % key)"},{"line_number":124,"context_line":"            return [WeighedHost(wh.obj, 0.0) for wh in weighed_hosts]"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9clY%3D","line":122,"updated":"2013-12-11 13:14:58.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            return retained_hosts"},{"line_number":120,"context_line":"        else:"},{"line_number":121,"context_line":"            # If the plugin is not installed, return all hosts with 0 weight"},{"line_number":122,"context_line":"            LOG.debug(\"Key \u0027%s\u0027 does not belong to a valid effect plugin.\""},{"line_number":123,"context_line":"                          % key)"},{"line_number":124,"context_line":"            return [WeighedHost(wh.obj, 0.0) for wh in weighed_hosts]"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cME%3D","line":122,"in_reply_to":"AAAATn%2F9clY%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                if key in self.condition_plugins:"},{"line_number":140,"context_line":"                    if not self.condition_plugins[key].\\"},{"line_number":141,"context_line":"                           check_condition(parameters, filter_properties):"},{"line_number":142,"context_line":"                        LOG.debug(\"Condition \u0027%s\u0027 unsatisfied. Ignore effect.\""},{"line_number":143,"context_line":"                                      % key)"},{"line_number":144,"context_line":"                        return False"},{"line_number":145,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9clU%3D","line":142,"updated":"2013-12-11 13:14:58.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                if key in self.condition_plugins:"},{"line_number":140,"context_line":"                    if not self.condition_plugins[key].\\"},{"line_number":141,"context_line":"                           check_condition(parameters, filter_properties):"},{"line_number":142,"context_line":"                        LOG.debug(\"Condition \u0027%s\u0027 unsatisfied. Ignore effect.\""},{"line_number":143,"context_line":"                                      % key)"},{"line_number":144,"context_line":"                        return False"},{"line_number":145,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cMA%3D","line":142,"in_reply_to":"AAAATn%2F9clU%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                                      % key)"},{"line_number":144,"context_line":"                        return False"},{"line_number":145,"context_line":"                else:"},{"line_number":146,"context_line":"                    LOG.debug(\"Unknown condition: \u0027%s\u0027. Ignore effect.\" % key)"},{"line_number":147,"context_line":"                    return False"},{"line_number":148,"context_line":"            return True"},{"line_number":149,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9clM%3D","line":146,"updated":"2013-12-11 13:14:58.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                                      % key)"},{"line_number":144,"context_line":"                        return False"},{"line_number":145,"context_line":"                else:"},{"line_number":146,"context_line":"                    LOG.debug(\"Unknown condition: \u0027%s\u0027. Ignore effect.\" % key)"},{"line_number":147,"context_line":"                    return False"},{"line_number":148,"context_line":"            return True"},{"line_number":149,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cL8%3D","line":146,"in_reply_to":"AAAATn%2F9clM%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        return False"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def apply_policies(self, hosts, filter_properties,"},{"line_number":152,"context_line":"                             instance_uuids\u003dNone, index\u003dNone):"},{"line_number":153,"context_line":"        \"\"\"Apply policies."},{"line_number":154,"context_line":"        hosts: list of host_states"},{"line_number":155,"context_line":"        filter_properties: dictionary"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9ck8%3D","line":152,"updated":"2013-12-11 13:14:58.000000000","message":"Suggest keep align with self","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        return False"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def apply_policies(self, hosts, filter_properties,"},{"line_number":152,"context_line":"                             instance_uuids\u003dNone, index\u003dNone):"},{"line_number":153,"context_line":"        \"\"\"Apply policies."},{"line_number":154,"context_line":"        hosts: list of host_states"},{"line_number":155,"context_line":"        filter_properties: dictionary"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cLo%3D","line":152,"in_reply_to":"AAAATn%2F9ck8%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        Method of computation:"},{"line_number":164,"context_line":"        - Step1: normalize each rule independantly from others"},{"line_number":165,"context_line":"        - Step2: apply the coefficient of each rule in each target"},{"line_number":166,"context_line":"        - Stpe3: summ up all the computed weights for the current target"},{"line_number":167,"context_line":"        - Step4: normalize the computed weights for the current target"},{"line_number":168,"context_line":"        - Step5: average the weight of a host by number of times it is weighed"},{"line_number":169,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cpY%3D","line":166,"updated":"2013-12-11 12:58:29.000000000","message":"summ  \u003d\u003e sum","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        Method of computation:"},{"line_number":164,"context_line":"        - Step1: normalize each rule independantly from others"},{"line_number":165,"context_line":"        - Step2: apply the coefficient of each rule in each target"},{"line_number":166,"context_line":"        - Stpe3: summ up all the computed weights for the current target"},{"line_number":167,"context_line":"        - Step4: normalize the computed weights for the current target"},{"line_number":168,"context_line":"        - Step5: average the weight of a host by number of times it is weighed"},{"line_number":169,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cFQ%3D","line":166,"in_reply_to":"AAAATn%2F9cpY%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        LOG.debug(\"apply_policies - Starts with %d weighed hosts.\""},{"line_number":183,"context_line":"                      % len(weighed_hosts))"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        # rule_groups \u003d"},{"line_number":186,"context_line":"        #   [{"},{"line_number":187,"context_line":"        #      \u0027target\u0027: \u003ctarget\u003e,"},{"line_number":188,"context_line":"        #      \u0027rules\u0027: ["}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cpo%3D","line":185,"updated":"2013-12-11 12:58:29.000000000","message":"can you please add a explanation here","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        LOG.debug(\"apply_policies - Starts with %d weighed hosts.\""},{"line_number":183,"context_line":"                      % len(weighed_hosts))"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        # rule_groups \u003d"},{"line_number":186,"context_line":"        #   [{"},{"line_number":187,"context_line":"        #      \u0027target\u0027: \u003ctarget\u003e,"},{"line_number":188,"context_line":"        #      \u0027rules\u0027: ["}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cEU%3D","line":185,"in_reply_to":"AAAATn%2F9cpo%3D","updated":"2013-12-12 09:38:04.000000000","message":"This part is added to facilitate the review. It shows the structure of the \u0027rule_groups\u0027 variable.","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":211,"context_line":"                                \u0027rules\u0027: tenant_rules[tenant_id]})"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        rule_groups.extend(infra_rules)"},{"line_number":214,"context_line":"        LOG.debug(\" apply_policies - Found rules : %s\" % rule_groups)"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        # Apply rules"},{"line_number":217,"context_line":"        current_hostnames \u003d set(hostnames)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9ckw%3D","line":214,"updated":"2013-12-11 13:14:58.000000000","message":"I18N and no blank space at the beginning","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":211,"context_line":"                                \u0027rules\u0027: tenant_rules[tenant_id]})"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        rule_groups.extend(infra_rules)"},{"line_number":214,"context_line":"        LOG.debug(\" apply_policies - Found rules : %s\" % rule_groups)"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        # Apply rules"},{"line_number":217,"context_line":"        current_hostnames \u003d set(hostnames)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cCw%3D","line":214,"in_reply_to":"AAAATn%2F9ckw%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":219,"context_line":"            # Select hosts from the rules\u0027 target"},{"line_number":220,"context_line":"            target \u003d rule_group[\u0027target\u0027]"},{"line_number":221,"context_line":"            LOG.debug(\"apply_policies - Target: %s - Rules: %s\""},{"line_number":222,"context_line":"                          % (target, rule_group[\u0027rules\u0027]))"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"            # First find all hosts in this target"},{"line_number":225,"context_line":"            LOG.debug(\"apply_policies - Processing %d host(s) \""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9ckg%3D","line":222,"updated":"2013-12-11 13:14:58.000000000","message":"I18N and keep align","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":219,"context_line":"            # Select hosts from the rules\u0027 target"},{"line_number":220,"context_line":"            target \u003d rule_group[\u0027target\u0027]"},{"line_number":221,"context_line":"            LOG.debug(\"apply_policies - Target: %s - Rules: %s\""},{"line_number":222,"context_line":"                          % (target, rule_group[\u0027rules\u0027]))"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"            # First find all hosts in this target"},{"line_number":225,"context_line":"            LOG.debug(\"apply_policies - Processing %d host(s) \""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cCs%3D","line":222,"in_reply_to":"AAAATn%2F9ckg%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        if not hostnames:"},{"line_number":43,"context_line":"            return []"},{"line_number":44,"context_line":"        if isinstance(target, (str, unicode)):"},{"line_number":45,"context_line":"            if (target \u003d\u003d \"all\") or (target \u003d\u003d \"tenant\"):"},{"line_number":46,"context_line":"                return hostnames"},{"line_number":47,"context_line":"        if not isinstance(target, dict):"},{"line_number":48,"context_line":"            LOG.debug(_(\"PolicyBasedScheduler: Invalid target.Ignored.\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9uwg%3D","line":45,"updated":"2014-02-04 16:31:39.000000000","message":"tenant \u003d rules effecting a particular tenant on all computes\nall \u003d rules effecting all tenants on all computes\nso on different tenants we will have different \"tenant\" rules, but the \"all\" rules are always present.","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8514,"name":"Yathiraj Udupi","email":"yudupi@cisco.com","username":"yudupi"},"change_message_id":"fa1488de898f23d59644235709f0f61522ece3db","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        if not hostnames:"},{"line_number":43,"context_line":"            return []"},{"line_number":44,"context_line":"        if isinstance(target, (str, unicode)):"},{"line_number":45,"context_line":"            if (target \u003d\u003d \"all\") or (target \u003d\u003d \"tenant\"):"},{"line_number":46,"context_line":"                return hostnames"},{"line_number":47,"context_line":"        if not isinstance(target, dict):"},{"line_number":48,"context_line":"            LOG.debug(_(\"PolicyBasedScheduler: Invalid target.Ignored.\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9ySY%3D","line":45,"updated":"2014-02-04 00:51:55.000000000","message":"why support \"tenant\" when \"all\" means all hosts","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8514,"name":"Yathiraj Udupi","email":"yudupi@cisco.com","username":"yudupi"},"change_message_id":"fa1488de898f23d59644235709f0f61522ece3db","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            for aggr in aggrs:"},{"line_number":62,"context_line":"                if aggr.availability_zone \u003d\u003d target[\u0027az\u0027]:"},{"line_number":63,"context_line":"                    db_hostnames.extend(aggr.hosts)"},{"line_number":64,"context_line":"        return list(set(hostnames).intersection(set(db_hostnames)))"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def normalize(self, weighed_hosts):"},{"line_number":67,"context_line":"        \"\"\"normalize(weighed_hosts)."}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9yR0%3D","line":64,"updated":"2014-02-04 00:51:55.000000000","message":"Why not support a list of hostnames, or a single hostname specified in the target?","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            for aggr in aggrs:"},{"line_number":62,"context_line":"                if aggr.availability_zone \u003d\u003d target[\u0027az\u0027]:"},{"line_number":63,"context_line":"                    db_hostnames.extend(aggr.hosts)"},{"line_number":64,"context_line":"        return list(set(hostnames).intersection(set(db_hostnames)))"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def normalize(self, weighed_hosts):"},{"line_number":67,"context_line":"        \"\"\"normalize(weighed_hosts)."}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9uts%3D","line":64,"in_reply_to":"AAAAUH%2F9yR0%3D","updated":"2014-02-04 16:31:39.000000000","message":"You mean a target in which the hostnames are written in plain text like \u0027forced_hosts\u0027 ? I guess it can be done easily, but specifying hostnames is not scalable, so I rather avoid this.","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        else:"},{"line_number":80,"context_line":"            for wh in weighed_hosts:"},{"line_number":81,"context_line":"                wh.weight \u003d float(wh.weight - minweight) \\"},{"line_number":82,"context_line":"                                / (maxweight - minweight)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def apply_effects(self, weighed_hosts, effect, plugin_properties,"},{"line_number":85,"context_line":"                      instance_uuids\u003dNone, index\u003dNone, map_hosts\u003dNone):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F97v4%3D","line":82,"updated":"2014-01-31 22:28:41.000000000","message":"I think this reads better with extra parentheses around everything so you can lose the backslash.","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        else:"},{"line_number":80,"context_line":"            for wh in weighed_hosts:"},{"line_number":81,"context_line":"                wh.weight \u003d float(wh.weight - minweight) \\"},{"line_number":82,"context_line":"                                / (maxweight - minweight)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def apply_effects(self, weighed_hosts, effect, plugin_properties,"},{"line_number":85,"context_line":"                      instance_uuids\u003dNone, index\u003dNone, map_hosts\u003dNone):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9uto%3D","line":82,"in_reply_to":"AAAAUH%2F97v4%3D","updated":"2014-02-04 16:31:39.000000000","message":"Done","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            if condition.lower().strip() \u003d\u003d \u0027all\u0027:"},{"line_number":117,"context_line":"                return True"},{"line_number":118,"context_line":"            else:"},{"line_number":119,"context_line":"                return False"},{"line_number":120,"context_line":"        if isinstance(condition, dict):"},{"line_number":121,"context_line":"            for key, parameters in condition.items():"},{"line_number":122,"context_line":"                if key in self.condition_plugins:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F97vo%3D","line":119,"updated":"2014-01-31 22:28:41.000000000","message":"return condition.lower().strip() \u003d\u003d \u0027all\u0027","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            if condition.lower().strip() \u003d\u003d \u0027all\u0027:"},{"line_number":117,"context_line":"                return True"},{"line_number":118,"context_line":"            else:"},{"line_number":119,"context_line":"                return False"},{"line_number":120,"context_line":"        if isinstance(condition, dict):"},{"line_number":121,"context_line":"            for key, parameters in condition.items():"},{"line_number":122,"context_line":"                if key in self.condition_plugins:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9usg%3D","line":119,"in_reply_to":"AAAAUH%2F97vo%3D","updated":"2014-02-04 16:31:39.000000000","message":"Done","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8514,"name":"Yathiraj Udupi","email":"yudupi@cisco.com","username":"yudupi"},"change_message_id":"fa1488de898f23d59644235709f0f61522ece3db","unresolved":false,"context_lines":[{"line_number":261,"context_line":"                      \"%(nb_host)d hosts\"), {\u0027effect\u0027: rule[\u0027effect\u0027],"},{"line_number":262,"context_line":"                      \u0027nb_host\u0027: len(admissible_hosts) - len(retained_hosts)})"},{"line_number":263,"context_line":"                    # Update the admissible_hosts"},{"line_number":264,"context_line":"                    admissible_hosts \u003d retained_hosts"},{"line_number":265,"context_line":"            # Step4: Normalise this target"},{"line_number":266,"context_line":"            self.normalize(admissible_hosts)"},{"line_number":267,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9yC4%3D","line":264,"updated":"2014-02-04 00:51:55.000000000","message":"I think there is a bug here.  please check if you updating admissible_hosts in such a way that only the effects of the last rule in the rule_group will dictate what hosts are admissible.  You probably need to take an intersection of all the resulting hosts from each of the rule effects.","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":261,"context_line":"                      \"%(nb_host)d hosts\"), {\u0027effect\u0027: rule[\u0027effect\u0027],"},{"line_number":262,"context_line":"                      \u0027nb_host\u0027: len(admissible_hosts) - len(retained_hosts)})"},{"line_number":263,"context_line":"                    # Update the admissible_hosts"},{"line_number":264,"context_line":"                    admissible_hosts \u003d retained_hosts"},{"line_number":265,"context_line":"            # Step4: Normalise this target"},{"line_number":266,"context_line":"            self.normalize(admissible_hosts)"},{"line_number":267,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9up8%3D","line":264,"updated":"2014-02-04 16:31:39.000000000","message":"No, there is not. retained_hosts is set of host that are remained after applying the plugins, so we will use these (in the name of \u0027admissible_hosts\u0027) in the next plugins. The weight on these hosts must be updated, however. That\u0027s why there is the affection here.","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"}],"nova/scheduler/policy_based_scheduler.py":[{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":14,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":"Policy Based Scheduler: provisions resources based on policy rules."},{"line_number":19,"context_line":"Admin can add/remove/modify rules that affect the provisioning decision"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9b8U%3D","line":16,"updated":"2013-12-12 09:38:04.000000000","message":"This file is based on filter_scheduler.py.","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from nova.scheduler.pbsm import SchedulingPolicyHandler"},{"line_number":31,"context_line":"from nova.scheduler import scheduler_options"},{"line_number":32,"context_line":"from nova.scheduler import utils as scheduler_utils"},{"line_number":33,"context_line":"from oslo.config import cfg"},{"line_number":34,"context_line":"import random"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cpM%3D","line":33,"updated":"2013-12-11 12:58:29.000000000","message":"third party include","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from nova.scheduler.pbsm import SchedulingPolicyHandler"},{"line_number":31,"context_line":"from nova.scheduler import scheduler_options"},{"line_number":32,"context_line":"from nova.scheduler import utils as scheduler_utils"},{"line_number":33,"context_line":"from oslo.config import cfg"},{"line_number":34,"context_line":"import random"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cCk%3D","line":33,"in_reply_to":"AAAATn%2F9cpM%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from nova.scheduler import scheduler_options"},{"line_number":32,"context_line":"from nova.scheduler import utils as scheduler_utils"},{"line_number":33,"context_line":"from oslo.config import cfg"},{"line_number":34,"context_line":"import random"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"CONF \u003d cfg.CONF"},{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cpI%3D","line":34,"updated":"2013-12-11 12:58:29.000000000","message":"this should also be in its own section","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from nova.scheduler import scheduler_options"},{"line_number":32,"context_line":"from nova.scheduler import utils as scheduler_utils"},{"line_number":33,"context_line":"from oslo.config import cfg"},{"line_number":34,"context_line":"import random"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"CONF \u003d cfg.CONF"},{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cCg%3D","line":34,"in_reply_to":"AAAATn%2F9cpI%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        # NOTE: Pop instance_uuids as individual creates do not need the"},{"line_number":73,"context_line":"        # set of uuids. Do not pop before here as the upper exception"},{"line_number":74,"context_line":"        # handler fo NoValidHost needs the uuid to set error state"},{"line_number":75,"context_line":"        instance_uuids \u003d request_spec.pop(\u0027instance_uuids\u0027)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        # NOTE(comstud): Make sure we do not pass this through.  It"},{"line_number":78,"context_line":"        # contains an instance of RpcContext that cannot be serialized."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cpE%3D","line":75,"updated":"2013-12-11 12:58:29.000000000","message":"request_spec.pop(\u0027instance_uuids\u0027, None) - what if the field is not present?","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        # NOTE: Pop instance_uuids as individual creates do not need the"},{"line_number":73,"context_line":"        # set of uuids. Do not pop before here as the upper exception"},{"line_number":74,"context_line":"        # handler fo NoValidHost needs the uuid to set error state"},{"line_number":75,"context_line":"        instance_uuids \u003d request_spec.pop(\u0027instance_uuids\u0027)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        # NOTE(comstud): Make sure we do not pass this through.  It"},{"line_number":78,"context_line":"        # contains an instance of RpcContext that cannot be serialized."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9b94%3D","line":75,"in_reply_to":"AAAATn%2F9cpE%3D","updated":"2013-12-12 09:38:04.000000000","message":"At this stage \u0027instance_uuids\u0027 is already in request_spec. See https://github.com/openstack/nova/blob/master/nova/scheduler/manager.py#L140","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                              {\u0027weighed_host\u0027: weighed_host,"},{"line_number":90,"context_line":"                               \u0027instance_uuid\u0027: instance_uuid})"},{"line_number":91,"context_line":"                except IndexError:"},{"line_number":92,"context_line":"                    raise exception.NoValidHost(reason\u003d\"\")"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"                self._provision_resource(context, weighed_host,"},{"line_number":95,"context_line":"                                         request_spec,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9co4%3D","line":92,"updated":"2013-12-11 12:58:29.000000000","message":"Why is there no explanation here?","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                              {\u0027weighed_host\u0027: weighed_host,"},{"line_number":90,"context_line":"                               \u0027instance_uuid\u0027: instance_uuid})"},{"line_number":91,"context_line":"                except IndexError:"},{"line_number":92,"context_line":"                    raise exception.NoValidHost(reason\u003d\"\")"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"                self._provision_resource(context, weighed_host,"},{"line_number":95,"context_line":"                                         request_spec,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9b70%3D","line":92,"in_reply_to":"AAAATn%2F9ckQ%3D","updated":"2013-12-12 09:38:04.000000000","message":"This part is from filter_scheduler. We would like to keep it as it is.","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                              {\u0027weighed_host\u0027: weighed_host,"},{"line_number":90,"context_line":"                               \u0027instance_uuid\u0027: instance_uuid})"},{"line_number":91,"context_line":"                except IndexError:"},{"line_number":92,"context_line":"                    raise exception.NoValidHost(reason\u003d\"\")"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"                self._provision_resource(context, weighed_host,"},{"line_number":95,"context_line":"                                         request_spec,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9ckQ%3D","line":92,"in_reply_to":"AAAATn%2F9co4%3D","updated":"2013-12-11 13:14:58.000000000","message":"Suggest use the exception as reason here","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                                         instance_uuid\u003dinstance_uuid,"},{"line_number":101,"context_line":"                                         legacy_bdm_in_spec\u003dlegacy_bdm_in_spec)"},{"line_number":102,"context_line":"            except Exception as ex:"},{"line_number":103,"context_line":"                # NOTE(vish): we don\u0027t reraise the exception here to make sure"},{"line_number":104,"context_line":"                #             that all instances in the request get set to"},{"line_number":105,"context_line":"                #             error properly"},{"line_number":106,"context_line":"                driver.handle_schedule_error(context, ex, instance_uuid,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9ckI%3D","line":103,"updated":"2013-12-11 13:14:58.000000000","message":"NOTE(yourname)","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                                         instance_uuid\u003dinstance_uuid,"},{"line_number":101,"context_line":"                                         legacy_bdm_in_spec\u003dlegacy_bdm_in_spec)"},{"line_number":102,"context_line":"            except Exception as ex:"},{"line_number":103,"context_line":"                # NOTE(vish): we don\u0027t reraise the exception here to make sure"},{"line_number":104,"context_line":"                #             that all instances in the request get set to"},{"line_number":105,"context_line":"                #             error properly"},{"line_number":106,"context_line":"                driver.handle_schedule_error(context, ex, instance_uuid,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9b7w%3D","line":103,"in_reply_to":"AAAATn%2F9ckI%3D","updated":"2013-12-12 09:38:04.000000000","message":"It\u0027s a comment from vish for FilterScheduler. We would like to keep it as it is.","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        hosts \u003d [host.obj.host for host in self._schedule(context,"},{"line_number":119,"context_line":"            request_spec, filter_properties, instance_uuids)]"},{"line_number":120,"context_line":"        if not hosts:"},{"line_number":121,"context_line":"            raise exception.NoValidHost(reason\u003d\"\")"},{"line_number":122,"context_line":"        return hosts"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def select_destinations(self, context, request_spec, filter_properties):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9co0%3D","line":121,"updated":"2013-12-11 12:58:29.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        hosts \u003d [host.obj.host for host in self._schedule(context,"},{"line_number":119,"context_line":"            request_spec, filter_properties, instance_uuids)]"},{"line_number":120,"context_line":"        if not hosts:"},{"line_number":121,"context_line":"            raise exception.NoValidHost(reason\u003d\"\")"},{"line_number":122,"context_line":"        return hosts"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def select_destinations(self, context, request_spec, filter_properties):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9b7k%3D","line":121,"in_reply_to":"AAAATn%2F9co0%3D","updated":"2013-12-12 09:38:04.000000000","message":"This part is from filter_scheduler. We would like to keep it as it is.","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        # Couldn\u0027t fulfill the request_spec"},{"line_number":132,"context_line":"        if len(selected_hosts) \u003c num_instances:"},{"line_number":133,"context_line":"            raise exception.NoValidHost(reason\u003d\u0027\u0027)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        dests \u003d [dict(host\u003dhost.obj.host, nodename\u003dhost.obj.nodename,"},{"line_number":136,"context_line":"                      limits\u003dhost.obj.limits) for host in selected_hosts]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cjo%3D","line":133,"updated":"2013-12-11 13:14:58.000000000","message":"reason is empty","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        # Couldn\u0027t fulfill the request_spec"},{"line_number":132,"context_line":"        if len(selected_hosts) \u003c num_instances:"},{"line_number":133,"context_line":"            raise exception.NoValidHost(reason\u003d\u0027\u0027)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        dests \u003d [dict(host\u003dhost.obj.host, nodename\u003dhost.obj.nodename,"},{"line_number":136,"context_line":"                      limits\u003dhost.obj.limits) for host in selected_hosts]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9b7g%3D","line":133,"in_reply_to":"AAAATn%2F9cjo%3D","updated":"2013-12-12 09:38:04.000000000","message":"This part is from filter_scheduler. We would like to keep it as it is.","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            admin_password, is_first_time, instance_uuid\u003dNone,"},{"line_number":142,"context_line":"            legacy_bdm_in_spec\u003dTrue):"},{"line_number":143,"context_line":"        \"\"\"Create the requested resource in this Zone.\"\"\""},{"line_number":144,"context_line":"        # NOTE(vish): add our current instance back into the request spec"},{"line_number":145,"context_line":"        request_spec[\u0027instance_uuids\u0027] \u003d [instance_uuid]"},{"line_number":146,"context_line":"        payload \u003d dict(request_spec\u003drequest_spec,"},{"line_number":147,"context_line":"                       weighted_host\u003dweighed_host.to_dict(),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cjY%3D","line":144,"updated":"2013-12-11 13:14:58.000000000","message":"NOTE(yourname)","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            admin_password, is_first_time, instance_uuid\u003dNone,"},{"line_number":142,"context_line":"            legacy_bdm_in_spec\u003dTrue):"},{"line_number":143,"context_line":"        \"\"\"Create the requested resource in this Zone.\"\"\""},{"line_number":144,"context_line":"        # NOTE(vish): add our current instance back into the request spec"},{"line_number":145,"context_line":"        request_spec[\u0027instance_uuids\u0027] \u003d [instance_uuid]"},{"line_number":146,"context_line":"        payload \u003d dict(request_spec\u003drequest_spec,"},{"line_number":147,"context_line":"                       weighted_host\u003dweighed_host.to_dict(),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9b68%3D","line":144,"in_reply_to":"AAAATn%2F9cjY%3D","updated":"2013-12-12 09:38:04.000000000","message":"It\u0027s a comment from vish for FilterScheduler. We would like to keep it as it is.","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        # Update the metadata if necessary"},{"line_number":153,"context_line":"        scheduler_hints \u003d filter_properties.get(\u0027scheduler_hints\u0027) or {}"},{"line_number":154,"context_line":"        group \u003d scheduler_hints.get(\u0027group\u0027, None)"},{"line_number":155,"context_line":"        values \u003d None"},{"line_number":156,"context_line":"        if group:"},{"line_number":157,"context_line":"            values \u003d request_spec[\u0027instance_properties\u0027][\u0027system_metadata\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cjQ%3D","line":154,"updated":"2013-12-11 13:14:58.000000000","message":"group \u003d scheduler_hints.get(\u0027group\u0027), get() will return None if no such a key","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        # Update the metadata if necessary"},{"line_number":153,"context_line":"        scheduler_hints \u003d filter_properties.get(\u0027scheduler_hints\u0027) or {}"},{"line_number":154,"context_line":"        group \u003d scheduler_hints.get(\u0027group\u0027, None)"},{"line_number":155,"context_line":"        values \u003d None"},{"line_number":156,"context_line":"        if group:"},{"line_number":157,"context_line":"            values \u003d request_spec[\u0027instance_properties\u0027][\u0027system_metadata\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9b5c%3D","line":154,"in_reply_to":"AAAATn%2F9cjQ%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":327,"context_line":""},{"line_number":328,"context_line":"            chosen_host \u003d random.choice(weighed_hosts)"},{"line_number":329,"context_line":"            selected_hosts.append(chosen_host)"},{"line_number":330,"context_line":"            LOG.debug(\"Chosen_host: %s \" % chosen_host)"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"            # Now consume the resources so the filter/weights"},{"line_number":333,"context_line":"            # will change for the next instance."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9ci8%3D","line":330,"updated":"2013-12-11 13:14:58.000000000","message":"I18N","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":327,"context_line":""},{"line_number":328,"context_line":"            chosen_host \u003d random.choice(weighed_hosts)"},{"line_number":329,"context_line":"            selected_hosts.append(chosen_host)"},{"line_number":330,"context_line":"            LOG.debug(\"Chosen_host: %s \" % chosen_host)"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"            # Now consume the resources so the filter/weights"},{"line_number":333,"context_line":"            # will change for the next instance."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9b5Q%3D","line":330,"in_reply_to":"AAAATn%2F9ci8%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        # Update the metadata if necessary"},{"line_number":158,"context_line":"        scheduler_hints \u003d filter_properties.get(\u0027scheduler_hints\u0027) or {}"},{"line_number":159,"context_line":"        group \u003d scheduler_hints.get(\u0027group\u0027, None)"},{"line_number":160,"context_line":"        values \u003d None"},{"line_number":161,"context_line":"        if group:"},{"line_number":162,"context_line":"            values \u003d request_spec[\u0027instance_properties\u0027][\u0027system_metadata\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F97wo%3D","line":159,"updated":"2014-01-31 22:28:41.000000000","message":"None is unnecessary here, but doesn\u0027t hurt.","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        # Update the metadata if necessary"},{"line_number":158,"context_line":"        scheduler_hints \u003d filter_properties.get(\u0027scheduler_hints\u0027) or {}"},{"line_number":159,"context_line":"        group \u003d scheduler_hints.get(\u0027group\u0027, None)"},{"line_number":160,"context_line":"        values \u003d None"},{"line_number":161,"context_line":"        if group:"},{"line_number":162,"context_line":"            values \u003d request_spec[\u0027instance_properties\u0027][\u0027system_metadata\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9ups%3D","line":159,"in_reply_to":"AAAAUH%2F97wo%3D","updated":"2014-02-04 16:31:39.000000000","message":"Done","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        # Get the group"},{"line_number":278,"context_line":"        update_group_hosts \u003d False"},{"line_number":279,"context_line":"        scheduler_hints \u003d filter_properties.get(\u0027scheduler_hints\u0027) or {}"},{"line_number":280,"context_line":"        group \u003d scheduler_hints.get(\u0027group\u0027, None)"},{"line_number":281,"context_line":"        if group:"},{"line_number":282,"context_line":"            group_hosts \u003d self.group_hosts(elevated, group)"},{"line_number":283,"context_line":"            update_group_hosts \u003d True"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F97wU%3D","line":280,"updated":"2014-01-31 22:28:41.000000000","message":"None is redundant here","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        # Get the group"},{"line_number":278,"context_line":"        update_group_hosts \u003d False"},{"line_number":279,"context_line":"        scheduler_hints \u003d filter_properties.get(\u0027scheduler_hints\u0027) or {}"},{"line_number":280,"context_line":"        group \u003d scheduler_hints.get(\u0027group\u0027, None)"},{"line_number":281,"context_line":"        if group:"},{"line_number":282,"context_line":"            group_hosts \u003d self.group_hosts(elevated, group)"},{"line_number":283,"context_line":"            update_group_hosts \u003d True"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9upg%3D","line":280,"in_reply_to":"AAAAUH%2F97wU%3D","updated":"2014-02-04 16:31:39.000000000","message":"Done","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"}],"nova/scheduler/policy_plugins/__init__.py":[{"author":{"_account_id":1812,"name":"p-draigbrady","email":"P@draigBrady.com","username":"p-draigbrady"},"change_message_id":"9fab626804d004a66dfc7b0016c33a9a7055ec37","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 Cloudwatt"},{"line_number":2,"context_line":"# Copyright (c) 2011 OpenStack Foundation"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cl8%3D","line":2,"updated":"2013-12-11 13:06:59.000000000","message":"2011?","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 Cloudwatt"},{"line_number":2,"context_line":"# Copyright (c) 2011 OpenStack Foundation"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9b3s%3D","line":2,"in_reply_to":"AAAATn%2F9cl8%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"}],"nova/scheduler/policy_plugins/aggregate_metadata_effect.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 Cloudwatt"},{"line_number":2,"context_line":"# Copyright (c) 2011 OpenStack Foundation"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9ciw%3D","line":2,"updated":"2013-12-11 13:14:58.000000000","message":"2011 here","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 Cloudwatt"},{"line_number":2,"context_line":"# Copyright (c) 2011 OpenStack Foundation"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9b3c%3D","line":2,"in_reply_to":"AAAATn%2F9ciw%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7238,"name":"Inbar Shapira","email":"inbar_shapira@il.ibm.com","username":"Inbar"},"change_message_id":"1086109513bf780e74c1293324dc2d7bb25197ef","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        host \u003d\u003d list of hosts (HostState)"},{"line_number":35,"context_line":"        \"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        host_manager \u003d HostManager()"},{"line_number":38,"context_line":"        request_spec \u003d filter_properties[\u0027request_spec\u0027]"},{"line_number":39,"context_line":"        LOG.debug(\u0027Add \"{parameters}\" into aggregate_instance_extra_specs \u0027."},{"line_number":40,"context_line":"                     format(parameters\u003dparameters))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cB4%3D","line":37,"updated":"2013-12-11 19:14:31.000000000","message":"I think there should be only 1 instance of HostManager in the system, the existing one is initiated at the Scheduler (driver)","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        host \u003d\u003d list of hosts (HostState)"},{"line_number":35,"context_line":"        \"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        host_manager \u003d HostManager()"},{"line_number":38,"context_line":"        request_spec \u003d filter_properties[\u0027request_spec\u0027]"},{"line_number":39,"context_line":"        LOG.debug(\u0027Add \"{parameters}\" into aggregate_instance_extra_specs \u0027."},{"line_number":40,"context_line":"                     format(parameters\u003dparameters))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9W%2Bc%3D","line":37,"in_reply_to":"AAAATn%2F9cB4%3D","updated":"2013-12-12 09:38:04.000000000","message":"That\u0027s can be easily adjusted. However, I do not see the constraint of this. I would like to keep the plugins as generic as possible. A plugin can, on the decision-making level, be equivalent to a scheduler driver. Plus, the HostManager() object itself is just a box to call filters and weighers.","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                      filter_properties\u003dfilter_properties,"},{"line_number":51,"context_line":"                      filter_class_names\u003d\"AggregateInstanceExtraSpecsFilter\","},{"line_number":52,"context_line":"                      index\u003dindex)"},{"line_number":53,"context_line":"        LOG.debug(\"%s returns %d hosts\""},{"line_number":54,"context_line":"                   % (self.__class__.__name__, len(hosts)))"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        return [WeighedHost(h, 0.0) for h in hosts]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cow%3D","line":53,"updated":"2013-12-11 12:58:29.000000000","message":"please use a dict - 18n","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                      filter_properties\u003dfilter_properties,"},{"line_number":51,"context_line":"                      filter_class_names\u003d\"AggregateInstanceExtraSpecsFilter\","},{"line_number":52,"context_line":"                      index\u003dindex)"},{"line_number":53,"context_line":"        LOG.debug(\"%s returns %d hosts\""},{"line_number":54,"context_line":"                   % (self.__class__.__name__, len(hosts)))"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        return [WeighedHost(h, 0.0) for h in hosts]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9b1Y%3D","line":53,"in_reply_to":"AAAATn%2F9cow%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"}],"nova/scheduler/policy_plugins/availability_zone_effect.py":[{"author":{"_account_id":1812,"name":"p-draigbrady","email":"P@draigBrady.com","username":"p-draigbrady"},"change_message_id":"9fab626804d004a66dfc7b0016c33a9a7055ec37","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            # Make it a list"},{"line_number":49,"context_line":"            allowed_availability_zones \u003d [allowed_availability_zones]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        if (\u0027availability_zone\u0027 not in request_spec[\"instance_properties\"]) \\"},{"line_number":52,"context_line":"            or not request_spec[\"instance_properties\"][\u0027availability_zone\u0027]:"},{"line_number":53,"context_line":"            # For now OS does not allow user to select a group of"},{"line_number":54,"context_line":"            # avaialability_zone, # i.e. either all zones, or one zone only"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9ckU%3D","line":51,"updated":"2013-12-11 13:06:59.000000000","message":"since there are already () here, you might prefer to extend those to avoid \\ line continuations","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            # Make it a list"},{"line_number":49,"context_line":"            allowed_availability_zones \u003d [allowed_availability_zones]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        if (\u0027availability_zone\u0027 not in request_spec[\"instance_properties\"]) \\"},{"line_number":52,"context_line":"            or not request_spec[\"instance_properties\"][\u0027availability_zone\u0027]:"},{"line_number":53,"context_line":"            # For now OS does not allow user to select a group of"},{"line_number":54,"context_line":"            # avaialability_zone, # i.e. either all zones, or one zone only"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9byY%3D","line":51,"in_reply_to":"AAAATn%2F9ciY%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            # Make it a list"},{"line_number":49,"context_line":"            allowed_availability_zones \u003d [allowed_availability_zones]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        if (\u0027availability_zone\u0027 not in request_spec[\"instance_properties\"]) \\"},{"line_number":52,"context_line":"            or not request_spec[\"instance_properties\"][\u0027availability_zone\u0027]:"},{"line_number":53,"context_line":"            # For now OS does not allow user to select a group of"},{"line_number":54,"context_line":"            # avaialability_zone, # i.e. either all zones, or one zone only"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9ciY%3D","line":51,"in_reply_to":"AAAATn%2F9ckU%3D","updated":"2013-12-11 13:14:58.000000000","message":"Yes, it is supposed to use () for long sentence.","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1812,"name":"p-draigbrady","email":"P@draigBrady.com","username":"p-draigbrady"},"change_message_id":"9fab626804d004a66dfc7b0016c33a9a7055ec37","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                                     metadata\u003dmetadata,"},{"line_number":81,"context_line":"                                     delete\u003d0)"},{"line_number":82,"context_line":"            raise exception.NoValidHost(reason\u003d\u0027PluginError : \\"},{"line_number":83,"context_line":"                AvaialbilityZonePlugin - \u0027"},{"line_number":84,"context_line":"                + metadata[\u0027PluginError\u0027])"},{"line_number":85,"context_line":"        else:  # User specifies a correct availability zone"},{"line_number":86,"context_line":"            # Update metadata for feedback"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9ckc%3D","line":83,"updated":"2013-12-11 13:06:59.000000000","message":"You generally don\u0027t need trailing \\ with strings, as you can\n\n    \u0027string 1\u0027\n    \u0027concat string 2\u0027","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                                     metadata\u003dmetadata,"},{"line_number":81,"context_line":"                                     delete\u003d0)"},{"line_number":82,"context_line":"            raise exception.NoValidHost(reason\u003d\u0027PluginError : \\"},{"line_number":83,"context_line":"                AvaialbilityZonePlugin - \u0027"},{"line_number":84,"context_line":"                + metadata[\u0027PluginError\u0027])"},{"line_number":85,"context_line":"        else:  # User specifies a correct availability zone"},{"line_number":86,"context_line":"            # Update metadata for feedback"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9bx8%3D","line":83,"in_reply_to":"AAAATn%2F9ckc%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7238,"name":"Inbar Shapira","email":"inbar_shapira@il.ibm.com","username":"Inbar"},"change_message_id":"1086109513bf780e74c1293324dc2d7bb25197ef","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                    delete\u003d0)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        # Call AvailabilitZoneFilter"},{"line_number":95,"context_line":"        host_manager \u003d HostManager()"},{"line_number":96,"context_line":"        hosts \u003d host_manager.get_filtered_hosts(hosts, filter_properties,"},{"line_number":97,"context_line":"                        filter_class_names\u003d\"AvailabilityZoneFilter\","},{"line_number":98,"context_line":"                        index\u003dindex)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cA4%3D","line":95,"updated":"2013-12-11 19:14:31.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                    delete\u003d0)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        # Call AvailabilitZoneFilter"},{"line_number":95,"context_line":"        host_manager \u003d HostManager()"},{"line_number":96,"context_line":"        hosts \u003d host_manager.get_filtered_hosts(hosts, filter_properties,"},{"line_number":97,"context_line":"                        filter_class_names\u003d\"AvailabilityZoneFilter\","},{"line_number":98,"context_line":"                        index\u003dindex)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9W9U%3D","line":95,"in_reply_to":"AAAATn%2F9cA4%3D","updated":"2013-12-12 09:38:04.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        hosts \u003d host_manager.get_filtered_hosts(hosts, filter_properties,"},{"line_number":97,"context_line":"                        filter_class_names\u003d\"AvailabilityZoneFilter\","},{"line_number":98,"context_line":"                        index\u003dindex)"},{"line_number":99,"context_line":"        LOG.debug(\"\u0027%s\u0027 returns %d hosts\""},{"line_number":100,"context_line":"            % (self.__class__.__name__, len(hosts)))"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        return [WeighedHost(h, 0.0) for h in hosts]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cos%3D","line":99,"updated":"2013-12-11 12:58:29.000000000","message":"please use a dict and i18n format","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        hosts \u003d host_manager.get_filtered_hosts(hosts, filter_properties,"},{"line_number":97,"context_line":"                        filter_class_names\u003d\"AvailabilityZoneFilter\","},{"line_number":98,"context_line":"                        index\u003dindex)"},{"line_number":99,"context_line":"        LOG.debug(\"\u0027%s\u0027 returns %d hosts\""},{"line_number":100,"context_line":"            % (self.__class__.__name__, len(hosts)))"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        return [WeighedHost(h, 0.0) for h in hosts]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9bxc%3D","line":99,"in_reply_to":"AAAATn%2F9cos%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        if not isinstance(allowed_availability_zones, list):"},{"line_number":62,"context_line":"            # Make it a list"},{"line_number":63,"context_line":"            allowed_availability_zones \u003d [allowed_availability_zones]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        requested_az \u003d request_spec[\"instance_properties\"].\\"},{"line_number":66,"context_line":"                           get(\"availability_zone\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F97xc%3D","line":63,"updated":"2014-01-31 22:28:41.000000000","message":"I think this should be allowed_availability_zones \u003d list(allowed_availability_zones)\n\nThe reason is that if it\u0027s already a tuple, this will change it to a list rather than making it a list containing the tuple.  Also, this allows you to remove the if if you want, since list(already_a_list) doesn\u0027t change anything.","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        if not isinstance(allowed_availability_zones, list):"},{"line_number":62,"context_line":"            # Make it a list"},{"line_number":63,"context_line":"            allowed_availability_zones \u003d [allowed_availability_zones]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        requested_az \u003d request_spec[\"instance_properties\"].\\"},{"line_number":66,"context_line":"                           get(\"availability_zone\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9uo4%3D","line":63,"in_reply_to":"AAAAUH%2F97xc%3D","updated":"2014-02-04 16:31:39.000000000","message":"thanks for the tip!","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                           get(\"availability_zone\")"},{"line_number":67,"context_line":"        if not requested_az:"},{"line_number":68,"context_line":"            # NOTE(toan_tran) For now OS does not allow user to select a group"},{"line_number":69,"context_line":"            # of avaialability_zone, # i.e. either all zones, or one zone only"},{"line_number":70,"context_line":"            # For future, see:"},{"line_number":71,"context_line":"            # https://blueprints.launchpad.net/nova/+spec/schedule-set- \\"},{"line_number":72,"context_line":"            # availability-zones"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F97xI%3D","line":69,"updated":"2014-01-31 22:28:41.000000000","message":"typo   availability","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                           get(\"availability_zone\")"},{"line_number":67,"context_line":"        if not requested_az:"},{"line_number":68,"context_line":"            # NOTE(toan_tran) For now OS does not allow user to select a group"},{"line_number":69,"context_line":"            # of avaialability_zone, # i.e. either all zones, or one zone only"},{"line_number":70,"context_line":"            # For future, see:"},{"line_number":71,"context_line":"            # https://blueprints.launchpad.net/nova/+spec/schedule-set- \\"},{"line_number":72,"context_line":"            # availability-zones"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9uow%3D","line":69,"in_reply_to":"AAAAUH%2F97xI%3D","updated":"2014-02-04 16:31:39.000000000","message":"Done","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"}],"nova/scheduler/policy_plugins/default_effect.py":[{"author":{"_account_id":7238,"name":"Inbar Shapira","email":"inbar_shapira@il.ibm.com","username":"Inbar"},"change_message_id":"1086109513bf780e74c1293324dc2d7bb25197ef","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            hosts: list of hosts (HostState)"},{"line_number":35,"context_line":"        \"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        host_manager \u003d HostManager()"},{"line_number":38,"context_line":"        hosts \u003d host_manager.get_filtered_hosts(hosts, filter_properties,"},{"line_number":39,"context_line":"                        index\u003dindex)"},{"line_number":40,"context_line":"        LOG.debug(\"\u0027%s\u0027 returns %d hosts\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cAw%3D","line":37,"updated":"2013-12-11 19:14:31.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            hosts: list of hosts (HostState)"},{"line_number":35,"context_line":"        \"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        host_manager \u003d HostManager()"},{"line_number":38,"context_line":"        hosts \u003d host_manager.get_filtered_hosts(hosts, filter_properties,"},{"line_number":39,"context_line":"                        index\u003dindex)"},{"line_number":40,"context_line":"        LOG.debug(\"\u0027%s\u0027 returns %d hosts\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9W9Q%3D","line":37,"in_reply_to":"AAAATn%2F9cAw%3D","updated":"2013-12-12 09:38:04.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        host_manager \u003d HostManager()"},{"line_number":38,"context_line":"        hosts \u003d host_manager.get_filtered_hosts(hosts, filter_properties,"},{"line_number":39,"context_line":"                        index\u003dindex)"},{"line_number":40,"context_line":"        LOG.debug(\"\u0027%s\u0027 returns %d hosts\""},{"line_number":41,"context_line":"                  % (self.__class__.__name__, len(hosts)))"},{"line_number":42,"context_line":"        return [WeighedHost(h, 0.0) for h in hosts]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9coo%3D","line":40,"updated":"2013-12-11 12:58:29.000000000","message":"i18n","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        host_manager \u003d HostManager()"},{"line_number":38,"context_line":"        hosts \u003d host_manager.get_filtered_hosts(hosts, filter_properties,"},{"line_number":39,"context_line":"                        index\u003dindex)"},{"line_number":40,"context_line":"        LOG.debug(\"\u0027%s\u0027 returns %d hosts\""},{"line_number":41,"context_line":"                  % (self.__class__.__name__, len(hosts)))"},{"line_number":42,"context_line":"        return [WeighedHost(h, 0.0) for h in hosts]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9bxA%3D","line":40,"in_reply_to":"AAAATn%2F9coo%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def apply_effect(self, hosts, parameters, plugin_properties,"},{"line_number":33,"context_line":"                     instance_uuids\u003dNone, index\u003dNone):"},{"line_number":34,"context_line":"        \"\"\"Use default filters from host_manager.HostManager"},{"line_number":35,"context_line":"           hosts: list of hosts (HostState)"},{"line_number":36,"context_line":"        \"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        hm \u003d host_manager.HostManager()"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F97yE%3D","line":35,"updated":"2014-01-31 22:28:41.000000000","message":"Suggest :param","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def apply_effect(self, hosts, parameters, plugin_properties,"},{"line_number":33,"context_line":"                     instance_uuids\u003dNone, index\u003dNone):"},{"line_number":34,"context_line":"        \"\"\"Use default filters from host_manager.HostManager"},{"line_number":35,"context_line":"           hosts: list of hosts (HostState)"},{"line_number":36,"context_line":"        \"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        hm \u003d host_manager.HostManager()"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9uoc%3D","line":35,"in_reply_to":"AAAAUH%2F97yE%3D","updated":"2014-02-04 16:31:39.000000000","message":"Done","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"}],"nova/scheduler/policy_plugins/generic_effect.py":[{"author":{"_account_id":7238,"name":"Inbar Shapira","email":"inbar_shapira@il.ibm.com","username":"Inbar"},"change_message_id":"1086109513bf780e74c1293324dc2d7bb25197ef","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            return [WeighedHost(h, 0.0) for h in hosts]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        # Execute list of filters"},{"line_number":42,"context_line":"        host_manager \u003d HostManager()"},{"line_number":43,"context_line":"        LOG.debug(\"GenericPlugin: filter list \u003d \" + str(parameters[0]))"},{"line_number":44,"context_line":"        hosts \u003d host_manager.get_filtered_hosts(hosts, filter_properties,"},{"line_number":45,"context_line":"                        filter_class_names\u003dparameters[0], index\u003dindex)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9b%2FM%3D","line":42,"updated":"2013-12-11 19:14:31.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            return [WeighedHost(h, 0.0) for h in hosts]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        # Execute list of filters"},{"line_number":42,"context_line":"        host_manager \u003d HostManager()"},{"line_number":43,"context_line":"        LOG.debug(\"GenericPlugin: filter list \u003d \" + str(parameters[0]))"},{"line_number":44,"context_line":"        hosts \u003d host_manager.get_filtered_hosts(hosts, filter_properties,"},{"line_number":45,"context_line":"                        filter_class_names\u003dparameters[0], index\u003dindex)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9W9A%3D","line":42,"in_reply_to":"AAAATn%2F9b%2FM%3D","updated":"2013-12-12 09:38:04.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        # Execute list of filters"},{"line_number":42,"context_line":"        host_manager \u003d HostManager()"},{"line_number":43,"context_line":"        LOG.debug(\"GenericPlugin: filter list \u003d \" + str(parameters[0]))"},{"line_number":44,"context_line":"        hosts \u003d host_manager.get_filtered_hosts(hosts, filter_properties,"},{"line_number":45,"context_line":"                        filter_class_names\u003dparameters[0], index\u003dindex)"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cok%3D","line":43,"updated":"2013-12-11 12:58:29.000000000","message":"i18n","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        # Execute list of filters"},{"line_number":42,"context_line":"        host_manager \u003d HostManager()"},{"line_number":43,"context_line":"        LOG.debug(\"GenericPlugin: filter list \u003d \" + str(parameters[0]))"},{"line_number":44,"context_line":"        hosts \u003d host_manager.get_filtered_hosts(hosts, filter_properties,"},{"line_number":45,"context_line":"                        filter_class_names\u003dparameters[0], index\u003dindex)"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9bvU%3D","line":43,"in_reply_to":"AAAATn%2F9cok%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        hosts \u003d host_manager.get_filtered_hosts(hosts, filter_properties,"},{"line_number":45,"context_line":"                        filter_class_names\u003dparameters[0], index\u003dindex)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        LOG.debug(\"GenericPlugin: weigher list \u003d \" + str(parameters[1]))"},{"line_number":48,"context_line":"        whosts \u003d host_manager.get_weighed_hosts(hosts, filter_properties,"},{"line_number":49,"context_line":"                        weight_class_names\u003dparameters[1])"},{"line_number":50,"context_line":"        LOG.debug(\"\u0027%s\u0027 returns %d hosts\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9coc%3D","line":47,"updated":"2013-12-11 12:58:29.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        hosts \u003d host_manager.get_filtered_hosts(hosts, filter_properties,"},{"line_number":45,"context_line":"                        filter_class_names\u003dparameters[0], index\u003dindex)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        LOG.debug(\"GenericPlugin: weigher list \u003d \" + str(parameters[1]))"},{"line_number":48,"context_line":"        whosts \u003d host_manager.get_weighed_hosts(hosts, filter_properties,"},{"line_number":49,"context_line":"                        weight_class_names\u003dparameters[1])"},{"line_number":50,"context_line":"        LOG.debug(\"\u0027%s\u0027 returns %d hosts\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9bvQ%3D","line":47,"in_reply_to":"AAAATn%2F9coc%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        LOG.debug(\"GenericPlugin: weigher list \u003d \" + str(parameters[1]))"},{"line_number":48,"context_line":"        whosts \u003d host_manager.get_weighed_hosts(hosts, filter_properties,"},{"line_number":49,"context_line":"                        weight_class_names\u003dparameters[1])"},{"line_number":50,"context_line":"        LOG.debug(\"\u0027%s\u0027 returns %d hosts\""},{"line_number":51,"context_line":"            % (self.__class__.__name__, len(whosts)))"},{"line_number":52,"context_line":"        return whosts"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9coY%3D","line":50,"updated":"2013-12-11 12:58:29.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        LOG.debug(\"GenericPlugin: weigher list \u003d \" + str(parameters[1]))"},{"line_number":48,"context_line":"        whosts \u003d host_manager.get_weighed_hosts(hosts, filter_properties,"},{"line_number":49,"context_line":"                        weight_class_names\u003dparameters[1])"},{"line_number":50,"context_line":"        LOG.debug(\"\u0027%s\u0027 returns %d hosts\""},{"line_number":51,"context_line":"            % (self.__class__.__name__, len(whosts)))"},{"line_number":52,"context_line":"        return whosts"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9bvM%3D","line":50,"in_reply_to":"AAAATn%2F9coY%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def apply_effect(self, hosts, parameters, plugin_properties,"},{"line_number":33,"context_line":"             instance_uuids\u003dNone, index\u003dNone):"},{"line_number":34,"context_line":"        \"\"\"Execute filters and weighers listed in parameters."},{"line_number":35,"context_line":"        parameters \u003d  ([List of filters], [List of weighers])"},{"line_number":36,"context_line":"        \"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        if not isinstance(parameters, (tuple, list)) or len(parameters) !\u003d 2:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F97ys%3D","line":35,"updated":"2014-01-31 22:28:41.000000000","message":"suggest :param","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def apply_effect(self, hosts, parameters, plugin_properties,"},{"line_number":33,"context_line":"             instance_uuids\u003dNone, index\u003dNone):"},{"line_number":34,"context_line":"        \"\"\"Execute filters and weighers listed in parameters."},{"line_number":35,"context_line":"        parameters \u003d  ([List of filters], [List of weighers])"},{"line_number":36,"context_line":"        \"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        if not isinstance(parameters, (tuple, list)) or len(parameters) !\u003d 2:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9uoU%3D","line":35,"in_reply_to":"AAAAUH%2F97ys%3D","updated":"2014-02-04 16:31:39.000000000","message":"Done","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"}],"nova/scheduler/policy_plugins/load_distribution_effect.py":[{"author":{"_account_id":7238,"name":"Inbar Shapira","email":"inbar_shapira@il.ibm.com","username":"Inbar"},"change_message_id":"1086109513bf780e74c1293324dc2d7bb25197ef","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        if \u0027ram\u0027 in parameters:"},{"line_number":42,"context_line":"            filter_properties[\u0027pbsm_ram_weight_multiplier\u0027] \u003d parameters[\u0027ram\u0027]"},{"line_number":43,"context_line":"            host_manager \u003d HostManager()"},{"line_number":44,"context_line":"            whosts \u003d host_manager.get_weighed_hosts(hosts, filter_properties,"},{"line_number":45,"context_line":"                weight_class_names\u003d\u0027RAMWeigher\u0027)"},{"line_number":46,"context_line":"        elif \u0027nbhosts\u0027 in parameters:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9b%2Bw%3D","line":43,"updated":"2013-12-11 19:14:31.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        if \u0027ram\u0027 in parameters:"},{"line_number":42,"context_line":"            filter_properties[\u0027pbsm_ram_weight_multiplier\u0027] \u003d parameters[\u0027ram\u0027]"},{"line_number":43,"context_line":"            host_manager \u003d HostManager()"},{"line_number":44,"context_line":"            whosts \u003d host_manager.get_weighed_hosts(hosts, filter_properties,"},{"line_number":45,"context_line":"                weight_class_names\u003d\u0027RAMWeigher\u0027)"},{"line_number":46,"context_line":"        elif \u0027nbhosts\u0027 in parameters:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9W88%3D","line":43,"in_reply_to":"AAAATn%2F9b%2Bw%3D","updated":"2013-12-12 09:38:04.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7238,"name":"Inbar Shapira","email":"inbar_shapira@il.ibm.com","username":"Inbar"},"change_message_id":"1086109513bf780e74c1293324dc2d7bb25197ef","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        elif \u0027nbhosts\u0027 in parameters:"},{"line_number":47,"context_line":"            filter_properties[\u0027pbsm_nb_hosts_weight_multiplier\u0027] \u003d \\"},{"line_number":48,"context_line":"                parameters[\u0027nbhosts\u0027]"},{"line_number":49,"context_line":"            host_manager \u003d HostManager()"},{"line_number":50,"context_line":"            whosts \u003d host_manager.get_weighed_hosts(hosts,"},{"line_number":51,"context_line":"                filter_properties, weight_class_names\u003d\u0027NbHostsWeigher\u0027)"},{"line_number":52,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9b%2Bk%3D","line":49,"updated":"2013-12-11 19:14:31.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        elif \u0027nbhosts\u0027 in parameters:"},{"line_number":47,"context_line":"            filter_properties[\u0027pbsm_nb_hosts_weight_multiplier\u0027] \u003d \\"},{"line_number":48,"context_line":"                parameters[\u0027nbhosts\u0027]"},{"line_number":49,"context_line":"            host_manager \u003d HostManager()"},{"line_number":50,"context_line":"            whosts \u003d host_manager.get_weighed_hosts(hosts,"},{"line_number":51,"context_line":"                filter_properties, weight_class_names\u003d\u0027NbHostsWeigher\u0027)"},{"line_number":52,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9W8w%3D","line":49,"in_reply_to":"AAAATn%2F9b%2Bk%3D","updated":"2013-12-12 09:38:04.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            whosts \u003d host_manager.get_weighed_hosts(hosts,"},{"line_number":51,"context_line":"                filter_properties, weight_class_names\u003d\u0027NbHostsWeigher\u0027)"},{"line_number":52,"context_line":"        else:"},{"line_number":53,"context_line":"            LOG.warning(\"parameter unrecongizable: \" + str(parameters))"},{"line_number":54,"context_line":"            whosts \u003d [WeighedHost(host, 0) for host in hosts]"},{"line_number":55,"context_line":"        return whosts"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9coU%3D","line":53,"updated":"2013-12-11 12:58:29.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            whosts \u003d host_manager.get_weighed_hosts(hosts,"},{"line_number":51,"context_line":"                filter_properties, weight_class_names\u003d\u0027NbHostsWeigher\u0027)"},{"line_number":52,"context_line":"        else:"},{"line_number":53,"context_line":"            LOG.warning(\"parameter unrecongizable: \" + str(parameters))"},{"line_number":54,"context_line":"            whosts \u003d [WeighedHost(host, 0) for host in hosts]"},{"line_number":55,"context_line":"        return whosts"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9btM%3D","line":53,"in_reply_to":"AAAATn%2F9coU%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        parameters: \"ram\", \"nbhosts\""},{"line_number":66,"context_line":"        hosts: list of hosts (HostState)"},{"line_number":67,"context_line":"        \"\"\""},{"line_number":68,"context_line":"        LOG.debug(\"Apply effect LoadBalancing\")"},{"line_number":69,"context_line":"        return super(self.__class__, self).apply_effect(hosts,"},{"line_number":70,"context_line":"            {parameters: -1.0}, filter_properties, instance_uuids, index)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9coQ%3D","line":68,"updated":"2013-12-11 12:58:29.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        parameters: \"ram\", \"nbhosts\""},{"line_number":66,"context_line":"        hosts: list of hosts (HostState)"},{"line_number":67,"context_line":"        \"\"\""},{"line_number":68,"context_line":"        LOG.debug(\"Apply effect LoadBalancing\")"},{"line_number":69,"context_line":"        return super(self.__class__, self).apply_effect(hosts,"},{"line_number":70,"context_line":"            {parameters: -1.0}, filter_properties, instance_uuids, index)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9btI%3D","line":68,"in_reply_to":"AAAATn%2F9coQ%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        parameters: \"ram\", \"nbhosts\""},{"line_number":81,"context_line":"        hosts: list of hosts (HostState)"},{"line_number":82,"context_line":"        \"\"\""},{"line_number":83,"context_line":"        LOG.debug(\"Apply effect Consolidation\")"},{"line_number":84,"context_line":"        return super(self.__class__, self).apply_effect(hosts,"},{"line_number":85,"context_line":"            {parameters: 1.0}, filter_properties, instance_uuids, index)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9coE%3D","line":83,"updated":"2013-12-11 12:58:29.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        parameters: \"ram\", \"nbhosts\""},{"line_number":81,"context_line":"        hosts: list of hosts (HostState)"},{"line_number":82,"context_line":"        \"\"\""},{"line_number":83,"context_line":"        LOG.debug(\"Apply effect Consolidation\")"},{"line_number":84,"context_line":"        return super(self.__class__, self).apply_effect(hosts,"},{"line_number":85,"context_line":"            {parameters: 1.0}, filter_properties, instance_uuids, index)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9btE%3D","line":83,"in_reply_to":"AAAATn%2F9coE%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    def apply_effect(self, hosts, parameters, plugin_properties,"},{"line_number":67,"context_line":"                     instance_uuids\u003dNone, index\u003dNone):"},{"line_number":68,"context_line":"        \"\"\"Use host with least used resources"},{"line_number":69,"context_line":"        parameters: \"ram\", \"nbhosts\""},{"line_number":70,"context_line":"        hosts: list of hosts (HostState)"},{"line_number":71,"context_line":"        \"\"\""},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F97y0%3D","line":69,"updated":"2014-01-31 22:28:41.000000000","message":"Suggest :param since it\u0027s most common in Nova.","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    def apply_effect(self, hosts, parameters, plugin_properties,"},{"line_number":67,"context_line":"                     instance_uuids\u003dNone, index\u003dNone):"},{"line_number":68,"context_line":"        \"\"\"Use host with least used resources"},{"line_number":69,"context_line":"        parameters: \"ram\", \"nbhosts\""},{"line_number":70,"context_line":"        hosts: list of hosts (HostState)"},{"line_number":71,"context_line":"        \"\"\""},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9uoI%3D","line":69,"in_reply_to":"AAAAUH%2F97y0%3D","updated":"2014-02-04 16:31:39.000000000","message":"Done","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"}],"nova/scheduler/policy_plugins/ram_over_provisioning_effect.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 Cloudwatt"},{"line_number":2,"context_line":"# Copyright (c) 2011 OpenStack Foundation"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9ciA%3D","line":2,"updated":"2013-12-11 13:14:58.000000000","message":"2013?","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 Cloudwatt"},{"line_number":2,"context_line":"# Copyright (c) 2011 OpenStack Foundation"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9bo4%3D","line":2,"in_reply_to":"AAAATn%2F9ciA%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7238,"name":"Inbar Shapira","email":"inbar_shapira@il.ibm.com","username":"Inbar"},"change_message_id":"1086109513bf780e74c1293324dc2d7bb25197ef","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        \"\"\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        filter_properties[\u0027pbsm_ram_ratio\u0027] \u003d float(parameters)"},{"line_number":35,"context_line":"        host_manager \u003d HostManager()"},{"line_number":36,"context_line":"        hosts \u003d host_manager.get_filtered_hosts(hosts, filter_properties,"},{"line_number":37,"context_line":"                        filter_class_names\u003d\"RamFilter\", index\u003dindex)"},{"line_number":38,"context_line":"        LOG.debug(\"RamOverProvisioningPlugin returns %d hosts\" % len(hosts))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9b%2BI%3D","line":35,"updated":"2013-12-11 19:14:31.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        \"\"\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        filter_properties[\u0027pbsm_ram_ratio\u0027] \u003d float(parameters)"},{"line_number":35,"context_line":"        host_manager \u003d HostManager()"},{"line_number":36,"context_line":"        hosts \u003d host_manager.get_filtered_hosts(hosts, filter_properties,"},{"line_number":37,"context_line":"                        filter_class_names\u003d\"RamFilter\", index\u003dindex)"},{"line_number":38,"context_line":"        LOG.debug(\"RamOverProvisioningPlugin returns %d hosts\" % len(hosts))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9W8s%3D","line":35,"in_reply_to":"AAAATn%2F9b%2BI%3D","updated":"2013-12-12 09:38:04.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        host_manager \u003d HostManager()"},{"line_number":36,"context_line":"        hosts \u003d host_manager.get_filtered_hosts(hosts, filter_properties,"},{"line_number":37,"context_line":"                        filter_class_names\u003d\"RamFilter\", index\u003dindex)"},{"line_number":38,"context_line":"        LOG.debug(\"RamOverProvisioningPlugin returns %d hosts\" % len(hosts))"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        return [WeighedHost(h, 0.0) for h in hosts]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cn4%3D","line":38,"updated":"2013-12-11 12:58:29.000000000","message":"ditto","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        host_manager \u003d HostManager()"},{"line_number":36,"context_line":"        hosts \u003d host_manager.get_filtered_hosts(hosts, filter_properties,"},{"line_number":37,"context_line":"                        filter_class_names\u003d\"RamFilter\", index\u003dindex)"},{"line_number":38,"context_line":"        LOG.debug(\"RamOverProvisioningPlugin returns %d hosts\" % len(hosts))"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        return [WeighedHost(h, 0.0) for h in hosts]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9bo8%3D","line":38,"in_reply_to":"AAAATn%2F9cn4%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"}],"nova/scheduler/policy_plugins/time_condition.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        tr \u003d parameters.split(\u0027-\u0027)"},{"line_number":42,"context_line":"        if len(tr) \u003c 1:"},{"line_number":43,"context_line":"            print \"Invalid time range\""},{"line_number":44,"context_line":"            return False"},{"line_number":45,"context_line":"        begin_time \u003d tr[0]"},{"line_number":46,"context_line":"        end_time \u003d tr[1]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cnw%3D","line":43,"updated":"2013-12-11 12:58:29.000000000","message":"why print?","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        tr \u003d parameters.split(\u0027-\u0027)"},{"line_number":42,"context_line":"        if len(tr) \u003c 1:"},{"line_number":43,"context_line":"            print \"Invalid time range\""},{"line_number":44,"context_line":"            return False"},{"line_number":45,"context_line":"        begin_time \u003d tr[0]"},{"line_number":46,"context_line":"        end_time \u003d tr[1]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9boY%3D","line":43,"in_reply_to":"AAAATn%2F9cnw%3D","updated":"2013-12-12 09:38:04.000000000","message":"Sorry. Corrected.","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8514,"name":"Yathiraj Udupi","email":"yudupi@cisco.com","username":"yudupi"},"change_message_id":"fa1488de898f23d59644235709f0f61522ece3db","unresolved":false,"context_lines":[{"line_number":23,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class TimeConditionPlugin(plugins.BaseConditionPlugin):"},{"line_number":27,"context_line":"    \"\"\"Check if current time is in range defined in parameters.\"\"\""},{"line_number":28,"context_line":"    __condition__ \u003d \"time\""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9yFU%3D","line":26,"updated":"2014-02-04 00:51:55.000000000","message":"Can this be enhanced to include Days of the week too, in addition to time range?  That feature could be useful in general.","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":23,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class TimeConditionPlugin(plugins.BaseConditionPlugin):"},{"line_number":27,"context_line":"    \"\"\"Check if current time is in range defined in parameters.\"\"\""},{"line_number":28,"context_line":"    __condition__ \u003d \"time\""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9unQ%3D","line":26,"in_reply_to":"AAAAUH%2F9yFU%3D","updated":"2014-02-04 16:31:39.000000000","message":"Nice suggestion. We will propose a new patch for this plugin in the future, like what you suggest with NbHostWeigher.","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    __condition__ \u003d \"time\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def check_condition(self, parameters, plugin_properties):"},{"line_number":31,"context_line":"        \"\"\"Check time conition: verify if current time is in range of"},{"line_number":32,"context_line":"        parameters."},{"line_number":33,"context_line":"        parameters: time range, e.g. \u002708:00-20:00\u0027"},{"line_number":34,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F97zs%3D","line":31,"updated":"2014-01-31 22:28:41.000000000","message":"typo \"conition\"","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    __condition__ \u003d \"time\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def check_condition(self, parameters, plugin_properties):"},{"line_number":31,"context_line":"        \"\"\"Check time conition: verify if current time is in range of"},{"line_number":32,"context_line":"        parameters."},{"line_number":33,"context_line":"        parameters: time range, e.g. \u002708:00-20:00\u0027"},{"line_number":34,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9unM%3D","line":31,"in_reply_to":"AAAAUH%2F97zs%3D","updated":"2014-02-04 16:31:39.000000000","message":"Done","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    def check_condition(self, parameters, plugin_properties):"},{"line_number":31,"context_line":"        \"\"\"Check time conition: verify if current time is in range of"},{"line_number":32,"context_line":"        parameters."},{"line_number":33,"context_line":"        parameters: time range, e.g. \u002708:00-20:00\u0027"},{"line_number":34,"context_line":"        \"\"\""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        from nova.openstack.common import timeutils"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F97zc%3D","line":33,"updated":"2014-01-31 22:28:41.000000000","message":"Nova mostly uses :param for this.","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    def check_condition(self, parameters, plugin_properties):"},{"line_number":31,"context_line":"        \"\"\"Check time conition: verify if current time is in range of"},{"line_number":32,"context_line":"        parameters."},{"line_number":33,"context_line":"        parameters: time range, e.g. \u002708:00-20:00\u0027"},{"line_number":34,"context_line":"        \"\"\""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        from nova.openstack.common import timeutils"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9unI%3D","line":33,"in_reply_to":"AAAAUH%2F97zc%3D","updated":"2014-02-04 16:31:39.000000000","message":"Done","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        parameters: time range, e.g. \u002708:00-20:00\u0027"},{"line_number":34,"context_line":"        \"\"\""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        from nova.openstack.common import timeutils"},{"line_number":37,"context_line":"        now \u003d timeutils.utcnow()"},{"line_number":38,"context_line":"        n \u003d now.hour * 60 + now.minute"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F97zU%3D","line":36,"updated":"2014-01-31 22:28:41.000000000","message":"Why import locally rather than at the top?","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        parameters: time range, e.g. \u002708:00-20:00\u0027"},{"line_number":34,"context_line":"        \"\"\""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        from nova.openstack.common import timeutils"},{"line_number":37,"context_line":"        now \u003d timeutils.utcnow()"},{"line_number":38,"context_line":"        n \u003d now.hour * 60 + now.minute"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9um4%3D","line":36,"in_reply_to":"AAAAUH%2F97zU%3D","updated":"2014-02-04 16:31:39.000000000","message":"sorry, will change as suggested;","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        if (n - b) * (n - e) * (e - b) \u003c\u003d 0:"},{"line_number":60,"context_line":"            return True"},{"line_number":61,"context_line":"        else:"},{"line_number":62,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F97zE%3D","line":62,"updated":"2014-01-31 22:28:41.000000000","message":"How about\nreturn (n - b) * (n - e) * (e - b) \u003c\u003d 0","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        if (n - b) * (n - e) * (e - b) \u003c\u003d 0:"},{"line_number":60,"context_line":"            return True"},{"line_number":61,"context_line":"        else:"},{"line_number":62,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9umk%3D","line":62,"in_reply_to":"AAAAUH%2F97zE%3D","updated":"2014-02-04 16:31:39.000000000","message":"Done","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"}],"nova/scheduler/policy_repo.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import json"},{"line_number":18,"context_line":"from nova.openstack.common import log as logging"},{"line_number":19,"context_line":"from oslo.config import cfg"},{"line_number":20,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cno%3D","line":17,"updated":"2013-12-11 12:58:29.000000000","message":"separate section","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import json"},{"line_number":18,"context_line":"from nova.openstack.common import log as logging"},{"line_number":19,"context_line":"from oslo.config import cfg"},{"line_number":20,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9bno%3D","line":17,"in_reply_to":"AAAATn%2F9cno%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"12fc3d9f83fd3e407ae2f77cc81a753a5321ecc3","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import json"},{"line_number":18,"context_line":"from nova.openstack.common import log as logging"},{"line_number":19,"context_line":"from oslo.config import cfg"},{"line_number":20,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9cnc%3D","line":19,"updated":"2013-12-11 12:58:29.000000000","message":"separate section","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import json"},{"line_number":18,"context_line":"from nova.openstack.common import log as logging"},{"line_number":19,"context_line":"from oslo.config import cfg"},{"line_number":20,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9bng%3D","line":19,"in_reply_to":"AAAATn%2F9cnc%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":60,"context_line":"           }"},{"line_number":61,"context_line":"        \"\"\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        rules \u003d {}"},{"line_number":64,"context_line":"        with open(self.policy_repository, \u0027r\u0027) as f:"},{"line_number":65,"context_line":"            rules \u003d json.load(f)"},{"line_number":66,"context_line":"        tenant_rules \u003d rules.get(\u0027tenant_rules\u0027, {})"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F970w%3D","line":63,"updated":"2014-01-31 22:28:41.000000000","message":"What does this accomplish, when it will be unconditionally overwritten by the json.load?","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":60,"context_line":"           }"},{"line_number":61,"context_line":"        \"\"\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        rules \u003d {}"},{"line_number":64,"context_line":"        with open(self.policy_repository, \u0027r\u0027) as f:"},{"line_number":65,"context_line":"            rules \u003d json.load(f)"},{"line_number":66,"context_line":"        tenant_rules \u003d rules.get(\u0027tenant_rules\u0027, {})"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9umI%3D","line":63,"in_reply_to":"AAAAUH%2F970w%3D","updated":"2014-02-04 16:31:39.000000000","message":"Done","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"}],"nova/scheduler/weights/nb_hosts.py":[{"author":{"_account_id":8514,"name":"Yathiraj Udupi","email":"yudupi@cisco.com","username":"yudupi"},"change_message_id":"fa1488de898f23d59644235709f0f61522ece3db","unresolved":false,"context_lines":[{"line_number":17,"context_line":"The default is to spread instances across all hosts evenly.  If you prefer"},{"line_number":18,"context_line":"stacking, you can set the \u0027nb_hosts_weight_multiplier\u0027 option to a negative"},{"line_number":19,"context_line":"number and the weighing has the opposite effect of the default."},{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from oslo.config import cfg"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9yCg%3D","line":20,"updated":"2014-02-04 00:51:55.000000000","message":"This patch can be split from this codebase, and you can separately submit this patch as a weight function applicable to the current Nova filter scheduler directly.  That way you can depend on that patch, and use a single config option if that gets merged.","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":17,"context_line":"The default is to spread instances across all hosts evenly.  If you prefer"},{"line_number":18,"context_line":"stacking, you can set the \u0027nb_hosts_weight_multiplier\u0027 option to a negative"},{"line_number":19,"context_line":"number and the weighing has the opposite effect of the default."},{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from oslo.config import cfg"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9ulg%3D","line":20,"in_reply_to":"AAAAUH%2F9yCg%3D","updated":"2014-02-04 16:31:39.000000000","message":"Thanks, will do as suggested.","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"}],"nova/scheduler/weights/ram.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def _weigh_object(self, host_state, weight_properties):"},{"line_number":44,"context_line":"        \"\"\"Higher weights win.  We want spreading to be the default.\"\"\""},{"line_number":45,"context_line":"        #Use pbsm_weight_ram_multiplier in weight_properties if exists"},{"line_number":46,"context_line":"        if \u0027pbsm_ram_weight_multiplier\u0027 in weight_properties:"},{"line_number":47,"context_line":"            multiplier \u003d weight_properties[\u0027pbsm_ram_weight_multiplier\u0027]"},{"line_number":48,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9chw%3D","line":45,"updated":"2013-12-11 13:14:58.000000000","message":"Add a blank space between # and \"Use\"","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def _weigh_object(self, host_state, weight_properties):"},{"line_number":44,"context_line":"        \"\"\"Higher weights win.  We want spreading to be the default.\"\"\""},{"line_number":45,"context_line":"        #Use pbsm_weight_ram_multiplier in weight_properties if exists"},{"line_number":46,"context_line":"        if \u0027pbsm_ram_weight_multiplier\u0027 in weight_properties:"},{"line_number":47,"context_line":"            multiplier \u003d weight_properties[\u0027pbsm_ram_weight_multiplier\u0027]"},{"line_number":48,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9bf0%3D","line":45,"in_reply_to":"AAAATn%2F9chw%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"1e4d9c8019d9eff182ac5a10dc919bbd2ec1c9e3","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    def _weigh_object(self, host_state, weight_properties):"},{"line_number":44,"context_line":"        \"\"\"Higher weights win.  We want spreading to be the default.\"\"\""},{"line_number":45,"context_line":"        #Use pbsm_weight_ram_multiplier in weight_properties if exists"},{"line_number":46,"context_line":"        if \u0027pbsm_ram_weight_multiplier\u0027 in weight_properties:"},{"line_number":47,"context_line":"            multiplier \u003d weight_properties[\u0027pbsm_ram_weight_multiplier\u0027]"},{"line_number":48,"context_line":"        else:"},{"line_number":49,"context_line":"            multiplier \u003d 1.0"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9chY%3D","line":46,"updated":"2013-12-11 13:14:58.000000000","message":"Why not \"weight_properties.get(\u0027pbsm_ram_weight_multiplier\u0027)\"","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"86ffb03a2224cbd71f80140f1a01506f9b56ea5f","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    def _weigh_object(self, host_state, weight_properties):"},{"line_number":44,"context_line":"        \"\"\"Higher weights win.  We want spreading to be the default.\"\"\""},{"line_number":45,"context_line":"        #Use pbsm_weight_ram_multiplier in weight_properties if exists"},{"line_number":46,"context_line":"        if \u0027pbsm_ram_weight_multiplier\u0027 in weight_properties:"},{"line_number":47,"context_line":"            multiplier \u003d weight_properties[\u0027pbsm_ram_weight_multiplier\u0027]"},{"line_number":48,"context_line":"        else:"},{"line_number":49,"context_line":"            multiplier \u003d 1.0"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9bfw%3D","line":46,"in_reply_to":"AAAATn%2F9chY%3D","updated":"2013-12-12 09:38:04.000000000","message":"Done","commit_id":"2bf700b0ffd8d25d952895c89f40a18aaea8a70b"}],"nova/tests/scheduler/fakes.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from nova.openstack.common import jsonutils"},{"line_number":24,"context_line":"from nova.scheduler import filter_scheduler"},{"line_number":25,"context_line":"from nova.scheduler import host_manager"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"COMPUTE_NODES \u003d ["},{"line_number":28,"context_line":"        dict(id\u003d1, local_gb\u003d1024, memory_mb\u003d1024, vcpus\u003d1,"},{"line_number":29,"context_line":"             disk_available_least\u003d512, free_ram_mb\u003d512, vcpus_used\u003d1,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F971A%3D","line":26,"updated":"2014-01-31 22:28:41.000000000","message":"accidental newline change?","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from nova.openstack.common import jsonutils"},{"line_number":24,"context_line":"from nova.scheduler import filter_scheduler"},{"line_number":25,"context_line":"from nova.scheduler import host_manager"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"COMPUTE_NODES \u003d ["},{"line_number":28,"context_line":"        dict(id\u003d1, local_gb\u003d1024, memory_mb\u003d1024, vcpus\u003d1,"},{"line_number":29,"context_line":"             disk_available_least\u003d512, free_ram_mb\u003d512, vcpus_used\u003d1,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9ulM%3D","line":26,"in_reply_to":"AAAAUH%2F971A%3D","updated":"2014-02-04 16:31:39.000000000","message":"Done","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"}],"nova/tests/scheduler/test_policy_based_scheduler.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":500,"context_line":"                       fake_apply_policies)"},{"line_number":501,"context_line":"        fakes.mox_host_manager_db_calls(self.mox, fake_context)"},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"        instance_properties \u003d {\u0027project_id\u0027: 1,"},{"line_number":504,"context_line":"                                    \u0027root_gb\u0027: 512,"},{"line_number":505,"context_line":"                                    \u0027memory_mb\u0027: 512,"},{"line_number":506,"context_line":"                                    \u0027ephemeral_gb\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F972E%3D","line":503,"updated":"2014-01-31 22:28:41.000000000","message":"please align these","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":500,"context_line":"                       fake_apply_policies)"},{"line_number":501,"context_line":"        fakes.mox_host_manager_db_calls(self.mox, fake_context)"},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"        instance_properties \u003d {\u0027project_id\u0027: 1,"},{"line_number":504,"context_line":"                                    \u0027root_gb\u0027: 512,"},{"line_number":505,"context_line":"                                    \u0027memory_mb\u0027: 512,"},{"line_number":506,"context_line":"                                    \u0027ephemeral_gb\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9ukg%3D","line":503,"in_reply_to":"AAAAUH%2F972E%3D","updated":"2014-02-04 16:31:39.000000000","message":"Done","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":531,"context_line":""},{"line_number":532,"context_line":"        self.next_weight \u003d 50"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"        instance_properties \u003d {\u0027project_id\u0027: 1,"},{"line_number":535,"context_line":"                                \u0027root_gb\u0027: 512,"},{"line_number":536,"context_line":"                                \u0027memory_mb\u0027: 512,"},{"line_number":537,"context_line":"                                \u0027ephemeral_gb\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9718%3D","line":534,"updated":"2014-01-31 22:28:41.000000000","message":"please align these","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":531,"context_line":""},{"line_number":532,"context_line":"        self.next_weight \u003d 50"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"        instance_properties \u003d {\u0027project_id\u0027: 1,"},{"line_number":535,"context_line":"                                \u0027root_gb\u0027: 512,"},{"line_number":536,"context_line":"                                \u0027memory_mb\u0027: 512,"},{"line_number":537,"context_line":"                                \u0027ephemeral_gb\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9ukY%3D","line":534,"in_reply_to":"AAAAUH%2F9718%3D","updated":"2014-02-04 16:31:39.000000000","message":"Done","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"}],"nova/tests/scheduler/test_policy_plugins.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        host1 \u003d fakes.FakeHostState(\u0027host1\u0027, \u0027node1\u0027, {})"},{"line_number":70,"context_line":"        host2 \u003d fakes.FakeHostState(\u0027host2\u0027, \u0027node2\u0027, {})"},{"line_number":71,"context_line":"        host3 \u003d fakes.FakeHostState(\u0027host3\u0027, \u0027node3\u0027, {})"},{"line_number":72,"context_line":"        host4 \u003d fakes.FakeHostState(\u0027host4\u0027, \u0027node4\u0027, {})"},{"line_number":73,"context_line":"        self._create_aggr(aggr_name\u003d\u0027aggr1\u0027,"},{"line_number":74,"context_line":"                          hosts\u003d[\u0027host1\u0027, \u0027host2\u0027],"},{"line_number":75,"context_line":"                          metadata\u003d{\u0027key1\u0027: \u0027value1\u0027})"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F97%2FQ%3D","line":72,"updated":"2014-01-31 22:28:41.000000000","message":"A lot of this setup is similar or identical in most of these tests.  Moving some of it to setUp would make it more readable.","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        host1 \u003d fakes.FakeHostState(\u0027host1\u0027, \u0027node1\u0027, {})"},{"line_number":70,"context_line":"        host2 \u003d fakes.FakeHostState(\u0027host2\u0027, \u0027node2\u0027, {})"},{"line_number":71,"context_line":"        host3 \u003d fakes.FakeHostState(\u0027host3\u0027, \u0027node3\u0027, {})"},{"line_number":72,"context_line":"        host4 \u003d fakes.FakeHostState(\u0027host4\u0027, \u0027node4\u0027, {})"},{"line_number":73,"context_line":"        self._create_aggr(aggr_name\u003d\u0027aggr1\u0027,"},{"line_number":74,"context_line":"                          hosts\u003d[\u0027host1\u0027, \u0027host2\u0027],"},{"line_number":75,"context_line":"                          metadata\u003d{\u0027key1\u0027: \u0027value1\u0027})"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9ukM%3D","line":72,"in_reply_to":"AAAAUH%2F97%2FQ%3D","updated":"2014-02-04 16:31:39.000000000","message":"will do as suggested.","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    def test_time_condition(self):"},{"line_number":293,"context_line":"        import datetime"},{"line_number":294,"context_line":"        from nova.openstack.common import timeutils"},{"line_number":295,"context_line":"        condition \u003d self.condition_plugins[\"time\"]"},{"line_number":296,"context_line":"        plugin_properties \u003d {}"},{"line_number":297,"context_line":"        self.mox.StubOutWithMock(timeutils, \u0027utcnow\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F97%2Bw%3D","line":294,"updated":"2014-01-31 22:28:41.000000000","message":"I don\u0027t see a reason to import these locally rather than at the top.","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    def test_time_condition(self):"},{"line_number":293,"context_line":"        import datetime"},{"line_number":294,"context_line":"        from nova.openstack.common import timeutils"},{"line_number":295,"context_line":"        condition \u003d self.condition_plugins[\"time\"]"},{"line_number":296,"context_line":"        plugin_properties \u003d {}"},{"line_number":297,"context_line":"        self.mox.StubOutWithMock(timeutils, \u0027utcnow\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9ukE%3D","line":294,"in_reply_to":"AAAAUH%2F97%2Bw%3D","updated":"2014-02-04 16:31:39.000000000","message":"Done","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"}],"nova/tests/scheduler/test_policy_repo.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            policy_dir \u003d os.path.join(tmpdir, \u0027scheduling_policy\u0027)"},{"line_number":95,"context_line":"        try:"},{"line_number":96,"context_line":"            os.makedirs(policy_dir)"},{"line_number":97,"context_line":"        except Exception as e:"},{"line_number":98,"context_line":"            pass"},{"line_number":99,"context_line":"        file_name \u003d os.path.join(policy_dir, \u0027scheduling_policy.json\u0027)"},{"line_number":100,"context_line":"        self.flags(scheduler_policy_repository\u003dfile_name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F98Ac%3D","line":97,"updated":"2014-01-31 22:28:41.000000000","message":"This should be narrower.  Is OSError enough?","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            policy_dir \u003d os.path.join(tmpdir, \u0027scheduling_policy\u0027)"},{"line_number":95,"context_line":"        try:"},{"line_number":96,"context_line":"            os.makedirs(policy_dir)"},{"line_number":97,"context_line":"        except Exception as e:"},{"line_number":98,"context_line":"            pass"},{"line_number":99,"context_line":"        file_name \u003d os.path.join(policy_dir, \u0027scheduling_policy.json\u0027)"},{"line_number":100,"context_line":"        self.flags(scheduler_policy_repository\u003dfile_name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9uj8%3D","line":97,"in_reply_to":"AAAAUH%2F98Ac%3D","updated":"2014-02-04 16:31:39.000000000","message":"Done","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"}],"nova/tests/scheduler/test_weights.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1736904bf5cbc983f7a7a424c562a03a1df4c117","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        class_names \u003d [cls.__name__ for cls in classes]"},{"line_number":39,"context_line":"        self.assertEqual(len(classes), 3)"},{"line_number":40,"context_line":"        self.assertIn(\u0027RAMWeigher\u0027, class_names)"},{"line_number":41,"context_line":"        self.assertIn(\u0027MetricsWeigher\u0027, class_names)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"class RamWeigherTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F98Aw%3D","line":41,"updated":"2014-01-31 22:28:41.000000000","message":"Why not a third assertIn for the third class?","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"},{"author":{"_account_id":8690,"name":"Khanh-Toan TRAN","email":"khtoantran@gmail.com","username":"toan-tran"},"change_message_id":"4117b23b21add7897f8b1f004ef9e1791ff9e7f2","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        class_names \u003d [cls.__name__ for cls in classes]"},{"line_number":39,"context_line":"        self.assertEqual(len(classes), 3)"},{"line_number":40,"context_line":"        self.assertIn(\u0027RAMWeigher\u0027, class_names)"},{"line_number":41,"context_line":"        self.assertIn(\u0027MetricsWeigher\u0027, class_names)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"class RamWeigherTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9ujY%3D","line":41,"in_reply_to":"AAAAUH%2F98Aw%3D","updated":"2014-02-04 16:31:39.000000000","message":"The third class is NbHostWeigher. As suggested from Yathi, in the next patch we will remove this class and introduce it in a separated patch (not necessary depending on this patch).","commit_id":"d2969c46e83d09941d22f8ffceb4a292560a02b6"}]}
