)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e9b13b251a6d165efb7cb3595679606e3c3fac8c","unresolved":false,"context_lines":[{"line_number":10,"context_line":"the URL is taken from standard environment variables."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"When ClosingHttp class instance is being created and a proxy URL"},{"line_number":13,"context_line":"is found in standard environmen variables then it creates"},{"line_number":14,"context_line":"ClosingProxyHttp class instead."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-Bug: #1556864"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":28,"id":"bf659307_7ffe0738","line":13,"range":{"start_line":13,"start_character":21,"end_line":13,"end_character":31},"updated":"2018-03-27 22:26:26.000000000","message":"environment","commit_id":"da8ee123190b708963f24c96359d9a6e6e6becb2"}],"tempest/cmd/verify_tempest_config.py":[{"author":{"_account_id":27329,"name":"Federico Ressi","email":"fressi@redhat.com","username":"fressi_redhat"},"change_message_id":"f615b3c82fab426213b975b9d4d3f9fa57780493","unresolved":false,"context_lines":[{"line_number":175,"context_line":"    http \u003d tempest.lib.common.http.closing_http("},{"line_number":176,"context_line":"        disable_ssl_certificate_validation\u003d("},{"line_number":177,"context_line":"            CONF.identity.disable_ssl_certificate_validation),"},{"line_number":178,"context_line":"        ca_certs\u003dCONF.identity.ca_certificates_file)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    __, body \u003d http.request(endpoint, \u0027GET\u0027)"},{"line_number":181,"context_line":"    client_dict[service].reset_path()"}],"source_content_type":"text/x-python","patch_set":10,"id":"df7087c5_99219ca2","line":178,"updated":"2018-03-22 11:25:16.000000000","message":"Here I should pass proxy_url from CONF","commit_id":"c1fcdac21829d1e26be8877b1f152d328b63313b"}],"tempest/common/credentials_factory.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e9b13b251a6d165efb7cb3595679606e3c3fac8c","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    :param force_tenant_isolation: Always return a `DynamicCredentialProvider`,"},{"line_number":129,"context_line":"                                   regardless of the configuration."},{"line_number":130,"context_line":"    :param identity_version: Use the specified identity API version, regardless"},{"line_number":131,"context_line":"                             of the configuration. Valid values are \u0027v2\u0027, \u0027v3\u0027."},{"line_number":132,"context_line":"    \"\"\""},{"line_number":133,"context_line":"    # If a test requires a new account to work, it can have it via forcing"},{"line_number":134,"context_line":"    # dynamic credentials. A new account will be produced only for that test."}],"source_content_type":"text/x-python","patch_set":28,"id":"bf659307_1fd58bb9","line":131,"updated":"2018-03-27 22:26:26.000000000","message":"The proxy_url param will need to be documented here.","commit_id":"da8ee123190b708963f24c96359d9a6e6e6becb2"},{"author":{"_account_id":27329,"name":"Federico Ressi","email":"fressi@redhat.com","username":"fressi_redhat"},"change_message_id":"cc24e4305177e9c7cb2dcd5a99635369786d3669","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    :param force_tenant_isolation: Always return a `DynamicCredentialProvider`,"},{"line_number":129,"context_line":"                                   regardless of the configuration."},{"line_number":130,"context_line":"    :param identity_version: Use the specified identity API version, regardless"},{"line_number":131,"context_line":"                             of the configuration. Valid values are \u0027v2\u0027, \u0027v3\u0027."},{"line_number":132,"context_line":"    \"\"\""},{"line_number":133,"context_line":"    # If a test requires a new account to work, it can have it via forcing"},{"line_number":134,"context_line":"    # dynamic credentials. A new account will be produced only for that test."}],"source_content_type":"text/x-python","patch_set":28,"id":"bf659307_3c0972dc","line":131,"in_reply_to":"bf659307_1fd58bb9","updated":"2018-03-28 08:39:24.000000000","message":"Done","commit_id":"da8ee123190b708963f24c96359d9a6e6e6becb2"}],"tempest/lib/common/dynamic_creds.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e9b13b251a6d165efb7cb3595679606e3c3fac8c","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    :param public_network_id: The id for the public network to use"},{"line_number":64,"context_line":"    :param identity_admin_endpoint_type: The endpoint type for identity"},{"line_number":65,"context_line":"                                         admin clients. Defaults to public."},{"line_number":66,"context_line":"    :param identity_uri: Identity URI of the target cloud"},{"line_number":67,"context_line":"    \"\"\""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def __init__(self, identity_version, name\u003dNone, network_resources\u003dNone,"}],"source_content_type":"text/x-python","patch_set":28,"id":"bf659307_9f72fb10","line":66,"updated":"2018-03-27 22:26:26.000000000","message":"The proxy_url param will need to be documented here.","commit_id":"da8ee123190b708963f24c96359d9a6e6e6becb2"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e9b13b251a6d165efb7cb3595679606e3c3fac8c","unresolved":false,"context_lines":[{"line_number":80,"context_line":"            admin_role\u003dadmin_role, name\u003dname,"},{"line_number":81,"context_line":"            credentials_domain\u003dcredentials_domain,"},{"line_number":82,"context_line":"            network_resources\u003dnetwork_resources)"},{"line_number":83,"context_line":"        self.proxy_url \u003d proxy_url"},{"line_number":84,"context_line":"        self.network_resources \u003d network_resources"},{"line_number":85,"context_line":"        self._creds \u003d {}"},{"line_number":86,"context_line":"        self.ports \u003d []"}],"source_content_type":"text/x-python","patch_set":28,"id":"bf659307_7f2fe7a0","line":83,"range":{"start_line":83,"start_character":8,"end_line":83,"end_character":34},"updated":"2018-03-27 22:26:26.000000000","message":"You use `proxy_url \u003d proxy_url or CONF.service_clients.proxy_url` elsewhere","commit_id":"da8ee123190b708963f24c96359d9a6e6e6becb2"},{"author":{"_account_id":27329,"name":"Federico Ressi","email":"fressi@redhat.com","username":"fressi_redhat"},"change_message_id":"cc24e4305177e9c7cb2dcd5a99635369786d3669","unresolved":false,"context_lines":[{"line_number":80,"context_line":"            admin_role\u003dadmin_role, name\u003dname,"},{"line_number":81,"context_line":"            credentials_domain\u003dcredentials_domain,"},{"line_number":82,"context_line":"            network_resources\u003dnetwork_resources)"},{"line_number":83,"context_line":"        self.proxy_url \u003d proxy_url"},{"line_number":84,"context_line":"        self.network_resources \u003d network_resources"},{"line_number":85,"context_line":"        self._creds \u003d {}"},{"line_number":86,"context_line":"        self.ports \u003d []"}],"source_content_type":"text/x-python","patch_set":28,"id":"bf659307_1c06eecf","line":83,"range":{"start_line":83,"start_character":8,"end_line":83,"end_character":34},"in_reply_to":"bf659307_7f2fe7a0","updated":"2018-03-28 08:39:24.000000000","message":"I can\u0027t. Executing tox -e pep8 I\u0027d receive below messages:\n\n  T112  tempest.lib should not import local tempest code to avoid circular dependency\n  T114  tempest.lib can not have any dependency on tempest config.","commit_id":"da8ee123190b708963f24c96359d9a6e6e6becb2"}],"tempest/lib/common/http.py":[{"author":{"_account_id":27329,"name":"Federico Ressi","email":"fressi@redhat.com","username":"fressi_redhat"},"change_message_id":"2ce33ac79c5713e5ccac51186487fe12d9745c85","unresolved":false,"context_lines":[{"line_number":162,"context_line":"class HttpResponse(dict):"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def __init__(self, info, url):"},{"line_number":165,"context_line":"        self.update(info.headers)"},{"line_number":166,"context_line":"        self.status \u003d info.status"},{"line_number":167,"context_line":"        self[\u0027status\u0027] \u003d str(info.status)"},{"line_number":168,"context_line":"        self.reason \u003d info.reason"}],"source_content_type":"text/x-python","patch_set":22,"id":"bf659307_b0b15792","line":165,"range":{"start_line":165,"start_character":8,"end_line":165,"end_character":33},"updated":"2018-03-26 20:00:21.000000000","message":"Regression: original code was lowercasing keys.","commit_id":"47ed0e9de95ce706919a08ba271f9f639950741a"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e9b13b251a6d165efb7cb3595679606e3c3fac8c","unresolved":false,"context_lines":[{"line_number":26,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"HTTP_PROXY_ENV_NAMES \u003d ["},{"line_number":29,"context_line":"    # add/remove environment variable names to be used to pass proxy_url"},{"line_number":30,"context_line":"    # \u0027https_proxy\u0027,"},{"line_number":31,"context_line":"    # \u0027http_proxy\u0027,"},{"line_number":32,"context_line":"    # \u0027HTTPS_PROXY\u0027,"},{"line_number":33,"context_line":"    # \u0027HTTP_PROXY\u0027"},{"line_number":34,"context_line":"]"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"bf659307_bfb25f93","line":33,"range":{"start_line":29,"start_character":0,"end_line":33,"end_character":18},"updated":"2018-03-27 22:26:26.000000000","message":"Why is this empty?","commit_id":"da8ee123190b708963f24c96359d9a6e6e6becb2"},{"author":{"_account_id":27329,"name":"Federico Ressi","email":"fressi@redhat.com","username":"fressi_redhat"},"change_message_id":"cc24e4305177e9c7cb2dcd5a99635369786d3669","unresolved":false,"context_lines":[{"line_number":26,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"HTTP_PROXY_ENV_NAMES \u003d ["},{"line_number":29,"context_line":"    # add/remove environment variable names to be used to pass proxy_url"},{"line_number":30,"context_line":"    # \u0027https_proxy\u0027,"},{"line_number":31,"context_line":"    # \u0027http_proxy\u0027,"},{"line_number":32,"context_line":"    # \u0027HTTPS_PROXY\u0027,"},{"line_number":33,"context_line":"    # \u0027HTTP_PROXY\u0027"},{"line_number":34,"context_line":"]"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"bf659307_7cfe0aaf","line":33,"range":{"start_line":29,"start_character":0,"end_line":33,"end_character":18},"in_reply_to":"bf659307_bfb25f93","updated":"2018-03-28 08:39:24.000000000","message":"It looks like this feature produces some timeout in few tests executed by CI. I have to trigger more jobs to be sure it is related with this feature.","commit_id":"da8ee123190b708963f24c96359d9a6e6e6becb2"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e9b13b251a6d165efb7cb3595679606e3c3fac8c","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"def closing_http(disable_ssl_certificate_validation\u003dFalse, ca_certs\u003dNone,"},{"line_number":42,"context_line":"                 timeout\u003dNone, proxy_url\u003dNone):"},{"line_number":43,"context_line":"    \"\"\"Create a ClosingProxy instance"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    \"\"\""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"bf659307_5fc223eb","line":43,"range":{"start_line":43,"start_character":16,"end_line":43,"end_character":28},"updated":"2018-03-27 22:26:26.000000000","message":"This is not true given L57/59","commit_id":"da8ee123190b708963f24c96359d9a6e6e6becb2"},{"author":{"_account_id":27329,"name":"Federico Ressi","email":"fressi@redhat.com","username":"fressi_redhat"},"change_message_id":"cc24e4305177e9c7cb2dcd5a99635369786d3669","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"def closing_http(disable_ssl_certificate_validation\u003dFalse, ca_certs\u003dNone,"},{"line_number":42,"context_line":"                 timeout\u003dNone, proxy_url\u003dNone):"},{"line_number":43,"context_line":"    \"\"\"Create a ClosingProxy instance"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    \"\"\""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"bf659307_5c1c6611","line":43,"range":{"start_line":43,"start_character":16,"end_line":43,"end_character":28},"in_reply_to":"bf659307_5fc223eb","updated":"2018-03-28 08:39:24.000000000","message":"Done","commit_id":"da8ee123190b708963f24c96359d9a6e6e6becb2"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e9b13b251a6d165efb7cb3595679606e3c3fac8c","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        if timeout:"},{"line_number":88,"context_line":"            kwargs.update(timeout\u003dtimeout)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        # LOG.debug(\"Initializing %r: %r\", self, kwargs)"},{"line_number":91,"context_line":"        # assert isinstance(self, ClosingProxyHttp)"},{"line_number":92,"context_line":"        super(ClosingHttp, self).__init__(**kwargs)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def request(self, url, method, fields\u003dNone, headers\u003dNone, **urlopen_kw):"}],"source_content_type":"text/x-python","patch_set":28,"id":"bf659307_ffea1773","line":91,"range":{"start_line":90,"start_character":0,"end_line":91,"end_character":51},"updated":"2018-03-27 22:26:26.000000000","message":"Dead code","commit_id":"da8ee123190b708963f24c96359d9a6e6e6becb2"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e9b13b251a6d165efb7cb3595679606e3c3fac8c","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            headers\u003dheaders,"},{"line_number":109,"context_line":"            retries\u003dretries)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        rensponse \u003d super(ClosingHttp, self).request(**parameters)"},{"line_number":112,"context_line":"        return HttpResponse(info\u003drensponse, url\u003durl), rensponse.data"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"bf659307_5f678326","line":111,"range":{"start_line":111,"start_character":8,"end_line":111,"end_character":17},"updated":"2018-03-27 22:26:26.000000000","message":"response","commit_id":"da8ee123190b708963f24c96359d9a6e6e6becb2"},{"author":{"_account_id":27329,"name":"Federico Ressi","email":"fressi@redhat.com","username":"fressi_redhat"},"change_message_id":"cc24e4305177e9c7cb2dcd5a99635369786d3669","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            headers\u003dheaders,"},{"line_number":109,"context_line":"            retries\u003dretries)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        rensponse \u003d super(ClosingHttp, self).request(**parameters)"},{"line_number":112,"context_line":"        return HttpResponse(info\u003drensponse, url\u003durl), rensponse.data"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"bf659307_1cbd8ed7","line":111,"range":{"start_line":111,"start_character":8,"end_line":111,"end_character":17},"in_reply_to":"bf659307_5f678326","updated":"2018-03-28 08:39:24.000000000","message":"Done","commit_id":"da8ee123190b708963f24c96359d9a6e6e6becb2"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e9b13b251a6d165efb7cb3595679606e3c3fac8c","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    \"\"\""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def __init__(self, proxy_url\u003dNone,"},{"line_number":121,"context_line":"                 disable_ssl_certificate_validation\u003dFalse,"},{"line_number":122,"context_line":"                 ca_certs\u003dNone, timeout\u003dNone, **kwargs):"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"bf659307_7f81278f","line":120,"range":{"start_line":120,"start_character":23,"end_line":120,"end_character":37},"updated":"2018-03-27 22:26:26.000000000","message":"proxy_url default value wasn\u0027t None and since this is in lib this needs to maintain backwards compatibility.","commit_id":"da8ee123190b708963f24c96359d9a6e6e6becb2"},{"author":{"_account_id":27329,"name":"Federico Ressi","email":"fressi@redhat.com","username":"fressi_redhat"},"change_message_id":"cc24e4305177e9c7cb2dcd5a99635369786d3669","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    \"\"\""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def __init__(self, proxy_url\u003dNone,"},{"line_number":121,"context_line":"                 disable_ssl_certificate_validation\u003dFalse,"},{"line_number":122,"context_line":"                 ca_certs\u003dNone, timeout\u003dNone, **kwargs):"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"bf659307_1c902e43","line":120,"range":{"start_line":120,"start_character":23,"end_line":120,"end_character":37},"in_reply_to":"bf659307_7f81278f","updated":"2018-03-28 08:39:24.000000000","message":"This is backward compatible. It extends the original interface without breaking it.","commit_id":"da8ee123190b708963f24c96359d9a6e6e6becb2"}],"tempest/lib/services/clients.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e9b13b251a6d165efb7cb3595679606e3c3fac8c","unresolved":false,"context_lines":[{"line_number":322,"context_line":"        :param proxy_url: Applies to auth and to all service clients, set a"},{"line_number":323,"context_line":"            proxy url for the clients to use."},{"line_number":324,"context_line":"        \"\"\""},{"line_number":325,"context_line":"        self.proxy_url \u003d proxy_url"},{"line_number":326,"context_line":"        self._registered_services \u003d set([])"},{"line_number":327,"context_line":"        self.credentials \u003d credentials"},{"line_number":328,"context_line":"        self.identity_uri \u003d identity_uri"}],"source_content_type":"text/x-python","patch_set":28,"id":"bf659307_1feeeb87","line":325,"range":{"start_line":325,"start_character":8,"end_line":325,"end_character":34},"updated":"2018-03-27 22:26:26.000000000","message":"Why was this moved?","commit_id":"da8ee123190b708963f24c96359d9a6e6e6becb2"},{"author":{"_account_id":27329,"name":"Federico Ressi","email":"fressi@redhat.com","username":"fressi_redhat"},"change_message_id":"cc24e4305177e9c7cb2dcd5a99635369786d3669","unresolved":false,"context_lines":[{"line_number":322,"context_line":"        :param proxy_url: Applies to auth and to all service clients, set a"},{"line_number":323,"context_line":"            proxy url for the clients to use."},{"line_number":324,"context_line":"        \"\"\""},{"line_number":325,"context_line":"        self.proxy_url \u003d proxy_url"},{"line_number":326,"context_line":"        self._registered_services \u003d set([])"},{"line_number":327,"context_line":"        self.credentials \u003d credentials"},{"line_number":328,"context_line":"        self.identity_uri \u003d identity_uri"}],"source_content_type":"text/x-python","patch_set":28,"id":"bf659307_5cc6a64a","line":325,"range":{"start_line":325,"start_character":8,"end_line":325,"end_character":34},"in_reply_to":"bf659307_1feeeb87","updated":"2018-03-28 08:39:24.000000000","message":"Done","commit_id":"da8ee123190b708963f24c96359d9a6e6e6becb2"}],"tempest/tests/lib/common/test_http.py":[{"author":{"_account_id":27329,"name":"Federico Ressi","email":"fressi@redhat.com","username":"fressi_redhat"},"change_message_id":"ccb002b6a1591cb03137a68a30caa0b1f13301a0","unresolved":false,"context_lines":[{"line_number":198,"context_line":"    def test_class_with_http_proxy_env(self):"},{"line_number":199,"context_line":"        self.patch(http.os, \u0027environ\u0027, {\u0027http_proxy\u0027: PROXY_URL})"},{"line_number":200,"context_line":"        connection \u003d self.TARGET_CLASS()"},{"line_number":201,"context_line":"        self.assertIsInstance(connection, http.urllib3.ProxyManager)"},{"line_number":202,"context_line":"        self.assertHasProxy(connection, PROXY_URL)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"df7087c5_633c0ec8","line":201,"updated":"2018-03-22 15:27:17.000000000","message":"assertHasProxy method already checks this requirement","commit_id":"a08449b1468f48e4870a0ed9f8321b8034c66222"}]}
