)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"44477b9edae492307cb2278f3c5af7947030dc17","unresolved":false,"context_lines":[{"line_number":14,"context_line":"The problem is that the drivers that do implement this in"},{"line_number":15,"context_line":"most cases will iterate through the settings and just make"},{"line_number":16,"context_line":"the changes that are valid and ignore the rest, and then"},{"line_number":17,"context_line":"return True."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"The result is that for example if you\u0027re trying to retype"},{"line_number":20,"context_line":"from backend-a to backend-b and backend-a implements retype"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a0c5dc1_70260618","line":17,"updated":"2015-05-12 03:37:40.000000000","message":"That should also be considered a bug for drivers, right?","commit_id":"36cac3ea890265237a3aef9264a8d07158650198"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e4a4b82d6a5858380d987dfe0a01539c33de5278","unresolved":false,"context_lines":[{"line_number":14,"context_line":"The problem is that the drivers that do implement this in"},{"line_number":15,"context_line":"most cases will iterate through the settings and just make"},{"line_number":16,"context_line":"the changes that are valid and ignore the rest, and then"},{"line_number":17,"context_line":"return True."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"The result is that for example if you\u0027re trying to retype"},{"line_number":20,"context_line":"from backend-a to backend-b and backend-a implements retype"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a0c5dc1_c2cb9571","line":17,"in_reply_to":"9a0c5dc1_70260618","updated":"2015-05-12 13:55:01.000000000","message":"In my opinion \"no\", I feel this is a bug in the retype code particularly the manager.  Drivers in my opinion should be allowed to be pretty dumb WRT Cinder itself.  We send in crap to the wrong driver I don\u0027t expect the driver to try and interpret that and come back with something.\n\nAnother problem is that it might just so happen that there are multiple drivers that actually satisfy the same capability/extra-spec keys.  It\u0027s certainly not an error IMO that the driver didn\u0027t know that Cinder was actually intending to \"migrate\" the volume.","commit_id":"36cac3ea890265237a3aef9264a8d07158650198"}],"cinder/tests/unit/test_volume_utils.py":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"44477b9edae492307cb2278f3c5af7947030dc17","unresolved":false,"context_lines":[{"line_number":659,"context_line":"    def test_compare_hosts(self):"},{"line_number":660,"context_line":"        host_1 \u003d \u0027fake_host\u0027"},{"line_number":661,"context_line":"        host_2 \u003d \u0027fake_host#pool1\u0027"},{"line_number":662,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1,"},{"line_number":663,"context_line":"                                                          host_2,"},{"line_number":664,"context_line":"                                                          level\u003d\u0027backend\u0027))"},{"line_number":665,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_30208ef7","line":662,"updated":"2015-05-12 03:37:40.000000000","message":"hosts_are_equivalent() takes only 2 parameters.","commit_id":"36cac3ea890265237a3aef9264a8d07158650198"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e4a4b82d6a5858380d987dfe0a01539c33de5278","unresolved":false,"context_lines":[{"line_number":659,"context_line":"    def test_compare_hosts(self):"},{"line_number":660,"context_line":"        host_1 \u003d \u0027fake_host\u0027"},{"line_number":661,"context_line":"        host_2 \u003d \u0027fake_host#pool1\u0027"},{"line_number":662,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1,"},{"line_number":663,"context_line":"                                                          host_2,"},{"line_number":664,"context_line":"                                                          level\u003d\u0027backend\u0027))"},{"line_number":665,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_42944536","line":662,"in_reply_to":"9a0c5dc1_30208ef7","updated":"2015-05-12 13:55:01.000000000","message":"See note below","commit_id":"36cac3ea890265237a3aef9264a8d07158650198"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b7d7ba0fc25002a090655deb35cdf75c0d0656ce","unresolved":false,"context_lines":[{"line_number":661,"context_line":"        host_2 \u003d \u0027fake_host#pool1\u0027"},{"line_number":662,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1,"},{"line_number":663,"context_line":"                                                          host_2,"},{"line_number":664,"context_line":"                                                          level\u003d\u0027backend\u0027))"},{"line_number":665,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1,"},{"line_number":666,"context_line":"                                                          host_2,"},{"line_number":667,"context_line":"                                                          level\u003d\u0027pool\u0027))"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_0d4695bf","line":664,"updated":"2015-05-12 02:40:20.000000000","message":"Is level left over from something else? Current hosts_are_equivalent just takes host_1 and host_2.","commit_id":"36cac3ea890265237a3aef9264a8d07158650198"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e4a4b82d6a5858380d987dfe0a01539c33de5278","unresolved":false,"context_lines":[{"line_number":661,"context_line":"        host_2 \u003d \u0027fake_host#pool1\u0027"},{"line_number":662,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1,"},{"line_number":663,"context_line":"                                                          host_2,"},{"line_number":664,"context_line":"                                                          level\u003d\u0027backend\u0027))"},{"line_number":665,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1,"},{"line_number":666,"context_line":"                                                          host_2,"},{"line_number":667,"context_line":"                                                          level\u003d\u0027pool\u0027))"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_a276613c","line":664,"in_reply_to":"9a0c5dc1_0d4695bf","updated":"2015-05-12 13:55:01.000000000","message":"Mike asked me to remove \"level\" as it wasn\u0027t used in the helper.  I neglected to remove it from the call here.","commit_id":"36cac3ea890265237a3aef9264a8d07158650198"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"df09284e5cc9dfee7052888d27cc9bfd6bac2374","unresolved":false,"context_lines":[{"line_number":660,"context_line":"        host_1 \u003d \u0027fake_host\u0027"},{"line_number":661,"context_line":"        host_2 \u003d \u0027fake_host#pool1\u0027"},{"line_number":662,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1, host_2))"},{"line_number":663,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1, host_2))"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"        host_2 \u003d \u0027fake_host\u0027"},{"line_number":666,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1, host_2))"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a0c5dc1_38ccde34","line":663,"updated":"2015-05-12 14:29:36.000000000","message":"Remove redundant line.","commit_id":"91c96d9ba5a077f23831279cdf99ab16bdfcac3f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"05ef641b9f65f5e005302511601856ab30431cd2","unresolved":false,"context_lines":[{"line_number":660,"context_line":"        host_1 \u003d \u0027fake_host\u0027"},{"line_number":661,"context_line":"        host_2 \u003d \u0027fake_host#pool1\u0027"},{"line_number":662,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1, host_2))"},{"line_number":663,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1, host_2))"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"        host_2 \u003d \u0027fake_host\u0027"},{"line_number":666,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1, host_2))"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a0c5dc1_31ee3923","line":663,"in_reply_to":"9a0c5dc1_166d6b04","updated":"2015-05-12 15:02:14.000000000","message":"I think he means 662 and 663 are duplicate asserts.","commit_id":"91c96d9ba5a077f23831279cdf99ab16bdfcac3f"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"1fc768c027576bfaa05b2a23b911859991aa545d","unresolved":false,"context_lines":[{"line_number":660,"context_line":"        host_1 \u003d \u0027fake_host\u0027"},{"line_number":661,"context_line":"        host_2 \u003d \u0027fake_host#pool1\u0027"},{"line_number":662,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1, host_2))"},{"line_number":663,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1, host_2))"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"        host_2 \u003d \u0027fake_host\u0027"},{"line_number":666,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1, host_2))"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a0c5dc1_f1e1c1ff","line":663,"in_reply_to":"9a0c5dc1_31ee3923","updated":"2015-05-12 15:05:23.000000000","message":"Yes, that\u0027s what I meant.  Thanks.","commit_id":"91c96d9ba5a077f23831279cdf99ab16bdfcac3f"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"717a135007ba582f58b17c3542b33e886054e1ba","unresolved":false,"context_lines":[{"line_number":660,"context_line":"        host_1 \u003d \u0027fake_host\u0027"},{"line_number":661,"context_line":"        host_2 \u003d \u0027fake_host#pool1\u0027"},{"line_number":662,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1, host_2))"},{"line_number":663,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1, host_2))"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"        host_2 \u003d \u0027fake_host\u0027"},{"line_number":666,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1, host_2))"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a0c5dc1_166d6b04","line":663,"in_reply_to":"9a0c5dc1_38ccde34","updated":"2015-05-12 14:58:26.000000000","message":"What redundant line?","commit_id":"91c96d9ba5a077f23831279cdf99ab16bdfcac3f"},{"author":{"_account_id":7219,"name":"git-harry","email":"git-harry@live.co.uk","username":"git-harry"},"change_message_id":"42c8ad923873a951a3a497ae4e5dc16e5416d622","unresolved":false,"context_lines":[{"line_number":662,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1, host_2))"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"        host_2 \u003d \u0027fake_host\u0027"},{"line_number":665,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1, host_2))"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a0c5dc1_bb49d6d2","line":665,"updated":"2015-05-12 21:06:29.000000000","message":"I think there should be a test for \u0027fake_host@backend1\u0027 because that is what the function is really returning.","commit_id":"14aa3c7539b342677ddadda11dc014aaee8b6492"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"7f2281599436d9b3e2496ff9d277571b57c6c036","unresolved":false,"context_lines":[{"line_number":662,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1, host_2))"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"        host_2 \u003d \u0027fake_host\u0027"},{"line_number":665,"context_line":"        self.assertTrue(volume_utils.hosts_are_equivalent(host_1, host_2))"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a0c5dc1_6f5cb325","line":665,"in_reply_to":"9a0c5dc1_bb49d6d2","updated":"2015-05-13 01:36:40.000000000","message":"which is tested pretty extensively at L#576 (test_extract_host), but whatever, if it makes you happy I have no problem changing it.","commit_id":"14aa3c7539b342677ddadda11dc014aaee8b6492"}],"cinder/volume/manager.py":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"44477b9edae492307cb2278f3c5af7947030dc17","unresolved":false,"context_lines":[{"line_number":1680,"context_line":"        # We assume that those that support pools do this internally"},{"line_number":1681,"context_line":"        # so we strip off the pools designation"},{"line_number":1682,"context_line":"        if (not retyped and"},{"line_number":1683,"context_line":"                vol_utils.hosts_are_equivalent(self.driver.host,"},{"line_number":1684,"context_line":"                                               host[\u0027host\u0027])):"},{"line_number":1685,"context_line":"            try:"},{"line_number":1686,"context_line":"                new_type \u003d volume_types.get_volume_type(context, new_type_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_50230206","line":1683,"updated":"2015-05-12 03:37:40.000000000","message":"Nit pick: although self.host, self.driver.host and volume_ref[\u0027host\u0027] should be the same, would it be more clear here to use self.host or volume_ref[\u0027host\u0027] ?","commit_id":"36cac3ea890265237a3aef9264a8d07158650198"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e4a4b82d6a5858380d987dfe0a01539c33de5278","unresolved":false,"context_lines":[{"line_number":1680,"context_line":"        # We assume that those that support pools do this internally"},{"line_number":1681,"context_line":"        # so we strip off the pools designation"},{"line_number":1682,"context_line":"        if (not retyped and"},{"line_number":1683,"context_line":"                vol_utils.hosts_are_equivalent(self.driver.host,"},{"line_number":1684,"context_line":"                                               host[\u0027host\u0027])):"},{"line_number":1685,"context_line":"            try:"},{"line_number":1686,"context_line":"                new_type \u003d volume_types.get_volume_type(context, new_type_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_624aa985","line":1683,"in_reply_to":"9a0c5dc1_50230206","updated":"2015-05-12 13:55:01.000000000","message":"I don\u0027t understand why it matters at all?  In my mind I\u0027m interested in verifying that the driver in scope here has the correct \"host\", so for me it made the most sense to use driver.host.\n\nIf it\u0027s a problem I can change it, but I need to make sure there isn\u0027t any surprises there.","commit_id":"36cac3ea890265237a3aef9264a8d07158650198"}],"cinder/volume/utils.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"5f36479ea17dd66ef8439ee04db4af47ca26efc2","unresolved":false,"context_lines":[{"line_number":497,"context_line":""},{"line_number":498,"context_line":""},{"line_number":499,"context_line":"def hosts_are_equivalent(host_1, host_2, level\u003d\u0027backend\u0027):"},{"line_number":500,"context_line":"    return extract_host(host_1) \u003d\u003d extract_host(host_2)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da1255d7_09e44939","line":500,"updated":"2015-05-11 23:31:25.000000000","message":"This is never passing level in. Either remove it or use it.","commit_id":"95bced97b9b821515c9819d4a94e89a0d095a684"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"2931256a4ecd9796eebdf9edaab6665bb15f3c50","unresolved":false,"context_lines":[{"line_number":497,"context_line":""},{"line_number":498,"context_line":""},{"line_number":499,"context_line":"def hosts_are_equivalent(host_1, host_2, level\u003d\u0027backend\u0027):"},{"line_number":500,"context_line":"    return extract_host(host_1) \u003d\u003d extract_host(host_2)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da1255d7_c9e191d2","line":500,"in_reply_to":"da1255d7_09e44939","updated":"2015-05-11 23:50:57.000000000","message":"yeah, just do:\n\n    return extract_host(host_1, level) \u003d\u003d extract_host(host2, level)\n\n You are right to ignore pools for determining equivalence I think.","commit_id":"95bced97b9b821515c9819d4a94e89a0d095a684"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"1d496c19b501299920d21952f7bc319188a130b8","unresolved":false,"context_lines":[{"line_number":497,"context_line":""},{"line_number":498,"context_line":""},{"line_number":499,"context_line":"def hosts_are_equivalent(host_1, host_2, level\u003d\u0027backend\u0027):"},{"line_number":500,"context_line":"    return extract_host(host_1) \u003d\u003d extract_host(host_2)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a0c5dc1_a79e8a05","line":500,"in_reply_to":"da1255d7_c9e191d2","updated":"2015-05-12 01:12:49.000000000","message":"oops, sorry... I\u0027ll get that fixed up and resubmitted.  Thanks both of you.","commit_id":"95bced97b9b821515c9819d4a94e89a0d095a684"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"4dbec99664e9087788b34d2d0b2310548b63087e","unresolved":false,"context_lines":[{"line_number":497,"context_line":""},{"line_number":498,"context_line":""},{"line_number":499,"context_line":"def hosts_are_equivalent(host_1, host_2):"},{"line_number":500,"context_line":"    return extract_host(host_1) \u003d\u003d extract_host(host_2)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_1befebb1","line":500,"updated":"2015-05-12 04:30:55.000000000","message":"Looks like you forgot to pass in \u0027level\u0027?\n\ndef hosts_are_equivalent(host_1, host_2, level\u003d\u0027backend\u0027):\n    return extract_host(host_1, level) \u003d\u003d extract_host(host_2, level)","commit_id":"36cac3ea890265237a3aef9264a8d07158650198"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e4a4b82d6a5858380d987dfe0a01539c33de5278","unresolved":false,"context_lines":[{"line_number":497,"context_line":""},{"line_number":498,"context_line":""},{"line_number":499,"context_line":"def hosts_are_equivalent(host_1, host_2):"},{"line_number":500,"context_line":"    return extract_host(host_1) \u003d\u003d extract_host(host_2)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a0c5dc1_429a0516","line":500,"in_reply_to":"9a0c5dc1_1befebb1","updated":"2015-05-12 13:55:01.000000000","message":"Yeah, I was asked to remove it as it wasn\u0027t used.  Missed the unit test update.","commit_id":"36cac3ea890265237a3aef9264a8d07158650198"},{"author":{"_account_id":7219,"name":"git-harry","email":"git-harry@live.co.uk","username":"git-harry"},"change_message_id":"42c8ad923873a951a3a497ae4e5dc16e5416d622","unresolved":false,"context_lines":[{"line_number":497,"context_line":""},{"line_number":498,"context_line":""},{"line_number":499,"context_line":"def hosts_are_equivalent(host_1, host_2):"},{"line_number":500,"context_line":"    return extract_host(host_1) \u003d\u003d extract_host(host_2)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a0c5dc1_9b9cd26a","line":500,"updated":"2015-05-12 21:06:29.000000000","message":"Host seems a bit of an overloaded term in this context, it might be nice to explicitly set the level used e.g.\n\nreturn extract_host(host_1, level\u003d\u0027backend\u0027) \u003d\u003d extract_host(host_2, level\u003d\u0027backend\u0027)\n\nI think this makes it clearer, when just glancing at this function, that host means host@backend\n\nAlternatively, maybe have a keyword argument for the level, in this function, with the default of backend.","commit_id":"14aa3c7539b342677ddadda11dc014aaee8b6492"}]}
