)]}'
{"manilaclient/config.py":[{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"52e15d6d8b787aafbfb1d11829ee92d76de69d28","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import copy"},{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from oslo_config import cfg"},{"line_number":20,"context_line":"import oslo_log._options as log_options"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"# 1. Define opts"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab921fb_9e22abb8","line":19,"updated":"2015-04-23 05:19:28.000000000","message":"unrelated to this change. Let\u0027s fix it in another change and add a hacking rule to check the oslo imports","commit_id":"5894340d9b3cc022857c5136681f9a089a340046"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3863e7ad43a94483435df7dc5d5e5527f0c09307","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import copy"},{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from oslo_config import cfg"},{"line_number":20,"context_line":"import oslo_log._options as log_options"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"# 1. Define opts"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab921fb_47bb23c5","line":19,"in_reply_to":"bab921fb_9e22abb8","updated":"2015-04-23 08:35:28.000000000","message":"Done","commit_id":"5894340d9b3cc022857c5136681f9a089a340046"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"52e15d6d8b787aafbfb1d11829ee92d76de69d28","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    cfg.BoolOpt(\"suppress_errors_in_cleanup\","},{"line_number":64,"context_line":"                default\u003dTrue,"},{"line_number":65,"context_line":"                help\u003d\"Whether to suppress errors with clean up operation \""},{"line_number":66,"context_line":"                     \"or not. There are cases when we may want to skip \""},{"line_number":67,"context_line":"                     \"such errors and catch only test errors.\"),"},{"line_number":68,"context_line":"]"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bab921fb_fe3ac7e6","line":66,"updated":"2015-04-23 05:19:28.000000000","message":"I would skip the second sentence (There are cases ...). Imho doesn\u0027t have useful information for the user.","commit_id":"5894340d9b3cc022857c5136681f9a089a340046"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3863e7ad43a94483435df7dc5d5e5527f0c09307","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    cfg.BoolOpt(\"suppress_errors_in_cleanup\","},{"line_number":64,"context_line":"                default\u003dTrue,"},{"line_number":65,"context_line":"                help\u003d\"Whether to suppress errors with clean up operation \""},{"line_number":66,"context_line":"                     \"or not. There are cases when we may want to skip \""},{"line_number":67,"context_line":"                     \"such errors and catch only test errors.\"),"},{"line_number":68,"context_line":"]"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bab921fb_87aa5b6f","line":66,"in_reply_to":"bab921fb_599c2d69","updated":"2015-04-23 08:35:28.000000000","message":"Done","commit_id":"5894340d9b3cc022857c5136681f9a089a340046"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7345e3561b1ea0e569063f11ef616e0a57f4af0e","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    cfg.BoolOpt(\"suppress_errors_in_cleanup\","},{"line_number":64,"context_line":"                default\u003dTrue,"},{"line_number":65,"context_line":"                help\u003d\"Whether to suppress errors with clean up operation \""},{"line_number":66,"context_line":"                     \"or not. There are cases when we may want to skip \""},{"line_number":67,"context_line":"                     \"such errors and catch only test errors.\"),"},{"line_number":68,"context_line":"]"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bab921fb_599c2d69","line":66,"in_reply_to":"bab921fb_fe3ac7e6","updated":"2015-04-23 05:34:45.000000000","message":"+1","commit_id":"5894340d9b3cc022857c5136681f9a089a340046"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"7b52a031b0e33fd800d3d1d0c372bee1d08b6d9d","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from oslo.config import cfg"},{"line_number":20,"context_line":"import oslo_log._options as log_options"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"# 1. Define opts"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bab921fb_67d70ac0","line":20,"updated":"2015-04-24 08:37:04.000000000","message":"What about using \"from oslo_log import log\" and later in the code \"log.register_options(CONF)\" instead of importing a private module? Haven\u0027t tested that.","commit_id":"01ccc6a418115af85960ffbfc3251a7e00be4d6f"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ea5db6109101b2fcdb3265857c4d5f5a3a01e54b","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from oslo.config import cfg"},{"line_number":20,"context_line":"import oslo_log._options as log_options"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"# 1. Define opts"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bab921fb_c8a822de","line":20,"in_reply_to":"bab921fb_67d70ac0","updated":"2015-04-24 10:35:39.000000000","message":"It is used for getting list of opts for config sample generator. Just look at change, here is no registration of log options.","commit_id":"01ccc6a418115af85960ffbfc3251a7e00be4d6f"}],"manilaclient/tests/functional/base.py":[{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"52e15d6d8b787aafbfb1d11829ee92d76de69d28","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from manilaclient import config"},{"line_number":24,"context_line":"from manilaclient.tests.functional import client"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"CLI_DIR \u003d os.environ.get("},{"line_number":27,"context_line":"    \u0027OS_MANILA_EXEC_DIR\u0027,"},{"line_number":28,"context_line":"    os.path.join(os.path.abspath(\u0027.\u0027), \u0027.tox/functional/bin\u0027))"},{"line_number":29,"context_line":"CONF \u003d config.CONF"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab921fb_19047513","line":26,"updated":"2015-04-23 05:19:28.000000000","message":"Isn\u0027t that one identical to CONF.manila_exec_dir ?","commit_id":"5894340d9b3cc022857c5136681f9a089a340046"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3863e7ad43a94483435df7dc5d5e5527f0c09307","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from manilaclient import config"},{"line_number":24,"context_line":"from manilaclient.tests.functional import client"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"CLI_DIR \u003d os.environ.get("},{"line_number":27,"context_line":"    \u0027OS_MANILA_EXEC_DIR\u0027,"},{"line_number":28,"context_line":"    os.path.join(os.path.abspath(\u0027.\u0027), \u0027.tox/functional/bin\u0027))"},{"line_number":29,"context_line":"CONF \u003d config.CONF"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab921fb_270caf93","line":26,"in_reply_to":"bab921fb_19047513","updated":"2015-04-23 08:35:28.000000000","message":"Done","commit_id":"5894340d9b3cc022857c5136681f9a089a340046"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7345e3561b1ea0e569063f11ef616e0a57f4af0e","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        \"\"\"Deletes resources, that were created in test suites."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        This method tries to remove resources from resource list,"},{"line_number":78,"context_line":"        if it is not found, assumed it was deleted in test itself."},{"line_number":79,"context_line":"        It is expected, that all resources were added as LIFO"},{"line_number":80,"context_line":"        due to restriction of deletion resources, that is in the chain."},{"line_number":81,"context_line":"        :param resources: dict with keys \u0027type\u0027,\u0027id\u0027,\u0027client\u0027 and \u0027deleted\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab921fb_99a08592","line":78,"updated":"2015-04-23 05:34:45.000000000","message":"assumed -\u003e assume","commit_id":"5894340d9b3cc022857c5136681f9a089a340046"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3863e7ad43a94483435df7dc5d5e5527f0c09307","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        \"\"\"Deletes resources, that were created in test suites."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        This method tries to remove resources from resource list,"},{"line_number":78,"context_line":"        if it is not found, assumed it was deleted in test itself."},{"line_number":79,"context_line":"        It is expected, that all resources were added as LIFO"},{"line_number":80,"context_line":"        due to restriction of deletion resources, that is in the chain."},{"line_number":81,"context_line":"        :param resources: dict with keys \u0027type\u0027,\u0027id\u0027,\u0027client\u0027 and \u0027deleted\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab921fb_87d81b1f","line":78,"in_reply_to":"bab921fb_99a08592","updated":"2015-04-23 08:35:28.000000000","message":"Done","commit_id":"5894340d9b3cc022857c5136681f9a089a340046"}],"manilaclient/tests/functional/client.py":[{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"773467172585bde28056fd0c735ecb3c8e0a8778","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        return share_types"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    def is_share_type_deleted(self, share_type):"},{"line_number":131,"context_line":"        \"\"\"Says wheather share type is deleted or not."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        :param share_type: text -- Name or ID of share type"},{"line_number":134,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"dac4157f_1890b342","line":131,"updated":"2015-04-21 15:10:13.000000000","message":"whether","commit_id":"3733cf7e536b41a16be4ee922aac5b6794ab2034"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"47e01337240cbfca2cc2a2037dea10dc360e12d7","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        return share_types"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    def is_share_type_deleted(self, share_type):"},{"line_number":131,"context_line":"        \"\"\"Says wheather share type is deleted or not."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        :param share_type: text -- Name or ID of share type"},{"line_number":134,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"dac4157f_9fbb69e5","line":131,"in_reply_to":"dac4157f_1890b342","updated":"2015-04-22 09:04:47.000000000","message":"Done","commit_id":"3733cf7e536b41a16be4ee922aac5b6794ab2034"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"28adaf2bffc73096078463bdc6fd36c6fe4841cf","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        :param share_type: text -- Name or ID of share type"},{"line_number":147,"context_line":"        \"\"\""},{"line_number":148,"context_line":"        self.wait_for_resource_deletion("},{"line_number":149,"context_line":"            SHARE_TYPE, res_id\u003dshare_type, interval\u003d2, timeout\u003d5)"}],"source_content_type":"text/x-python","patch_set":2,"id":"dac4157f_18cb0e20","line":149,"updated":"2015-04-21 16:50:01.000000000","message":"The wait for doesn\u0027t handle \"remainder\" time, so this is really timeout\u003d4.","commit_id":"3733cf7e536b41a16be4ee922aac5b6794ab2034"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"47e01337240cbfca2cc2a2037dea10dc360e12d7","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        :param share_type: text -- Name or ID of share type"},{"line_number":147,"context_line":"        \"\"\""},{"line_number":148,"context_line":"        self.wait_for_resource_deletion("},{"line_number":149,"context_line":"            SHARE_TYPE, res_id\u003dshare_type, interval\u003d2, timeout\u003d5)"}],"source_content_type":"text/x-python","patch_set":2,"id":"dac4157f_5fb5d1eb","line":149,"in_reply_to":"dac4157f_18cb0e20","updated":"2015-04-22 09:04:47.000000000","message":"Done","commit_id":"3733cf7e536b41a16be4ee922aac5b6794ab2034"},{"author":{"_account_id":14232,"name":"Igor Malinovskiy","email":"u.glide@gmail.com","username":"imalinovskiy"},"change_message_id":"5ac574e3f92e866e10344dc1c6036368cf3d800f","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        :param share_type: text -- Name or ID of share type"},{"line_number":154,"context_line":"        \"\"\""},{"line_number":155,"context_line":"        self.wait_for_resource_deletion("},{"line_number":156,"context_line":"            SHARE_TYPE, res_id\u003dshare_type, interval\u003d2, timeout\u003d6)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7ad32947_9d262bb9","line":156,"updated":"2015-04-28 09:07:01.000000000","message":"Is it enough timeout for slow CI vm\u0027s?","commit_id":"4243d8731b05e4db4759a6f9e24eaf6a1c54654a"},{"author":{"_account_id":14232,"name":"Igor Malinovskiy","email":"u.glide@gmail.com","username":"imalinovskiy"},"change_message_id":"f73ad70bff7171cae1eb66328ee9d1247c3449c1","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        :param share_type: text -- Name or ID of share type"},{"line_number":154,"context_line":"        \"\"\""},{"line_number":155,"context_line":"        self.wait_for_resource_deletion("},{"line_number":156,"context_line":"            SHARE_TYPE, res_id\u003dshare_type, interval\u003d2, timeout\u003d6)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7ad32947_20deca6d","line":156,"in_reply_to":"7ad32947_1d733b82","updated":"2015-04-28 09:34:10.000000000","message":"I meant that probably could fail in the gate job on slow CI VM :)","commit_id":"4243d8731b05e4db4759a6f9e24eaf6a1c54654a"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"b0fe49f22d094865d7427cc25674ad67507f99ac","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        :param share_type: text -- Name or ID of share type"},{"line_number":154,"context_line":"        \"\"\""},{"line_number":155,"context_line":"        self.wait_for_resource_deletion("},{"line_number":156,"context_line":"            SHARE_TYPE, res_id\u003dshare_type, interval\u003d2, timeout\u003d6)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7ad32947_00ccee87","line":156,"in_reply_to":"7ad32947_20deca6d","updated":"2015-04-28 09:38:16.000000000","message":"So slow VM that can not delete one DB record in 6 seconds? I don\u0027t think we will face it, at least, once per thousand of test runs.","commit_id":"4243d8731b05e4db4759a6f9e24eaf6a1c54654a"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ce1cab6c1c98593074ae3886a6416e1bce03367d","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        :param share_type: text -- Name or ID of share type"},{"line_number":154,"context_line":"        \"\"\""},{"line_number":155,"context_line":"        self.wait_for_resource_deletion("},{"line_number":156,"context_line":"            SHARE_TYPE, res_id\u003dshare_type, interval\u003d2, timeout\u003d6)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7ad32947_1d733b82","line":156,"in_reply_to":"7ad32947_9d262bb9","updated":"2015-04-28 09:11:52.000000000","message":"Why VMs? It is deletion of share type which is DB record.","commit_id":"4243d8731b05e4db4759a6f9e24eaf6a1c54654a"}],"manilaclient/tests/functional/test_share_types.py":[{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"52e15d6d8b787aafbfb1d11829ee92d76de69d28","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    @ddt.data(\u0027false\u0027, \u0027False\u0027, \u00270\u0027, \u0027True\u0027, \u0027true\u0027, \u00271\u0027)"},{"line_number":37,"context_line":"    def test_create_delete_public_share_type(self, dhss):"},{"line_number":38,"context_line":"        share_type_name \u003d data_utils.rand_name(\u0027manilaclient_functional_test\u0027)"},{"line_number":39,"context_line":"        dhss_expected \u003d \u0027False\u0027 if dhss in (\u0027false\u0027, \u0027False\u0027, \u00270\u0027) else \u0027True\u0027"},{"line_number":40,"context_line":"        dhss_expected \u003d \u0027driver_handles_share_servers : %s\u0027 % dhss_expected"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # Create share type"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab921fb_19eeb522","line":39,"updated":"2015-04-23 05:19:28.000000000","message":"What about strutils.bool_from_string() ?","commit_id":"5894340d9b3cc022857c5136681f9a089a340046"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3863e7ad43a94483435df7dc5d5e5527f0c09307","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    @ddt.data(\u0027false\u0027, \u0027False\u0027, \u00270\u0027, \u0027True\u0027, \u0027true\u0027, \u00271\u0027)"},{"line_number":37,"context_line":"    def test_create_delete_public_share_type(self, dhss):"},{"line_number":38,"context_line":"        share_type_name \u003d data_utils.rand_name(\u0027manilaclient_functional_test\u0027)"},{"line_number":39,"context_line":"        dhss_expected \u003d \u0027False\u0027 if dhss in (\u0027false\u0027, \u0027False\u0027, \u00270\u0027) else \u0027True\u0027"},{"line_number":40,"context_line":"        dhss_expected \u003d \u0027driver_handles_share_servers : %s\u0027 % dhss_expected"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # Create share type"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab921fb_27d14fce","line":39,"in_reply_to":"bab921fb_19eeb522","updated":"2015-04-23 08:35:28.000000000","message":"Done","commit_id":"5894340d9b3cc022857c5136681f9a089a340046"}],"requirements.txt":[{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"7b52a031b0e33fd800d3d1d0c372bee1d08b6d9d","unresolved":false,"context_lines":[{"line_number":8,"context_line":"argparse"},{"line_number":9,"context_line":"iso8601\u003e\u003d0.1.9"},{"line_number":10,"context_line":"oslo.config\u003e\u003d1.9.3  # Apache-2.0"},{"line_number":11,"context_line":"oslo.log\u003e\u003d1.0.0,\u003c1.1.0  # Apache-2.0"},{"line_number":12,"context_line":"oslo.serialization\u003e\u003d1.4.0               # Apache-2.0"},{"line_number":13,"context_line":"oslo.utils\u003e\u003d1.4.0                       # Apache-2.0"},{"line_number":14,"context_line":"PrettyTable\u003e\u003d0.7,\u003c0.8"}],"source_content_type":"text/plain","patch_set":6,"id":"bab921fb_7bfe8939","line":11,"updated":"2015-04-24 08:37:04.000000000","message":"After the uncap this should be only \"oslo.log\u003e\u003d1.0.0\", right?","commit_id":"01ccc6a418115af85960ffbfc3251a7e00be4d6f"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"1c14088341460e95aa662fcd91a759c0e1529e0d","unresolved":false,"context_lines":[{"line_number":8,"context_line":"argparse"},{"line_number":9,"context_line":"iso8601\u003e\u003d0.1.9"},{"line_number":10,"context_line":"oslo.config\u003e\u003d1.9.3  # Apache-2.0"},{"line_number":11,"context_line":"oslo.log\u003e\u003d1.0.0,\u003c1.1.0  # Apache-2.0"},{"line_number":12,"context_line":"oslo.serialization\u003e\u003d1.4.0               # Apache-2.0"},{"line_number":13,"context_line":"oslo.utils\u003e\u003d1.4.0                       # Apache-2.0"},{"line_number":14,"context_line":"PrettyTable\u003e\u003d0.7,\u003c0.8"}],"source_content_type":"text/plain","patch_set":6,"id":"9abe1de1_8cce1382","line":11,"in_reply_to":"bab921fb_7bfe8939","updated":"2015-04-27 11:15:11.000000000","message":"Done","commit_id":"01ccc6a418115af85960ffbfc3251a7e00be4d6f"}]}
