)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"c894b68d434c817d96d0a9fd53071c5decbea384","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add timeout option"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This option should prevent situations when connection hangs."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I952a923b056eef653fe45676216b563729b29133"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"da85f559_16f003c8","line":10,"updated":"2015-11-12 18:50:46.000000000","message":"Is there a blueprint for this new option?  Also, does this need a DocImpact flag?","commit_id":"1a18d237f3418556af38d936144d3ec90eae2e31"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"9e90cb6b014e4efcaf3918413271795d08f8672c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add timeout option"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This option should prevent situations when connection hangs."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I952a923b056eef653fe45676216b563729b29133"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"da85f559_11b80d29","line":10,"in_reply_to":"da85f559_16f003c8","updated":"2015-12-24 13:09:17.000000000","message":"No, there is no blueprint for this feature, since it already supported by most of clients.","commit_id":"1a18d237f3418556af38d936144d3ec90eae2e31"}],"openstackclient/common/clientmanager.py":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"c894b68d434c817d96d0a9fd53071c5decbea384","unresolved":false,"context_lines":[{"line_number":180,"context_line":"            session\u003drequest_session,"},{"line_number":181,"context_line":"            verify\u003dself._verify,"},{"line_number":182,"context_line":"            user_agent\u003dUSER_AGENT,"},{"line_number":183,"context_line":"            timeout\u003dself.timeout"},{"line_number":184,"context_line":"        )"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_76adcfe7","line":183,"updated":"2015-11-12 18:50:46.000000000","message":"nit...trailing comma?","commit_id":"1a18d237f3418556af38d936144d3ec90eae2e31"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"9e90cb6b014e4efcaf3918413271795d08f8672c","unresolved":false,"context_lines":[{"line_number":180,"context_line":"            session\u003drequest_session,"},{"line_number":181,"context_line":"            verify\u003dself._verify,"},{"line_number":182,"context_line":"            user_agent\u003dUSER_AGENT,"},{"line_number":183,"context_line":"            timeout\u003dself.timeout"},{"line_number":184,"context_line":"        )"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a7b0d38_094ad3c5","line":183,"in_reply_to":"da85f559_76adcfe7","updated":"2015-12-24 13:09:17.000000000","message":"Done","commit_id":"1a18d237f3418556af38d936144d3ec90eae2e31"}],"openstackclient/common/utils.py":[{"author":{"_account_id":18835,"name":"Toshiya Shiga","email":"tos-shiga@yk.jp.nec.com","username":"tos-shiga"},"change_message_id":"68d937489b41d8abaadf5020ef02de570b722dcc","unresolved":false,"context_lines":[{"line_number":422,"context_line":"    return kwargs"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"def positive_non_zero_float(argument_value):"},{"line_number":426,"context_line":"    if argument_value is None:"},{"line_number":427,"context_line":"        return None"},{"line_number":428,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_8795f587","line":425,"updated":"2015-11-27 02:40:21.000000000","message":"Should write a comment of method.","commit_id":"1a18d237f3418556af38d936144d3ec90eae2e31"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"be526f5e4c2dacf26955d68250f2bda7b4d1c3d3","unresolved":false,"context_lines":[{"line_number":422,"context_line":"    return kwargs"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"def positive_non_zero_float(argument_value):"},{"line_number":426,"context_line":"    if argument_value is None:"},{"line_number":427,"context_line":"        return None"},{"line_number":428,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_d9e5e708","line":425,"updated":"2015-11-29 08:32:18.000000000","message":"You could also use \u0027NonNegativeAction\u0027 from https://github.com/openstack/python-openstackclient/blob/master/openstackclient/common/parseractions.py","commit_id":"1a18d237f3418556af38d936144d3ec90eae2e31"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"9e90cb6b014e4efcaf3918413271795d08f8672c","unresolved":false,"context_lines":[{"line_number":422,"context_line":"    return kwargs"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"def positive_non_zero_float(argument_value):"},{"line_number":426,"context_line":"    if argument_value is None:"},{"line_number":427,"context_line":"        return None"},{"line_number":428,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a7b0d38_49277b12","line":425,"in_reply_to":"9a8ffd7b_d9e5e708","updated":"2015-12-24 13:09:17.000000000","message":"Done","commit_id":"1a18d237f3418556af38d936144d3ec90eae2e31"},{"author":{"_account_id":18835,"name":"Toshiya Shiga","email":"tos-shiga@yk.jp.nec.com","username":"tos-shiga"},"change_message_id":"68d937489b41d8abaadf5020ef02de570b722dcc","unresolved":false,"context_lines":[{"line_number":426,"context_line":"    if argument_value is None:"},{"line_number":427,"context_line":"        return None"},{"line_number":428,"context_line":"    try:"},{"line_number":429,"context_line":"        value \u003d float(argument_value)"},{"line_number":430,"context_line":"    except ValueError:"},{"line_number":431,"context_line":"        msg \u003d \"%s must be a float\" % argument_value"},{"line_number":432,"context_line":"        raise argparse.ArgumentTypeError(msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_2718c91d","line":429,"updated":"2015-11-27 02:40:21.000000000","message":"Do you check string as \"nan\"?","commit_id":"1a18d237f3418556af38d936144d3ec90eae2e31"}],"openstackclient/shell.py":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"c894b68d434c817d96d0a9fd53071c5decbea384","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            default\u003dutils.env(\u0027OS_CLIENTS_TIMEOUT\u0027, default\u003d600),"},{"line_number":195,"context_line":"            type\u003dutils.positive_non_zero_float,"},{"line_number":196,"context_line":"            metavar\u003d\u0027\u003cseconds\u003e\u0027,"},{"line_number":197,"context_line":"            help\u003d\u0027Set request timeout (in seconds).\u0027)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        return clientmanager.build_plugin_option_parser(parser)"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_f63c5f94","line":197,"updated":"2015-11-12 18:50:46.000000000","message":"Suggest dropping \"Set\" from the help.  Also, I think the help should list the default with the Env like is done for other arguments.","commit_id":"1a18d237f3418556af38d936144d3ec90eae2e31"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"be526f5e4c2dacf26955d68250f2bda7b4d1c3d3","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            default\u003dutils.env(\u0027OS_CLIENTS_TIMEOUT\u0027, default\u003d600),"},{"line_number":195,"context_line":"            type\u003dutils.positive_non_zero_float,"},{"line_number":196,"context_line":"            metavar\u003d\u0027\u003cseconds\u003e\u0027,"},{"line_number":197,"context_line":"            help\u003d\u0027Set request timeout (in seconds).\u0027)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        return clientmanager.build_plugin_option_parser(parser)"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_79f07bc9","line":197,"in_reply_to":"da85f559_f63c5f94","updated":"2015-11-29 08:32:18.000000000","message":"++","commit_id":"1a18d237f3418556af38d936144d3ec90eae2e31"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"9e90cb6b014e4efcaf3918413271795d08f8672c","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            default\u003dutils.env(\u0027OS_CLIENTS_TIMEOUT\u0027, default\u003d600),"},{"line_number":195,"context_line":"            type\u003dutils.positive_non_zero_float,"},{"line_number":196,"context_line":"            metavar\u003d\u0027\u003cseconds\u003e\u0027,"},{"line_number":197,"context_line":"            help\u003d\u0027Set request timeout (in seconds).\u0027)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        return clientmanager.build_plugin_option_parser(parser)"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a7b0d38_89d1e3cf","line":197,"in_reply_to":"da85f559_f63c5f94","updated":"2015-12-24 13:09:17.000000000","message":"Done","commit_id":"1a18d237f3418556af38d936144d3ec90eae2e31"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"9e597bbe640e483756d3ba4bff1d2c0ddd4c9284","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        )"},{"line_number":194,"context_line":"        parser.add_argument("},{"line_number":195,"context_line":"            \u0027--timeout\u0027,"},{"line_number":196,"context_line":"            default\u003dutils.env(\u0027OS_CLIENTS_TIMEOUT\u0027, default\u003dDEFAULT_TIMEOUT),"},{"line_number":197,"context_line":"            type\u003dint,"},{"line_number":198,"context_line":"            action\u003dparseractions.NonNegativeAction,"},{"line_number":199,"context_line":"            metavar\u003d\u0027\u003cseconds\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_ffa6fc51","line":196,"updated":"2016-01-04 15:21:56.000000000","message":"This name doesn\u0027t fit our method of converting between global options and environment variables.  Per the rule it should be OS_TIMEOUT.","commit_id":"cf11f4bbb2c43a6ef79b782391eefb2536051093"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"350e82037a6888567fd7ccac986c8e9b73385f51","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        )"},{"line_number":194,"context_line":"        parser.add_argument("},{"line_number":195,"context_line":"            \u0027--timeout\u0027,"},{"line_number":196,"context_line":"            default\u003dutils.env(\u0027OS_CLIENTS_TIMEOUT\u0027, default\u003dDEFAULT_TIMEOUT),"},{"line_number":197,"context_line":"            type\u003dint,"},{"line_number":198,"context_line":"            action\u003dparseractions.NonNegativeAction,"},{"line_number":199,"context_line":"            metavar\u003d\u0027\u003cseconds\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_3aaca2ec","line":196,"in_reply_to":"fa69d971_ffa6fc51","updated":"2016-01-04 15:26:38.000000000","message":"Done","commit_id":"cf11f4bbb2c43a6ef79b782391eefb2536051093"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"315a67ae5158fb78fa6df91620ad72e1bbf97127","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            type\u003dint,"},{"line_number":198,"context_line":"            action\u003dparseractions.NonNegativeAction,"},{"line_number":199,"context_line":"            metavar\u003d\u0027\u003cseconds\u003e\u0027,"},{"line_number":200,"context_line":"            help\u003d\u0027request timeout (in seconds), default %s \u0027"},{"line_number":201,"context_line":"                 \u0027(Env: OS_CLIENTS_TIMEOUT)\u0027 % DEFAULT_TIMEOUT)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        return clientmanager.build_plugin_option_parser(parser)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_7851ba0d","line":200,"range":{"start_line":200,"start_character":18,"end_line":200,"end_character":19},"updated":"2015-12-26 06:48:08.000000000","message":"Should be Request instead of request","commit_id":"cf11f4bbb2c43a6ef79b782391eefb2536051093"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"206a15226025a6d0bd951086c8405dbe266a524d","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            type\u003dint,"},{"line_number":198,"context_line":"            action\u003dparseractions.NonNegativeAction,"},{"line_number":199,"context_line":"            metavar\u003d\u0027\u003cseconds\u003e\u0027,"},{"line_number":200,"context_line":"            help\u003d\u0027request timeout (in seconds), default %s \u0027"},{"line_number":201,"context_line":"                 \u0027(Env: OS_CLIENTS_TIMEOUT)\u0027 % DEFAULT_TIMEOUT)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        return clientmanager.build_plugin_option_parser(parser)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_cf91e648","line":200,"range":{"start_line":200,"start_character":18,"end_line":200,"end_character":19},"in_reply_to":"1a7b0d38_7851ba0d","updated":"2015-12-28 14:46:39.000000000","message":"+1","commit_id":"cf11f4bbb2c43a6ef79b782391eefb2536051093"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"350e82037a6888567fd7ccac986c8e9b73385f51","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            type\u003dint,"},{"line_number":198,"context_line":"            action\u003dparseractions.NonNegativeAction,"},{"line_number":199,"context_line":"            metavar\u003d\u0027\u003cseconds\u003e\u0027,"},{"line_number":200,"context_line":"            help\u003d\u0027request timeout (in seconds), default %s \u0027"},{"line_number":201,"context_line":"                 \u0027(Env: OS_CLIENTS_TIMEOUT)\u0027 % DEFAULT_TIMEOUT)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        return clientmanager.build_plugin_option_parser(parser)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_5aa63611","line":200,"range":{"start_line":200,"start_character":18,"end_line":200,"end_character":19},"in_reply_to":"1a7b0d38_7851ba0d","updated":"2016-01-04 15:26:38.000000000","message":"Done","commit_id":"cf11f4bbb2c43a6ef79b782391eefb2536051093"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"d66942ff7ab5cf8d0afe70207d5ff4fb91e78742","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"DEFAULT_DOMAIN \u003d \u0027default\u0027"},{"line_number":43,"context_line":"DEFAULT_TIMEOUT \u003d 600"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"def prompt_for_password(prompt\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_9c86e0b7","line":43,"range":{"start_line":43,"start_character":18,"end_line":43,"end_character":21},"updated":"2016-04-04 20:09:18.000000000","message":"iiuc socket/requests code, it should be the following to be backward compatible: \n\n DEFAULT_TIMEOUT \u003d socket._GLOBAL_DEFAULT_TIMEOUT\n\nor\n\n DEFAULT_TIMEOUT \u003d requests.timeout.Timeout.DEFAULT_TIMEOUT","commit_id":"e8f38e4a9ac0f52383ffb3e40fc9b1a9ee0c026b"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"d66942ff7ab5cf8d0afe70207d5ff4fb91e78742","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        parser.add_argument("},{"line_number":195,"context_line":"            \u0027--timeout\u0027,"},{"line_number":196,"context_line":"            default\u003dutils.env(\u0027OS_TIMEOUT\u0027, default\u003dDEFAULT_TIMEOUT),"},{"line_number":197,"context_line":"            type\u003dint,"},{"line_number":198,"context_line":"            action\u003dparseractions.NonNegativeAction,"},{"line_number":199,"context_line":"            metavar\u003d\u0027\u003cseconds\u003e\u0027,"},{"line_number":200,"context_line":"            help\u003d\u0027Request timeout (in seconds), default %s \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_3cb6b4dc","line":197,"range":{"start_line":197,"start_character":17,"end_line":197,"end_character":20},"updated":"2016-04-04 20:09:18.000000000","message":"requests expects a float as timeout so no reason to constraint us to an int.","commit_id":"e8f38e4a9ac0f52383ffb3e40fc9b1a9ee0c026b"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"d66942ff7ab5cf8d0afe70207d5ff4fb91e78742","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            type\u003dint,"},{"line_number":198,"context_line":"            action\u003dparseractions.NonNegativeAction,"},{"line_number":199,"context_line":"            metavar\u003d\u0027\u003cseconds\u003e\u0027,"},{"line_number":200,"context_line":"            help\u003d\u0027Request timeout (in seconds), default %s \u0027"},{"line_number":201,"context_line":"                 \u0027(Env: OS_TIMEOUT)\u0027 % DEFAULT_TIMEOUT)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        return clientmanager.build_plugin_option_parser(parser)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_7c35cc44","line":200,"range":{"start_line":200,"start_character":18,"end_line":200,"end_character":25},"updated":"2016-04-04 20:09:18.000000000","message":"Not exactly as it sets the connect and read timeout[1] so in the worse case we can wait 2*timeout seconds\n\n[1] https://github.com/kennethreitz/requests/blob/master/docs/user/advanced.rst#timeouts","commit_id":"e8f38e4a9ac0f52383ffb3e40fc9b1a9ee0c026b"}]}
