)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10485,"name":"Ankit Agrawal","email":"ankitagrawal8188@gmail.com","username":"ankitagrawal"},"change_message_id":"6156d295e325fdc97d5c5417f4149555531f4906","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix exception message mistake for all_tenants param"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The error message when checking all_tenants param must be in"},{"line_number":10,"context_line":"0,1,true,false,fixed to match with the conditional."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I397b0dfb688e0e6278eac75978df28bf6f99d0a9"},{"line_number":13,"context_line":"Closes-Bug: #1494130"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"da20952f_a3372a4c","line":10,"updated":"2015-09-10 08:44:04.000000000","message":"Add spaces after \u0027,\u0027.\n\nCould be written as \n\nmust be in 0, 1, true or false. Fixed to match with the condition.","commit_id":"b37c9f47bd91440a291e2c43c6e6fb0a74d7272a"},{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"e02de191f4e7aafba3e3eb36f5326247c058b3cf","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix exception message mistake for all_tenants param"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The error message when checking all_tenants param must be in"},{"line_number":10,"context_line":"[0, 1, true, false], and fixed to match with the conditional."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I397b0dfb688e0e6278eac75978df28bf6f99d0a9"},{"line_number":13,"context_line":"Closes-Bug: #1494130"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da20952f_d00779c7","line":10,"updated":"2015-09-10 13:56:27.000000000","message":"Capitalize \u0027true\u0027 and \u0027false\u0027.","commit_id":"c6caa650a64ca9c1c685327c599dc8ddffb4503e"},{"author":{"_account_id":10485,"name":"Ankit Agrawal","email":"ankitagrawal8188@gmail.com","username":"ankitagrawal"},"change_message_id":"a186aab2a6a53dd217ddb2937bad86fed454ada6","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Replaced with calls to get_bool_param from utils,"},{"line_number":10,"context_line":"so it supports any boolean value like the rest of the API methods."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I397b0dfb688e0e6278eac75978df28bf6f99d0a9"},{"line_number":13,"context_line":"Closes-Bug: #1494130"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"ba15a1d1_a00d0240","line":11,"updated":"2015-09-15 05:57:46.000000000","message":"Do we need to add APIImpact tag here, as now the API will also allow to pass \u0027yes\u0027, \u0027no\u0027, \u0027y\u0027, \u0027n\u0027 as valid boolean strings in addition.","commit_id":"9d7a2f42e2b193bfcb53b3b929f4f0280904ac6f"},{"author":{"_account_id":10485,"name":"Ankit Agrawal","email":"ankitagrawal8188@gmail.com","username":"ankitagrawal"},"change_message_id":"77d8de275ba4f4cb1c60b3c8c9635e24c204e735","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Replaced with calls to get_bool_param from utils,"},{"line_number":10,"context_line":"so it supports any boolean value like the rest of the API methods."},{"line_number":11,"context_line":"The API will also allow to pass \u0027yes\u0027, \u0027no\u0027, \u0027y\u0027, \u0027n\u0027 as valid"},{"line_number":12,"context_line":"boolean strings in addition."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I397b0dfb688e0e6278eac75978df28bf6f99d0a9"},{"line_number":15,"context_line":"Closes-Bug: #1494130"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"ba15a1d1_c6f5aecb","line":12,"updated":"2015-09-15 06:44:58.000000000","message":"Ref: https://wiki.openstack.org/wiki/GitCommitMessages#Including_external_references\n\nYou need to add APIImpact tag in commit message as below.\n\n\nChange check method for \u0027all_tenants\u0027\n\nReplaced with calls to get_bool_param from utils,\nso it supports any boolean value like the rest of the API methods.\n\nAPIImpact \nThe API will also allow to pass \u0027yes\u0027, \u0027no\u0027, \u0027y\u0027, \u0027n\u0027 as valid\nboolean strings in addition.","commit_id":"5943de77a3b0459e9b35f56ec42180c0968cee53"},{"author":{"_account_id":17987,"name":"Li Yuanyuan","email":"liyuanyuan.fnst@cn.fujitsu.com","username":"liyuanyuan"},"change_message_id":"d6820b63889dd34bfdebb0715db3a8cb81dd727c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Replaced with calls to get_bool_param from utils,"},{"line_number":10,"context_line":"so it supports any boolean value like the rest of the API methods."},{"line_number":11,"context_line":"The API will also allow to pass \u0027yes\u0027, \u0027no\u0027, \u0027y\u0027, \u0027n\u0027 as valid"},{"line_number":12,"context_line":"boolean strings in addition."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I397b0dfb688e0e6278eac75978df28bf6f99d0a9"},{"line_number":15,"context_line":"Closes-Bug: #1494130"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"ba15a1d1_c6f4ce88","line":12,"in_reply_to":"ba15a1d1_c6f5aecb","updated":"2015-09-15 07:04:07.000000000","message":"Thanks a lot, you are a very careful man!","commit_id":"5943de77a3b0459e9b35f56ec42180c0968cee53"}],"cinder/locale/cinder.pot":[{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4a4d1a5bee1137378cb116572da7ecbb0294559a","unresolved":false,"context_lines":[{"line_number":2929,"context_line":"#: cinder/volume/api.py:464"},{"line_number":2930,"context_line":"msgid \"\""},{"line_number":2931,"context_line":"\"Invalid value specified for \u0027all_tenants\u0027. \""},{"line_number":2932,"context_line":"\"The valid values are 0, 1, True or False\""},{"line_number":2933,"context_line":"msgstr \"\""},{"line_number":2934,"context_line":""},{"line_number":2935,"context_line":"#: cinder/volume/api.py:543"}],"source_content_type":"application/mspowerpoint","patch_set":4,"id":"da20952f_35e32bda","line":2932,"updated":"2015-09-11 03:01:57.000000000","message":"put a stop please.","commit_id":"4ce40385ab4eb56cf1c6e6c2b5cfec47b0598a40"}],"cinder/tests/unit/test_volume.py":[{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"033b91942aab057a26e6cb5cdf94b9e741c3a13d","unresolved":false,"context_lines":[{"line_number":1055,"context_line":""},{"line_number":1056,"context_line":"           Note: type of the value could be String, Boolean, or Int"},{"line_number":1057,"context_line":"        \"\"\""},{"line_number":1058,"context_line":"        self.assertTrue(utils.get_bool_param(\u0027all_tenants\u0027,{\u0027all_tenants\u0027: True}))"},{"line_number":1059,"context_line":"        self.assertTrue(utils.get_bool_param(\u0027all_tenants\u0027,{\u0027all_tenants\u0027: 1}))"},{"line_number":1060,"context_line":"        self.assertFalse(utils.get_bool_param(\u0027all_tenants\u0027,{\u0027all_tenants\u0027: \u0027False\u0027}))"},{"line_number":1061,"context_line":"        self.assertFalse(utils.get_bool_param(\u0027all_tenants\u0027,{\u0027all_tenants\u0027: \u00270\u0027}))"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_e47b387a","line":1058,"updated":"2015-09-14 08:44:40.000000000","message":"This line is longer 79 characters","commit_id":"800bacc7ef028f31b15608a018b9ae313e12fb98"},{"author":{"_account_id":8074,"name":"Jin Nan Zhang","username":"zhangjinnan","inactive":true},"change_message_id":"3087aad90a007c35bcf710bba061eaeccab83847","unresolved":false,"context_lines":[{"line_number":1055,"context_line":""},{"line_number":1056,"context_line":"           Note: type of the value could be String, Boolean, or Int"},{"line_number":1057,"context_line":"        \"\"\""},{"line_number":1058,"context_line":"        self.assertTrue(utils.get_bool_param(\u0027all_tenants\u0027,{\u0027all_tenants\u0027: True}))"},{"line_number":1059,"context_line":"        self.assertTrue(utils.get_bool_param(\u0027all_tenants\u0027,{\u0027all_tenants\u0027: 1}))"},{"line_number":1060,"context_line":"        self.assertFalse(utils.get_bool_param(\u0027all_tenants\u0027,{\u0027all_tenants\u0027: \u0027False\u0027}))"},{"line_number":1061,"context_line":"        self.assertFalse(utils.get_bool_param(\u0027all_tenants\u0027,{\u0027all_tenants\u0027: \u00270\u0027}))"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_871d9b68","line":1058,"in_reply_to":"ba15a1d1_e47b387a","updated":"2015-09-14 10:34:40.000000000","message":"Done","commit_id":"800bacc7ef028f31b15608a018b9ae313e12fb98"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"033b91942aab057a26e6cb5cdf94b9e741c3a13d","unresolved":false,"context_lines":[{"line_number":1056,"context_line":"           Note: type of the value could be String, Boolean, or Int"},{"line_number":1057,"context_line":"        \"\"\""},{"line_number":1058,"context_line":"        self.assertTrue(utils.get_bool_param(\u0027all_tenants\u0027,{\u0027all_tenants\u0027: True}))"},{"line_number":1059,"context_line":"        self.assertTrue(utils.get_bool_param(\u0027all_tenants\u0027,{\u0027all_tenants\u0027: 1}))"},{"line_number":1060,"context_line":"        self.assertFalse(utils.get_bool_param(\u0027all_tenants\u0027,{\u0027all_tenants\u0027: \u0027False\u0027}))"},{"line_number":1061,"context_line":"        self.assertFalse(utils.get_bool_param(\u0027all_tenants\u0027,{\u0027all_tenants\u0027: \u00270\u0027}))"},{"line_number":1062,"context_line":"        self.assertRaises(exception.InvalidParameterValue,"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_e46d78cd","line":1059,"updated":"2015-09-14 08:44:40.000000000","message":"Please check these lines for missing whitespace after \u0027all_tenants,\u0027","commit_id":"800bacc7ef028f31b15608a018b9ae313e12fb98"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"033b91942aab057a26e6cb5cdf94b9e741c3a13d","unresolved":false,"context_lines":[{"line_number":1057,"context_line":"        \"\"\""},{"line_number":1058,"context_line":"        self.assertTrue(utils.get_bool_param(\u0027all_tenants\u0027,{\u0027all_tenants\u0027: True}))"},{"line_number":1059,"context_line":"        self.assertTrue(utils.get_bool_param(\u0027all_tenants\u0027,{\u0027all_tenants\u0027: 1}))"},{"line_number":1060,"context_line":"        self.assertFalse(utils.get_bool_param(\u0027all_tenants\u0027,{\u0027all_tenants\u0027: \u0027False\u0027}))"},{"line_number":1061,"context_line":"        self.assertFalse(utils.get_bool_param(\u0027all_tenants\u0027,{\u0027all_tenants\u0027: \u00270\u0027}))"},{"line_number":1062,"context_line":"        self.assertRaises(exception.InvalidParameterValue,"},{"line_number":1063,"context_line":"                          utils.get_bool_param,"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_24e9301b","line":1060,"updated":"2015-09-14 08:44:40.000000000","message":"This line is longer 79 characters and missing whitespace after \u0027all_tenants,\u0027","commit_id":"800bacc7ef028f31b15608a018b9ae313e12fb98"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"427ecc0eb33c0ef117dc9f30ad6a901bb95b53a6","unresolved":false,"context_lines":[{"line_number":1050,"context_line":"                          self.context,"},{"line_number":1051,"context_line":"                          limit\u003d\"-1\")"},{"line_number":1052,"context_line":""},{"line_number":1053,"context_line":"    def test_get_all_tenants_value(self):"},{"line_number":1054,"context_line":"        \"\"\"Validate allowable values for --all_tenants"},{"line_number":1055,"context_line":""},{"line_number":1056,"context_line":"           Note: type of the value could be String, Boolean, or Int"}],"source_content_type":"text/x-python","patch_set":12,"id":"ba15a1d1_1b49c95f","line":1053,"updated":"2015-09-14 21:49:55.000000000","message":"We don\u0027t need to test oslo.utils here","commit_id":"00ecf097cc2369da9c078283f327f7d290df0f15"},{"author":{"_account_id":17987,"name":"Li Yuanyuan","email":"liyuanyuan.fnst@cn.fujitsu.com","username":"liyuanyuan"},"change_message_id":"6ce53fcf4fcf0c32a570ac147f1b35060249512d","unresolved":false,"context_lines":[{"line_number":1050,"context_line":"                          self.context,"},{"line_number":1051,"context_line":"                          limit\u003d\"-1\")"},{"line_number":1052,"context_line":""},{"line_number":1053,"context_line":"    def test_get_all_tenants_value(self):"},{"line_number":1054,"context_line":"        \"\"\"Validate allowable values for --all_tenants"},{"line_number":1055,"context_line":""},{"line_number":1056,"context_line":"           Note: type of the value could be String, Boolean, or Int"}],"source_content_type":"text/x-python","patch_set":12,"id":"ba15a1d1_81b9e7eb","line":1053,"in_reply_to":"ba15a1d1_1b49c95f","updated":"2015-09-15 01:41:02.000000000","message":"I agree， Because the main method，utils.is_valid_boolstr was \nalreay been tested in  file cinder/tests/unit/test_utils.py","commit_id":"00ecf097cc2369da9c078283f327f7d290df0f15"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"67221bd6d6a8174781d04e9cf6f46e43f49a8ae6","unresolved":false,"context_lines":[{"line_number":1056,"context_line":"           Note: type of the value could be String, Boolean, or Int"},{"line_number":1057,"context_line":"        \"\"\""},{"line_number":1058,"context_line":"        self.assertTrue(utils.get_bool_param(\u0027all_tenants\u0027,"},{"line_number":1059,"context_line":"\t\t\t\t\t     {\u0027all_tenants\u0027: True}))"},{"line_number":1060,"context_line":"        self.assertTrue(utils.get_bool_param(\u0027all_tenants\u0027,"},{"line_number":1061,"context_line":"                                             {\u0027all_tenants\u0027: 1}))"},{"line_number":1062,"context_line":"        self.assertFalse(utils.get_bool_param(\u0027all_tenants\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"ba15a1d1_31b95bea","line":1059,"updated":"2015-09-14 16:20:10.000000000","message":"part of the pep8 errors","commit_id":"00ecf097cc2369da9c078283f327f7d290df0f15"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"67221bd6d6a8174781d04e9cf6f46e43f49a8ae6","unresolved":false,"context_lines":[{"line_number":1060,"context_line":"        self.assertTrue(utils.get_bool_param(\u0027all_tenants\u0027,"},{"line_number":1061,"context_line":"                                             {\u0027all_tenants\u0027: 1}))"},{"line_number":1062,"context_line":"        self.assertFalse(utils.get_bool_param(\u0027all_tenants\u0027,"},{"line_number":1063,"context_line":"                                             {\u0027all_tenants\u0027: \u0027False\u0027}))"},{"line_number":1064,"context_line":"        self.assertFalse(utils.get_bool_param(\u0027all_tenants\u0027,"},{"line_number":1065,"context_line":"                                             {\u0027all_tenants\u0027: \u00270\u0027}))"},{"line_number":1066,"context_line":"        self.assertFalse(utils.get_bool_param(\u0027all_tenants\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"ba15a1d1_71a6f3c2","line":1063,"updated":"2015-09-14 16:20:10.000000000","message":"space over 1","commit_id":"00ecf097cc2369da9c078283f327f7d290df0f15"}],"cinder/volume/api.py":[{"author":{"_account_id":10485,"name":"Ankit Agrawal","email":"ankitagrawal8188@gmail.com","username":"ankitagrawal"},"change_message_id":"6156d295e325fdc97d5c5417f4149555531f4906","unresolved":false,"context_lines":[{"line_number":461,"context_line":"            elif val in [\u0027false\u0027, \u00270\u0027]:"},{"line_number":462,"context_line":"                b \u003d False"},{"line_number":463,"context_line":"            else:"},{"line_number":464,"context_line":"                msg \u003d _(\u0027all_tenants param must be in 0,1,true,false\u0027)"},{"line_number":465,"context_line":"                raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"        return b"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_8325465d","line":464,"updated":"2015-09-10 08:44:04.000000000","message":"Can we reformat it to\n\nmsg \u003d _(\u0027all_tenants param must be in [0, 1, true, false]\u0027)","commit_id":"b37c9f47bd91440a291e2c43c6e6fb0a74d7272a"},{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"e02de191f4e7aafba3e3eb36f5326247c058b3cf","unresolved":false,"context_lines":[{"line_number":461,"context_line":"            elif val in [\u0027false\u0027, \u00270\u0027]:"},{"line_number":462,"context_line":"                b \u003d False"},{"line_number":463,"context_line":"            else:"},{"line_number":464,"context_line":"                msg \u003d _(\u0027all_tenants param must be in [0, 1, true, false]\u0027)"},{"line_number":465,"context_line":"                raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"        return b"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_70254d5a","line":464,"updated":"2015-09-10 13:56:27.000000000","message":"Capitalize \u0027true\u0027 and \u0027false\u0027.","commit_id":"c6caa650a64ca9c1c685327c599dc8ddffb4503e"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"136d0c08e5bbd64e9f536c89cc02b22601bf5954","unresolved":false,"context_lines":[{"line_number":461,"context_line":"            elif val in [\u0027false\u0027, \u00270\u0027]:"},{"line_number":462,"context_line":"                b \u003d False"},{"line_number":463,"context_line":"            else:"},{"line_number":464,"context_line":"                msg \u003d _(\u0027all_tenants param must be in [0, 1, true, false]\u0027)"},{"line_number":465,"context_line":"                raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"        return b"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_bf33b612","line":464,"updated":"2015-09-10 12:44:54.000000000","message":"How about \"Invalid value specified for \u0027all_tenants\u0027. The valid values are 0, 1, true, or false\"?","commit_id":"c6caa650a64ca9c1c685327c599dc8ddffb4503e"},{"author":{"_account_id":17987,"name":"Li Yuanyuan","email":"liyuanyuan.fnst@cn.fujitsu.com","username":"liyuanyuan"},"change_message_id":"fb4ff5754e07c43119755686bbac30c999cb8ee9","unresolved":false,"context_lines":[{"line_number":461,"context_line":"            elif val in [\u0027false\u0027, \u00270\u0027]:"},{"line_number":462,"context_line":"                b \u003d False"},{"line_number":463,"context_line":"            else:"},{"line_number":464,"context_line":"                msg \u003d _(\u0027all_tenants param must be in [0, 1, true, false]\u0027)"},{"line_number":465,"context_line":"                raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"        return b"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_43a06a42","line":464,"in_reply_to":"da20952f_70254d5a","updated":"2015-09-11 01:55:53.000000000","message":"Thanks","commit_id":"c6caa650a64ca9c1c685327c599dc8ddffb4503e"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4a4d1a5bee1137378cb116572da7ecbb0294559a","unresolved":false,"context_lines":[{"line_number":462,"context_line":"                b \u003d False"},{"line_number":463,"context_line":"            else:"},{"line_number":464,"context_line":"                msg \u003d _(\"Invalid value specified for \u0027all_tenants\u0027. \""},{"line_number":465,"context_line":"                        \"The valid values are 0, 1, True or False\")"},{"line_number":466,"context_line":"                raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"        return b"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_d5bd0fb2","line":465,"updated":"2015-09-11 03:01:57.000000000","message":"Put a stop in the the end.","commit_id":"4ce40385ab4eb56cf1c6e6c2b5cfec47b0598a40"},{"author":{"_account_id":17987,"name":"Li Yuanyuan","email":"liyuanyuan.fnst@cn.fujitsu.com","username":"liyuanyuan"},"change_message_id":"6638aeb45f167d135849aed4bc30d7ff13591b42","unresolved":false,"context_lines":[{"line_number":462,"context_line":"                b \u003d False"},{"line_number":463,"context_line":"            else:"},{"line_number":464,"context_line":"                msg \u003d _(\"Invalid value specified for \u0027all_tenants\u0027. \""},{"line_number":465,"context_line":"                        \"The valid values are 0, 1, True or False\")"},{"line_number":466,"context_line":"                raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"        return b"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_957eb7e2","line":465,"in_reply_to":"da20952f_d5bd0fb2","updated":"2015-09-11 03:10:49.000000000","message":"Miss \u0027.\u0027 in the end of line？","commit_id":"4ce40385ab4eb56cf1c6e6c2b5cfec47b0598a40"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1173b843dca931b6252e446671ee1eb054251a64","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        LOG.info(_LI(\"Volume info retrieved successfully.\"), resource\u003drv)"},{"line_number":447,"context_line":"        return volume"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    def _get_all_tenants_value(self, filters):"},{"line_number":450,"context_line":"        \"\"\"Returns a Boolean for the value of filters[\u0027all_tenants\u0027]."},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"           False is returned if \u0027all_tenants\u0027 is not in the filters dictionary."}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_d7518f31","line":449,"updated":"2015-09-11 08:06:23.000000000","message":"-1: All calls to this method should be replaced with calls to get_bool_param from utils, so it supports any boolean value like the rest of the API methods.\n\nSo instead of calling self._get_all_tenants_value(filters) you call:\n\n  utils.get_bool_param(\u0027all_tenants\u0027, filters)","commit_id":"b67ecd6acbe2f090fc69b94a9cf91f4692830bec"},{"author":{"_account_id":10485,"name":"Ankit Agrawal","email":"ankitagrawal8188@gmail.com","username":"ankitagrawal"},"change_message_id":"821291395cd7d930588acccda27a63a11dfc3f9b","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        LOG.info(_LI(\"Volume info retrieved successfully.\"), resource\u003drv)"},{"line_number":447,"context_line":"        return volume"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    def _get_all_tenants_value(self, filters):"},{"line_number":450,"context_line":"        \"\"\"Returns a Boolean for the value of filters[\u0027all_tenants\u0027]."},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"           False is returned if \u0027all_tenants\u0027 is not in the filters dictionary."}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_d13a71cd","line":449,"in_reply_to":"ba15a1d1_1f26b5ba","updated":"2015-09-14 09:35:37.000000000","message":"Li Yuanyuan, Above logic \u0027utils.is_valid_boolstr\u0027 will only validate the provided string to be a valid boolean string.\n\n\u0027utils.get_bool_param\u0027 method later calls \u0027strutils.bool_from_string\u0027 which will return True for positive boolean values and False for negative boolean values.\n\nThe only difference from the current logic will be that currently it only allows \u0027true\u0027, \u0027false\u0027, 1, 0. With the new change it will also allow \u0027yes\u0027, \u0027no\u0027, \u0027y\u0027, \u0027n\u0027 as valid boolean strings in addition.","commit_id":"b67ecd6acbe2f090fc69b94a9cf91f4692830bec"},{"author":{"_account_id":17987,"name":"Li Yuanyuan","email":"liyuanyuan.fnst@cn.fujitsu.com","username":"liyuanyuan"},"change_message_id":"d0f1da0758068089f62473ee1b289a68c1f50e68","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        LOG.info(_LI(\"Volume info retrieved successfully.\"), resource\u003drv)"},{"line_number":447,"context_line":"        return volume"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    def _get_all_tenants_value(self, filters):"},{"line_number":450,"context_line":"        \"\"\"Returns a Boolean for the value of filters[\u0027all_tenants\u0027]."},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"           False is returned if \u0027all_tenants\u0027 is not in the filters dictionary."}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_d172717c","line":449,"in_reply_to":"ba15a1d1_d13a71cd","updated":"2015-09-14 09:45:43.000000000","message":"Thanks for you answer.\nYes, I just want to know that allow \u0027yes\u0027, \u0027no\u0027, \u0027y\u0027, \u0027n\u0027 as valid boolean strings in addition， it will affect the \u0027all_tenants\u0027？\nBecause I am not good understand for \u0027all_tenants\u0027.","commit_id":"b67ecd6acbe2f090fc69b94a9cf91f4692830bec"},{"author":{"_account_id":17987,"name":"Li Yuanyuan","email":"liyuanyuan.fnst@cn.fujitsu.com","username":"liyuanyuan"},"change_message_id":"51277364d96b46fdd72b4aeac12cfd01706723fc","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        LOG.info(_LI(\"Volume info retrieved successfully.\"), resource\u003drv)"},{"line_number":447,"context_line":"        return volume"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    def _get_all_tenants_value(self, filters):"},{"line_number":450,"context_line":"        \"\"\"Returns a Boolean for the value of filters[\u0027all_tenants\u0027]."},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"           False is returned if \u0027all_tenants\u0027 is not in the filters dictionary."}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_c482bbc8","line":449,"in_reply_to":"da20952f_d7518f31","updated":"2015-09-14 02:51:39.000000000","message":"Thanks a lot，I fixed it.","commit_id":"b67ecd6acbe2f090fc69b94a9cf91f4692830bec"},{"author":{"_account_id":17987,"name":"Li Yuanyuan","email":"liyuanyuan.fnst@cn.fujitsu.com","username":"liyuanyuan"},"change_message_id":"9d242be235c2f1f07eb33c2112f09b651fbfce14","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        LOG.info(_LI(\"Volume info retrieved successfully.\"), resource\u003drv)"},{"line_number":447,"context_line":"        return volume"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    def _get_all_tenants_value(self, filters):"},{"line_number":450,"context_line":"        \"\"\"Returns a Boolean for the value of filters[\u0027all_tenants\u0027]."},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"           False is returned if \u0027all_tenants\u0027 is not in the filters dictionary."}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_1f26b5ba","line":449,"in_reply_to":"da20952f_d7518f31","updated":"2015-09-14 09:11:02.000000000","message":"you suggestion， will call \u0027utils.is_valid_boolstr\u0027, But this method\nis return (val \u003d\u003d \u0027true\u0027 or val \u003d\u003d \u0027false\u0027 or\n            val \u003d\u003d \u0027yes\u0027 or val \u003d\u003d \u0027no\u0027 or\n            val \u003d\u003d \u0027y\u0027 or val \u003d\u003d \u0027n\u0027 or\n            val \u003d\u003d \u00271\u0027 or val \u003d\u003d \u00270\u0027),\nif all_tenants is yes or no , It also return Ture or Flase.\nWhether it will affect the previous logic？","commit_id":"b67ecd6acbe2f090fc69b94a9cf91f4692830bec"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"be8803c732fcb0e9b570234b79ac37d54b2fbbe4","unresolved":false,"context_lines":[{"line_number":445,"context_line":"            raise exception.VolumeNotFound(volume_id\u003dvolume_id)"},{"line_number":446,"context_line":"        LOG.info(_LI(\"Volume info retrieved successfully.\"), resource\u003drv)"},{"line_number":447,"context_line":"        return volume"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    def _get_all_tenants_value(self, filters):"},{"line_number":450,"context_line":"        \"\"\"Returns a Boolean for the value of filters[\u0027all_tenants\u0027]."},{"line_number":451,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_6df153cd","line":448,"updated":"2015-09-14 04:47:07.000000000","message":"I think we can remove this method now.","commit_id":"415a043bbc4174880ae2eb4c3abfb0ef83af169c"}]}
