)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"5c2c912c7e588f4a9bdc4d39adca2cc78f32c335","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"CG creation should be schedule on backend level"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, cinder scheduler schedule the CG creation"},{"line_number":10,"context_line":"on pooil level, that means if there are multiple volume"},{"line_number":11,"context_line":"types in one CG if each volume type is associated with a"},{"line_number":12,"context_line":"different pool(those pools under same backend), you can\u0027t"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba15a1d1_5d4a2056","line":9,"updated":"2015-09-18 13:10:03.000000000","message":"schedule -\u003e schedules","commit_id":"28e764ec055742a83f19db35429b666f7cb655d7"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"78f71d505cc4663b8b5cd8bda571c4c3b35886d3","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"CG creation should be schedule on backend level"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, cinder scheduler schedule the CG creation"},{"line_number":10,"context_line":"on pooil level, that means if there are multiple volume"},{"line_number":11,"context_line":"types in one CG if each volume type is associated with a"},{"line_number":12,"context_line":"different pool(those pools under same backend), you can\u0027t"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba15a1d1_8d915155","line":9,"in_reply_to":"ba15a1d1_5d4a2056","updated":"2015-09-19 01:31:51.000000000","message":"Done","commit_id":"28e764ec055742a83f19db35429b666f7cb655d7"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"5c2c912c7e588f4a9bdc4d39adca2cc78f32c335","unresolved":false,"context_lines":[{"line_number":7,"context_line":"CG creation should be schedule on backend level"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, cinder scheduler schedule the CG creation"},{"line_number":10,"context_line":"on pooil level, that means if there are multiple volume"},{"line_number":11,"context_line":"types in one CG if each volume type is associated with a"},{"line_number":12,"context_line":"different pool(those pools under same backend), you can\u0027t"},{"line_number":13,"context_line":"create the CG successfully."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba15a1d1_3d7acc88","line":10,"updated":"2015-09-18 13:10:03.000000000","message":"pooil -\u003e pool","commit_id":"28e764ec055742a83f19db35429b666f7cb655d7"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"78f71d505cc4663b8b5cd8bda571c4c3b35886d3","unresolved":false,"context_lines":[{"line_number":7,"context_line":"CG creation should be schedule on backend level"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, cinder scheduler schedule the CG creation"},{"line_number":10,"context_line":"on pooil level, that means if there are multiple volume"},{"line_number":11,"context_line":"types in one CG if each volume type is associated with a"},{"line_number":12,"context_line":"different pool(those pools under same backend), you can\u0027t"},{"line_number":13,"context_line":"create the CG successfully."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba15a1d1_2d9e0564","line":10,"in_reply_to":"ba15a1d1_3d7acc88","updated":"2015-09-19 01:31:51.000000000","message":"Done","commit_id":"28e764ec055742a83f19db35429b666f7cb655d7"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"124ada2650537c7ae5d97ee0a7b7ee790a537c23","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     wanghao \u003cwanghao749@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-09-19 09:32:05 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"CG creation should be schedule on backend level"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, cinder scheduler schedules the CG creation"},{"line_number":10,"context_line":"on pool level, that means if there are multiple volume"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ba15a1d1_6b69e924","line":7,"updated":"2015-09-22 14:32:20.000000000","message":"schedule -\u003e scheduled","commit_id":"9ab9e03bafb800a89ea9d71e44a246f98aab3dbc"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"a758f7f574b496258e2c10a234f9c8463d8b471a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     wanghao \u003cwanghao749@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-09-19 09:32:05 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"CG creation should be schedule on backend level"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, cinder scheduler schedules the CG creation"},{"line_number":10,"context_line":"on pool level, that means if there are multiple volume"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ba15a1d1_f42e068b","line":7,"in_reply_to":"ba15a1d1_6b69e924","updated":"2015-09-23 12:39:05.000000000","message":"Done","commit_id":"9ab9e03bafb800a89ea9d71e44a246f98aab3dbc"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"124ada2650537c7ae5d97ee0a7b7ee790a537c23","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Currently, cinder scheduler schedules the CG creation"},{"line_number":10,"context_line":"on pool level, that means if there are multiple volume"},{"line_number":11,"context_line":"types in one CG if each volume type is associated with a"},{"line_number":12,"context_line":"different pool(those pools under same backend), you can\u0027t"},{"line_number":13,"context_line":"create the CG successfully."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"But according the design of CG, it should be scheduled on"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ba15a1d1_ab8621d9","line":12,"updated":"2015-09-22 14:32:20.000000000","message":"missing space between \"pool\" and \"(\"","commit_id":"9ab9e03bafb800a89ea9d71e44a246f98aab3dbc"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"a758f7f574b496258e2c10a234f9c8463d8b471a","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Currently, cinder scheduler schedules the CG creation"},{"line_number":10,"context_line":"on pool level, that means if there are multiple volume"},{"line_number":11,"context_line":"types in one CG if each volume type is associated with a"},{"line_number":12,"context_line":"different pool(those pools under same backend), you can\u0027t"},{"line_number":13,"context_line":"create the CG successfully."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"But according the design of CG, it should be scheduled on"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ba15a1d1_3439ded7","line":12,"in_reply_to":"ba15a1d1_ab8621d9","updated":"2015-09-23 12:39:05.000000000","message":"Done","commit_id":"9ab9e03bafb800a89ea9d71e44a246f98aab3dbc"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"7212afa11ea5ceb8f4477f3bd0bf669f3f33f7d0","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, cinder scheduler schedules the CG creation"},{"line_number":10,"context_line":"on pool level, that means if there are multiple volume"},{"line_number":11,"context_line":"types in one CG if each volume type is associated with a"},{"line_number":12,"context_line":"different pool(those pools under same backend), you can\u0027t"},{"line_number":13,"context_line":"create the CG successfully."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5a2ca52d_9a35c4db","line":11,"updated":"2015-10-14 16:10:39.000000000","message":"Missing space between \"pool\" and \"(\"","commit_id":"ffaa45ad87e982abd623a2ac7caa4ffbd1233a68"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"9d6619b620cd4b042e3cc97b9c1d51c2a39a3496","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, cinder scheduler schedules the CG creation"},{"line_number":10,"context_line":"on pool level, that means if there are multiple volume"},{"line_number":11,"context_line":"types in one CG if each volume type is associated with a"},{"line_number":12,"context_line":"different pool(those pools under same backend), you can\u0027t"},{"line_number":13,"context_line":"create the CG successfully."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"fa80f949_dfe0c498","line":11,"in_reply_to":"5a2ca52d_9a35c4db","updated":"2015-11-06 07:01:54.000000000","message":"Done","commit_id":"ffaa45ad87e982abd623a2ac7caa4ffbd1233a68"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"eea5335dbb200202539ac2165d97ec61afab5d35","unresolved":false,"context_lines":[{"line_number":12,"context_line":"different pool(those pools under same backend), you can\u0027t"},{"line_number":13,"context_line":"create the CG successfully."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"But according the design of CG, it should be scheduled on"},{"line_number":16,"context_line":"backend level to support the case mentioned above."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I335dbdd1d2b1146543148ccce8d52162804369f4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"1a26ad4f_d5eec121","line":15,"updated":"2015-10-28 19:50:19.000000000","message":"Suggest: \"According to the design of CG\u0027s, it should be scheduled on the...\"","commit_id":"ffaa45ad87e982abd623a2ac7caa4ffbd1233a68"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"9d6619b620cd4b042e3cc97b9c1d51c2a39a3496","unresolved":false,"context_lines":[{"line_number":12,"context_line":"different pool(those pools under same backend), you can\u0027t"},{"line_number":13,"context_line":"create the CG successfully."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"But according the design of CG, it should be scheduled on"},{"line_number":16,"context_line":"backend level to support the case mentioned above."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I335dbdd1d2b1146543148ccce8d52162804369f4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"fa80f949_3fe6b0b0","line":15,"in_reply_to":"1a26ad4f_d5eec121","updated":"2015-11-06 07:01:54.000000000","message":"Done","commit_id":"ffaa45ad87e982abd623a2ac7caa4ffbd1233a68"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"eea5335dbb200202539ac2165d97ec61afab5d35","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"But according the design of CG, it should be scheduled on"},{"line_number":16,"context_line":"backend level to support the case mentioned above."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I335dbdd1d2b1146543148ccce8d52162804369f4"},{"line_number":19,"context_line":"Closes-Bug: #1496655"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"1a26ad4f_150199ae","line":17,"updated":"2015-10-28 19:50:19.000000000","message":"Also, I think this may need a DocImpact, but someone can correct me if I\u0027m wrong.","commit_id":"ffaa45ad87e982abd623a2ac7caa4ffbd1233a68"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"9d6619b620cd4b042e3cc97b9c1d51c2a39a3496","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"But according the design of CG, it should be scheduled on"},{"line_number":16,"context_line":"backend level to support the case mentioned above."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I335dbdd1d2b1146543148ccce8d52162804369f4"},{"line_number":19,"context_line":"Closes-Bug: #1496655"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"fa80f949_dfa52447","line":17,"in_reply_to":"1a26ad4f_150199ae","updated":"2015-11-06 07:01:54.000000000","message":"I feel it should be told clearly to developers. Thanks Kendall.","commit_id":"ffaa45ad87e982abd623a2ac7caa4ffbd1233a68"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"99f60e8e946a3f23187a3d9ee6b2a011361c7c4f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     wanghao \u003cwanghao749@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-06 16:33:46 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"CG creation should be schedule on backend level"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, cinder scheduler schedules the CG creation"},{"line_number":10,"context_line":"on pool level, that means if there are multiple volume"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"fa80f949_81e5ebdc","line":7,"updated":"2015-11-06 14:41:01.000000000","message":"s/schedule/scheduled (if I understand correctly)","commit_id":"15c4f347c45fe41d122b0c93339e88fef9c268bb"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"b2921c3c40ec8c4774aa5094a9c6412c21d82f05","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     wanghao \u003cwanghao749@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-06 16:33:46 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"CG creation should be schedule on backend level"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, cinder scheduler schedules the CG creation"},{"line_number":10,"context_line":"on pool level, that means if there are multiple volume"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"da85f559_9c9076ee","line":7,"in_reply_to":"fa80f949_81e5ebdc","updated":"2015-11-09 06:53:21.000000000","message":"Done","commit_id":"15c4f347c45fe41d122b0c93339e88fef9c268bb"}],"cinder/scheduler/filter_scheduler.py":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"5c2c912c7e588f4a9bdc4d39adca2cc78f32c335","unresolved":false,"context_lines":[{"line_number":409,"context_line":"    def _schedule(self, context, request_spec, filter_properties\u003dNone):"},{"line_number":410,"context_line":"        weighed_hosts \u003d self._get_weighted_candidates(context, request_spec,"},{"line_number":411,"context_line":"                                                      filter_properties)"},{"line_number":412,"context_line":"        # When we get the weighed_hosts, we clear those hosts which\u0027s backend"},{"line_number":413,"context_line":"        # is not same as consistencygroup\u0027s backend."},{"line_number":414,"context_line":"        if weighed_hosts and request_spec.get(\u0027CG_backend\u0027, None):"},{"line_number":415,"context_line":"            for host in weighed_hosts[::-1]:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_dd1e305e","line":412,"updated":"2015-09-18 13:10:03.000000000","message":"which\u0027s -\u003e whose","commit_id":"28e764ec055742a83f19db35429b666f7cb655d7"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"78f71d505cc4663b8b5cd8bda571c4c3b35886d3","unresolved":false,"context_lines":[{"line_number":409,"context_line":"    def _schedule(self, context, request_spec, filter_properties\u003dNone):"},{"line_number":410,"context_line":"        weighed_hosts \u003d self._get_weighted_candidates(context, request_spec,"},{"line_number":411,"context_line":"                                                      filter_properties)"},{"line_number":412,"context_line":"        # When we get the weighed_hosts, we clear those hosts which\u0027s backend"},{"line_number":413,"context_line":"        # is not same as consistencygroup\u0027s backend."},{"line_number":414,"context_line":"        if weighed_hosts and request_spec.get(\u0027CG_backend\u0027, None):"},{"line_number":415,"context_line":"            for host in weighed_hosts[::-1]:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_0d8c6134","line":412,"in_reply_to":"ba15a1d1_dd1e305e","updated":"2015-09-19 01:31:51.000000000","message":"Done","commit_id":"28e764ec055742a83f19db35429b666f7cb655d7"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"124ada2650537c7ae5d97ee0a7b7ee790a537c23","unresolved":false,"context_lines":[{"line_number":410,"context_line":"        weighed_hosts \u003d self._get_weighted_candidates(context, request_spec,"},{"line_number":411,"context_line":"                                                      filter_properties)"},{"line_number":412,"context_line":"        # When we get the weighed_hosts, we clear those hosts whose backend"},{"line_number":413,"context_line":"        # is not same as consistencygroup\u0027s backend."},{"line_number":414,"context_line":"        if weighed_hosts and request_spec.get(\u0027CG_backend\u0027, None):"},{"line_number":415,"context_line":"            for host in weighed_hosts[::-1]:"},{"line_number":416,"context_line":"                backend \u003d utils.extract_host(host.obj.host)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_cbd35537","line":413,"updated":"2015-09-22 14:32:20.000000000","message":"Think request_spec.get(\u0027CG_backend\u0027, None) is equivalent to request_spec.get(\u0027CG_backend\u0027) since default behavior for missing key is to return None","commit_id":"9ab9e03bafb800a89ea9d71e44a246f98aab3dbc"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"a758f7f574b496258e2c10a234f9c8463d8b471a","unresolved":false,"context_lines":[{"line_number":410,"context_line":"        weighed_hosts \u003d self._get_weighted_candidates(context, request_spec,"},{"line_number":411,"context_line":"                                                      filter_properties)"},{"line_number":412,"context_line":"        # When we get the weighed_hosts, we clear those hosts whose backend"},{"line_number":413,"context_line":"        # is not same as consistencygroup\u0027s backend."},{"line_number":414,"context_line":"        if weighed_hosts and request_spec.get(\u0027CG_backend\u0027, None):"},{"line_number":415,"context_line":"            for host in weighed_hosts[::-1]:"},{"line_number":416,"context_line":"                backend \u003d utils.extract_host(host.obj.host)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_34aebee6","line":413,"in_reply_to":"ba15a1d1_cbd35537","updated":"2015-09-23 12:39:05.000000000","message":"Yes, thanks Ryan.","commit_id":"9ab9e03bafb800a89ea9d71e44a246f98aab3dbc"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"124ada2650537c7ae5d97ee0a7b7ee790a537c23","unresolved":false,"context_lines":[{"line_number":414,"context_line":"        if weighed_hosts and request_spec.get(\u0027CG_backend\u0027, None):"},{"line_number":415,"context_line":"            for host in weighed_hosts[::-1]:"},{"line_number":416,"context_line":"                backend \u003d utils.extract_host(host.obj.host)"},{"line_number":417,"context_line":"                if backend !\u003d request_spec.get(\u0027CG_backend\u0027):"},{"line_number":418,"context_line":"                    weighed_hosts.remove(host)"},{"line_number":419,"context_line":"        if not weighed_hosts:"},{"line_number":420,"context_line":"            LOG.warning(_LW(\u0027No weighed hosts found for volume \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_2ba9b17b","line":417,"updated":"2015-09-22 14:32:20.000000000","message":"Small optimization could be saving \"request_spec.get(\u0027CG_backend\u0027) so we\u0027re not grabbing it each iteration of loop","commit_id":"9ab9e03bafb800a89ea9d71e44a246f98aab3dbc"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"a758f7f574b496258e2c10a234f9c8463d8b471a","unresolved":false,"context_lines":[{"line_number":414,"context_line":"        if weighed_hosts and request_spec.get(\u0027CG_backend\u0027, None):"},{"line_number":415,"context_line":"            for host in weighed_hosts[::-1]:"},{"line_number":416,"context_line":"                backend \u003d utils.extract_host(host.obj.host)"},{"line_number":417,"context_line":"                if backend !\u003d request_spec.get(\u0027CG_backend\u0027):"},{"line_number":418,"context_line":"                    weighed_hosts.remove(host)"},{"line_number":419,"context_line":"        if not weighed_hosts:"},{"line_number":420,"context_line":"            LOG.warning(_LW(\u0027No weighed hosts found for volume \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_b4888e72","line":417,"in_reply_to":"ba15a1d1_2ba9b17b","updated":"2015-09-23 12:39:05.000000000","message":"Good catch! I didn\u0027t notice this one, thanks.","commit_id":"9ab9e03bafb800a89ea9d71e44a246f98aab3dbc"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"fcb4aae8a9aeb419d776f72230badcb73d103fe1","unresolved":false,"context_lines":[{"line_number":413,"context_line":"        # is not same as consistencygroup\u0027s backend."},{"line_number":414,"context_line":"        cg_backend \u003d request_spec.get(\u0027cg_backend\u0027)"},{"line_number":415,"context_line":"        if weighed_hosts and cg_backend:"},{"line_number":416,"context_line":"            for host in weighed_hosts[::-1]:"},{"line_number":417,"context_line":"                backend \u003d utils.extract_host(host.obj.host)"},{"line_number":418,"context_line":"                if backend !\u003d cg_backend:"},{"line_number":419,"context_line":"                    weighed_hosts.remove(host)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a2fa921_0a30cb9d","line":416,"updated":"2015-10-12 03:43:59.000000000","message":"I suggest you add some comment about what you have picked up via weighed_hosts[::-1], like is it a host, backend, or something else?","commit_id":"ce687b5d7792b4b0018c14a63c6c2911c524caca"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"c4f7eef9c8db1ae837fde252c4c9b8aa8254f826","unresolved":false,"context_lines":[{"line_number":413,"context_line":"        # is not same as consistencygroup\u0027s backend."},{"line_number":414,"context_line":"        cg_backend \u003d request_spec.get(\u0027cg_backend\u0027)"},{"line_number":415,"context_line":"        if weighed_hosts and cg_backend:"},{"line_number":416,"context_line":"            for host in weighed_hosts[::-1]:"},{"line_number":417,"context_line":"                backend \u003d utils.extract_host(host.obj.host)"},{"line_number":418,"context_line":"                if backend !\u003d cg_backend:"},{"line_number":419,"context_line":"                    weighed_hosts.remove(host)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a2fa921_0ec4313e","line":416,"in_reply_to":"7a2fa921_0a30cb9d","updated":"2015-10-13 02:20:09.000000000","message":"Done","commit_id":"ce687b5d7792b4b0018c14a63c6c2911c524caca"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"7212afa11ea5ceb8f4477f3bd0bf669f3f33f7d0","unresolved":false,"context_lines":[{"line_number":410,"context_line":"        weighed_hosts \u003d self._get_weighted_candidates(context, request_spec,"},{"line_number":411,"context_line":"                                                      filter_properties)"},{"line_number":412,"context_line":"        # When we get the weighed_hosts, we clear those hosts whose backend"},{"line_number":413,"context_line":"        # is not same as consistencygroup\u0027s backend."},{"line_number":414,"context_line":"        if weighed_hosts and request_spec.get(\u0027CG_backend\u0027, None):"},{"line_number":415,"context_line":"            # Get host name including host@backend#pool info from"},{"line_number":416,"context_line":"            # weighed_hosts."}],"source_content_type":"text/x-python","patch_set":10,"id":"5a2ca52d_baba0009","line":413,"updated":"2015-10-14 16:10:39.000000000","message":"request_spec.get(\u0027CG_backend\u0027, None) should be equivalent to request_spec.get(\u0027CG_backend\u0027) since default return value when key isn\u0027t found is None","commit_id":"ffaa45ad87e982abd623a2ac7caa4ffbd1233a68"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"9d6619b620cd4b042e3cc97b9c1d51c2a39a3496","unresolved":false,"context_lines":[{"line_number":410,"context_line":"        weighed_hosts \u003d self._get_weighted_candidates(context, request_spec,"},{"line_number":411,"context_line":"                                                      filter_properties)"},{"line_number":412,"context_line":"        # When we get the weighed_hosts, we clear those hosts whose backend"},{"line_number":413,"context_line":"        # is not same as consistencygroup\u0027s backend."},{"line_number":414,"context_line":"        if weighed_hosts and request_spec.get(\u0027CG_backend\u0027, None):"},{"line_number":415,"context_line":"            # Get host name including host@backend#pool info from"},{"line_number":416,"context_line":"            # weighed_hosts."}],"source_content_type":"text/x-python","patch_set":10,"id":"fa80f949_1f772cd4","line":413,"in_reply_to":"5a2ca52d_baba0009","updated":"2015-11-06 07:01:54.000000000","message":"Done","commit_id":"ffaa45ad87e982abd623a2ac7caa4ffbd1233a68"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"7212afa11ea5ceb8f4477f3bd0bf669f3f33f7d0","unresolved":false,"context_lines":[{"line_number":415,"context_line":"            # Get host name including host@backend#pool info from"},{"line_number":416,"context_line":"            # weighed_hosts."},{"line_number":417,"context_line":"            for host in weighed_hosts[::-1]:"},{"line_number":418,"context_line":"                backend \u003d utils.extract_host(host.obj.host)"},{"line_number":419,"context_line":"                if backend !\u003d request_spec.get(\u0027CG_backend\u0027):"},{"line_number":420,"context_line":"                    weighed_hosts.remove(host)"},{"line_number":421,"context_line":"        if not weighed_hosts:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a2ca52d_ba51a0da","line":418,"updated":"2015-10-14 16:10:39.000000000","message":"Could save this value of request_spec.get(\u0027CG_backend\u0027) so we\u0027re not grabbing it each iteration of the loop.  Could also save it before line 414 so we\u0027re only grabbing once","commit_id":"ffaa45ad87e982abd623a2ac7caa4ffbd1233a68"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"9d6619b620cd4b042e3cc97b9c1d51c2a39a3496","unresolved":false,"context_lines":[{"line_number":415,"context_line":"            # Get host name including host@backend#pool info from"},{"line_number":416,"context_line":"            # weighed_hosts."},{"line_number":417,"context_line":"            for host in weighed_hosts[::-1]:"},{"line_number":418,"context_line":"                backend \u003d utils.extract_host(host.obj.host)"},{"line_number":419,"context_line":"                if backend !\u003d request_spec.get(\u0027CG_backend\u0027):"},{"line_number":420,"context_line":"                    weighed_hosts.remove(host)"},{"line_number":421,"context_line":"        if not weighed_hosts:"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa80f949_df01a407","line":418,"in_reply_to":"5a2ca52d_ba51a0da","updated":"2015-11-06 07:01:54.000000000","message":"Good point!","commit_id":"ffaa45ad87e982abd623a2ac7caa4ffbd1233a68"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"7212afa11ea5ceb8f4477f3bd0bf669f3f33f7d0","unresolved":false,"context_lines":[{"line_number":416,"context_line":"            # weighed_hosts."},{"line_number":417,"context_line":"            for host in weighed_hosts[::-1]:"},{"line_number":418,"context_line":"                backend \u003d utils.extract_host(host.obj.host)"},{"line_number":419,"context_line":"                if backend !\u003d request_spec.get(\u0027CG_backend\u0027):"},{"line_number":420,"context_line":"                    weighed_hosts.remove(host)"},{"line_number":421,"context_line":"        if not weighed_hosts:"},{"line_number":422,"context_line":"            LOG.warning(_LW(\u0027No weighed hosts found for volume \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a2ca52d_7ae1c8cf","line":419,"updated":"2015-10-14 16:10:39.000000000","message":"Could we get into any trouble from removing elements from weighed_hosts while we\u0027re iterating over it?","commit_id":"ffaa45ad87e982abd623a2ac7caa4ffbd1233a68"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"9d6619b620cd4b042e3cc97b9c1d51c2a39a3496","unresolved":false,"context_lines":[{"line_number":416,"context_line":"            # weighed_hosts."},{"line_number":417,"context_line":"            for host in weighed_hosts[::-1]:"},{"line_number":418,"context_line":"                backend \u003d utils.extract_host(host.obj.host)"},{"line_number":419,"context_line":"                if backend !\u003d request_spec.get(\u0027CG_backend\u0027):"},{"line_number":420,"context_line":"                    weighed_hosts.remove(host)"},{"line_number":421,"context_line":"        if not weighed_hosts:"},{"line_number":422,"context_line":"            LOG.warning(_LW(\u0027No weighed hosts found for volume \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa80f949_c249c761","line":419,"in_reply_to":"5a2ca52d_7ae1c8cf","updated":"2015-11-06 07:01:54.000000000","message":"Emm, I feel it\u0027s fine. Since we iterate over weighed_hosts from end to start, removing the host will not go to trouble.","commit_id":"ffaa45ad87e982abd623a2ac7caa4ffbd1233a68"}],"cinder/tests/unit/scheduler/test_filter_scheduler.py":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"5c2c912c7e588f4a9bdc4d39adca2cc78f32c335","unresolved":false,"context_lines":[{"line_number":180,"context_line":"    @mock.patch(\u0027cinder.db.service_get_all_by_topic\u0027)"},{"line_number":181,"context_line":"    def test_create_volume_clear_host_different_with_cg(self,"},{"line_number":182,"context_line":"                                                        _mock_service_get_all):"},{"line_number":183,"context_line":"        # Ensure we clear those hosts which\u0027s backend is not same as"},{"line_number":184,"context_line":"        # consistencygroup\u0027s backend."},{"line_number":185,"context_line":"        sched \u003d fakes.FakeFilterScheduler()"},{"line_number":186,"context_line":"        sched.host_manager \u003d fakes.FakeHostManager()"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_3d53ac18","line":183,"updated":"2015-09-18 13:10:03.000000000","message":"which\u0027s -\u003e whose","commit_id":"28e764ec055742a83f19db35429b666f7cb655d7"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"78f71d505cc4663b8b5cd8bda571c4c3b35886d3","unresolved":false,"context_lines":[{"line_number":180,"context_line":"    @mock.patch(\u0027cinder.db.service_get_all_by_topic\u0027)"},{"line_number":181,"context_line":"    def test_create_volume_clear_host_different_with_cg(self,"},{"line_number":182,"context_line":"                                                        _mock_service_get_all):"},{"line_number":183,"context_line":"        # Ensure we clear those hosts which\u0027s backend is not same as"},{"line_number":184,"context_line":"        # consistencygroup\u0027s backend."},{"line_number":185,"context_line":"        sched \u003d fakes.FakeFilterScheduler()"},{"line_number":186,"context_line":"        sched.host_manager \u003d fakes.FakeHostManager()"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_ad80d5f8","line":183,"in_reply_to":"ba15a1d1_3d53ac18","updated":"2015-09-19 01:31:51.000000000","message":"Done","commit_id":"28e764ec055742a83f19db35429b666f7cb655d7"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"af1f022567b5438bffba2a07f869d58cac54485a","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                        \u0027CG_backend\u0027: \u0027host@lvmdriver\u0027}"},{"line_number":193,"context_line":"        weighed_host \u003d sched._schedule(fake_context, request_spec, {})"},{"line_number":194,"context_line":"        self.assertIsNone(weighed_host)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def test_max_attempts(self):"},{"line_number":197,"context_line":"        self.flags(scheduler_max_attempts\u003d4)"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_6f0355b9","line":195,"updated":"2015-09-21 22:07:54.000000000","message":"Can you add a positive test case where \u0027CG_backend\u0027 matches?","commit_id":"9ab9e03bafb800a89ea9d71e44a246f98aab3dbc"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"a758f7f574b496258e2c10a234f9c8463d8b471a","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                        \u0027CG_backend\u0027: \u0027host@lvmdriver\u0027}"},{"line_number":193,"context_line":"        weighed_host \u003d sched._schedule(fake_context, request_spec, {})"},{"line_number":194,"context_line":"        self.assertIsNone(weighed_host)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def test_max_attempts(self):"},{"line_number":197,"context_line":"        self.flags(scheduler_max_attempts\u003d4)"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_f4fda6b1","line":195,"in_reply_to":"ba15a1d1_6f0355b9","updated":"2015-09-23 12:39:05.000000000","message":"Sure.","commit_id":"9ab9e03bafb800a89ea9d71e44a246f98aab3dbc"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"5c6f4a911cdce74d598e2f2994b191540d3ab00e","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        request_spec \u003d {\u0027volume_properties\u0027: {\u0027project_id\u0027: 1,"},{"line_number":205,"context_line":"                                              \u0027size\u0027: 1},"},{"line_number":206,"context_line":"                        \u0027volume_type\u0027: {\u0027name\u0027: \u0027LVM_iSCSI\u0027},"},{"line_number":207,"context_line":"                        \u0027CG_backend\u0027: \u0027host1#lvm1\u0027}"},{"line_number":208,"context_line":"        weighed_host \u003d sched._schedule(fake_context, request_spec, {})"},{"line_number":209,"context_line":"        self.assertEqual(\u0027host1#lvm1\u0027, weighed_host.obj.host)"},{"line_number":210,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba15a1d1_0ac26be9","line":207,"updated":"2015-09-23 16:39:32.000000000","message":"When you do extract_host in sched._schedule, it will only return everything to the left of the #.\n\nSo with:\nWeighedHost [host: host1#lvm1, weight: 0.837837837838]\nOnly \"host1\" will be returned and stored in the backend variable. This means that the \"if backend !\u003d CG_backend\"  will always fail, removing all the weighed hosts.\n\nIf you change \u0027CG_backend\u0027: \u0027host1#lvm1\u0027 to \u0027CG_backend\u0027: \u0027host1\u0027 , this test passes and your weighed hosts are:\n[WeighedHost [host: host1#lvm1, weight: 0.837837837838]]\n\nIs this what you are trying to accomplish with this test?","commit_id":"be7f09c4ed17335f6ad86e522300245e52406ed0"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0044d2ebaedee28c6100b2accf3fbad37c88788e","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        request_spec \u003d {\u0027volume_properties\u0027: {\u0027project_id\u0027: 1,"},{"line_number":205,"context_line":"                                              \u0027size\u0027: 1},"},{"line_number":206,"context_line":"                        \u0027volume_type\u0027: {\u0027name\u0027: \u0027LVM_iSCSI\u0027},"},{"line_number":207,"context_line":"                        \u0027CG_backend\u0027: \u0027host1#lvm1\u0027}"},{"line_number":208,"context_line":"        weighed_host \u003d sched._schedule(fake_context, request_spec, {})"},{"line_number":209,"context_line":"        self.assertEqual(\u0027host1#lvm1\u0027, weighed_host.obj.host)"},{"line_number":210,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_0b4f6d93","line":207,"in_reply_to":"ba15a1d1_0ac26be9","updated":"2015-09-24 15:06:08.000000000","message":"Yes, exactly, thanks Alex, will update it.","commit_id":"be7f09c4ed17335f6ad86e522300245e52406ed0"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"eea5335dbb200202539ac2165d97ec61afab5d35","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                        \u0027CG_backend\u0027: \u0027host@lvmdriver\u0027}"},{"line_number":193,"context_line":"        weighed_host \u003d sched._schedule(fake_context, request_spec, {})"},{"line_number":194,"context_line":"        self.assertIsNone(weighed_host)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def test_max_attempts(self):"},{"line_number":197,"context_line":"        self.flags(scheduler_max_attempts\u003d4)"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1a26ad4f_7541ed0a","line":195,"updated":"2015-10-28 19:50:19.000000000","message":"I agree. You should have test cases to cover both the positive and negative situations.","commit_id":"ffaa45ad87e982abd623a2ac7caa4ffbd1233a68"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3ed570360c128a6b4f8732df1811890cc71cd1c2","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                        \u0027CG_backend\u0027: \u0027host@lvmdriver\u0027}"},{"line_number":193,"context_line":"        weighed_host \u003d sched._schedule(fake_context, request_spec, {})"},{"line_number":194,"context_line":"        self.assertIsNone(weighed_host)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def test_max_attempts(self):"},{"line_number":197,"context_line":"        self.flags(scheduler_max_attempts\u003d4)"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5a2ca52d_fcecaff4","line":195,"updated":"2015-10-15 22:04:09.000000000","message":"Why did you remove the positive test case  test_create_volume_host_same_as_cg that was in patch set 7?  It is good to keep it.","commit_id":"ffaa45ad87e982abd623a2ac7caa4ffbd1233a68"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"9d6619b620cd4b042e3cc97b9c1d51c2a39a3496","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                        \u0027CG_backend\u0027: \u0027host@lvmdriver\u0027}"},{"line_number":193,"context_line":"        weighed_host \u003d sched._schedule(fake_context, request_spec, {})"},{"line_number":194,"context_line":"        self.assertIsNone(weighed_host)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def test_max_attempts(self):"},{"line_number":197,"context_line":"        self.flags(scheduler_max_attempts\u003d4)"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa80f949_02234f57","line":195,"in_reply_to":"1a26ad4f_7541ed0a","updated":"2015-11-06 07:01:54.000000000","message":"Okay","commit_id":"ffaa45ad87e982abd623a2ac7caa4ffbd1233a68"}],"cinder/tests/unit/volume/flows/test_create_volume_flow.py":[{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"fcb4aae8a9aeb419d776f72230badcb73d103fe1","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    def test_cast_create_volume(self, consistencygroup_get_by_id, mock_time,"},{"line_number":57,"context_line":"                                mock_extract_host):"},{"line_number":58,"context_line":"        props \u003d {}"},{"line_number":59,"context_line":"        consistencygroup_obj \u003d \\"},{"line_number":60,"context_line":"            fake_consistencygroup.fake_consistencyobject_obj("},{"line_number":61,"context_line":"                self.ctxt, consistencygroup_id\u003d1, host\u003d\u0027host@backend#pool\u0027)"},{"line_number":62,"context_line":"        consistencygroup_get_by_id.return_value \u003d consistencygroup_obj"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a2fa921_6a713f77","line":59,"updated":"2015-10-12 03:43:59.000000000","message":"You can replace \\ with ().","commit_id":"ce687b5d7792b4b0018c14a63c6c2911c524caca"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"c4f7eef9c8db1ae837fde252c4c9b8aa8254f826","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    def test_cast_create_volume(self, consistencygroup_get_by_id, mock_time,"},{"line_number":57,"context_line":"                                mock_extract_host):"},{"line_number":58,"context_line":"        props \u003d {}"},{"line_number":59,"context_line":"        consistencygroup_obj \u003d \\"},{"line_number":60,"context_line":"            fake_consistencygroup.fake_consistencyobject_obj("},{"line_number":61,"context_line":"                self.ctxt, consistencygroup_id\u003d1, host\u003d\u0027host@backend#pool\u0027)"},{"line_number":62,"context_line":"        consistencygroup_get_by_id.return_value \u003d consistencygroup_obj"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a2fa921_6ed845f0","line":59,"in_reply_to":"7a2fa921_6a713f77","updated":"2015-10-13 02:20:09.000000000","message":"Done","commit_id":"ce687b5d7792b4b0018c14a63c6c2911c524caca"}],"cinder/volume/flows/api/create_volume.py":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"5c2c912c7e588f4a9bdc4d39adca2cc78f32c335","unresolved":false,"context_lines":[{"line_number":699,"context_line":""},{"line_number":700,"context_line":"        if cgroup_id:"},{"line_number":701,"context_line":"            # If cgroup_id existed, we should cast volume to the scheduler"},{"line_number":702,"context_line":"            # to choose a proper pool which\u0027s backend is same as CG\u0027s backend."},{"line_number":703,"context_line":"            cgroup \u003d objects.ConsistencyGroup.get_by_id(context, cgroup_id)"},{"line_number":704,"context_line":"            request_spec[\u0027CG_backend\u0027] \u003d vol_utils.extract_host(cgroup.host)"},{"line_number":705,"context_line":"        elif snapshot_id and CONF.snapshot_same_host:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_bd3fbcb2","line":702,"updated":"2015-09-18 13:10:03.000000000","message":"which\u0027s -\u003e whose","commit_id":"28e764ec055742a83f19db35429b666f7cb655d7"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"78f71d505cc4663b8b5cd8bda571c4c3b35886d3","unresolved":false,"context_lines":[{"line_number":699,"context_line":""},{"line_number":700,"context_line":"        if cgroup_id:"},{"line_number":701,"context_line":"            # If cgroup_id existed, we should cast volume to the scheduler"},{"line_number":702,"context_line":"            # to choose a proper pool which\u0027s backend is same as CG\u0027s backend."},{"line_number":703,"context_line":"            cgroup \u003d objects.ConsistencyGroup.get_by_id(context, cgroup_id)"},{"line_number":704,"context_line":"            request_spec[\u0027CG_backend\u0027] \u003d vol_utils.extract_host(cgroup.host)"},{"line_number":705,"context_line":"        elif snapshot_id and CONF.snapshot_same_host:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_cd850908","line":702,"in_reply_to":"ba15a1d1_bd3fbcb2","updated":"2015-09-19 01:31:51.000000000","message":"Done","commit_id":"28e764ec055742a83f19db35429b666f7cb655d7"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"5c6f4a911cdce74d598e2f2994b191540d3ab00e","unresolved":false,"context_lines":[{"line_number":701,"context_line":"            # If cgroup_id existed, we should cast volume to the scheduler"},{"line_number":702,"context_line":"            # to choose a proper pool whose backend is same as CG\u0027s backend."},{"line_number":703,"context_line":"            cgroup \u003d objects.ConsistencyGroup.get_by_id(context, cgroup_id)"},{"line_number":704,"context_line":"            request_spec[\u0027CG_backend\u0027] \u003d vol_utils.extract_host(cgroup.host)"},{"line_number":705,"context_line":"        elif snapshot_id and CONF.snapshot_same_host:"},{"line_number":706,"context_line":"            # NOTE(Rongze Zhu): A simple solution for bug 1008866."},{"line_number":707,"context_line":"            #"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba15a1d1_c7846cd4","line":704,"updated":"2015-09-23 16:39:32.000000000","message":"nit: capitalizing the CG in this var looks very strange. Is it needed or can we keep it consistently lower case?","commit_id":"be7f09c4ed17335f6ad86e522300245e52406ed0"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0044d2ebaedee28c6100b2accf3fbad37c88788e","unresolved":false,"context_lines":[{"line_number":701,"context_line":"            # If cgroup_id existed, we should cast volume to the scheduler"},{"line_number":702,"context_line":"            # to choose a proper pool whose backend is same as CG\u0027s backend."},{"line_number":703,"context_line":"            cgroup \u003d objects.ConsistencyGroup.get_by_id(context, cgroup_id)"},{"line_number":704,"context_line":"            request_spec[\u0027CG_backend\u0027] \u003d vol_utils.extract_host(cgroup.host)"},{"line_number":705,"context_line":"        elif snapshot_id and CONF.snapshot_same_host:"},{"line_number":706,"context_line":"            # NOTE(Rongze Zhu): A simple solution for bug 1008866."},{"line_number":707,"context_line":"            #"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_461a3c70","line":704,"in_reply_to":"ba15a1d1_c7846cd4","updated":"2015-09-24 15:06:08.000000000","message":"of course, cg_backend should be fine I feel.","commit_id":"be7f09c4ed17335f6ad86e522300245e52406ed0"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"99f60e8e946a3f23187a3d9ee6b2a011361c7c4f","unresolved":false,"context_lines":[{"line_number":701,"context_line":"            # If cgroup_id existed, we should cast volume to the scheduler"},{"line_number":702,"context_line":"            # to choose a proper pool whose backend is same as CG\u0027s backend."},{"line_number":703,"context_line":"            cgroup \u003d objects.ConsistencyGroup.get_by_id(context, cgroup_id)"},{"line_number":704,"context_line":"            request_spec[\u0027CG_backend\u0027] \u003d vol_utils.extract_host(cgroup.host)"},{"line_number":705,"context_line":"        elif snapshot_id and CONF.snapshot_same_host:"},{"line_number":706,"context_line":"            # NOTE(Rongze Zhu): A simple solution for bug 1008866."},{"line_number":707,"context_line":"            #"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa80f949_3c4228af","line":704,"updated":"2015-11-06 14:41:01.000000000","message":"This will result in non-backward compatible change, which will make rolling upgrades impossible.\n\nDo we need to add that to request spec? We have consistencygroup_id in request_spec, so I think you can fetch CG from the DB in scheduler and do host extracting there.","commit_id":"15c4f347c45fe41d122b0c93339e88fef9c268bb"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"b2921c3c40ec8c4774aa5094a9c6412c21d82f05","unresolved":false,"context_lines":[{"line_number":701,"context_line":"            # If cgroup_id existed, we should cast volume to the scheduler"},{"line_number":702,"context_line":"            # to choose a proper pool whose backend is same as CG\u0027s backend."},{"line_number":703,"context_line":"            cgroup \u003d objects.ConsistencyGroup.get_by_id(context, cgroup_id)"},{"line_number":704,"context_line":"            request_spec[\u0027CG_backend\u0027] \u003d vol_utils.extract_host(cgroup.host)"},{"line_number":705,"context_line":"        elif snapshot_id and CONF.snapshot_same_host:"},{"line_number":706,"context_line":"            # NOTE(Rongze Zhu): A simple solution for bug 1008866."},{"line_number":707,"context_line":"            #"}],"source_content_type":"text/x-python","patch_set":12,"id":"da85f559_d0c1fe2f","line":704,"in_reply_to":"da85f559_3a064021","updated":"2015-11-09 06:53:21.000000000","message":"Michal, I feel this will not break the rolling upgrades, the CG_backend is a new thing in request_spec, so if we upgrade the cinder-api first or cinder-scheduler first,  either will not bring incompatible error IMO.","commit_id":"15c4f347c45fe41d122b0c93339e88fef9c268bb"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"a69ec4a9f0fcfddfc0772d1cc798aee24d5d874c","unresolved":false,"context_lines":[{"line_number":701,"context_line":"            # If cgroup_id existed, we should cast volume to the scheduler"},{"line_number":702,"context_line":"            # to choose a proper pool whose backend is same as CG\u0027s backend."},{"line_number":703,"context_line":"            cgroup \u003d objects.ConsistencyGroup.get_by_id(context, cgroup_id)"},{"line_number":704,"context_line":"            request_spec[\u0027CG_backend\u0027] \u003d vol_utils.extract_host(cgroup.host)"},{"line_number":705,"context_line":"        elif snapshot_id and CONF.snapshot_same_host:"},{"line_number":706,"context_line":"            # NOTE(Rongze Zhu): A simple solution for bug 1008866."},{"line_number":707,"context_line":"            #"}],"source_content_type":"text/x-python","patch_set":12,"id":"da85f559_f5e88b7e","line":704,"in_reply_to":"da85f559_d0c1fe2f","updated":"2015-11-09 20:08:49.000000000","message":"@xing-yang: This is why I\u0027ve recently noticed that we should convert request_spec and filter_properties to versioned objects to have them behind compatibility layer (or facade like Dan Smith likes to call them ;)). I\u0027m going to work on that as soon as I\u0027ll find time.\n\n@wanghao: Right, I get your point of view. We actually haven\u0027t decided if we should upgrade bottom-up (starting with c-vol) or top-down (starting with c-api). Both approaches have it\u0027s flaws. And we would probably need to do a PoC of both to decide.\n\nI don\u0027t want to stop your work so we probably should follow this route - please add TODO saying something along:\n\n    # FIXME(wanghao): CG_backend got added before request_spec was \n    # converted to versioned objects. We should make sure that this\n    # will be handled by object version translations once we add\n    # RequestSpec object.\n\nAlso please add UpgradeImpact flag to the commit message, so we\u0027ll be able to track that change easily.","commit_id":"15c4f347c45fe41d122b0c93339e88fef9c268bb"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"c07cfd759525cff6c27126387ba9513e95e7922b","unresolved":false,"context_lines":[{"line_number":701,"context_line":"            # If cgroup_id existed, we should cast volume to the scheduler"},{"line_number":702,"context_line":"            # to choose a proper pool whose backend is same as CG\u0027s backend."},{"line_number":703,"context_line":"            cgroup \u003d objects.ConsistencyGroup.get_by_id(context, cgroup_id)"},{"line_number":704,"context_line":"            request_spec[\u0027CG_backend\u0027] \u003d vol_utils.extract_host(cgroup.host)"},{"line_number":705,"context_line":"        elif snapshot_id and CONF.snapshot_same_host:"},{"line_number":706,"context_line":"            # NOTE(Rongze Zhu): A simple solution for bug 1008866."},{"line_number":707,"context_line":"            #"}],"source_content_type":"text/x-python","patch_set":12,"id":"da85f559_e6669628","line":704,"in_reply_to":"da85f559_f5e88b7e","updated":"2015-11-10 01:43:11.000000000","message":"Great! Thanks Michal.","commit_id":"15c4f347c45fe41d122b0c93339e88fef9c268bb"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"efaa68c6d73fe4f0d309aef771284317eb78c05a","unresolved":false,"context_lines":[{"line_number":701,"context_line":"            # If cgroup_id existed, we should cast volume to the scheduler"},{"line_number":702,"context_line":"            # to choose a proper pool whose backend is same as CG\u0027s backend."},{"line_number":703,"context_line":"            cgroup \u003d objects.ConsistencyGroup.get_by_id(context, cgroup_id)"},{"line_number":704,"context_line":"            request_spec[\u0027CG_backend\u0027] \u003d vol_utils.extract_host(cgroup.host)"},{"line_number":705,"context_line":"        elif snapshot_id and CONF.snapshot_same_host:"},{"line_number":706,"context_line":"            # NOTE(Rongze Zhu): A simple solution for bug 1008866."},{"line_number":707,"context_line":"            #"}],"source_content_type":"text/x-python","patch_set":12,"id":"da85f559_3a064021","line":704,"in_reply_to":"fa80f949_3c4228af","updated":"2015-11-07 05:01:00.000000000","message":"Good to have your input on rolling upgrades, Michal!  Do you mean we can no longer add anything new to request_spec if we want to support rolling upgrades?\n\nWe can fetch CG from the DB in the scheduler, but it just seems odd to do it there.","commit_id":"15c4f347c45fe41d122b0c93339e88fef9c268bb"}]}
