)]}'
{"releasenotes/notes/bug-1486834-7ebca15836ae27a9.yaml":[{"author":{"_account_id":4656,"name":"Sean M. Collins","email":"sean@coreitpro.com","username":"scollins"},"change_message_id":"c5fe6fbc945979f1f3ce926eefa9f59b12728ba8","unresolved":false,"context_lines":[{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Auth: Catalog name filtering support"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"features:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    Allows specifying a name for a particular endpoint."},{"line_number":8,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":12,"id":"bab6814e_fe953888","line":5,"updated":"2016-05-24 17:27:36.000000000","message":"features: \u003e","commit_id":"7fd6f83dd1580ddadcab1c331e848c11b5285412"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"d7e4c17f762fdc270be53f6dbaddb984fed78644","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    Previously, if there were multiple endpoints with the"},{"line_number":8,"context_line":"    same type and region, or without a region, the"},{"line_number":9,"context_line":"    first endpoint would be returned. Now, by specifying"},{"line_number":10,"context_line":"    the name, a specific one can be used."}],"source_content_type":"text/x-yaml","patch_set":19,"id":"9abb7d3a_e5333412","line":10,"updated":"2016-06-01 22:55:41.000000000","message":"also include that filtering by name is dependent of having service type being foun","commit_id":"f43588af43f5c3bf4d82f27bad958e63c30e19ca"}],"tempest/lib/auth.py":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"44c69aceef4008b2cf4549bc2b982ec4bc9793cf","unresolved":false,"context_lines":[{"line_number":328,"context_line":"        Filters can be:"},{"line_number":329,"context_line":"        - service: compute, image, etc"},{"line_number":330,"context_line":"        - region: the service region"},{"line_number":331,"context_line":"        - name: the name of the endpoint"},{"line_number":332,"context_line":"        - endpoint_type: adminURL, publicURL, internalURL"},{"line_number":333,"context_line":"        - name: the catalog name"},{"line_number":334,"context_line":"        - api_version: replace catalog version with this"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_7c35c0d9","line":331,"updated":"2016-05-13 12:17:49.000000000","message":"Why do we have the \u0027name:\u0027 twice ?","commit_id":"63c500f24db23a2348b432f35b9ceeb7b8075f1c"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"1060e9c4677ede6f6aa1eefd68bfd3802a06a200","unresolved":false,"context_lines":[{"line_number":328,"context_line":"        Filters can be:"},{"line_number":329,"context_line":"        - service: compute, image, etc"},{"line_number":330,"context_line":"        - region: the service region"},{"line_number":331,"context_line":"        - name: the name of the endpoint"},{"line_number":332,"context_line":"        - endpoint_type: adminURL, publicURL, internalURL"},{"line_number":333,"context_line":"        - name: the catalog name"},{"line_number":334,"context_line":"        - api_version: replace catalog version with this"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_fffd0b3c","line":331,"in_reply_to":"dab17558_7c35c0d9","updated":"2016-05-13 20:40:22.000000000","message":"Good catch afazekas!  I\u0027ll remove the redundancy.","commit_id":"63c500f24db23a2348b432f35b9ceeb7b8075f1c"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"14e0e2e3682d4f6ab0fe8f58050d2c3475144d1d","unresolved":false,"context_lines":[{"line_number":465,"context_line":"        else:"},{"line_number":466,"context_line":"            # No matching service"},{"line_number":467,"context_line":"            raise exceptions.EndpointNotFound(service)"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        # Filter by endpoint type (interface)"},{"line_number":470,"context_line":"        filtered_catalog \u003d [ep for ep in service_catalog if"},{"line_number":471,"context_line":"                            ep.get(\u0027interface\u0027) \u003d\u003d endpoint_type]"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_5a1c3bc1","line":468,"updated":"2016-05-19 09:14:46.000000000","message":"NIT: new empty line","commit_id":"f2778b288058d393e835b0244a10e6f6b1b52e39"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"034921a9137bc55301ead227a90de0fcfe8614d0","unresolved":false,"context_lines":[{"line_number":465,"context_line":"        else:"},{"line_number":466,"context_line":"            # No matching service"},{"line_number":467,"context_line":"            raise exceptions.EndpointNotFound(service)"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        # Filter by endpoint type (interface)"},{"line_number":470,"context_line":"        filtered_catalog \u003d [ep for ep in service_catalog if"},{"line_number":471,"context_line":"                            ep.get(\u0027interface\u0027) \u003d\u003d endpoint_type]"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_95f777f4","line":468,"in_reply_to":"bab6814e_5a1c3bc1","updated":"2016-05-19 16:43:22.000000000","message":"Done","commit_id":"f2778b288058d393e835b0244a10e6f6b1b52e39"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"14e0e2e3682d4f6ab0fe8f58050d2c3475144d1d","unresolved":false,"context_lines":[{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        # Filter by endpoint type (interface)"},{"line_number":470,"context_line":"        filtered_catalog \u003d [ep for ep in service_catalog if"},{"line_number":471,"context_line":"                            ep.get(\u0027interface\u0027) \u003d\u003d endpoint_type]"},{"line_number":472,"context_line":"        if len(filtered_catalog) \u003d\u003d 0:"},{"line_number":473,"context_line":"            # No matching type, keep all and try matching by region at least"},{"line_number":474,"context_line":"            filtered_catalog \u003d service_catalog"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_fad1afce","line":471,"range":{"start_line":471,"start_character":28,"end_line":471,"end_character":47},"updated":"2016-05-19 09:14:46.000000000","message":"This change seems unrelated, but ok...","commit_id":"f2778b288058d393e835b0244a10e6f6b1b52e39"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"034921a9137bc55301ead227a90de0fcfe8614d0","unresolved":false,"context_lines":[{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        # Filter by endpoint type (interface)"},{"line_number":470,"context_line":"        filtered_catalog \u003d [ep for ep in service_catalog if"},{"line_number":471,"context_line":"                            ep.get(\u0027interface\u0027) \u003d\u003d endpoint_type]"},{"line_number":472,"context_line":"        if len(filtered_catalog) \u003d\u003d 0:"},{"line_number":473,"context_line":"            # No matching type, keep all and try matching by region at least"},{"line_number":474,"context_line":"            filtered_catalog \u003d service_catalog"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_b559db00","line":471,"range":{"start_line":471,"start_character":28,"end_line":471,"end_character":47},"in_reply_to":"bab6814e_fad1afce","updated":"2016-05-19 16:43:22.000000000","message":"So, if we don\u0027t find \u0027interface\u0027 in one of the endpoints dict then we will default to None.  That way, we don\u0027t throw a key error.","commit_id":"f2778b288058d393e835b0244a10e6f6b1b52e39"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"14e0e2e3682d4f6ab0fe8f58050d2c3475144d1d","unresolved":false,"context_lines":[{"line_number":474,"context_line":"            filtered_catalog \u003d service_catalog"},{"line_number":475,"context_line":"        # Filter by region"},{"line_number":476,"context_line":"        filtered_catalog \u003d [ep for ep in filtered_catalog if"},{"line_number":477,"context_line":"                            ep.get(\u0027region\u0027) \u003d\u003d region]"},{"line_number":478,"context_line":"        if len(filtered_catalog) \u003d\u003d 0:"},{"line_number":479,"context_line":"            # No matching region (or name), take the first endpoint"},{"line_number":480,"context_line":"            filtered_catalog \u003d [service_catalog[0]]"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_7ae65fb5","line":477,"range":{"start_line":477,"start_character":30,"end_line":477,"end_character":44},"updated":"2016-05-19 09:14:46.000000000","message":"ditto","commit_id":"f2778b288058d393e835b0244a10e6f6b1b52e39"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"034921a9137bc55301ead227a90de0fcfe8614d0","unresolved":false,"context_lines":[{"line_number":474,"context_line":"            filtered_catalog \u003d service_catalog"},{"line_number":475,"context_line":"        # Filter by region"},{"line_number":476,"context_line":"        filtered_catalog \u003d [ep for ep in filtered_catalog if"},{"line_number":477,"context_line":"                            ep.get(\u0027region\u0027) \u003d\u003d region]"},{"line_number":478,"context_line":"        if len(filtered_catalog) \u003d\u003d 0:"},{"line_number":479,"context_line":"            # No matching region (or name), take the first endpoint"},{"line_number":480,"context_line":"            filtered_catalog \u003d [service_catalog[0]]"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_750653cf","line":477,"range":{"start_line":477,"start_character":30,"end_line":477,"end_character":44},"in_reply_to":"bab6814e_7ae65fb5","updated":"2016-05-19 16:43:22.000000000","message":"same as above, i\u0027ll add a line to the commit message to reflect this change","commit_id":"f2778b288058d393e835b0244a10e6f6b1b52e39"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"77d2f8037a6ccc94b1d48f7405d1c2b7b0272fea","unresolved":false,"context_lines":[{"line_number":428,"context_line":"        \"\"\"Base URL from catalog"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"        Filters can be:"},{"line_number":431,"context_line":"        - service: compute, image, etc"},{"line_number":432,"context_line":"        - region: the service region"},{"line_number":433,"context_line":"        - name: the name of the service endpoint"},{"line_number":434,"context_line":"        - endpoint_type: adminURL, publicURL, internalURL"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_d9c5b98e","line":431,"updated":"2016-05-19 17:29:59.000000000","message":"service is the \u0027service type\u0027.","commit_id":"04414cc14b5ca957d24698b0f7e106d32f99519f"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"4251a029de69f8e0478ccd4362f0850a74e93bf3","unresolved":false,"context_lines":[{"line_number":428,"context_line":"        \"\"\"Base URL from catalog"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"        Filters can be:"},{"line_number":431,"context_line":"        - service: compute, image, etc"},{"line_number":432,"context_line":"        - region: the service region"},{"line_number":433,"context_line":"        - name: the name of the service endpoint"},{"line_number":434,"context_line":"        - endpoint_type: adminURL, publicURL, internalURL"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_ea541d22","line":431,"in_reply_to":"bab6814e_d9c5b98e","updated":"2016-05-19 18:46:47.000000000","message":"Done","commit_id":"04414cc14b5ca957d24698b0f7e106d32f99519f"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"77d2f8037a6ccc94b1d48f7405d1c2b7b0272fea","unresolved":false,"context_lines":[{"line_number":430,"context_line":"        Filters can be:"},{"line_number":431,"context_line":"        - service: compute, image, etc"},{"line_number":432,"context_line":"        - region: the service region"},{"line_number":433,"context_line":"        - name: the name of the service endpoint"},{"line_number":434,"context_line":"        - endpoint_type: adminURL, publicURL, internalURL"},{"line_number":435,"context_line":"        - api_version: replace catalog version with this"},{"line_number":436,"context_line":"        - skip_path: take just the base URL"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_3978458f","line":433,"updated":"2016-05-19 17:29:59.000000000","message":"The endpoints does not have a name, it is the name of the service! (-1)\n\nPlease at lest remove the endpoint word here, it is confusing, or add more explanation.","commit_id":"04414cc14b5ca957d24698b0f7e106d32f99519f"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"4251a029de69f8e0478ccd4362f0850a74e93bf3","unresolved":false,"context_lines":[{"line_number":430,"context_line":"        Filters can be:"},{"line_number":431,"context_line":"        - service: compute, image, etc"},{"line_number":432,"context_line":"        - region: the service region"},{"line_number":433,"context_line":"        - name: the name of the service endpoint"},{"line_number":434,"context_line":"        - endpoint_type: adminURL, publicURL, internalURL"},{"line_number":435,"context_line":"        - api_version: replace catalog version with this"},{"line_number":436,"context_line":"        - skip_path: take just the base URL"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_4a328911","line":433,"in_reply_to":"bab6814e_3978458f","updated":"2016-05-19 18:46:47.000000000","message":"Done","commit_id":"04414cc14b5ca957d24698b0f7e106d32f99519f"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"77d2f8037a6ccc94b1d48f7405d1c2b7b0272fea","unresolved":false,"context_lines":[{"line_number":453,"context_line":"        # Select entries with matching service type"},{"line_number":454,"context_line":"        service_catalog \u003d [ep for ep in catalog if ep[\u0027type\u0027] \u003d\u003d service]"},{"line_number":455,"context_line":"        if len(service_catalog) \u003e 0:"},{"line_number":456,"context_line":"            if name is not None:"},{"line_number":457,"context_line":"                service_catalog \u003d ("},{"line_number":458,"context_line":"                    [ep for ep in service_catalog if ep[\u0027name\u0027] \u003d\u003d name])"},{"line_number":459,"context_line":"                if len(service_catalog) \u003e 0:"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_f9ffdda7","line":456,"updated":"2016-05-19 17:29:59.000000000","message":"It is not the most flat possible logic, but at least we raise in two different location in case of little different issue.","commit_id":"04414cc14b5ca957d24698b0f7e106d32f99519f"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"4251a029de69f8e0478ccd4362f0850a74e93bf3","unresolved":false,"context_lines":[{"line_number":453,"context_line":"        # Select entries with matching service type"},{"line_number":454,"context_line":"        service_catalog \u003d [ep for ep in catalog if ep[\u0027type\u0027] \u003d\u003d service]"},{"line_number":455,"context_line":"        if len(service_catalog) \u003e 0:"},{"line_number":456,"context_line":"            if name is not None:"},{"line_number":457,"context_line":"                service_catalog \u003d ("},{"line_number":458,"context_line":"                    [ep for ep in service_catalog if ep[\u0027name\u0027] \u003d\u003d name])"},{"line_number":459,"context_line":"                if len(service_catalog) \u003e 0:"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_ea2b7d92","line":456,"in_reply_to":"bab6814e_f9ffdda7","updated":"2016-05-19 18:46:47.000000000","message":"thanks for the comment - so should the algorithm be changed?","commit_id":"04414cc14b5ca957d24698b0f7e106d32f99519f"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"77d2f8037a6ccc94b1d48f7405d1c2b7b0272fea","unresolved":false,"context_lines":[{"line_number":467,"context_line":"            raise exceptions.EndpointNotFound(service)"},{"line_number":468,"context_line":"        # Filter by endpoint type (interface)"},{"line_number":469,"context_line":"        filtered_catalog \u003d [ep for ep in service_catalog if"},{"line_number":470,"context_line":"                            ep.get(\u0027interface\u0027) \u003d\u003d endpoint_type]"},{"line_number":471,"context_line":"        if len(filtered_catalog) \u003d\u003d 0:"},{"line_number":472,"context_line":"            # No matching type, keep all and try matching by region at least"},{"line_number":473,"context_line":"            filtered_catalog \u003d service_catalog"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_10039510","line":470,"updated":"2016-05-19 17:29:59.000000000","message":"unrelated change + the attribute is mandatory, better to die noisily.","commit_id":"04414cc14b5ca957d24698b0f7e106d32f99519f"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"4251a029de69f8e0478ccd4362f0850a74e93bf3","unresolved":false,"context_lines":[{"line_number":467,"context_line":"            raise exceptions.EndpointNotFound(service)"},{"line_number":468,"context_line":"        # Filter by endpoint type (interface)"},{"line_number":469,"context_line":"        filtered_catalog \u003d [ep for ep in service_catalog if"},{"line_number":470,"context_line":"                            ep.get(\u0027interface\u0027) \u003d\u003d endpoint_type]"},{"line_number":471,"context_line":"        if len(filtered_catalog) \u003d\u003d 0:"},{"line_number":472,"context_line":"            # No matching type, keep all and try matching by region at least"},{"line_number":473,"context_line":"            filtered_catalog \u003d service_catalog"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_4a19e987","line":470,"in_reply_to":"bab6814e_10039510","updated":"2016-05-19 18:46:47.000000000","message":"Done","commit_id":"04414cc14b5ca957d24698b0f7e106d32f99519f"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"77d2f8037a6ccc94b1d48f7405d1c2b7b0272fea","unresolved":false,"context_lines":[{"line_number":473,"context_line":"            filtered_catalog \u003d service_catalog"},{"line_number":474,"context_line":"        # Filter by region"},{"line_number":475,"context_line":"        filtered_catalog \u003d [ep for ep in filtered_catalog if"},{"line_number":476,"context_line":"                            ep.get(\u0027region\u0027) \u003d\u003d region]"},{"line_number":477,"context_line":"        if len(filtered_catalog) \u003d\u003d 0:"},{"line_number":478,"context_line":"            # No matching region (or name), take the first endpoint"},{"line_number":479,"context_line":"            filtered_catalog \u003d [service_catalog[0]]"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_3651720f","line":476,"updated":"2016-05-19 17:29:59.000000000","message":"unrelated change + the attribute is mandatory, better to die noisily.","commit_id":"04414cc14b5ca957d24698b0f7e106d32f99519f"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"4251a029de69f8e0478ccd4362f0850a74e93bf3","unresolved":false,"context_lines":[{"line_number":473,"context_line":"            filtered_catalog \u003d service_catalog"},{"line_number":474,"context_line":"        # Filter by region"},{"line_number":475,"context_line":"        filtered_catalog \u003d [ep for ep in filtered_catalog if"},{"line_number":476,"context_line":"                            ep.get(\u0027region\u0027) \u003d\u003d region]"},{"line_number":477,"context_line":"        if len(filtered_catalog) \u003d\u003d 0:"},{"line_number":478,"context_line":"            # No matching region (or name), take the first endpoint"},{"line_number":479,"context_line":"            filtered_catalog \u003d [service_catalog[0]]"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_2a1c6576","line":476,"in_reply_to":"bab6814e_3651720f","updated":"2016-05-19 18:46:47.000000000","message":"Done","commit_id":"04414cc14b5ca957d24698b0f7e106d32f99519f"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"d7e4c17f762fdc270be53f6dbaddb984fed78644","unresolved":false,"context_lines":[{"line_number":373,"context_line":"            Filters can be:"},{"line_number":374,"context_line":"            - service: service type name such as compute, image, etc."},{"line_number":375,"context_line":"            - region: service region name"},{"line_number":376,"context_line":"            - name: service name"},{"line_number":377,"context_line":"            - endpoint_type: type of endpoint such as"},{"line_number":378,"context_line":"                adminURL, publicURL, internalURL"},{"line_number":379,"context_line":"            - api_version: the version of api used to replace catalog version"}],"source_content_type":"text/x-python","patch_set":19,"id":"9abb7d3a_a505ac14","line":376,"updated":"2016-06-01 22:55:41.000000000","message":"add to the docstring the fact that name filtering is only applied when service is defined","commit_id":"f43588af43f5c3bf4d82f27bad958e63c30e19ca"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"1d4734f8ec61f3c06b873ba871048e31133cead6","unresolved":false,"context_lines":[{"line_number":373,"context_line":"            Filters can be:"},{"line_number":374,"context_line":"            - service: service type name such as compute, image, etc."},{"line_number":375,"context_line":"            - region: service region name"},{"line_number":376,"context_line":"            - name: service name"},{"line_number":377,"context_line":"            - endpoint_type: type of endpoint such as"},{"line_number":378,"context_line":"                adminURL, publicURL, internalURL"},{"line_number":379,"context_line":"            - api_version: the version of api used to replace catalog version"}],"source_content_type":"text/x-python","patch_set":19,"id":"7aa08908_eb05d845","line":376,"in_reply_to":"9abb7d3a_a505ac14","updated":"2016-06-08 17:13:39.000000000","message":"Done","commit_id":"f43588af43f5c3bf4d82f27bad958e63c30e19ca"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"d7e4c17f762fdc270be53f6dbaddb984fed78644","unresolved":false,"context_lines":[{"line_number":502,"context_line":"            Filters can be:"},{"line_number":503,"context_line":"            - service: service type name such as compute, image, etc."},{"line_number":504,"context_line":"            - region: service region name"},{"line_number":505,"context_line":"            - name: service name"},{"line_number":506,"context_line":"            - endpoint_type: type of endpoint such as"},{"line_number":507,"context_line":"                adminURL, publicURL, internalURL"},{"line_number":508,"context_line":"            - api_version: the version of api used to replace catalog version"}],"source_content_type":"text/x-python","patch_set":19,"id":"9abb7d3a_e8014906","line":505,"updated":"2016-06-01 22:55:41.000000000","message":"add to the docstring the fact that name filtering is only applied when service is defined","commit_id":"f43588af43f5c3bf4d82f27bad958e63c30e19ca"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"1d4734f8ec61f3c06b873ba871048e31133cead6","unresolved":false,"context_lines":[{"line_number":502,"context_line":"            Filters can be:"},{"line_number":503,"context_line":"            - service: service type name such as compute, image, etc."},{"line_number":504,"context_line":"            - region: service region name"},{"line_number":505,"context_line":"            - name: service name"},{"line_number":506,"context_line":"            - endpoint_type: type of endpoint such as"},{"line_number":507,"context_line":"                adminURL, publicURL, internalURL"},{"line_number":508,"context_line":"            - api_version: the version of api used to replace catalog version"}],"source_content_type":"text/x-python","patch_set":19,"id":"7aa08908_0bf78459","line":505,"in_reply_to":"9abb7d3a_e8014906","updated":"2016-06-08 17:13:39.000000000","message":"Done","commit_id":"f43588af43f5c3bf4d82f27bad958e63c30e19ca"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"b1d45d355bd080dc8bb507ae7f1b73dfac2700ea","unresolved":false,"context_lines":[{"line_number":528,"context_line":"        # Select entries with matching service type"},{"line_number":529,"context_line":"        service_catalog \u003d [ep for ep in catalog if ep[\u0027type\u0027] \u003d\u003d service]"},{"line_number":530,"context_line":"        if len(service_catalog) \u003e 0:"},{"line_number":531,"context_line":"            if name is not None:"},{"line_number":532,"context_line":"                service_catalog \u003d ("},{"line_number":533,"context_line":"                    [ep for ep in service_catalog if ep[\u0027name\u0027] \u003d\u003d name])"},{"line_number":534,"context_line":"                if len(service_catalog) \u003e 0:"}],"source_content_type":"text/x-python","patch_set":19,"id":"9abb7d3a_8529889d","line":531,"updated":"2016-06-01 22:52:17.000000000","message":"Name filtering is only applied if service filtering was successful, it\u0027s probably worth documenting that","commit_id":"f43588af43f5c3bf4d82f27bad958e63c30e19ca"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"1d4734f8ec61f3c06b873ba871048e31133cead6","unresolved":false,"context_lines":[{"line_number":528,"context_line":"        # Select entries with matching service type"},{"line_number":529,"context_line":"        service_catalog \u003d [ep for ep in catalog if ep[\u0027type\u0027] \u003d\u003d service]"},{"line_number":530,"context_line":"        if len(service_catalog) \u003e 0:"},{"line_number":531,"context_line":"            if name is not None:"},{"line_number":532,"context_line":"                service_catalog \u003d ("},{"line_number":533,"context_line":"                    [ep for ep in service_catalog if ep[\u0027name\u0027] \u003d\u003d name])"},{"line_number":534,"context_line":"                if len(service_catalog) \u003e 0:"}],"source_content_type":"text/x-python","patch_set":19,"id":"7aa08908_6b98c81c","line":531,"in_reply_to":"9abb7d3a_8529889d","updated":"2016-06-08 17:13:39.000000000","message":"Done","commit_id":"f43588af43f5c3bf4d82f27bad958e63c30e19ca"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"b1d45d355bd080dc8bb507ae7f1b73dfac2700ea","unresolved":false,"context_lines":[{"line_number":531,"context_line":"            if name is not None:"},{"line_number":532,"context_line":"                service_catalog \u003d ("},{"line_number":533,"context_line":"                    [ep for ep in service_catalog if ep[\u0027name\u0027] \u003d\u003d name])"},{"line_number":534,"context_line":"                if len(service_catalog) \u003e 0:"},{"line_number":535,"context_line":"                    service_catalog \u003d service_catalog[0][\u0027endpoints\u0027]"},{"line_number":536,"context_line":"                else:"},{"line_number":537,"context_line":"                    raise exceptions.EndpointNotFound(name)"}],"source_content_type":"text/x-python","patch_set":19,"id":"9abb7d3a_683d59c3","line":534,"updated":"2016-06-01 22:52:17.000000000","message":"This condition is not covered by unit testing, but that can be done in a follow up patch as well if you wish","commit_id":"f43588af43f5c3bf4d82f27bad958e63c30e19ca"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"1d4734f8ec61f3c06b873ba871048e31133cead6","unresolved":false,"context_lines":[{"line_number":531,"context_line":"            if name is not None:"},{"line_number":532,"context_line":"                service_catalog \u003d ("},{"line_number":533,"context_line":"                    [ep for ep in service_catalog if ep[\u0027name\u0027] \u003d\u003d name])"},{"line_number":534,"context_line":"                if len(service_catalog) \u003e 0:"},{"line_number":535,"context_line":"                    service_catalog \u003d service_catalog[0][\u0027endpoints\u0027]"},{"line_number":536,"context_line":"                else:"},{"line_number":537,"context_line":"                    raise exceptions.EndpointNotFound(name)"}],"source_content_type":"text/x-python","patch_set":19,"id":"7aa08908_04e2d12e","line":534,"in_reply_to":"9abb7d3a_683d59c3","updated":"2016-06-08 17:13:39.000000000","message":"Done","commit_id":"f43588af43f5c3bf4d82f27bad958e63c30e19ca"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"659a915cbc19577da6554cc93abd1ab9a25559ff","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"# Copyright 2016 Rackspace Inc."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":22,"id":"7aa08908_8bc0572c","line":2,"updated":"2016-06-09 15:25:05.000000000","message":"I don\u0027t think this was really needed, but it\u0027s not like these copyright lines actually mean anything...","commit_id":"54c7bd498249c021334ac90009bfe174bc551b96"}],"tempest/lib/common/rest_client.py":[{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"c3623738e5cab2eef298c0e3d957a9dedf3e3d66","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                         TLS server cert"},{"line_number":64,"context_line":"    :param str trace_request: Regex to use for specifying logging the entirety"},{"line_number":65,"context_line":"                              of the request and response payload"},{"line_number":66,"context_line":"    \"\"\""},{"line_number":67,"context_line":"    TYPE \u003d \"json\""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    # The version of the API this client implements"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_8ca309b1","line":66,"range":{"start_line":66,"start_character":4,"end_line":66,"end_character":7},"updated":"2016-05-13 15:06:00.000000000","message":"Add documentation for name param","commit_id":"63c500f24db23a2348b432f35b9ceeb7b8075f1c"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"1060e9c4677ede6f6aa1eefd68bfd3802a06a200","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                         TLS server cert"},{"line_number":64,"context_line":"    :param str trace_request: Regex to use for specifying logging the entirety"},{"line_number":65,"context_line":"                              of the request and response payload"},{"line_number":66,"context_line":"    \"\"\""},{"line_number":67,"context_line":"    TYPE \u003d \"json\""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    # The version of the API this client implements"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_ff598b5c","line":66,"range":{"start_line":66,"start_character":4,"end_line":66,"end_character":7},"in_reply_to":"dab17558_8ca309b1","updated":"2016-05-13 20:40:22.000000000","message":"Good catch - thanks Luz!","commit_id":"63c500f24db23a2348b432f35b9ceeb7b8075f1c"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"14e0e2e3682d4f6ab0fe8f58050d2c3475144d1d","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    :param auth_provider: an auth provider object used to wrap requests in auth"},{"line_number":54,"context_line":"    :param str service: The service name to use for the catalog lookup"},{"line_number":55,"context_line":"    :param str name: The endpoint name to use for the catalog lookup"},{"line_number":56,"context_line":"    :param str region: The region to use for the catalog lookup"},{"line_number":57,"context_line":"    :param str endpoint_type: The endpoint type to use for the catalog lookup"},{"line_number":58,"context_line":"    :param int build_interval: Time in seconds between to status checks in"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_fa9fef00","line":55,"range":{"start_line":55,"start_character":4,"end_line":55,"end_character":68},"updated":"2016-05-19 09:14:46.000000000","message":"NIT: the order in the doc should match the order in the interface below","commit_id":"f2778b288058d393e835b0244a10e6f6b1b52e39"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"034921a9137bc55301ead227a90de0fcfe8614d0","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    :param auth_provider: an auth provider object used to wrap requests in auth"},{"line_number":54,"context_line":"    :param str service: The service name to use for the catalog lookup"},{"line_number":55,"context_line":"    :param str name: The endpoint name to use for the catalog lookup"},{"line_number":56,"context_line":"    :param str region: The region to use for the catalog lookup"},{"line_number":57,"context_line":"    :param str endpoint_type: The endpoint type to use for the catalog lookup"},{"line_number":58,"context_line":"    :param int build_interval: Time in seconds between to status checks in"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_95af7793","line":55,"range":{"start_line":55,"start_character":4,"end_line":55,"end_character":68},"in_reply_to":"bab6814e_fa9fef00","updated":"2016-05-19 16:43:22.000000000","message":"Done","commit_id":"f2778b288058d393e835b0244a10e6f6b1b52e39"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"9dd2ce9f1f2b997c1ce94503b6f979e308439062","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    LOG \u003d logging.getLogger(__name__)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def __init__(self, auth_provider, service, region, name\u003dNone,"},{"line_number":76,"context_line":"                 endpoint_type\u003d\u0027publicURL\u0027,"},{"line_number":77,"context_line":"                 build_interval\u003d1, build_timeout\u003d60,"},{"line_number":78,"context_line":"                 disable_ssl_certificate_validation\u003dFalse, ca_certs\u003dNone,"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_87b9b8ce","line":75,"updated":"2016-05-21 22:20:43.000000000","message":"Given that this is an optional kwargs parameter I believe adding it in the middle won\u0027t break backward compatibility. Any client should not rely on the order of kwargs, but I would like more opinion on this.","commit_id":"c358fa648b438461674a15e46c83b5b0637d5058"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"abb2846a5a99f05af367719070fdcc41042ba6ab","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    LOG \u003d logging.getLogger(__name__)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def __init__(self, auth_provider, service, region, name\u003dNone,"},{"line_number":76,"context_line":"                 endpoint_type\u003d\u0027publicURL\u0027,"},{"line_number":77,"context_line":"                 build_interval\u003d1, build_timeout\u003d60,"},{"line_number":78,"context_line":"                 disable_ssl_certificate_validation\u003dFalse, ca_certs\u003dNone,"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_db64c6e6","line":75,"in_reply_to":"bab6814e_670d4d37","updated":"2016-05-24 17:05:58.000000000","message":"Thanks for the discussion around this.\n\nSo for clarification, should \u0027name\u003dNone\u0027 be declared at the end of the method signature? \n\nI believe that it\u0027s safe where it\u0027s currently located since assignment of attributes occur for the attributes after this.   \n\nIf, I had put \u0027name\u003dNone\u0027, say, between service and region, then there would be a problem and I believe an error would be thrown.","commit_id":"c358fa648b438461674a15e46c83b5b0637d5058"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"cf71619692ba9c976edb8577b866766798f8fef0","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    LOG \u003d logging.getLogger(__name__)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def __init__(self, auth_provider, service, region, name\u003dNone,"},{"line_number":76,"context_line":"                 endpoint_type\u003d\u0027publicURL\u0027,"},{"line_number":77,"context_line":"                 build_interval\u003d1, build_timeout\u003d60,"},{"line_number":78,"context_line":"                 disable_ssl_certificate_validation\u003dFalse, ca_certs\u003dNone,"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_670d4d37","line":75,"in_reply_to":"bab6814e_87b9b8ce","updated":"2016-05-24 13:45:51.000000000","message":"This is not 100% safe from a pure Python PoV but as you said \"Any client should not rely on the order of kwargs\" especially considering this method already had many kwargs.","commit_id":"c358fa648b438461674a15e46c83b5b0637d5058"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"7e2f4f0a6c487eace5617abc9cacd5526de0555e","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    LOG \u003d logging.getLogger(__name__)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def __init__(self, auth_provider, service, region, name\u003dNone,"},{"line_number":77,"context_line":"                 endpoint_type\u003d\u0027publicURL\u0027,"},{"line_number":78,"context_line":"                 build_interval\u003d1, build_timeout\u003d60,"},{"line_number":79,"context_line":"                 disable_ssl_certificate_validation\u003dFalse, ca_certs\u003dNone,"}],"source_content_type":"text/x-python","patch_set":18,"id":"bab6814e_62f014fe","line":76,"updated":"2016-05-26 16:29:24.000000000","message":"name needs to be the last parameter in the list since it\u0027s new. kwargs can and are used in order and shifting everything by 1 will break anyone who does. Just because it doesn\u0027t break tempest itself does not mean it\u0027s safe to do this. This is in tempest.lib so we have to ensure whatever changes we make are backwards compatible, which this is not.","commit_id":"808f8463c0565e2ad9086fdc58240e9624b32cfe"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"585c3310b032ebc4e09fd238941fab36ac2d3d6e","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    LOG \u003d logging.getLogger(__name__)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def __init__(self, auth_provider, service, region, name\u003dNone,"},{"line_number":77,"context_line":"                 endpoint_type\u003d\u0027publicURL\u0027,"},{"line_number":78,"context_line":"                 build_interval\u003d1, build_timeout\u003d60,"},{"line_number":79,"context_line":"                 disable_ssl_certificate_validation\u003dFalse, ca_certs\u003dNone,"}],"source_content_type":"text/x-python","patch_set":18,"id":"bab6814e_3fa45049","line":76,"in_reply_to":"bab6814e_62f014fe","updated":"2016-05-27 01:59:03.000000000","message":"I understand now.  Thanks for the explanation here and in IRC, as well, Matthew.  I\u0027ll be checking in a change shortly.","commit_id":"808f8463c0565e2ad9086fdc58240e9624b32cfe"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"b1d45d355bd080dc8bb507ae7f1b73dfac2700ea","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    :param auth_provider: an auth provider object used to wrap requests in auth"},{"line_number":55,"context_line":"    :param str service: The service name to use for the catalog lookup"},{"line_number":56,"context_line":"    :param str region: The region to use for the catalog lookup"},{"line_number":57,"context_line":"    :param str name: The endpoint name to use for the catalog lookup"},{"line_number":58,"context_line":"    :param str endpoint_type: The endpoint type to use for the catalog lookup"},{"line_number":59,"context_line":"    :param int build_interval: Time in seconds between to status checks in"},{"line_number":60,"context_line":"                               wait loops"}],"source_content_type":"text/x-python","patch_set":19,"id":"9abb7d3a_a1e1212c","line":57,"updated":"2016-06-01 22:52:17.000000000","message":"NIT: I guess this could go at the end, but logically it belongs here so it should be fine","commit_id":"f43588af43f5c3bf4d82f27bad958e63c30e19ca"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"d7e4c17f762fdc270be53f6dbaddb984fed78644","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    :param auth_provider: an auth provider object used to wrap requests in auth"},{"line_number":55,"context_line":"    :param str service: The service name to use for the catalog lookup"},{"line_number":56,"context_line":"    :param str region: The region to use for the catalog lookup"},{"line_number":57,"context_line":"    :param str name: The endpoint name to use for the catalog lookup"},{"line_number":58,"context_line":"    :param str endpoint_type: The endpoint type to use for the catalog lookup"},{"line_number":59,"context_line":"    :param int build_interval: Time in seconds between to status checks in"},{"line_number":60,"context_line":"                               wait loops"}],"source_content_type":"text/x-python","patch_set":19,"id":"9abb7d3a_a52e4ca2","line":57,"updated":"2016-06-01 22:55:41.000000000","message":"add to the docstring the fact that name filtering is only applied when service is defined","commit_id":"f43588af43f5c3bf4d82f27bad958e63c30e19ca"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"1d4734f8ec61f3c06b873ba871048e31133cead6","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    :param auth_provider: an auth provider object used to wrap requests in auth"},{"line_number":55,"context_line":"    :param str service: The service name to use for the catalog lookup"},{"line_number":56,"context_line":"    :param str region: The region to use for the catalog lookup"},{"line_number":57,"context_line":"    :param str name: The endpoint name to use for the catalog lookup"},{"line_number":58,"context_line":"    :param str endpoint_type: The endpoint type to use for the catalog lookup"},{"line_number":59,"context_line":"    :param int build_interval: Time in seconds between to status checks in"},{"line_number":60,"context_line":"                               wait loops"}],"source_content_type":"text/x-python","patch_set":19,"id":"7aa08908_0b53043a","line":57,"in_reply_to":"9abb7d3a_a1e1212c","updated":"2016-06-08 17:13:39.000000000","message":"Done","commit_id":"f43588af43f5c3bf4d82f27bad958e63c30e19ca"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"659a915cbc19577da6554cc93abd1ab9a25559ff","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    :param auth_provider: an auth provider object used to wrap requests in auth"},{"line_number":55,"context_line":"    :param str service: The service name to use for the catalog lookup"},{"line_number":56,"context_line":"    :param str region: The region to use for the catalog lookup"},{"line_number":57,"context_line":"    :param str name: The endpoint name to use for the catalog lookup; this"},{"line_number":58,"context_line":"                     returns only if the service exists"},{"line_number":59,"context_line":"    :param str endpoint_type: The endpoint type to use for the catalog lookup"},{"line_number":60,"context_line":"    :param int build_interval: Time in seconds between to status checks in"}],"source_content_type":"text/x-python","patch_set":22,"id":"7aa08908_abc39337","line":57,"updated":"2016-06-09 15:25:05.000000000","message":"Personally I would have mentioned this was optional somewhere in the description, but not worth blocking over that","commit_id":"54c7bd498249c021334ac90009bfe174bc551b96"}],"tempest/tests/lib/test_auth.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"cf71619692ba9c976edb8577b866766798f8fef0","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            \u0027service\u0027: \u0027compute\u0027,"},{"line_number":164,"context_line":"            \u0027endpoint_type\u0027: \u0027publicURL\u0027,"},{"line_number":165,"context_line":"            \u0027region\u0027: \u0027FakeRegion\u0027,"},{"line_number":166,"context_line":"            \u0027name\u0027: \u0027nova\u0027"},{"line_number":167,"context_line":"        }"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        url \u003d self._get_result_url_from_endpoint("}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_87a4b108","line":166,"updated":"2016-05-24 13:45:51.000000000","message":"If name is optional then why do you have to add it in every unit tests ?","commit_id":"c358fa648b438461674a15e46c83b5b0637d5058"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"d7e4c17f762fdc270be53f6dbaddb984fed78644","unresolved":false,"context_lines":[{"line_number":360,"context_line":"        self.assertRaises(exceptions.EndpointNotFound,"},{"line_number":361,"context_line":"                          self._test_base_url_helper, None, self.filters)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    def test_base_url_with_unknown_name(self):"},{"line_number":364,"context_line":"        \"\"\"If the name is unknown, the first endpoint is returned.\"\"\""},{"line_number":365,"context_line":"        self.filters \u003d {"},{"line_number":366,"context_line":"            \u0027service\u0027: \u0027compute\u0027,"}],"source_content_type":"text/x-python","patch_set":19,"id":"9abb7d3a_e8eb0911","line":363,"updated":"2016-06-01 22:55:41.000000000","message":"add also a positive test case","commit_id":"f43588af43f5c3bf4d82f27bad958e63c30e19ca"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"1d4734f8ec61f3c06b873ba871048e31133cead6","unresolved":false,"context_lines":[{"line_number":360,"context_line":"        self.assertRaises(exceptions.EndpointNotFound,"},{"line_number":361,"context_line":"                          self._test_base_url_helper, None, self.filters)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    def test_base_url_with_unknown_name(self):"},{"line_number":364,"context_line":"        \"\"\"If the name is unknown, the first endpoint is returned.\"\"\""},{"line_number":365,"context_line":"        self.filters \u003d {"},{"line_number":366,"context_line":"            \u0027service\u0027: \u0027compute\u0027,"}],"source_content_type":"text/x-python","patch_set":19,"id":"7aa08908_e4e0652b","line":363,"in_reply_to":"9abb7d3a_e8eb0911","updated":"2016-06-08 17:13:39.000000000","message":"Done","commit_id":"f43588af43f5c3bf4d82f27bad958e63c30e19ca"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"b1d45d355bd080dc8bb507ae7f1b73dfac2700ea","unresolved":false,"context_lines":[{"line_number":361,"context_line":"                          self._test_base_url_helper, None, self.filters)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    def test_base_url_with_unknown_name(self):"},{"line_number":364,"context_line":"        \"\"\"If the name is unknown, the first endpoint is returned.\"\"\""},{"line_number":365,"context_line":"        self.filters \u003d {"},{"line_number":366,"context_line":"            \u0027service\u0027: \u0027compute\u0027,"},{"line_number":367,"context_line":"            \u0027endpoint_type\u0027: \u0027publicURL\u0027,"}],"source_content_type":"text/x-python","patch_set":19,"id":"9abb7d3a_c16b8583","line":364,"updated":"2016-06-01 22:52:17.000000000","message":"This text does not match with what happens - you\u0027re actually asserting an exception is going to be raised","commit_id":"f43588af43f5c3bf4d82f27bad958e63c30e19ca"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"d7e4c17f762fdc270be53f6dbaddb984fed78644","unresolved":false,"context_lines":[{"line_number":361,"context_line":"                          self._test_base_url_helper, None, self.filters)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    def test_base_url_with_unknown_name(self):"},{"line_number":364,"context_line":"        \"\"\"If the name is unknown, the first endpoint is returned.\"\"\""},{"line_number":365,"context_line":"        self.filters \u003d {"},{"line_number":366,"context_line":"            \u0027service\u0027: \u0027compute\u0027,"},{"line_number":367,"context_line":"            \u0027endpoint_type\u0027: \u0027publicURL\u0027,"}],"source_content_type":"text/x-python","patch_set":19,"id":"9abb7d3a_a5a92c26","line":364,"range":{"start_line":364,"start_character":0,"end_line":364,"end_character":69},"updated":"2016-06-01 22:55:41.000000000","message":"andreaf correctly pointed out that the description is an incorrect","commit_id":"f43588af43f5c3bf4d82f27bad958e63c30e19ca"},{"author":{"_account_id":7812,"name":"Franklin Naval","email":"franklin.naval@gmail.com","username":"fnaval"},"change_message_id":"1d4734f8ec61f3c06b873ba871048e31133cead6","unresolved":false,"context_lines":[{"line_number":361,"context_line":"                          self._test_base_url_helper, None, self.filters)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    def test_base_url_with_unknown_name(self):"},{"line_number":364,"context_line":"        \"\"\"If the name is unknown, the first endpoint is returned.\"\"\""},{"line_number":365,"context_line":"        self.filters \u003d {"},{"line_number":366,"context_line":"            \u0027service\u0027: \u0027compute\u0027,"},{"line_number":367,"context_line":"            \u0027endpoint_type\u0027: \u0027publicURL\u0027,"}],"source_content_type":"text/x-python","patch_set":19,"id":"7aa08908_cead8aea","line":364,"in_reply_to":"9abb7d3a_c16b8583","updated":"2016-06-08 17:13:39.000000000","message":"Done","commit_id":"f43588af43f5c3bf4d82f27bad958e63c30e19ca"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"3295e30e77746ca56da7d3f632b23c752505218c","unresolved":false,"context_lines":[{"line_number":360,"context_line":"        self.assertRaises(exceptions.EndpointNotFound,"},{"line_number":361,"context_line":"                          self._test_base_url_helper, None, self.filters)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    def test_base_url_with_known_name(self):"},{"line_number":364,"context_line":"        \"\"\"If name and service is known, return the endpoint.\"\"\""},{"line_number":365,"context_line":"        self.filters \u003d {"},{"line_number":366,"context_line":"            \u0027service\u0027: \u0027compute\u0027,"}],"source_content_type":"text/x-python","patch_set":22,"id":"7aa08908_e9864e15","line":363,"range":{"start_line":363,"start_character":8,"end_line":363,"end_character":37},"updated":"2016-06-09 13:24:35.000000000","message":"Having two entries in the catalog with the same service but different names would be a stronger test that the filtering by name happens, but that case is covered already by test_base_url_with_unknown_name_and_known_service, so it\u0027s fine with me.","commit_id":"54c7bd498249c021334ac90009bfe174bc551b96"}]}
