)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"b9f8ef01d3d5b4f69f61db8c6a07c6e58d0d5f11","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     wanghao \u003cwanghao749@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-05-07 09:29:17 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix response when query host detail by host name"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When query host detail by host name like"},{"line_number":10,"context_line":"\u0027wanghao-devstack-snapshot@lvmdriver-1\u0027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1aca2d91_17c89954","line":7,"updated":"2015-05-07 09:40:25.000000000","message":"s/query/querying","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0afffed2c1f7df83341f02503b28a58626f9d007","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     wanghao \u003cwanghao749@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-05-07 09:29:17 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix response when query host detail by host name"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When query host detail by host name like"},{"line_number":10,"context_line":"\u0027wanghao-devstack-snapshot@lvmdriver-1\u0027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1aca2d91_d908ef93","line":7,"in_reply_to":"1aca2d91_17c89954","updated":"2015-05-08 03:27:50.000000000","message":"Done","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"b9f8ef01d3d5b4f69f61db8c6a07c6e58d0d5f11","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix response when query host detail by host name"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When query host detail by host name like"},{"line_number":10,"context_line":"\u0027wanghao-devstack-snapshot@lvmdriver-1\u0027"},{"line_number":11,"context_line":"which got from host list, cinder return"},{"line_number":12,"context_line":"incorrect result in \u0027total\u0027 block."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1aca2d91_f7c4fd40","line":9,"updated":"2015-05-07 09:40:25.000000000","message":"ditto","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0afffed2c1f7df83341f02503b28a58626f9d007","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix response when query host detail by host name"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When query host detail by host name like"},{"line_number":10,"context_line":"\u0027wanghao-devstack-snapshot@lvmdriver-1\u0027"},{"line_number":11,"context_line":"which got from host list, cinder return"},{"line_number":12,"context_line":"incorrect result in \u0027total\u0027 block."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1aca2d91_b9ff7366","line":9,"in_reply_to":"1aca2d91_f7c4fd40","updated":"2015-05-08 03:27:50.000000000","message":"Done","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"b9f8ef01d3d5b4f69f61db8c6a07c6e58d0d5f11","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When query host detail by host name like"},{"line_number":10,"context_line":"\u0027wanghao-devstack-snapshot@lvmdriver-1\u0027"},{"line_number":11,"context_line":"which got from host list, cinder return"},{"line_number":12,"context_line":"incorrect result in \u0027total\u0027 block."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":" \"resource\": {"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1aca2d91_37d27501","line":11,"updated":"2015-05-07 09:40:25.000000000","message":"which was got\n\ns/return/returns","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0afffed2c1f7df83341f02503b28a58626f9d007","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When query host detail by host name like"},{"line_number":10,"context_line":"\u0027wanghao-devstack-snapshot@lvmdriver-1\u0027"},{"line_number":11,"context_line":"which got from host list, cinder return"},{"line_number":12,"context_line":"incorrect result in \u0027total\u0027 block."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":" \"resource\": {"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1aca2d91_19e2e79f","line":11,"in_reply_to":"1aca2d91_37d27501","updated":"2015-05-08 03:27:50.000000000","message":"Done","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"b9f8ef01d3d5b4f69f61db8c6a07c6e58d0d5f11","unresolved":false,"context_lines":[{"line_number":20,"context_line":"       \"snapshot_count\": \"0\""},{"line_number":21,"context_line":"            }"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"This issue is caused by \u0027volume_data_get_for_host\u0027 in sqlalchemy. "},{"line_number":24,"context_line":"It query volume filter only by host not considering multibackend."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Fix this by querying volume filter by host or host name "}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1aca2d91_575f3172","line":23,"updated":"2015-05-07 09:40:25.000000000","message":"Please remove spaces at the end of the line.","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0afffed2c1f7df83341f02503b28a58626f9d007","unresolved":false,"context_lines":[{"line_number":20,"context_line":"       \"snapshot_count\": \"0\""},{"line_number":21,"context_line":"            }"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"This issue is caused by \u0027volume_data_get_for_host\u0027 in sqlalchemy. "},{"line_number":24,"context_line":"It query volume filter only by host not considering multibackend."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Fix this by querying volume filter by host or host name "}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1aca2d91_f9ef2b85","line":23,"in_reply_to":"1aca2d91_575f3172","updated":"2015-05-08 03:27:50.000000000","message":"Done","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"b9f8ef01d3d5b4f69f61db8c6a07c6e58d0d5f11","unresolved":false,"context_lines":[{"line_number":21,"context_line":"            }"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"This issue is caused by \u0027volume_data_get_for_host\u0027 in sqlalchemy. "},{"line_number":24,"context_line":"It query volume filter only by host not considering multibackend."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Fix this by querying volume filter by host or host name "},{"line_number":27,"context_line":"like \u0027host#%\u0027 in volume_data_get_for_host."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1aca2d91_77d10dcd","line":24,"updated":"2015-05-07 09:40:25.000000000","message":"s/query/queries","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0afffed2c1f7df83341f02503b28a58626f9d007","unresolved":false,"context_lines":[{"line_number":21,"context_line":"            }"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"This issue is caused by \u0027volume_data_get_for_host\u0027 in sqlalchemy. "},{"line_number":24,"context_line":"It query volume filter only by host not considering multibackend."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Fix this by querying volume filter by host or host name "},{"line_number":27,"context_line":"like \u0027host#%\u0027 in volume_data_get_for_host."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1aca2d91_d9f22f6f","line":24,"in_reply_to":"1aca2d91_77d10dcd","updated":"2015-05-08 03:27:50.000000000","message":"Done","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"b9f8ef01d3d5b4f69f61db8c6a07c6e58d0d5f11","unresolved":false,"context_lines":[{"line_number":23,"context_line":"This issue is caused by \u0027volume_data_get_for_host\u0027 in sqlalchemy. "},{"line_number":24,"context_line":"It query volume filter only by host not considering multibackend."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Fix this by querying volume filter by host or host name "},{"line_number":27,"context_line":"like \u0027host#%\u0027 in volume_data_get_for_host."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Change-Id: I751a474677d50e552d87fe06fadfed45e3c1ddab"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1aca2d91_3755d54f","line":26,"updated":"2015-05-07 09:40:25.000000000","message":"ditto","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0afffed2c1f7df83341f02503b28a58626f9d007","unresolved":false,"context_lines":[{"line_number":23,"context_line":"This issue is caused by \u0027volume_data_get_for_host\u0027 in sqlalchemy. "},{"line_number":24,"context_line":"It query volume filter only by host not considering multibackend."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Fix this by querying volume filter by host or host name "},{"line_number":27,"context_line":"like \u0027host#%\u0027 in volume_data_get_for_host."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Change-Id: I751a474677d50e552d87fe06fadfed45e3c1ddab"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1aca2d91_99ecb790","line":26,"in_reply_to":"1aca2d91_3755d54f","updated":"2015-05-08 03:27:50.000000000","message":"Done","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f8c62286e6a68b2148c01d2ad317c7d3cae5d0ca","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When querying host detail by host name like"},{"line_number":10,"context_line":"\u0027wanghao-devstack-snapshot@lvmdriver-1\u0027"},{"line_number":11,"context_line":"which got from host list, cinder returns"},{"line_number":12,"context_line":"incorrect result in \u0027total\u0027 block."},{"line_number":13,"context_line":" \"resource\": {"},{"line_number":14,"context_line":"        \"volume_count\": \"0\","}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1aca2d91_487e4a1a","line":11,"updated":"2015-05-08 05:24:51.000000000","message":"I think \"which got\" should be changed to \"which was got\" or you can rephrase it like:\n\n\"\u0027wanghao-devstack-snapshot@lvmdriver-1\u0027 returned by host list command\".","commit_id":"aebfc90013b722f5f0c0e6bf7e7b0d47ad0dec61"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f8c62286e6a68b2148c01d2ad317c7d3cae5d0ca","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\t}"},{"line_number":21,"context_line":"This issue is caused by \u0027volume_data_get_for_host\u0027"},{"line_number":22,"context_line":"in sqlalchemy. It queries volume filter only by host"},{"line_number":23,"context_line":"not considering\tmultibackend."},{"line_number":24,"context_line":"Fix this by querying volume filter by host or host name"},{"line_number":25,"context_line":"like \u0027host#%\u0027 in volume_data_get_for_host."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1aca2d91_6886a614","line":23,"updated":"2015-05-08 05:24:51.000000000","message":"Tab character in this line is probably unnecessary.","commit_id":"aebfc90013b722f5f0c0e6bf7e7b0d47ad0dec61"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"1e6d60f005befb18a2a571772bb7283f028335ca","unresolved":false,"context_lines":[{"line_number":17,"context_line":"        \"project\": \"(total)\","},{"line_number":18,"context_line":"        \"host\": \"wanghao-devstack-snapshot@lvmdriver-1\","},{"line_number":19,"context_line":"        \"snapshot_count\": \"0\""},{"line_number":20,"context_line":"\t}"},{"line_number":21,"context_line":"This issue is caused by \u0027volume_data_get_for_host\u0027"},{"line_number":22,"context_line":"in sqlalchemy. It queries volume filter only by host"},{"line_number":23,"context_line":"not considering\tmultibackend."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"7a016987_e957d823","line":20,"updated":"2015-05-22 16:00:24.000000000","message":"Strange character \u0027»\u0027, need to remove it.","commit_id":"9070be63997930d7aab6b2f8c5eb464bfdfc5ba5"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"00c1d13df8dd0e9f32e52fe6d8c9f10e1bd0bbfb","unresolved":false,"context_lines":[{"line_number":17,"context_line":"        \"project\": \"(total)\","},{"line_number":18,"context_line":"        \"host\": \"wanghao-devstack-snapshot@lvmdriver-1\","},{"line_number":19,"context_line":"        \"snapshot_count\": \"0\""},{"line_number":20,"context_line":"\t}"},{"line_number":21,"context_line":"This issue is caused by \u0027volume_data_get_for_host\u0027"},{"line_number":22,"context_line":"in sqlalchemy. It queries volume filter only by host"},{"line_number":23,"context_line":"not considering\tmultibackend."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"7a016987_e4aec47f","line":20,"in_reply_to":"7a016987_e957d823","updated":"2015-05-26 01:54:06.000000000","message":"Done","commit_id":"9070be63997930d7aab6b2f8c5eb464bfdfc5ba5"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"1e6d60f005befb18a2a571772bb7283f028335ca","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\t}"},{"line_number":21,"context_line":"This issue is caused by \u0027volume_data_get_for_host\u0027"},{"line_number":22,"context_line":"in sqlalchemy. It queries volume filter only by host"},{"line_number":23,"context_line":"not considering\tmultibackend."},{"line_number":24,"context_line":"Fix this by querying volume filter by host or host name"},{"line_number":25,"context_line":"like \u0027host#%\u0027 in volume_data_get_for_host."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"7a016987_095d9446","line":23,"updated":"2015-05-22 16:00:24.000000000","message":"Strange character \u0027»\u0027, need to remove it.","commit_id":"9070be63997930d7aab6b2f8c5eb464bfdfc5ba5"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"00c1d13df8dd0e9f32e52fe6d8c9f10e1bd0bbfb","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\t}"},{"line_number":21,"context_line":"This issue is caused by \u0027volume_data_get_for_host\u0027"},{"line_number":22,"context_line":"in sqlalchemy. It queries volume filter only by host"},{"line_number":23,"context_line":"not considering\tmultibackend."},{"line_number":24,"context_line":"Fix this by querying volume filter by host or host name"},{"line_number":25,"context_line":"like \u0027host#%\u0027 in volume_data_get_for_host."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"7a016987_c4b188e1","line":23,"in_reply_to":"7a016987_095d9446","updated":"2015-05-26 01:54:06.000000000","message":"Done","commit_id":"9070be63997930d7aab6b2f8c5eb464bfdfc5ba5"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"7726ff02a8d204731f81bc1ac1ee09ea9d72b95d","unresolved":false,"context_lines":[{"line_number":20,"context_line":"        }"},{"line_number":21,"context_line":"This issue is caused by \u0027volume_data_get_for_host\u0027"},{"line_number":22,"context_line":"in sqlalchemy. It queries volume filter only by host"},{"line_number":23,"context_line":"not considering multibackend."},{"line_number":24,"context_line":"Fix this by querying volume filter by host or host name"},{"line_number":25,"context_line":"like \u0027host#%\u0027 in volume_data_get_for_host."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"7a016987_81b8e2e6","line":23,"updated":"2015-05-27 01:17:49.000000000","message":"This has nothing to do with multibackend, this is due to the introduction of pool support for single backend.","commit_id":"04bdb23eba07c79ca60b608166376dc53d0f7920"}],"cinder/db/sqlalchemy/api.py":[{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"d6be222e674bac4533fdbb4de7e286b9b551aaba","unresolved":false,"context_lines":[{"line_number":1060,"context_line":"    if count_only:"},{"line_number":1061,"context_line":"        result \u003d model_query(context,"},{"line_number":1062,"context_line":"                             func.count(models.Volume.id),"},{"line_number":1063,"context_line":"                             read_deleted\u003d\"no\").\\"},{"line_number":1064,"context_line":"            filter(or_(*conditions)).\\"},{"line_number":1065,"context_line":"            first()"},{"line_number":1066,"context_line":"        return result[0] or 0"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aca2d91_8430f402","line":1063,"updated":"2015-05-07 11:21:55.000000000","message":"Please remove this line break, you can do it by surrounding everything with \"()\"","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0afffed2c1f7df83341f02503b28a58626f9d007","unresolved":false,"context_lines":[{"line_number":1060,"context_line":"    if count_only:"},{"line_number":1061,"context_line":"        result \u003d model_query(context,"},{"line_number":1062,"context_line":"                             func.count(models.Volume.id),"},{"line_number":1063,"context_line":"                             read_deleted\u003d\"no\").\\"},{"line_number":1064,"context_line":"            filter(or_(*conditions)).\\"},{"line_number":1065,"context_line":"            first()"},{"line_number":1066,"context_line":"        return result[0] or 0"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aca2d91_19f9c74d","line":1063,"in_reply_to":"1aca2d91_8430f402","updated":"2015-05-08 03:27:50.000000000","message":"Done","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"d6be222e674bac4533fdbb4de7e286b9b551aaba","unresolved":false,"context_lines":[{"line_number":1061,"context_line":"        result \u003d model_query(context,"},{"line_number":1062,"context_line":"                             func.count(models.Volume.id),"},{"line_number":1063,"context_line":"                             read_deleted\u003d\"no\").\\"},{"line_number":1064,"context_line":"            filter(or_(*conditions)).\\"},{"line_number":1065,"context_line":"            first()"},{"line_number":1066,"context_line":"        return result[0] or 0"},{"line_number":1067,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aca2d91_4419bc87","line":1064,"updated":"2015-05-07 11:21:55.000000000","message":"same","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0afffed2c1f7df83341f02503b28a58626f9d007","unresolved":false,"context_lines":[{"line_number":1061,"context_line":"        result \u003d model_query(context,"},{"line_number":1062,"context_line":"                             func.count(models.Volume.id),"},{"line_number":1063,"context_line":"                             read_deleted\u003d\"no\").\\"},{"line_number":1064,"context_line":"            filter(or_(*conditions)).\\"},{"line_number":1065,"context_line":"            first()"},{"line_number":1066,"context_line":"        return result[0] or 0"},{"line_number":1067,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aca2d91_f9960bef","line":1064,"in_reply_to":"1aca2d91_4419bc87","updated":"2015-05-08 03:27:50.000000000","message":"Done","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"d6be222e674bac4533fdbb4de7e286b9b551aaba","unresolved":false,"context_lines":[{"line_number":1068,"context_line":"        result \u003d model_query(context,"},{"line_number":1069,"context_line":"                             func.count(models.Volume.id),"},{"line_number":1070,"context_line":"                             func.sum(models.Volume.size),"},{"line_number":1071,"context_line":"                             read_deleted\u003d\"no\").\\"},{"line_number":1072,"context_line":"            filter(or_(*conditions)).\\"},{"line_number":1073,"context_line":"            first()"},{"line_number":1074,"context_line":"        # NOTE(vish): convert None to 0"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aca2d91_241c8076","line":1071,"updated":"2015-05-07 11:21:55.000000000","message":"same","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0afffed2c1f7df83341f02503b28a58626f9d007","unresolved":false,"context_lines":[{"line_number":1068,"context_line":"        result \u003d model_query(context,"},{"line_number":1069,"context_line":"                             func.count(models.Volume.id),"},{"line_number":1070,"context_line":"                             func.sum(models.Volume.size),"},{"line_number":1071,"context_line":"                             read_deleted\u003d\"no\").\\"},{"line_number":1072,"context_line":"            filter(or_(*conditions)).\\"},{"line_number":1073,"context_line":"            first()"},{"line_number":1074,"context_line":"        # NOTE(vish): convert None to 0"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aca2d91_d9990f21","line":1071,"in_reply_to":"1aca2d91_241c8076","updated":"2015-05-08 03:27:50.000000000","message":"Done","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"d6be222e674bac4533fdbb4de7e286b9b551aaba","unresolved":false,"context_lines":[{"line_number":1069,"context_line":"                             func.count(models.Volume.id),"},{"line_number":1070,"context_line":"                             func.sum(models.Volume.size),"},{"line_number":1071,"context_line":"                             read_deleted\u003d\"no\").\\"},{"line_number":1072,"context_line":"            filter(or_(*conditions)).\\"},{"line_number":1073,"context_line":"            first()"},{"line_number":1074,"context_line":"        # NOTE(vish): convert None to 0"},{"line_number":1075,"context_line":"        return (result[0] or 0, result[1] or 0)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aca2d91_c40dcc3f","line":1072,"updated":"2015-05-07 11:21:55.000000000","message":"same","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0afffed2c1f7df83341f02503b28a58626f9d007","unresolved":false,"context_lines":[{"line_number":1069,"context_line":"                             func.count(models.Volume.id),"},{"line_number":1070,"context_line":"                             func.sum(models.Volume.size),"},{"line_number":1071,"context_line":"                             read_deleted\u003d\"no\").\\"},{"line_number":1072,"context_line":"            filter(or_(*conditions)).\\"},{"line_number":1073,"context_line":"            first()"},{"line_number":1074,"context_line":"        # NOTE(vish): convert None to 0"},{"line_number":1075,"context_line":"        return (result[0] or 0, result[1] or 0)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aca2d91_b9a09344","line":1072,"in_reply_to":"1aca2d91_c40dcc3f","updated":"2015-05-08 03:27:50.000000000","message":"Done","commit_id":"f922f168cc5487c5a425105af32eed19b741264c"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"1e6d60f005befb18a2a571772bb7283f028335ca","unresolved":false,"context_lines":[{"line_number":1074,"context_line":""},{"line_number":1075,"context_line":""},{"line_number":1076,"context_line":"@require_admin_context"},{"line_number":1077,"context_line":"def volume_data_get_for_host(context, host, count_only\u003dFalse):"},{"line_number":1078,"context_line":"    host_attr \u003d getattr(models.Volume, \u0027host\u0027)"},{"line_number":1079,"context_line":"    conditions \u003d [host_attr \u003d\u003d host, host_attr.op(\u0027LIKE\u0027)(host + \u0027#%\u0027)]"},{"line_number":1080,"context_line":"    if count_only:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_6c409607","line":1077,"updated":"2015-05-22 16:00:24.000000000","message":"If the original method does exact matching on \u0027host\u0027, but you changed it to fuzzy matching, isn\u0027t the original interface contract of this method broken?","commit_id":"9070be63997930d7aab6b2f8c5eb464bfdfc5ba5"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"00c1d13df8dd0e9f32e52fe6d8c9f10e1bd0bbfb","unresolved":false,"context_lines":[{"line_number":1074,"context_line":""},{"line_number":1075,"context_line":""},{"line_number":1076,"context_line":"@require_admin_context"},{"line_number":1077,"context_line":"def volume_data_get_for_host(context, host, count_only\u003dFalse):"},{"line_number":1078,"context_line":"    host_attr \u003d getattr(models.Volume, \u0027host\u0027)"},{"line_number":1079,"context_line":"    conditions \u003d [host_attr \u003d\u003d host, host_attr.op(\u0027LIKE\u0027)(host + \u0027#%\u0027)]"},{"line_number":1080,"context_line":"    if count_only:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_846b901d","line":1077,"in_reply_to":"7a016987_6c409607","updated":"2015-05-26 01:54:06.000000000","message":"No, in the conditions, it also contain the exact matching on \u0027host\u0027.So it will not break the original interface contract if there is only host not multi-backend.","commit_id":"9070be63997930d7aab6b2f8c5eb464bfdfc5ba5"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"1e6d60f005befb18a2a571772bb7283f028335ca","unresolved":false,"context_lines":[{"line_number":1075,"context_line":""},{"line_number":1076,"context_line":"@require_admin_context"},{"line_number":1077,"context_line":"def volume_data_get_for_host(context, host, count_only\u003dFalse):"},{"line_number":1078,"context_line":"    host_attr \u003d getattr(models.Volume, \u0027host\u0027)"},{"line_number":1079,"context_line":"    conditions \u003d [host_attr \u003d\u003d host, host_attr.op(\u0027LIKE\u0027)(host + \u0027#%\u0027)]"},{"line_number":1080,"context_line":"    if count_only:"},{"line_number":1081,"context_line":"        result \u003d model_query(context,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_4c227aa4","line":1078,"updated":"2015-05-22 16:00:24.000000000","message":"Why not just use `models.Volume.host`? There is a similar `models.Volume.id` at line 1082.","commit_id":"9070be63997930d7aab6b2f8c5eb464bfdfc5ba5"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"00c1d13df8dd0e9f32e52fe6d8c9f10e1bd0bbfb","unresolved":false,"context_lines":[{"line_number":1075,"context_line":""},{"line_number":1076,"context_line":"@require_admin_context"},{"line_number":1077,"context_line":"def volume_data_get_for_host(context, host, count_only\u003dFalse):"},{"line_number":1078,"context_line":"    host_attr \u003d getattr(models.Volume, \u0027host\u0027)"},{"line_number":1079,"context_line":"    conditions \u003d [host_attr \u003d\u003d host, host_attr.op(\u0027LIKE\u0027)(host + \u0027#%\u0027)]"},{"line_number":1080,"context_line":"    if count_only:"},{"line_number":1081,"context_line":"        result \u003d model_query(context,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_64f1b494","line":1078,"in_reply_to":"7a016987_4c227aa4","updated":"2015-05-26 01:54:06.000000000","message":"Sure","commit_id":"9070be63997930d7aab6b2f8c5eb464bfdfc5ba5"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"1e6d60f005befb18a2a571772bb7283f028335ca","unresolved":false,"context_lines":[{"line_number":1076,"context_line":"@require_admin_context"},{"line_number":1077,"context_line":"def volume_data_get_for_host(context, host, count_only\u003dFalse):"},{"line_number":1078,"context_line":"    host_attr \u003d getattr(models.Volume, \u0027host\u0027)"},{"line_number":1079,"context_line":"    conditions \u003d [host_attr \u003d\u003d host, host_attr.op(\u0027LIKE\u0027)(host + \u0027#%\u0027)]"},{"line_number":1080,"context_line":"    if count_only:"},{"line_number":1081,"context_line":"        result \u003d model_query(context,"},{"line_number":1082,"context_line":"                             func.count(models.Volume.id),"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_ac29ee8b","line":1079,"updated":"2015-05-22 16:00:24.000000000","message":"\u0027LIKE\u0027 has significant performance impact on db query. Are you sure to run it in every query?","commit_id":"9070be63997930d7aab6b2f8c5eb464bfdfc5ba5"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"00c1d13df8dd0e9f32e52fe6d8c9f10e1bd0bbfb","unresolved":false,"context_lines":[{"line_number":1076,"context_line":"@require_admin_context"},{"line_number":1077,"context_line":"def volume_data_get_for_host(context, host, count_only\u003dFalse):"},{"line_number":1078,"context_line":"    host_attr \u003d getattr(models.Volume, \u0027host\u0027)"},{"line_number":1079,"context_line":"    conditions \u003d [host_attr \u003d\u003d host, host_attr.op(\u0027LIKE\u0027)(host + \u0027#%\u0027)]"},{"line_number":1080,"context_line":"    if count_only:"},{"line_number":1081,"context_line":"        result \u003d model_query(context,"},{"line_number":1082,"context_line":"                             func.count(models.Volume.id),"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_c43ce8e2","line":1079,"in_reply_to":"7a016987_ac29ee8b","updated":"2015-05-26 01:54:06.000000000","message":"It\u0027s hard to avoid for now I think. Because the services table don\u0027t save the backend in host column. The host arg is got from this table when showing host detail. But this API should not be called frequently, performance impact may be not too big.","commit_id":"9070be63997930d7aab6b2f8c5eb464bfdfc5ba5"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"d84fe51271eb8e8ed12cf17e60d2716cde891d38","unresolved":false,"context_lines":[{"line_number":1076,"context_line":"@require_admin_context"},{"line_number":1077,"context_line":"def volume_data_get_for_host(context, host, count_only\u003dFalse):"},{"line_number":1078,"context_line":"    host_attr \u003d models.Volume.host"},{"line_number":1079,"context_line":"    conditions \u003d [host_attr \u003d\u003d host, host_attr.op(\u0027LIKE\u0027)(host + \u0027#%\u0027)]"},{"line_number":1080,"context_line":"    if count_only:"},{"line_number":1081,"context_line":"        result \u003d model_query(context,"},{"line_number":1082,"context_line":"                             func.count(models.Volume.id),"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a016987_bc421c66","line":1079,"updated":"2015-05-25 13:57:29.000000000","message":"I still think LIKE has performance issue and breaks what this method originally wants to do (exact match).","commit_id":"04bdb23eba07c79ca60b608166376dc53d0f7920"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"2fcce6e1e8333335f41e557a00746dcf8a041502","unresolved":false,"context_lines":[{"line_number":1076,"context_line":"@require_admin_context"},{"line_number":1077,"context_line":"def volume_data_get_for_host(context, host, count_only\u003dFalse):"},{"line_number":1078,"context_line":"    host_attr \u003d models.Volume.host"},{"line_number":1079,"context_line":"    conditions \u003d [host_attr \u003d\u003d host, host_attr.op(\u0027LIKE\u0027)(host + \u0027#%\u0027)]"},{"line_number":1080,"context_line":"    if count_only:"},{"line_number":1081,"context_line":"        result \u003d model_query(context,"},{"line_number":1082,"context_line":"                             func.count(models.Volume.id),"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a016987_52e421ab","line":1079,"in_reply_to":"7a016987_23303de8","updated":"2015-05-26 07:55:45.000000000","message":"IMHO a better way is to add a new method instead of breaking the existing one. But they would need cores\u0027 approval.","commit_id":"04bdb23eba07c79ca60b608166376dc53d0f7920"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"881be6becd79e976448c8a8881110f568cc0ec30","unresolved":false,"context_lines":[{"line_number":1076,"context_line":"@require_admin_context"},{"line_number":1077,"context_line":"def volume_data_get_for_host(context, host, count_only\u003dFalse):"},{"line_number":1078,"context_line":"    host_attr \u003d models.Volume.host"},{"line_number":1079,"context_line":"    conditions \u003d [host_attr \u003d\u003d host, host_attr.op(\u0027LIKE\u0027)(host + \u0027#%\u0027)]"},{"line_number":1080,"context_line":"    if count_only:"},{"line_number":1081,"context_line":"        result \u003d model_query(context,"},{"line_number":1082,"context_line":"                             func.count(models.Volume.id),"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a016987_fbe082fc","line":1079,"in_reply_to":"7a016987_52e421ab","updated":"2015-05-26 12:26:04.000000000","message":"Yes, if we add a new method, we need to know whether the cinder-volume use multi-backend at API layer and call corresponding method to get the correct info. It\u0027s more complex than current idea, and just used by this bug for now.","commit_id":"04bdb23eba07c79ca60b608166376dc53d0f7920"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"4644529d636579a4d3293d2a610849812d53c43b","unresolved":false,"context_lines":[{"line_number":1076,"context_line":"@require_admin_context"},{"line_number":1077,"context_line":"def volume_data_get_for_host(context, host, count_only\u003dFalse):"},{"line_number":1078,"context_line":"    host_attr \u003d models.Volume.host"},{"line_number":1079,"context_line":"    conditions \u003d [host_attr \u003d\u003d host, host_attr.op(\u0027LIKE\u0027)(host + \u0027#%\u0027)]"},{"line_number":1080,"context_line":"    if count_only:"},{"line_number":1081,"context_line":"        result \u003d model_query(context,"},{"line_number":1082,"context_line":"                             func.count(models.Volume.id),"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a016987_23303de8","line":1079,"in_reply_to":"7a016987_bc421c66","updated":"2015-05-26 01:53:49.000000000","message":"This issue\u0027s point is this method do exactly match before. Since service table don\u0027t save the multi-backend info at host column, but volume table save this info at host column. So if we use the exactly match, it will can\u0027t find the host(multi-backend) when query usage of host resource. Maybe we can save the multi-backend in service table, but I\u0027m not sure the other impact of this change. Looks like the LIKE will be more safe than second method.","commit_id":"04bdb23eba07c79ca60b608166376dc53d0f7920"}],"cinder/tests/test_db_api.py":[{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"8cc770c477d03df7f2dda08e8489fa6b06219abe","unresolved":false,"context_lines":[{"line_number":265,"context_line":"    def test_volume_data_get_for_host_for_multi_backend(self):"},{"line_number":266,"context_line":"        for i in xrange(3):"},{"line_number":267,"context_line":"            for j in xrange(3):"},{"line_number":268,"context_line":"                db.volume_create(self.ctxt, {\u0027host\u0027: "},{"line_number":269,"context_line":"                                             \u0027h%d@lvmdriver-1#lvmdriver-1\u0027 % i,"},{"line_number":270,"context_line":"                                             \u0027size\u0027: 100})"},{"line_number":271,"context_line":"        for i in xrange(3):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_cd4df0c5","line":268,"updated":"2015-03-09 15:50:24.000000000","message":"trailing white space","commit_id":"a3676d91fff0024bd5eee5fbcd4888ef30fdf5f9"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"7b97603f3a2a5700b39166a526656b115775bc08","unresolved":false,"context_lines":[{"line_number":262,"context_line":"                             db.volume_data_get_for_host("},{"line_number":263,"context_line":"                                 self.ctxt, \u0027h%d\u0027 % i))"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    def test_volume_data_get_for_host_for_multi_backend(self):"},{"line_number":266,"context_line":"        for i in xrange(3):"},{"line_number":267,"context_line":"            for j in xrange(3):"},{"line_number":268,"context_line":"                db.volume_create(self.ctxt, {\u0027host\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"baa041b7_3acea3b4","line":265,"updated":"2015-04-05 20:16:13.000000000","message":"Would appreciate a comment of what the test is doing.","commit_id":"81ad8cf48b27cdcd208172e336f75b625e022b2c"}],"cinder/tests/unit/test_db_api.py":[{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"1e6d60f005befb18a2a571772bb7283f028335ca","unresolved":false,"context_lines":[{"line_number":273,"context_line":"                                 self.ctxt, \u0027h%d\u0027 % i))"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    def test_volume_data_get_for_host_for_multi_backend(self):"},{"line_number":276,"context_line":"        for i in xrange(3):"},{"line_number":277,"context_line":"            for j in xrange(3):"},{"line_number":278,"context_line":"                db.volume_create(self.ctxt, {\u0027host\u0027:"},{"line_number":279,"context_line":"                                             \u0027h%d@lvmdriver-1#lvmdriver-1\u0027 % i,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_0caec2e5","line":276,"updated":"2015-05-22 16:00:24.000000000","message":"Could you use constants instead of int literal?","commit_id":"9070be63997930d7aab6b2f8c5eb464bfdfc5ba5"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"00c1d13df8dd0e9f32e52fe6d8c9f10e1bd0bbfb","unresolved":false,"context_lines":[{"line_number":273,"context_line":"                                 self.ctxt, \u0027h%d\u0027 % i))"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    def test_volume_data_get_for_host_for_multi_backend(self):"},{"line_number":276,"context_line":"        for i in xrange(3):"},{"line_number":277,"context_line":"            for j in xrange(3):"},{"line_number":278,"context_line":"                db.volume_create(self.ctxt, {\u0027host\u0027:"},{"line_number":279,"context_line":"                                             \u0027h%d@lvmdriver-1#lvmdriver-1\u0027 % i,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_840a7024","line":276,"in_reply_to":"7a016987_0caec2e5","updated":"2015-05-26 01:54:06.000000000","message":"Sure.","commit_id":"9070be63997930d7aab6b2f8c5eb464bfdfc5ba5"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"d84fe51271eb8e8ed12cf17e60d2716cde891d38","unresolved":false,"context_lines":[{"line_number":269,"context_line":"    def test_volume_data_get_for_host(self):"},{"line_number":270,"context_line":"        for i in xrange(THREE):"},{"line_number":271,"context_line":"            for j in xrange(THREE):"},{"line_number":272,"context_line":"                db.volume_create(self.ctxt, {\u0027host\u0027: \u0027h%d\u0027 % i, \u0027size\u0027: 100})"},{"line_number":273,"context_line":"        for i in xrange(THREE):"},{"line_number":274,"context_line":"            self.assertEqual((THREE, THREE_HUNDREDS),"},{"line_number":275,"context_line":"                             db.volume_data_get_for_host("}],"source_content_type":"text/x-python","patch_set":10,"id":"7a016987_dc1dd873","line":272,"updated":"2015-05-25 13:57:29.000000000","message":"If you use `THREE_HUNDREDS`, why the `100` is still a literal?","commit_id":"04bdb23eba07c79ca60b608166376dc53d0f7920"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"4644529d636579a4d3293d2a610849812d53c43b","unresolved":false,"context_lines":[{"line_number":269,"context_line":"    def test_volume_data_get_for_host(self):"},{"line_number":270,"context_line":"        for i in xrange(THREE):"},{"line_number":271,"context_line":"            for j in xrange(THREE):"},{"line_number":272,"context_line":"                db.volume_create(self.ctxt, {\u0027host\u0027: \u0027h%d\u0027 % i, \u0027size\u0027: 100})"},{"line_number":273,"context_line":"        for i in xrange(THREE):"},{"line_number":274,"context_line":"            self.assertEqual((THREE, THREE_HUNDREDS),"},{"line_number":275,"context_line":"                             db.volume_data_get_for_host("}],"source_content_type":"text/x-python","patch_set":10,"id":"7a016987_5080a18b","line":272,"in_reply_to":"7a016987_dc1dd873","updated":"2015-05-26 01:53:49.000000000","message":"Oh, forgot this one... Will add it.","commit_id":"04bdb23eba07c79ca60b608166376dc53d0f7920"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"b45f2fff7ef2e4264bc8d540dd94997994b99b92","unresolved":false,"context_lines":[{"line_number":30,"context_line":"CONF \u003d cfg.CONF"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"THREE \u003d 3"},{"line_number":33,"context_line":"THREE_HUNDREDS \u003d 300"},{"line_number":34,"context_line":"ONE_HUNDREDS \u003d 100"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a016987_15def710","line":33,"updated":"2015-05-29 15:59:04.000000000","message":"This should go last and be the product of the other two.","commit_id":"af853d479b70c22d60ae09e798ef4c3b62632fb2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"b45f2fff7ef2e4264bc8d540dd94997994b99b92","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"THREE \u003d 3"},{"line_number":33,"context_line":"THREE_HUNDREDS \u003d 300"},{"line_number":34,"context_line":"ONE_HUNDREDS \u003d 100"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def _quota_reserve(context, project_id):"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a016987_95cb0753","line":34,"updated":"2015-05-29 15:59:04.000000000","message":"These names are not meaningful, they should be called something like NUM_VOLUMES, TOTAL_SIZE and VOLUME_SIZE. And there should be an additional one for NUM_VOLUMES_PER_HOST.","commit_id":"af853d479b70c22d60ae09e798ef4c3b62632fb2"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"5e0c584b70586edff2272e0df1f9ea7f85703d22","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"THREE \u003d 3"},{"line_number":33,"context_line":"THREE_HUNDREDS \u003d 300"},{"line_number":34,"context_line":"ONE_HUNDREDS \u003d 100"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def _quota_reserve(context, project_id):"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a016987_90faf5bb","line":34,"in_reply_to":"7a016987_95cb0753","updated":"2015-05-29 16:05:45.000000000","message":"Agreed.","commit_id":"af853d479b70c22d60ae09e798ef4c3b62632fb2"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"7c6cf08d3851b7ca9d994b0b39c280c3d5768e7a","unresolved":false,"context_lines":[{"line_number":268,"context_line":"        self.assertEqual(attachment[\u0027attached_host\u0027], host_name)"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"    def test_volume_data_get_for_host(self):"},{"line_number":271,"context_line":"        for i in xrange(THREE):"},{"line_number":272,"context_line":"            for j in xrange(THREE):"},{"line_number":273,"context_line":"                db.volume_create(self.ctxt, {\u0027host\u0027: \u0027h%d\u0027 % i,"},{"line_number":274,"context_line":"                                             \u0027size\u0027: ONE_HUNDREDS})"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a016987_24be67ae","line":271,"updated":"2015-05-29 14:49:01.000000000","message":"We have similar statements which are using literals. There are also lot of asserts using literals. I don\u0027t think adding constants in this method won\u0027t add much value. Also, we are not doing it consistently.","commit_id":"af853d479b70c22d60ae09e798ef4c3b62632fb2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"b45f2fff7ef2e4264bc8d540dd94997994b99b92","unresolved":false,"context_lines":[{"line_number":271,"context_line":"        for i in xrange(THREE):"},{"line_number":272,"context_line":"            for j in xrange(THREE):"},{"line_number":273,"context_line":"                db.volume_create(self.ctxt, {\u0027host\u0027: \u0027h%d\u0027 % i,"},{"line_number":274,"context_line":"                                             \u0027size\u0027: ONE_HUNDREDS})"},{"line_number":275,"context_line":"        for i in xrange(THREE):"},{"line_number":276,"context_line":"            self.assertEqual((THREE, THREE_HUNDREDS),"},{"line_number":277,"context_line":"                             db.volume_data_get_for_host("}],"source_content_type":"text/x-python","patch_set":11,"id":"7a016987_d59bbf15","line":274,"updated":"2015-05-29 15:59:04.000000000","message":"It would be better to have different sizes in each of them to test that we are actually getting the right results, otherwise we could be getting always the results for the same hosts. Which I know it\u0027s not true because I\u0027ve seen the code, but it would be a more thorough test.","commit_id":"af853d479b70c22d60ae09e798ef4c3b62632fb2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"b45f2fff7ef2e4264bc8d540dd94997994b99b92","unresolved":false,"context_lines":[{"line_number":282,"context_line":"            for j in xrange(THREE):"},{"line_number":283,"context_line":"                db.volume_create(self.ctxt, {\u0027host\u0027:"},{"line_number":284,"context_line":"                                             \u0027h%d@lvmdriver-1#lvmdriver-1\u0027 % i,"},{"line_number":285,"context_line":"                                             \u0027size\u0027: ONE_HUNDREDS})"},{"line_number":286,"context_line":"        for i in xrange(THREE):"},{"line_number":287,"context_line":"            self.assertEqual((THREE, THREE_HUNDREDS),"},{"line_number":288,"context_line":"                             db.volume_data_get_for_host("}],"source_content_type":"text/x-python","patch_set":11,"id":"7a016987_75876bb5","line":285,"updated":"2015-05-29 15:59:04.000000000","message":"Same as in the other test.","commit_id":"af853d479b70c22d60ae09e798ef4c3b62632fb2"}]}
