)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"d398e8dba2648022d097971f9ed63dd9c2b07490","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Keystone v3 extension os-ep-filter api testcases"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implementing APIs for detail"},{"line_number":10,"context_line":" DELETE/GET/LIST/CREATE apis for"},{"line_number":11,"context_line":"/v3/OS-EP-FILTER/projects/{project_id}/endpoints/"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"bff0334d_a7500c0c","line":9,"range":{"start_line":9,"start_character":12,"end_line":9,"end_character":28},"updated":"2017-04-06 20:45:27.000000000","message":"the client for the following APIs","commit_id":"94f348b5ea77a0e823167e8a33e6afdde7e4e787"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"65e1126bad6155dcb82715987115303ec92ea9de","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Keystone v3 extension os-ep-filter api testcases"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implementing APIs for detail"},{"line_number":10,"context_line":" DELETE/GET/LIST/CREATE apis for"},{"line_number":11,"context_line":"/v3/OS-EP-FILTER/projects/{project_id}/endpoints/"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"bff0334d_bf9d0cbd","line":9,"range":{"start_line":9,"start_character":12,"end_line":9,"end_character":28},"in_reply_to":"bff0334d_a7500c0c","updated":"2017-04-12 13:00:46.000000000","message":"Done","commit_id":"94f348b5ea77a0e823167e8a33e6afdde7e4e787"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"d398e8dba2648022d097971f9ed63dd9c2b07490","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Keystone v3 extension os-ep-filter api testcases"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implementing APIs for detail"},{"line_number":10,"context_line":" DELETE/GET/LIST/CREATE apis for"},{"line_number":11,"context_line":"/v3/OS-EP-FILTER/projects/{project_id}/endpoints/"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I42fc49dea52ac4612cb018f3964675444c96ffdd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"bff0334d_e745f444","line":10,"range":{"start_line":10,"start_character":12,"end_line":10,"end_character":16},"updated":"2017-04-06 20:45:27.000000000","message":"NIT: this is a bit confusing, the upper case looks like http methods, but it\u0027s not.\nThose would be DELETE, HEAD, GET, PUT","commit_id":"94f348b5ea77a0e823167e8a33e6afdde7e4e787"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"65e1126bad6155dcb82715987115303ec92ea9de","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Keystone v3 extension os-ep-filter api testcases"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implementing APIs for detail"},{"line_number":10,"context_line":" DELETE/GET/LIST/CREATE apis for"},{"line_number":11,"context_line":"/v3/OS-EP-FILTER/projects/{project_id}/endpoints/"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I42fc49dea52ac4612cb018f3964675444c96ffdd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"bff0334d_9fa008f6","line":10,"range":{"start_line":10,"start_character":12,"end_line":10,"end_character":16},"in_reply_to":"bff0334d_e745f444","updated":"2017-04-12 13:00:46.000000000","message":"Done","commit_id":"94f348b5ea77a0e823167e8a33e6afdde7e4e787"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"d398e8dba2648022d097971f9ed63dd9c2b07490","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implementing APIs for detail"},{"line_number":10,"context_line":" DELETE/GET/LIST/CREATE apis for"},{"line_number":11,"context_line":"/v3/OS-EP-FILTER/projects/{project_id}/endpoints/"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I42fc49dea52ac4612cb018f3964675444c96ffdd"},{"line_number":14,"context_line":"Related-Change: https://review.openstack.org/#/c/450535/"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"bff0334d_a7ec8c29","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":49},"updated":"2017-04-06 20:45:27.000000000","message":"The GET of /v3/OS-EP-FILTER/endpoints/{project_id}/projects is missing in the list.","commit_id":"94f348b5ea77a0e823167e8a33e6afdde7e4e787"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"65e1126bad6155dcb82715987115303ec92ea9de","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implementing APIs for detail"},{"line_number":10,"context_line":" DELETE/GET/LIST/CREATE apis for"},{"line_number":11,"context_line":"/v3/OS-EP-FILTER/projects/{project_id}/endpoints/"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I42fc49dea52ac4612cb018f3964675444c96ffdd"},{"line_number":14,"context_line":"Related-Change: https://review.openstack.org/#/c/450535/"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"bff0334d_7fa30401","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":49},"in_reply_to":"bff0334d_a7ec8c29","updated":"2017-04-12 13:00:46.000000000","message":"Done","commit_id":"94f348b5ea77a0e823167e8a33e6afdde7e4e787"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"d398e8dba2648022d097971f9ed63dd9c2b07490","unresolved":false,"context_lines":[{"line_number":11,"context_line":"/v3/OS-EP-FILTER/projects/{project_id}/endpoints/"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I42fc49dea52ac4612cb018f3964675444c96ffdd"},{"line_number":14,"context_line":"Related-Change: https://review.openstack.org/#/c/450535/"},{"line_number":15,"context_line":"Co-Authored-By: Uday T Kumar \u003cuk310y@att.com\u003e"},{"line_number":16,"context_line":"Co-Authored-By: Kaustav Royburman \u003ckr336r@att.com\u003e"},{"line_number":17,"context_line":"Partial-bug: #1673749"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"bff0334d_c7d2f05c","line":14,"range":{"start_line":14,"start_character":15,"end_line":14,"end_character":56},"updated":"2017-04-06 20:45:27.000000000","message":"Please use the change id in here.\nYou could use a gerrit topic to relate the two changes","commit_id":"94f348b5ea77a0e823167e8a33e6afdde7e4e787"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"65e1126bad6155dcb82715987115303ec92ea9de","unresolved":false,"context_lines":[{"line_number":11,"context_line":"/v3/OS-EP-FILTER/projects/{project_id}/endpoints/"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I42fc49dea52ac4612cb018f3964675444c96ffdd"},{"line_number":14,"context_line":"Related-Change: https://review.openstack.org/#/c/450535/"},{"line_number":15,"context_line":"Co-Authored-By: Uday T Kumar \u003cuk310y@att.com\u003e"},{"line_number":16,"context_line":"Co-Authored-By: Kaustav Royburman \u003ckr336r@att.com\u003e"},{"line_number":17,"context_line":"Partial-bug: #1673749"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"bff0334d_9f892876","line":14,"range":{"start_line":14,"start_character":15,"end_line":14,"end_character":56},"in_reply_to":"bff0334d_c7d2f05c","updated":"2017-04-12 13:00:46.000000000","message":"removed change-id itself as that change has been abandoned","commit_id":"94f348b5ea77a0e823167e8a33e6afdde7e4e787"}],"releasenotes/notes/add-identity-v3-clients-for-os-ep-filter-api-extensions-9cfd217fd2c6a61f.yaml":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"e3b63b9e618d81c949696f388f70c1e572f44bf1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Define the identity v3 os-ep-filter-api-extensions-client."},{"line_number":4,"context_line":"    This will extend the client to include for various"},{"line_number":5,"context_line":"    permutations and combinations of endpoints, projects, groups that form"},{"line_number":6,"context_line":"    the api"},{"line_number":7,"context_line":"features:"},{"line_number":8,"context_line":"  - |"},{"line_number":9,"context_line":"    Define the identity v3 os-ep-filter-api-extensions-client."}],"source_content_type":"text/x-yaml","patch_set":10,"id":"ffe62b97_680cb3eb","line":6,"range":{"start_line":2,"start_character":0,"end_line":6,"end_character":11},"updated":"2017-03-28 14:05:05.000000000","message":"I don\u0027t think this is necessary. Check the repository for examples.","commit_id":"d74e3f72b76d55dfaa96b60d045bf34a8cbbbf55"},{"author":{"_account_id":23900,"name":"Uday T Kumar","email":"uday053@gmail.com","username":"uday.t.kumar"},"change_message_id":"70ac97367bdaae681571af097506d37a07ca6329","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Define the identity v3 os-ep-filter-api-extensions-client."},{"line_number":4,"context_line":"    This will extend the client to include for various"},{"line_number":5,"context_line":"    permutations and combinations of endpoints, projects, groups that form"},{"line_number":6,"context_line":"    the api"},{"line_number":7,"context_line":"features:"},{"line_number":8,"context_line":"  - |"},{"line_number":9,"context_line":"    Define the identity v3 os-ep-filter-api-extensions-client."}],"source_content_type":"text/x-yaml","patch_set":10,"id":"ffe62b97_236b6cb7","line":6,"range":{"start_line":2,"start_character":0,"end_line":6,"end_character":11},"in_reply_to":"ffe62b97_680cb3eb","updated":"2017-03-28 14:58:16.000000000","message":"Thanks Rodrigo, Will remove them","commit_id":"d74e3f72b76d55dfaa96b60d045bf34a8cbbbf55"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"e3b63b9e618d81c949696f388f70c1e572f44bf1","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    This will extend the client to include for various"},{"line_number":11,"context_line":"    permutations and combinations of endpoints, projects, groups that form"},{"line_number":12,"context_line":"    the api"},{"line_number":13,"context_line":"fixes:"},{"line_number":14,"context_line":"  - |"},{"line_number":15,"context_line":"    Add normal bug fixes here, or remove this section.  All of the list items"},{"line_number":16,"context_line":"    some details.This will fix Partial-bug: #1673749 "}],"source_content_type":"text/x-yaml","patch_set":10,"id":"ffe62b97_0872c77b","line":16,"range":{"start_line":13,"start_character":0,"end_line":16,"end_character":53},"updated":"2017-03-28 14:05:05.000000000","message":"you should remove this","commit_id":"d74e3f72b76d55dfaa96b60d045bf34a8cbbbf55"},{"author":{"_account_id":23900,"name":"Uday T Kumar","email":"uday053@gmail.com","username":"uday.t.kumar"},"change_message_id":"70ac97367bdaae681571af097506d37a07ca6329","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    This will extend the client to include for various"},{"line_number":11,"context_line":"    permutations and combinations of endpoints, projects, groups that form"},{"line_number":12,"context_line":"    the api"},{"line_number":13,"context_line":"fixes:"},{"line_number":14,"context_line":"  - |"},{"line_number":15,"context_line":"    Add normal bug fixes here, or remove this section.  All of the list items"},{"line_number":16,"context_line":"    some details.This will fix Partial-bug: #1673749 "}],"source_content_type":"text/x-yaml","patch_set":10,"id":"ffe62b97_a39c1cc0","line":16,"range":{"start_line":13,"start_character":0,"end_line":16,"end_character":53},"in_reply_to":"ffe62b97_0872c77b","updated":"2017-03-28 14:58:16.000000000","message":"Thanks Rodrigo. Will remove them and submit a new patch","commit_id":"d74e3f72b76d55dfaa96b60d045bf34a8cbbbf55"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b5b3870498e19e4ceed06788ec9f5a998712051d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Define the identity v3 os-ep-filter-api-extensions-client."},{"line_number":4,"context_line":"    This will extend the client to include for various"},{"line_number":5,"context_line":"    permutations and combinations of endpoints, projects, groups that form"},{"line_number":6,"context_line":"    the api"},{"line_number":7,"context_line":"features:"},{"line_number":8,"context_line":"  - |"},{"line_number":9,"context_line":"    Define the identity v3 os-ep-filter-api-extensions-client."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"ffe62b97_8ba243fb","line":6,"range":{"start_line":1,"start_character":0,"end_line":6,"end_character":11},"updated":"2017-03-28 18:49:06.000000000","message":"This wasn\u0027t removed, as was suggested by Rodrigo in PS10.","commit_id":"e5caf61bebc66e9a6320f67e13c8f70fdd068cfd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b5b3870498e19e4ceed06788ec9f5a998712051d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    This will extend the client to include for various"},{"line_number":5,"context_line":"    permutations and combinations of endpoints, projects, groups that form"},{"line_number":6,"context_line":"    the api"},{"line_number":7,"context_line":"features:"},{"line_number":8,"context_line":"  - |"},{"line_number":9,"context_line":"    Define the identity v3 os-ep-filter-api-extensions-client."},{"line_number":10,"context_line":"    This will extend the client to include for various"},{"line_number":11,"context_line":"    permutations and combinations of endpoints, projects, groups that form"},{"line_number":12,"context_line":"    the api"},{"line_number":13,"context_line":"fixes:"},{"line_number":14,"context_line":"  - |"},{"line_number":15,"context_line":"    Add normal bug fixes here, or remove this section.  All of the list items"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"ffe62b97_6b801f47","line":12,"range":{"start_line":7,"start_character":0,"end_line":12,"end_character":11},"updated":"2017-03-28 18:49:06.000000000","message":"This language is rather awkward. I won\u0027t suggest a re-wording, but keep in mind that someone will probably eventually ask you to change it.","commit_id":"e5caf61bebc66e9a6320f67e13c8f70fdd068cfd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b5b3870498e19e4ceed06788ec9f5a998712051d","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    This will extend the client to include for various"},{"line_number":11,"context_line":"    permutations and combinations of endpoints, projects, groups that form"},{"line_number":12,"context_line":"    the api"},{"line_number":13,"context_line":"fixes:"},{"line_number":14,"context_line":"  - |"},{"line_number":15,"context_line":"    Add normal bug fixes here, or remove this section.  All of the list items"},{"line_number":16,"context_line":"    some details.This will fix Partial-bug: #1673749 "}],"source_content_type":"text/x-yaml","patch_set":12,"id":"ffe62b97_4bb0bb43","line":16,"range":{"start_line":13,"start_character":0,"end_line":16,"end_character":52},"updated":"2017-03-28 18:49:06.000000000","message":"This wasn\u0027t removed, as was suggested by Rodrigo in PS10.","commit_id":"e5caf61bebc66e9a6320f67e13c8f70fdd068cfd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b5b3870498e19e4ceed06788ec9f5a998712051d","unresolved":false,"context_lines":[{"line_number":13,"context_line":"fixes:"},{"line_number":14,"context_line":"  - |"},{"line_number":15,"context_line":"    Add normal bug fixes here, or remove this section.  All of the list items"},{"line_number":16,"context_line":"    some details.This will fix Partial-bug: #1673749 "}],"source_content_type":"text/x-yaml","patch_set":12,"id":"ffe62b97_2bad77e8","line":16,"range":{"start_line":16,"start_character":52,"end_line":16,"end_character":53},"updated":"2017-03-28 18:49:06.000000000","message":"nit: extra space","commit_id":"e5caf61bebc66e9a6320f67e13c8f70fdd068cfd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"26bdf4de865dfd5931c9787915fc86c5faf68113","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Defines the identity v3 os-ep-filter-api-extensions-client."},{"line_number":5,"context_line":"    This client creates associations between endpoints, projects "},{"line_number":6,"context_line":"    and groups "}],"source_content_type":"text/x-yaml","patch_set":13,"id":"ffe62b97_19ef9f1e","line":4,"updated":"2017-03-29 04:14:36.000000000","message":"I like this wording now :)","commit_id":"9049b6f93904588d64605fc14360443bc98519ac"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"26bdf4de865dfd5931c9787915fc86c5faf68113","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Defines the identity v3 os-ep-filter-api-extensions-client."},{"line_number":5,"context_line":"    This client creates associations between endpoints, projects "},{"line_number":6,"context_line":"    and groups "}],"source_content_type":"text/x-yaml","patch_set":13,"id":"ffe62b97_9995ef89","line":5,"range":{"start_line":5,"start_character":64,"end_line":5,"end_character":65},"updated":"2017-03-29 04:14:36.000000000","message":"Extra space.","commit_id":"9049b6f93904588d64605fc14360443bc98519ac"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"26bdf4de865dfd5931c9787915fc86c5faf68113","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Defines the identity v3 os-ep-filter-api-extensions-client."},{"line_number":5,"context_line":"    This client creates associations between endpoints, projects "},{"line_number":6,"context_line":"    and groups "}],"source_content_type":"text/x-yaml","patch_set":13,"id":"ffe62b97_d97ff763","line":6,"range":{"start_line":6,"start_character":14,"end_line":6,"end_character":15},"updated":"2017-03-29 04:14:36.000000000","message":". (add period instead of extra space).","commit_id":"9049b6f93904588d64605fc14360443bc98519ac"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"deff79128afb70569aaa88a328abc8c32c352c54","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Defines the identity v3 os-ep-filter-api-extensions-client."},{"line_number":5,"context_line":"    This client manages associations between endpoints, projects"},{"line_number":6,"context_line":"    and groups."}],"source_content_type":"text/x-yaml","patch_set":17,"id":"ffe62b97_988034f7","line":4,"range":{"start_line":4,"start_character":28,"end_line":4,"end_character":62},"updated":"2017-03-29 13:39:15.000000000","message":"I prefer to have something like: OS-EP-FILTER extension API client.","commit_id":"0e7b9f0cfb4fcc8ab78e65eaebd62b84f0b82f88"}],"tempest/lib/services/identity/v3/__init__.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"e3b63b9e618d81c949696f388f70c1e572f44bf1","unresolved":false,"context_lines":[{"line_number":39,"context_line":"           \u0027PoliciesClient\u0027, \u0027ProjectsClient\u0027, \u0027RegionsClient\u0027,"},{"line_number":40,"context_line":"           \u0027RoleAssignmentsClient\u0027, \u0027RolesClient\u0027, \u0027ServicesClient\u0027,"},{"line_number":41,"context_line":"           \u0027V3TokenClient\u0027, \u0027TrustsClient\u0027, \u0027UsersClient\u0027, \u0027VersionsClient\u0027,"},{"line_number":42,"context_line":"           \u0027EndPointsExtnClient\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"ffe62b97_68da734b","line":42,"range":{"start_line":42,"start_character":12,"end_line":42,"end_character":31},"updated":"2017-03-28 14:05:05.000000000","message":"if you notice, the clients are put in order (alphabetically)","commit_id":"d74e3f72b76d55dfaa96b60d045bf34a8cbbbf55"},{"author":{"_account_id":23900,"name":"Uday T Kumar","email":"uday053@gmail.com","username":"uday.t.kumar"},"change_message_id":"70ac97367bdaae681571af097506d37a07ca6329","unresolved":false,"context_lines":[{"line_number":39,"context_line":"           \u0027PoliciesClient\u0027, \u0027ProjectsClient\u0027, \u0027RegionsClient\u0027,"},{"line_number":40,"context_line":"           \u0027RoleAssignmentsClient\u0027, \u0027RolesClient\u0027, \u0027ServicesClient\u0027,"},{"line_number":41,"context_line":"           \u0027V3TokenClient\u0027, \u0027TrustsClient\u0027, \u0027UsersClient\u0027, \u0027VersionsClient\u0027,"},{"line_number":42,"context_line":"           \u0027EndPointsExtnClient\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"ffe62b97_23992cc3","line":42,"range":{"start_line":42,"start_character":12,"end_line":42,"end_character":31},"in_reply_to":"ffe62b97_68da734b","updated":"2017-03-28 14:58:16.000000000","message":"Thanks Rodrigo. Oops sorry missed this ! Will make the changes. :)","commit_id":"d74e3f72b76d55dfaa96b60d045bf34a8cbbbf55"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"26bdf4de865dfd5931c9787915fc86c5faf68113","unresolved":false,"context_lines":[{"line_number":34,"context_line":"from tempest.lib.services.identity.v3.users_client import UsersClient"},{"line_number":35,"context_line":"from tempest.lib.services.identity.v3.versions_client import VersionsClient"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"__all__ \u003d [\u0027CredentialsClient\u0027, \u0027DomainsClient\u0027, \u0027EndPointsClient\u0027,"},{"line_number":38,"context_line":"           \u0027GroupsClient\u0027, \u0027IdentityClient\u0027, \u0027InheritedRolesClient\u0027,"},{"line_number":39,"context_line":"           \u0027PoliciesClient\u0027, \u0027ProjectsClient\u0027, \u0027RegionsClient\u0027,"},{"line_number":40,"context_line":"           \u0027RoleAssignmentsClient\u0027, \u0027RolesClient\u0027, \u0027ServicesClient\u0027,"},{"line_number":41,"context_line":"           \u0027V3TokenClient\u0027, \u0027TrustsClient\u0027, \u0027UsersClient\u0027, \u0027VersionsClient\u0027,"},{"line_number":42,"context_line":"           \u0027EndPointsExtnClient\u0027]"}],"source_content_type":"text/x-python","patch_set":13,"id":"ffe62b97_39870365","line":42,"range":{"start_line":37,"start_character":0,"end_line":42,"end_character":33},"updated":"2017-03-29 04:14:36.000000000","message":"It looks like these aren\u0027t listed alphabetically. I believe this is accidental, as PS11 you ordered these alphabetically, only to undo that in PS13.","commit_id":"9049b6f93904588d64605fc14360443bc98519ac"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"b6d9300d756d314719b4f50a351643faf8c22c82","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"__all__ \u003d [\u0027CredentialsClient\u0027, \u0027DomainsClient\u0027, \u0027DomainConfigurationClient\u0027,"},{"line_number":42,"context_line":"           \u0027EndPointsClient\u0027, \u0027EndPointsFilterClient\u0027, \u0027GroupsClient\u0027,"},{"line_number":43,"context_line":"           \u0027IdentityClient\u0027, \u0027InheritedRolesClient\u0027, \u0027OAUTHConsumerClient\u0027,"},{"line_number":44,"context_line":"           \u0027PoliciesClient\u0027, \u0027ProjectsClient\u0027, \u0027RegionsClient\u0027,"},{"line_number":45,"context_line":"           \u0027RoleAssignmentsClient\u0027, \u0027RolesClient\u0027, \u0027ServicesClient\u0027,"},{"line_number":46,"context_line":"           \u0027V3TokenClient\u0027, \u0027TrustsClient\u0027, \u0027UsersClient\u0027, \u0027VersionsClient\u0027]"}],"source_content_type":"text/x-python","patch_set":33,"id":"5ff73747_c47670a5","line":43,"range":{"start_line":43,"start_character":53,"end_line":43,"end_character":74},"updated":"2017-04-25 13:26:58.000000000","message":"I understand why you moved this, but it\u0027s out of scope for a rebase.\nNot a big deal, so not worth a re-spin, but please avoid mixing a rebase with a fix next time.","commit_id":"5d52d3af8a37782aa3bc0f47e9c3c68276c27545"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"143eeefd417028e7c34c72f2819a7464cf4cb81c","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"__all__ \u003d [\u0027CredentialsClient\u0027, \u0027DomainsClient\u0027, \u0027DomainConfigurationClient\u0027,"},{"line_number":42,"context_line":"           \u0027EndPointsClient\u0027, \u0027EndPointsFilterClient\u0027, \u0027GroupsClient\u0027,"},{"line_number":43,"context_line":"           \u0027IdentityClient\u0027, \u0027InheritedRolesClient\u0027, \u0027OAUTHConsumerClient\u0027,"},{"line_number":44,"context_line":"           \u0027PoliciesClient\u0027, \u0027ProjectsClient\u0027, \u0027RegionsClient\u0027,"},{"line_number":45,"context_line":"           \u0027RoleAssignmentsClient\u0027, \u0027RolesClient\u0027, \u0027ServicesClient\u0027,"},{"line_number":46,"context_line":"           \u0027V3TokenClient\u0027, \u0027TrustsClient\u0027, \u0027UsersClient\u0027, \u0027VersionsClient\u0027]"}],"source_content_type":"text/x-python","patch_set":33,"id":"5ff73747_8441880e","line":43,"range":{"start_line":43,"start_character":53,"end_line":43,"end_character":74},"in_reply_to":"5ff73747_c47670a5","updated":"2017-04-25 13:30:50.000000000","message":"I moved it so as to keep them in alphabetical order.","commit_id":"5d52d3af8a37782aa3bc0f47e9c3c68276c27545"}],"tempest/lib/services/identity/v3/endpoint_extension_client.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"e3b63b9e618d81c949696f388f70c1e572f44bf1","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def list_projects_for_endpoint(self, endpoint_id):"},{"line_number":29,"context_line":"        \"\"\"GET Project for Endpoint.\"\"\""},{"line_number":30,"context_line":"        resp, body \u003d self.get(\u0027OS-EP-FILTER/endpoints/%s/projects\u0027 %"},{"line_number":31,"context_line":"                              endpoint_id)"},{"line_number":32,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":33,"context_line":"        body \u003d json.loads(body)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ffe62b97_e8c68368","line":30,"range":{"start_line":30,"start_character":31,"end_line":30,"end_character":43},"updated":"2017-03-28 14:05:05.000000000","message":"this can be an attribute of the class","commit_id":"d74e3f72b76d55dfaa96b60d045bf34a8cbbbf55"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b5b3870498e19e4ceed06788ec9f5a998712051d","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    ep_filter \u003d \"OS-EP-FILTER\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def list_projects_for_endpoint(self, endpoint_id):"},{"line_number":30,"context_line":"        \"\"\"GET Project for Endpoint.\"\"\""},{"line_number":31,"context_line":"        resp, body \u003d self.get(self.ep_filter + \u0027/endpoints/%s/projects\u0027 %"},{"line_number":32,"context_line":"                              endpoint_id)"},{"line_number":33,"context_line":"        self.expected_success(200, resp.status)"}],"source_content_type":"text/x-python","patch_set":12,"id":"ffe62b97_6b0b7f23","line":30,"range":{"start_line":30,"start_character":8,"end_line":30,"end_character":39},"updated":"2017-03-28 18:49:06.000000000","message":"Returns all projects that are currently associated with the endpoint_id.","commit_id":"e5caf61bebc66e9a6320f67e13c8f70fdd068cfd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b5b3870498e19e4ceed06788ec9f5a998712051d","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        body \u003d json.loads(body)"},{"line_number":35,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def add_endpoint_to_project(self, endpoint_id, tenant_id):"},{"line_number":38,"context_line":"        \"\"\"Associate Endpoint to Project.\"\"\""},{"line_number":39,"context_line":"        put_body \u003d {"},{"line_number":40,"context_line":"            \"endpoint_id\": endpoint_id,"}],"source_content_type":"text/x-python","patch_set":12,"id":"ffe62b97_0b1ab36d","line":37,"range":{"start_line":37,"start_character":51,"end_line":37,"end_character":60},"updated":"2017-03-28 18:49:06.000000000","message":"nit: project_id","commit_id":"e5caf61bebc66e9a6320f67e13c8f70fdd068cfd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b5b3870498e19e4ceed06788ec9f5a998712051d","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def add_endpoint_to_project(self, endpoint_id, tenant_id):"},{"line_number":38,"context_line":"        \"\"\"Associate Endpoint to Project.\"\"\""},{"line_number":39,"context_line":"        put_body \u003d {"},{"line_number":40,"context_line":"            \"endpoint_id\": endpoint_id,"},{"line_number":41,"context_line":"            \"project_id\": tenant_id"}],"source_content_type":"text/x-python","patch_set":12,"id":"ffe62b97_4b42fb3f","line":38,"range":{"start_line":38,"start_character":8,"end_line":38,"end_character":44},"updated":"2017-03-28 18:49:06.000000000","message":"Verifies the existence of an association between project_id and endpoint_id.","commit_id":"e5caf61bebc66e9a6320f67e13c8f70fdd068cfd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b5b3870498e19e4ceed06788ec9f5a998712051d","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        \"\"\"Associate Endpoint to Project.\"\"\""},{"line_number":39,"context_line":"        put_body \u003d {"},{"line_number":40,"context_line":"            \"endpoint_id\": endpoint_id,"},{"line_number":41,"context_line":"            \"project_id\": tenant_id"},{"line_number":42,"context_line":"        }"},{"line_number":43,"context_line":"        put_body \u003d json.dumps(put_body)"},{"line_number":44,"context_line":"        resp, body \u003d self.put("}],"source_content_type":"text/x-python","patch_set":12,"id":"ffe62b97_cb296b8a","line":41,"range":{"start_line":41,"start_character":26,"end_line":41,"end_character":35},"updated":"2017-03-28 18:49:06.000000000","message":"nit: project_id","commit_id":"e5caf61bebc66e9a6320f67e13c8f70fdd068cfd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b5b3870498e19e4ceed06788ec9f5a998712051d","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        body \u003d json.loads(body)"},{"line_number":49,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def check_endpoint_in_project(self, endpoint_id, tenant_id):"},{"line_number":52,"context_line":"        \"\"\"Check Endpoint to Project.\"\"\""},{"line_number":53,"context_line":"        resp, body \u003d self.head("},{"line_number":54,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027 %"}],"source_content_type":"text/x-python","patch_set":12,"id":"ffe62b97_8b1fe359","line":51,"range":{"start_line":51,"start_character":53,"end_line":51,"end_character":62},"updated":"2017-03-28 18:49:06.000000000","message":"nit: project_id","commit_id":"e5caf61bebc66e9a6320f67e13c8f70fdd068cfd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b5b3870498e19e4ceed06788ec9f5a998712051d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def check_endpoint_in_project(self, endpoint_id, tenant_id):"},{"line_number":52,"context_line":"        \"\"\"Check Endpoint to Project.\"\"\""},{"line_number":53,"context_line":"        resp, body \u003d self.head("},{"line_number":54,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027 %"},{"line_number":55,"context_line":"            (tenant_id, endpoint_id), None)"}],"source_content_type":"text/x-python","patch_set":12,"id":"ffe62b97_eb442f49","line":52,"range":{"start_line":52,"start_character":8,"end_line":52,"end_character":40},"updated":"2017-03-28 18:49:06.000000000","message":"Verifies the existence of an association between project_id and endpoint_id.","commit_id":"e5caf61bebc66e9a6320f67e13c8f70fdd068cfd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b5b3870498e19e4ceed06788ec9f5a998712051d","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        \"\"\"Check Endpoint to Project.\"\"\""},{"line_number":53,"context_line":"        resp, body \u003d self.head("},{"line_number":54,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027 %"},{"line_number":55,"context_line":"            (tenant_id, endpoint_id), None)"},{"line_number":56,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":57,"context_line":"        body \u003d json.loads(body)"},{"line_number":58,"context_line":"        return rest_client.ResponseBody(resp, body)"}],"source_content_type":"text/x-python","patch_set":12,"id":"ffe62b97_6b249faf","line":55,"range":{"start_line":55,"start_character":13,"end_line":55,"end_character":22},"updated":"2017-03-28 18:49:06.000000000","message":"nit: project_id","commit_id":"e5caf61bebc66e9a6320f67e13c8f70fdd068cfd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b5b3870498e19e4ceed06788ec9f5a998712051d","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        body \u003d json.loads(body)"},{"line_number":58,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def list_endpoint_in_project(self, tenant_id):"},{"line_number":61,"context_line":"        \"\"\"List Endpoint to Project.\"\"\""},{"line_number":62,"context_line":"        resp, body \u003d self.get(self.ep_filter + \u0027/projects/%s/endpoints\u0027 % tenant_id)"},{"line_number":63,"context_line":"        self.expected_success(200, resp.status)"}],"source_content_type":"text/x-python","patch_set":12,"id":"ffe62b97_4b3d5bc2","line":60,"range":{"start_line":60,"start_character":39,"end_line":60,"end_character":48},"updated":"2017-03-28 18:49:06.000000000","message":"nit: project_id","commit_id":"e5caf61bebc66e9a6320f67e13c8f70fdd068cfd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b5b3870498e19e4ceed06788ec9f5a998712051d","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def list_endpoint_in_project(self, tenant_id):"},{"line_number":61,"context_line":"        \"\"\"List Endpoint to Project.\"\"\""},{"line_number":62,"context_line":"        resp, body \u003d self.get(self.ep_filter + \u0027/projects/%s/endpoints\u0027 % tenant_id)"},{"line_number":63,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":64,"context_line":"        body \u003d json.loads(body)"}],"source_content_type":"text/x-python","patch_set":12,"id":"ffe62b97_ab7ce782","line":61,"range":{"start_line":61,"start_character":8,"end_line":61,"end_character":39},"updated":"2017-03-28 18:49:06.000000000","message":"Returns all endpoints that are currently associated with project_id.","commit_id":"e5caf61bebc66e9a6320f67e13c8f70fdd068cfd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b5b3870498e19e4ceed06788ec9f5a998712051d","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def list_endpoint_in_project(self, tenant_id):"},{"line_number":61,"context_line":"        \"\"\"List Endpoint to Project.\"\"\""},{"line_number":62,"context_line":"        resp, body \u003d self.get(self.ep_filter + \u0027/projects/%s/endpoints\u0027 % tenant_id)"},{"line_number":63,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":64,"context_line":"        body \u003d json.loads(body)"},{"line_number":65,"context_line":"        return rest_client.ResponseBody(resp, body)"}],"source_content_type":"text/x-python","patch_set":12,"id":"ffe62b97_eb2f8f85","line":62,"range":{"start_line":62,"start_character":74,"end_line":62,"end_character":83},"updated":"2017-03-28 18:49:06.000000000","message":"nit: project_id","commit_id":"e5caf61bebc66e9a6320f67e13c8f70fdd068cfd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b5b3870498e19e4ceed06788ec9f5a998712051d","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        body \u003d json.loads(body)"},{"line_number":65,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def remove_endpoint_from_project(self, endpoint_id, tenant_id):"},{"line_number":68,"context_line":"        \"\"\"Check Endpoint to Project.\"\"\""},{"line_number":69,"context_line":"        resp, body \u003d self.delete("},{"line_number":70,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027 % (tenant_id, endpoint_id))"}],"source_content_type":"text/x-python","patch_set":12,"id":"ffe62b97_ab53c716","line":67,"range":{"start_line":67,"start_character":56,"end_line":67,"end_character":65},"updated":"2017-03-28 18:49:06.000000000","message":"nit: project_id","commit_id":"e5caf61bebc66e9a6320f67e13c8f70fdd068cfd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b5b3870498e19e4ceed06788ec9f5a998712051d","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def remove_endpoint_from_project(self, endpoint_id, tenant_id):"},{"line_number":68,"context_line":"        \"\"\"Check Endpoint to Project.\"\"\""},{"line_number":69,"context_line":"        resp, body \u003d self.delete("},{"line_number":70,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027 % (tenant_id, endpoint_id))"},{"line_number":71,"context_line":"        self.expected_success(204, resp.status)"}],"source_content_type":"text/x-python","patch_set":12,"id":"ffe62b97_4b6b1bb6","line":68,"range":{"start_line":68,"start_character":8,"end_line":68,"end_character":40},"updated":"2017-03-28 18:49:06.000000000","message":"Removes a direct association between project_id and endpoint_id.","commit_id":"e5caf61bebc66e9a6320f67e13c8f70fdd068cfd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b5b3870498e19e4ceed06788ec9f5a998712051d","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    def remove_endpoint_from_project(self, endpoint_id, tenant_id):"},{"line_number":68,"context_line":"        \"\"\"Check Endpoint to Project.\"\"\""},{"line_number":69,"context_line":"        resp, body \u003d self.delete("},{"line_number":70,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027 % (tenant_id, endpoint_id))"},{"line_number":71,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":72,"context_line":"        return rest_client.ResponseBody(resp, body)"}],"source_content_type":"text/x-python","patch_set":12,"id":"ffe62b97_8b5483ff","line":70,"range":{"start_line":70,"start_character":60,"end_line":70,"end_character":69},"updated":"2017-03-28 18:49:06.000000000","message":"nit: project_id","commit_id":"e5caf61bebc66e9a6320f67e13c8f70fdd068cfd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"26bdf4de865dfd5931c9787915fc86c5faf68113","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def add_endpoint_to_project(self, endpoint_id, project_id):"},{"line_number":38,"context_line":"        \"\"\"Add association between project and endpoint. \"\"\""},{"line_number":39,"context_line":"        put_body \u003d {"},{"line_number":40,"context_line":"            \"endpoint_id\": endpoint_id,"},{"line_number":41,"context_line":"            \"project_id\": project_id"}],"source_content_type":"text/x-python","patch_set":13,"id":"ffe62b97_f97cfb72","line":38,"range":{"start_line":38,"start_character":56,"end_line":38,"end_character":57},"updated":"2017-03-29 04:14:36.000000000","message":"Extra space.","commit_id":"9049b6f93904588d64605fc14360443bc98519ac"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"0f9b876cf64a46ff5abfb1b467cbc5c1943d0046","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    ep_filter \u003d \"OS-EP-FILTER\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def list_projects_for_endpoint(self, endpoint_id):"},{"line_number":30,"context_line":"        \"\"\"List all projects that are associated with the endpoint.\"\"\""},{"line_number":31,"context_line":"        resp, body \u003d self.get(self.ep_filter + \u0027/endpoints/%s/projects\u0027 %"},{"line_number":32,"context_line":"                              endpoint_id)"},{"line_number":33,"context_line":"        self.expected_success(200, resp.status)"}],"source_content_type":"text/x-python","patch_set":20,"id":"ffe62b97_777c4b71","line":30,"updated":"2017-03-29 20:00:04.000000000","message":"I\u0027ve noticed an inconsistency across various clients in Tempest. Some Tempest clients (e.g. v3.users_client) contains\n\nFor a full list of available parameters, please refer to the official API reference: ...\n\nper client function.\n\nHowever, in some clients (e.g. v3.identity_client), this is not the case.\n\nNot sure if present approach is fine or not.","commit_id":"6acf1b0a897755eb296ad73891494ec2eed982fe"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"0f9b876cf64a46ff5abfb1b467cbc5c1943d0046","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    ep_filter \u003d \"OS-EP-FILTER\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def list_projects_for_endpoint(self, endpoint_id):"},{"line_number":30,"context_line":"        \"\"\"List all projects that are associated with the endpoint.\"\"\""},{"line_number":31,"context_line":"        resp, body \u003d self.get(self.ep_filter + \u0027/endpoints/%s/projects\u0027 %"},{"line_number":32,"context_line":"                              endpoint_id)"},{"line_number":33,"context_line":"        self.expected_success(200, resp.status)"}],"source_content_type":"text/x-python","patch_set":20,"id":"ffe62b97_37c803a4","line":30,"range":{"start_line":30,"start_character":58,"end_line":30,"end_character":59},"updated":"2017-03-29 20:00:04.000000000","message":"nit: capitalized below.","commit_id":"6acf1b0a897755eb296ad73891494ec2eed982fe"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"0f9b876cf64a46ff5abfb1b467cbc5c1943d0046","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    ep_filter \u003d \"OS-EP-FILTER\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def list_projects_for_endpoint(self, endpoint_id):"},{"line_number":30,"context_line":"        \"\"\"List all projects that are associated with the endpoint.\"\"\""},{"line_number":31,"context_line":"        resp, body \u003d self.get(self.ep_filter + \u0027/endpoints/%s/projects\u0027 %"},{"line_number":32,"context_line":"                              endpoint_id)"},{"line_number":33,"context_line":"        self.expected_success(200, resp.status)"}],"source_content_type":"text/x-python","patch_set":20,"id":"ffe62b97_77ca0ba1","line":30,"range":{"start_line":30,"start_character":20,"end_line":30,"end_character":21},"updated":"2017-03-29 20:00:04.000000000","message":"nit: capitalized below.","commit_id":"6acf1b0a897755eb296ad73891494ec2eed982fe"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"0f9b876cf64a46ff5abfb1b467cbc5c1943d0046","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def add_endpoint_to_project(self, endpoint_id, project_id):"},{"line_number":38,"context_line":"        \"\"\"Add association between project and endpoint. \"\"\""},{"line_number":39,"context_line":"        put_body \u003d {"},{"line_number":40,"context_line":"            \"endpoint_id\": endpoint_id,"},{"line_number":41,"context_line":"            \"project_id\": project_id"}],"source_content_type":"text/x-python","patch_set":20,"id":"ffe62b97_1c7406ce","line":38,"range":{"start_line":38,"start_character":56,"end_line":38,"end_character":57},"updated":"2017-03-29 20:00:04.000000000","message":"nit: Extra space.","commit_id":"6acf1b0a897755eb296ad73891494ec2eed982fe"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"0f9b876cf64a46ff5abfb1b467cbc5c1943d0046","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def add_endpoint_to_project(self, endpoint_id, project_id):"},{"line_number":38,"context_line":"        \"\"\"Add association between project and endpoint. \"\"\""},{"line_number":39,"context_line":"        put_body \u003d {"},{"line_number":40,"context_line":"            \"endpoint_id\": endpoint_id,"},{"line_number":41,"context_line":"            \"project_id\": project_id"}],"source_content_type":"text/x-python","patch_set":20,"id":"ffe62b97_97eeaf1f","line":38,"range":{"start_line":38,"start_character":35,"end_line":38,"end_character":36},"updated":"2017-03-29 20:00:04.000000000","message":"nit: capitalized below.","commit_id":"6acf1b0a897755eb296ad73891494ec2eed982fe"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"0f9b876cf64a46ff5abfb1b467cbc5c1943d0046","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def add_endpoint_to_project(self, endpoint_id, project_id):"},{"line_number":38,"context_line":"        \"\"\"Add association between project and endpoint. \"\"\""},{"line_number":39,"context_line":"        put_body \u003d {"},{"line_number":40,"context_line":"            \"endpoint_id\": endpoint_id,"},{"line_number":41,"context_line":"            \"project_id\": project_id"}],"source_content_type":"text/x-python","patch_set":20,"id":"ffe62b97_d7df9763","line":38,"range":{"start_line":38,"start_character":47,"end_line":38,"end_character":48},"updated":"2017-03-29 20:00:04.000000000","message":"nit: capitalized below.","commit_id":"6acf1b0a897755eb296ad73891494ec2eed982fe"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"0f9b876cf64a46ff5abfb1b467cbc5c1943d0046","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def remove_endpoint_from_project(self, endpoint_id, project_id):"},{"line_number":69,"context_line":"        \"\"\"Remove association between project and endpoint.\"\"\""},{"line_number":70,"context_line":"        resp, body \u003d self.delete("},{"line_number":71,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027"},{"line_number":72,"context_line":"            % (project_id, endpoint_id))"}],"source_content_type":"text/x-python","patch_set":20,"id":"ffe62b97_973c6f93","line":69,"range":{"start_line":69,"start_character":50,"end_line":69,"end_character":51},"updated":"2017-03-29 20:00:04.000000000","message":"nit: capitalized above.","commit_id":"6acf1b0a897755eb296ad73891494ec2eed982fe"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"0f9b876cf64a46ff5abfb1b467cbc5c1943d0046","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def remove_endpoint_from_project(self, endpoint_id, project_id):"},{"line_number":69,"context_line":"        \"\"\"Remove association between project and endpoint.\"\"\""},{"line_number":70,"context_line":"        resp, body \u003d self.delete("},{"line_number":71,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027"},{"line_number":72,"context_line":"            % (project_id, endpoint_id))"}],"source_content_type":"text/x-python","patch_set":20,"id":"ffe62b97_f7bdfb01","line":69,"range":{"start_line":69,"start_character":38,"end_line":69,"end_character":39},"updated":"2017-03-29 20:00:04.000000000","message":"nit: capitalized above.","commit_id":"6acf1b0a897755eb296ad73891494ec2eed982fe"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"eae41c8d354f573118e9784bb0cd0a409459d9f2","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from tempest.lib.common import rest_client"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class EndPointsExtnClient(rest_client.RestClient):"},{"line_number":26,"context_line":"    api_version \u003d \"v3\""},{"line_number":27,"context_line":"    ep_filter \u003d \"OS-EP-FILTER\""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"dfeb2761_1832a6f2","line":25,"range":{"start_line":25,"start_character":15,"end_line":25,"end_character":19},"updated":"2017-03-31 08:37:32.000000000","message":"I would rather not use abbreviated words in the client name.\nIt\u0027s a very good source of confusion and mistakes.\n\nApart from that \"extension\" does not belong to the name.\n\nYou could call this EndPointsFilterClient","commit_id":"58863fd4b55201f03a5399def9469872011bec02"},{"author":{"_account_id":23900,"name":"Uday T Kumar","email":"uday053@gmail.com","username":"uday.t.kumar"},"change_message_id":"ff8b0060ea44462af3c1fc9910f26041bff80ce2","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from tempest.lib.common import rest_client"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class EndPointsExtnClient(rest_client.RestClient):"},{"line_number":26,"context_line":"    api_version \u003d \"v3\""},{"line_number":27,"context_line":"    ep_filter \u003d \"OS-EP-FILTER\""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"dfeb2761_a0f818c4","line":25,"range":{"start_line":25,"start_character":15,"end_line":25,"end_character":19},"in_reply_to":"dfeb2761_1832a6f2","updated":"2017-03-31 12:59:34.000000000","message":"Thanks for the review Andrea! We have made the changes.","commit_id":"58863fd4b55201f03a5399def9469872011bec02"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"44f69ff17ce6b865aa53961b9328d3968afcea21","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def list_projects_for_endpoint(self, endpoint_id):"},{"line_number":30,"context_line":"        \"\"\"List all projects that are associated with the endpoint.\"\"\""},{"line_number":31,"context_line":"        resp, body \u003d self.get(self.ep_filter + \u0027/endpoints/%s/projects\u0027 %"},{"line_number":32,"context_line":"                              endpoint_id)"},{"line_number":33,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":34,"context_line":"        body \u003d json.loads(body)"}],"source_content_type":"text/x-python","patch_set":21,"id":"dfeb2761_db6438bc","line":31,"range":{"start_line":31,"start_character":30,"end_line":31,"end_character":70},"updated":"2017-03-31 09:16:48.000000000","message":"will \"OS_EP_FILTER/endpoints/%s/projects\" look more readable?\nor, if you really want to define ep_filter, maybe you can put it before #L25 ?","commit_id":"58863fd4b55201f03a5399def9469872011bec02"},{"author":{"_account_id":23900,"name":"Uday T Kumar","email":"uday053@gmail.com","username":"uday.t.kumar"},"change_message_id":"ff8b0060ea44462af3c1fc9910f26041bff80ce2","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def list_projects_for_endpoint(self, endpoint_id):"},{"line_number":30,"context_line":"        \"\"\"List all projects that are associated with the endpoint.\"\"\""},{"line_number":31,"context_line":"        resp, body \u003d self.get(self.ep_filter + \u0027/endpoints/%s/projects\u0027 %"},{"line_number":32,"context_line":"                              endpoint_id)"},{"line_number":33,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":34,"context_line":"        body \u003d json.loads(body)"}],"source_content_type":"text/x-python","patch_set":21,"id":"dfeb2761_40182c1c","line":31,"range":{"start_line":31,"start_character":30,"end_line":31,"end_character":70},"in_reply_to":"dfeb2761_db6438bc","updated":"2017-03-31 12:59:34.000000000","message":"Thanks zhufl. However if you check the previous commits, this was changed from what you have suggested to the current way as you see it on the basis of review comments earlier received.","commit_id":"58863fd4b55201f03a5399def9469872011bec02"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"44f69ff17ce6b865aa53961b9328d3968afcea21","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def check_endpoint_in_project(self, endpoint_id, project_id):"},{"line_number":52,"context_line":"        \"\"\"Check association of Project with Endpoint.\"\"\""},{"line_number":53,"context_line":"        resp, body \u003d self.head("},{"line_number":54,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027 %"},{"line_number":55,"context_line":"            (project_id, endpoint_id), None)"}],"source_content_type":"text/x-python","patch_set":21,"id":"dfeb2761_1b8e2078","line":52,"range":{"start_line":52,"start_character":45,"end_line":52,"end_character":53},"updated":"2017-03-31 09:16:48.000000000","message":"endpoint","commit_id":"58863fd4b55201f03a5399def9469872011bec02"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"44f69ff17ce6b865aa53961b9328d3968afcea21","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        body \u003d json.loads(body)"},{"line_number":58,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def list_endpoint_in_project(self, project_id):"},{"line_number":61,"context_line":"        \"\"\"List Endpoints associated with Project.\"\"\""},{"line_number":62,"context_line":"        resp, body \u003d self.get(self.ep_filter + \u0027/projects/%s/endpoints\u0027"},{"line_number":63,"context_line":"                              % project_id)"}],"source_content_type":"text/x-python","patch_set":21,"id":"dfeb2761_7b69acbc","line":60,"range":{"start_line":60,"start_character":13,"end_line":60,"end_character":21},"updated":"2017-03-31 09:16:48.000000000","message":"endpoints","commit_id":"58863fd4b55201f03a5399def9469872011bec02"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"44f69ff17ce6b865aa53961b9328d3968afcea21","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def list_endpoint_in_project(self, project_id):"},{"line_number":61,"context_line":"        \"\"\"List Endpoints associated with Project.\"\"\""},{"line_number":62,"context_line":"        resp, body \u003d self.get(self.ep_filter + \u0027/projects/%s/endpoints\u0027"},{"line_number":63,"context_line":"                              % project_id)"},{"line_number":64,"context_line":"        self.expected_success(200, resp.status)"}],"source_content_type":"text/x-python","patch_set":21,"id":"dfeb2761_3bb8c428","line":61,"range":{"start_line":61,"start_character":16,"end_line":61,"end_character":25},"updated":"2017-03-31 09:16:48.000000000","message":"endpoints","commit_id":"58863fd4b55201f03a5399def9469872011bec02"}],"tempest/lib/services/identity/v3/endpoint_filter_client.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"2e06a88cc16f341f98b9f6267e28d77888417288","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        body \u003d json.loads(body)"},{"line_number":58,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def list_endpoint_in_project(self, project_id):"},{"line_number":61,"context_line":"        \"\"\"List Endpoints associated with Project.\"\"\""},{"line_number":62,"context_line":"        resp, body \u003d self.get(self.ep_filter + \u0027/projects/%s/endpoints\u0027"},{"line_number":63,"context_line":"                              % project_id)"}],"source_content_type":"text/x-python","patch_set":23,"id":"dfeb2761_09d79f25","line":60,"range":{"start_line":60,"start_character":8,"end_line":60,"end_character":21},"updated":"2017-04-04 02:30:24.000000000","message":"list_endpoints","commit_id":"60ed4c757df9dd18f6a32a018bd173104851e9e6"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"ac31c06d90ca964cf485fa430427bcb3fd61b554","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from tempest.lib.common import rest_client"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class EndPointsFilterClient(rest_client.RestClient):"},{"line_number":26,"context_line":"    api_version \u003d \"v3\""},{"line_number":27,"context_line":"    ep_filter \u003d \"OS-EP-FILTER\""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"bff0334d_d541480d","line":25,"range":{"start_line":25,"start_character":6,"end_line":25,"end_character":27},"updated":"2017-04-07 20:28:19.000000000","message":"Technically, this should probably be EndpointsFilterClient, because \"endpoint\" is one word, not two.","commit_id":"94f348b5ea77a0e823167e8a33e6afdde7e4e787"},{"author":{"_account_id":23900,"name":"Uday T Kumar","email":"uday053@gmail.com","username":"uday.t.kumar"},"change_message_id":"4b4470f3fb8d306401a23b524cbf3b841eb9d8f3","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from tempest.lib.common import rest_client"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class EndPointsFilterClient(rest_client.RestClient):"},{"line_number":26,"context_line":"    api_version \u003d \"v3\""},{"line_number":27,"context_line":"    ep_filter \u003d \"OS-EP-FILTER\""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"bff0334d_1f719876","line":25,"range":{"start_line":25,"start_character":6,"end_line":25,"end_character":27},"in_reply_to":"bff0334d_d541480d","updated":"2017-04-12 13:03:45.000000000","message":"Thanks Felipe! However this was kept in line with the EndpointsClient to keep this uniform:\n\n\"class EndPointsClient(rest_client.RestClient):\"","commit_id":"94f348b5ea77a0e823167e8a33e6afdde7e4e787"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"c56bde293126dc732d0a9a859bc1847532cd5b30","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from tempest.lib.common import rest_client"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class EndPointsFilterClient(rest_client.RestClient):"},{"line_number":26,"context_line":"    api_version \u003d \"v3\""},{"line_number":27,"context_line":"    ep_filter \u003d \"OS-EP-FILTER\""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"7ffa3b31_37bd55b7","line":25,"updated":"2017-04-17 15:14:12.000000000","message":"I could not find this OS-EP-FILTER API from https://developer.openstack.org/api-ref/identity/v3/\n\nAre there any doc which explains this except Keystone code?","commit_id":"bd3e9d0d6e73e82fdae261a944e85564446d8c2c"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"bb73a553f09ca0f6ef0040d3b61fa47394715bd7","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from tempest.lib.common import rest_client"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class EndPointsFilterClient(rest_client.RestClient):"},{"line_number":26,"context_line":"    api_version \u003d \"v3\""},{"line_number":27,"context_line":"    ep_filter \u003d \"OS-EP-FILTER\""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"7ffa3b31_76874d11","line":25,"in_reply_to":"7ffa3b31_37bd55b7","updated":"2017-04-18 06:52:03.000000000","message":"Here\u0027s the API doc: https://developer.openstack.org/api-ref/identity/v3-ext/?expanded\u003dcreate-association-detail,check-association-detail","commit_id":"bd3e9d0d6e73e82fdae261a944e85564446d8c2c"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"c56bde293126dc732d0a9a859bc1847532cd5b30","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def add_endpoint_to_project(self, endpoint_id, project_id):"},{"line_number":38,"context_line":"        \"\"\"Add association between project and endpoint. \"\"\""},{"line_number":39,"context_line":"        put_body \u003d {"},{"line_number":40,"context_line":"            \"endpoint_id\": endpoint_id,"},{"line_number":41,"context_line":"            \"project_id\": project_id"},{"line_number":42,"context_line":"        }"},{"line_number":43,"context_line":"        put_body \u003d json.dumps(put_body)"},{"line_number":44,"context_line":"        resp, body \u003d self.put("},{"line_number":45,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027 %"},{"line_number":46,"context_line":"            (project_id, endpoint_id), put_body)"},{"line_number":47,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":48,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"7ffa3b31_97c5493f","line":46,"range":{"start_line":39,"start_character":0,"end_line":46,"end_character":48},"updated":"2017-04-17 15:14:12.000000000","message":"This API seems a little odd because both project-id and endpoint-id is passed twice on URL and body. That is a reason why I\u0027d like to see the API doc.","commit_id":"bd3e9d0d6e73e82fdae261a944e85564446d8c2c"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"bb73a553f09ca0f6ef0040d3b61fa47394715bd7","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def add_endpoint_to_project(self, endpoint_id, project_id):"},{"line_number":38,"context_line":"        \"\"\"Add association between project and endpoint. \"\"\""},{"line_number":39,"context_line":"        put_body \u003d {"},{"line_number":40,"context_line":"            \"endpoint_id\": endpoint_id,"},{"line_number":41,"context_line":"            \"project_id\": project_id"},{"line_number":42,"context_line":"        }"},{"line_number":43,"context_line":"        put_body \u003d json.dumps(put_body)"},{"line_number":44,"context_line":"        resp, body \u003d self.put("},{"line_number":45,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027 %"},{"line_number":46,"context_line":"            (project_id, endpoint_id), put_body)"},{"line_number":47,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":48,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"7ffa3b31_16780928","line":46,"range":{"start_line":39,"start_character":0,"end_line":46,"end_character":48},"in_reply_to":"7ffa3b31_97c5493f","updated":"2017-04-18 06:52:03.000000000","message":"Good catch. The put_body is not necessary here","commit_id":"bd3e9d0d6e73e82fdae261a944e85564446d8c2c"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"c56bde293126dc732d0a9a859bc1847532cd5b30","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        body \u003d json.loads(body)"},{"line_number":64,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def remove_endpoint_from_project(self, endpoint_id, project_id):"},{"line_number":67,"context_line":"        \"\"\"Remove association between project and endpoint.\"\"\""},{"line_number":68,"context_line":"        resp, body \u003d self.delete("},{"line_number":69,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027"}],"source_content_type":"text/x-python","patch_set":28,"id":"7ffa3b31_d7f99180","line":66,"range":{"start_line":66,"start_character":8,"end_line":66,"end_character":14},"updated":"2017-04-17 15:14:12.000000000","message":"Please use \"delete\" instead of \"remove\" as https://specs.openstack.org/openstack/qa-specs/specs/tempest/consistent-service-method-names.html#delete-resources-id","commit_id":"bd3e9d0d6e73e82fdae261a944e85564446d8c2c"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"bb73a553f09ca0f6ef0040d3b61fa47394715bd7","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        body \u003d json.loads(body)"},{"line_number":64,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def remove_endpoint_from_project(self, endpoint_id, project_id):"},{"line_number":67,"context_line":"        \"\"\"Remove association between project and endpoint.\"\"\""},{"line_number":68,"context_line":"        resp, body \u003d self.delete("},{"line_number":69,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027"}],"source_content_type":"text/x-python","patch_set":28,"id":"7ffa3b31_9699b96f","line":66,"range":{"start_line":66,"start_character":8,"end_line":66,"end_character":14},"in_reply_to":"7ffa3b31_d7f99180","updated":"2017-04-18 06:52:03.000000000","message":"Done","commit_id":"bd3e9d0d6e73e82fdae261a944e85564446d8c2c"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b9f8fe7043b9fdfe0e033e25648ef7d71a3befbc","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        body \u003d json.loads(body)"},{"line_number":35,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def add_endpoint_to_project(self, endpoint_id, project_id):"},{"line_number":38,"context_line":"        \"\"\"Add association between project and endpoint. \"\"\""},{"line_number":39,"context_line":"        body \u003d None"},{"line_number":40,"context_line":"        resp, body \u003d self.put("}],"source_content_type":"text/x-python","patch_set":30,"id":"7ffa3b31_3d662f53","line":37,"range":{"start_line":37,"start_character":37,"end_line":37,"end_character":61},"updated":"2017-04-18 17:27:39.000000000","message":"it would be better to put project_id first than endpoint_id because project_id is passed before endpoint_id on the URL.","commit_id":"64750a9bc50da41bf44149842d52e03d78cab269"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"26a50221f24f6b047f518f0648fb5d0a864a8653","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        body \u003d json.loads(body)"},{"line_number":35,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def add_endpoint_to_project(self, endpoint_id, project_id):"},{"line_number":38,"context_line":"        \"\"\"Add association between project and endpoint. \"\"\""},{"line_number":39,"context_line":"        body \u003d None"},{"line_number":40,"context_line":"        resp, body \u003d self.put("}],"source_content_type":"text/x-python","patch_set":30,"id":"7ffa3b31_c323e804","line":37,"range":{"start_line":37,"start_character":37,"end_line":37,"end_character":61},"in_reply_to":"7ffa3b31_3d662f53","updated":"2017-04-18 18:30:42.000000000","message":"Done","commit_id":"64750a9bc50da41bf44149842d52e03d78cab269"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b9f8fe7043b9fdfe0e033e25648ef7d71a3befbc","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":44,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def check_endpoint_in_project(self, endpoint_id, project_id):"},{"line_number":47,"context_line":"        \"\"\"Check association of Project with Endpoint.\"\"\""},{"line_number":48,"context_line":"        resp, body \u003d self.head("},{"line_number":49,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027 %"}],"source_content_type":"text/x-python","patch_set":30,"id":"7ffa3b31_1dd253d3","line":46,"range":{"start_line":46,"start_character":40,"end_line":46,"end_character":63},"updated":"2017-04-18 17:27:39.000000000","message":"ditto","commit_id":"64750a9bc50da41bf44149842d52e03d78cab269"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"26a50221f24f6b047f518f0648fb5d0a864a8653","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":44,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def check_endpoint_in_project(self, endpoint_id, project_id):"},{"line_number":47,"context_line":"        \"\"\"Check association of Project with Endpoint.\"\"\""},{"line_number":48,"context_line":"        resp, body \u003d self.head("},{"line_number":49,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027 %"}],"source_content_type":"text/x-python","patch_set":30,"id":"7ffa3b31_437d98e5","line":46,"range":{"start_line":46,"start_character":40,"end_line":46,"end_character":63},"in_reply_to":"7ffa3b31_1dd253d3","updated":"2017-04-18 18:30:42.000000000","message":"Done","commit_id":"64750a9bc50da41bf44149842d52e03d78cab269"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b9f8fe7043b9fdfe0e033e25648ef7d71a3befbc","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        body \u003d json.loads(body)"},{"line_number":60,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    def delete_endpoint_from_project(self, endpoint_id, project_id):"},{"line_number":63,"context_line":"        \"\"\"Delete association between project and endpoint.\"\"\""},{"line_number":64,"context_line":"        resp, body \u003d self.delete("},{"line_number":65,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027"}],"source_content_type":"text/x-python","patch_set":30,"id":"7ffa3b31_7de03797","line":62,"range":{"start_line":62,"start_character":43,"end_line":62,"end_character":66},"updated":"2017-04-18 17:27:39.000000000","message":"ditto","commit_id":"64750a9bc50da41bf44149842d52e03d78cab269"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"26a50221f24f6b047f518f0648fb5d0a864a8653","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        body \u003d json.loads(body)"},{"line_number":60,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    def delete_endpoint_from_project(self, endpoint_id, project_id):"},{"line_number":63,"context_line":"        \"\"\"Delete association between project and endpoint.\"\"\""},{"line_number":64,"context_line":"        resp, body \u003d self.delete("},{"line_number":65,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027"}],"source_content_type":"text/x-python","patch_set":30,"id":"7ffa3b31_2384ccd3","line":62,"range":{"start_line":62,"start_character":43,"end_line":62,"end_character":66},"in_reply_to":"7ffa3b31_7de03797","updated":"2017-04-18 18:30:42.000000000","message":"Done","commit_id":"64750a9bc50da41bf44149842d52e03d78cab269"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"1a493899e48cd78b30e3dbe2ab1f683d67e63add","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":44,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def check_endpoint_in_project(self, project_id, endpoint_id):"},{"line_number":47,"context_line":"        \"\"\"Check association of Project with Endpoint.\"\"\""},{"line_number":48,"context_line":"        resp, body \u003d self.head("},{"line_number":49,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027 %"}],"source_content_type":"text/x-python","patch_set":31,"id":"7ffa3b31_6f64f522","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":13},"updated":"2017-04-18 21:36:13.000000000","message":"Should this be show instead?","commit_id":"fd72f5e43e0818d65daa9f892dffdf365b39eb00"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"82cbaf17ffc55c17fde3db03a94c9693407715cc","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":44,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def check_endpoint_in_project(self, project_id, endpoint_id):"},{"line_number":47,"context_line":"        \"\"\"Check association of Project with Endpoint.\"\"\""},{"line_number":48,"context_line":"        resp, body \u003d self.head("},{"line_number":49,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027 %"}],"source_content_type":"text/x-python","patch_set":31,"id":"7ffa3b31_cf09c931","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":13},"in_reply_to":"7ffa3b31_6f64f522","updated":"2017-04-18 21:42:39.000000000","message":"Nope. L48 indicates it\u0027s a HEAD, not a GET.","commit_id":"fd72f5e43e0818d65daa9f892dffdf365b39eb00"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"84d21461bace046f8fc2487e1945689bde53f1c3","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":44,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def check_endpoint_in_project(self, project_id, endpoint_id):"},{"line_number":47,"context_line":"        \"\"\"Check association of Project with Endpoint.\"\"\""},{"line_number":48,"context_line":"        resp, body \u003d self.head("},{"line_number":49,"context_line":"            self.ep_filter + \u0027/projects/%s/endpoints/%s\u0027 %"}],"source_content_type":"text/x-python","patch_set":31,"id":"7ffa3b31_0851e10e","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":13},"in_reply_to":"7ffa3b31_cf09c931","updated":"2017-04-19 05:50:28.000000000","message":"Thanks for the clarification Felipe","commit_id":"fd72f5e43e0818d65daa9f892dffdf365b39eb00"}],"tempest/lib/services/identity/v3/endpoints_client.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"7fb892fa551249a50cd804a5b33aa3496eab0e6f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1a1ced50_aec0bf2b","updated":"2017-03-18 21:19:39.000000000","message":"I don\u0027t think this service client belongs here, it targets a different API on a different end-point.  Documentation is available https://developer.openstack.org/api-ref/identity/v3-ext/","commit_id":"086e617c1db3c4d2688f727f9a63a987740a3eaa"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"7fb892fa551249a50cd804a5b33aa3496eab0e6f","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":"http://developer.openstack.org/api-ref-identity-v3.html#endpoints-v3"},{"line_number":19,"context_line":"\"\"\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from oslo_serialization import jsonutils as json"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a1ced50_6e9fa750","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":68},"updated":"2017-03-18 21:19:39.000000000","message":"The original URL was fine, this looks broken","commit_id":"086e617c1db3c4d2688f727f9a63a987740a3eaa"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"6406702861f3513111efd4188c80685ddacf9188","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":"http://developer.openstack.org/api-ref-identity-v3.html#endpoints-v3"},{"line_number":19,"context_line":"\"\"\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from oslo_serialization import jsonutils as json"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a1ced50_9f8039f9","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":68},"in_reply_to":"1a1ced50_6e9fa750","updated":"2017-03-21 14:56:02.000000000","message":"++","commit_id":"086e617c1db3c4d2688f727f9a63a987740a3eaa"}],"tempest/tests/lib/services/identity/v3/test_endpoint_extension_client.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"e3b63b9e618d81c949696f388f70c1e572f44bf1","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    def setUp(self):"},{"line_number":101,"context_line":"        super(TestEndPointsExtnClient, self).setUp()"},{"line_number":102,"context_line":"        fake_auth \u003d fake_auth_provider.FakeAuthProvider()"},{"line_number":103,"context_line":"        self.client \u003d endpoint_extension_client.EndPointsExtnClient(fake_auth,"},{"line_number":104,"context_line":"                                                                    \u0027identity\u0027,"},{"line_number":105,"context_line":"                                                                    \u0027regionOne\u0027"},{"line_number":106,"context_line":"                                                                    )"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def _test_add_endpoint_to_project(self, bytes_body\u003dFalse):"},{"line_number":109,"context_line":"        self.check_service_client_function("}],"source_content_type":"text/x-python","patch_set":10,"id":"ffe62b97_8890174c","line":106,"range":{"start_line":103,"start_character":68,"end_line":106,"end_character":69},"updated":"2017-03-28 14:05:05.000000000","message":"you can put these all in the same line (104) right below this one (103).","commit_id":"d74e3f72b76d55dfaa96b60d045bf34a8cbbbf55"},{"author":{"_account_id":23900,"name":"Uday T Kumar","email":"uday053@gmail.com","username":"uday.t.kumar"},"change_message_id":"70ac97367bdaae681571af097506d37a07ca6329","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    def setUp(self):"},{"line_number":101,"context_line":"        super(TestEndPointsExtnClient, self).setUp()"},{"line_number":102,"context_line":"        fake_auth \u003d fake_auth_provider.FakeAuthProvider()"},{"line_number":103,"context_line":"        self.client \u003d endpoint_extension_client.EndPointsExtnClient(fake_auth,"},{"line_number":104,"context_line":"                                                                    \u0027identity\u0027,"},{"line_number":105,"context_line":"                                                                    \u0027regionOne\u0027"},{"line_number":106,"context_line":"                                                                    )"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def _test_add_endpoint_to_project(self, bytes_body\u003dFalse):"},{"line_number":109,"context_line":"        self.check_service_client_function("}],"source_content_type":"text/x-python","patch_set":10,"id":"ffe62b97_185e9675","line":106,"range":{"start_line":103,"start_character":68,"end_line":106,"end_character":69},"in_reply_to":"ffe62b97_8890174c","updated":"2017-03-28 14:58:16.000000000","message":"Thanks ! Will figure this out ;)","commit_id":"d74e3f72b76d55dfaa96b60d045bf34a8cbbbf55"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"e3b63b9e618d81c949696f388f70c1e572f44bf1","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            endpoint_id\u003d3,"},{"line_number":154,"context_line":"            tenant_id\u003d4)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def test_add_endpoint_to_project(self):"},{"line_number":157,"context_line":"        self._test_add_endpoint_to_project()"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def test_check_endpoint_in_project(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"ffe62b97_087c071d","line":156,"range":{"start_line":156,"start_character":8,"end_line":156,"end_character":36},"updated":"2017-03-28 14:05:05.000000000","message":"you need to add tests with \"bytes_body\u003dTrue\", see other tests in the repository.","commit_id":"d74e3f72b76d55dfaa96b60d045bf34a8cbbbf55"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"26bdf4de865dfd5931c9787915fc86c5faf68113","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            endpoint_id\u003d3,"},{"line_number":154,"context_line":"            tenant_id\u003d4)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def test_add_endpoint_to_project(self):"},{"line_number":157,"context_line":"        self._test_add_endpoint_to_project()"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def test_check_endpoint_in_project(self):"},{"line_number":160,"context_line":"        self._test_check_endpoint_in_project()"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def test_list_projects_for_endpoint(self):"},{"line_number":163,"context_line":"        self._test_list_projects_for_endpoint()"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    def test_list_endpoint_in_project(self):"},{"line_number":166,"context_line":"        self._test_list_endpoint_in_project()"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def test_remove_endpoint_from_project(self):"},{"line_number":169,"context_line":"        self._test_remove_endpoint_from_project()"}],"source_content_type":"text/x-python","patch_set":13,"id":"ffe62b97_f9f19b02","line":169,"range":{"start_line":156,"start_character":0,"end_line":169,"end_character":49},"updated":"2017-03-29 04:14:36.000000000","message":"Again","commit_id":"9049b6f93904588d64605fc14360443bc98519ac"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"26bdf4de865dfd5931c9787915fc86c5faf68113","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            endpoint_id\u003d3,"},{"line_number":154,"context_line":"            tenant_id\u003d4)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def test_add_endpoint_to_project(self):"},{"line_number":157,"context_line":"        self._test_add_endpoint_to_project()"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def test_check_endpoint_in_project(self):"},{"line_number":160,"context_line":"        self._test_check_endpoint_in_project()"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def test_list_projects_for_endpoint(self):"},{"line_number":163,"context_line":"        self._test_list_projects_for_endpoint()"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    def test_list_endpoint_in_project(self):"},{"line_number":166,"context_line":"        self._test_list_endpoint_in_project()"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def test_remove_endpoint_from_project(self):"},{"line_number":169,"context_line":"        self._test_remove_endpoint_from_project()"}],"source_content_type":"text/x-python","patch_set":13,"id":"ffe62b97_d9cdb7b7","line":169,"range":{"start_line":156,"start_character":0,"end_line":169,"end_character":49},"updated":"2017-03-29 04:14:36.000000000","message":"Again, I believe you accidentally undid a change you made in PS11. You should add a _with_str_body and _with_bytes_body for each of these tests, passing bytes_body\u003dTrue for the latter case.","commit_id":"9049b6f93904588d64605fc14360443bc98519ac"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"deff79128afb70569aaa88a328abc8c32c352c54","unresolved":false,"context_lines":[{"line_number":111,"context_line":"            bytes_body,"},{"line_number":112,"context_line":"            status\u003d204,"},{"line_number":113,"context_line":"            endpoint_id\u003d3,"},{"line_number":114,"context_line":"            tenant_id\u003d4)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def _test_check_endpoint_in_project(self, bytes_body\u003dFalse):"},{"line_number":117,"context_line":"        self.check_service_client_function("}],"source_content_type":"text/x-python","patch_set":17,"id":"ffe62b97_b8b3f8e8","line":114,"range":{"start_line":114,"start_character":12,"end_line":114,"end_character":23},"updated":"2017-03-29 13:39:15.000000000","message":"that\u0027s the cause for the tests being failing: TypeError: add_endpoint_to_project() got an unexpected keyword argument \u0027tenant_id\u0027","commit_id":"0e7b9f0cfb4fcc8ab78e65eaebd62b84f0b82f88"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"0f9b876cf64a46ff5abfb1b467cbc5c1943d0046","unresolved":false,"context_lines":[{"line_number":129,"context_line":"            \u0027tempest.lib.common.rest_client.RestClient.get\u0027,"},{"line_number":130,"context_line":"            self.FAKE_LIST_PROJECTS_FOR_ENDPOINTS,"},{"line_number":131,"context_line":"            bytes_body,"},{"line_number":132,"context_line":"            status\u003d200,"},{"line_number":133,"context_line":"            endpoint_id\u003d3)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def _test_list_endpoint_in_project(self, bytes_body\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":20,"id":"ffe62b97_3724835d","line":132,"range":{"start_line":132,"start_character":12,"end_line":132,"end_character":22},"updated":"2017-03-29 20:00:04.000000000","message":"nit: The default value for this kwarg in check_service_client_function is already 200.","commit_id":"6acf1b0a897755eb296ad73891494ec2eed982fe"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"0f9b876cf64a46ff5abfb1b467cbc5c1943d0046","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            \u0027tempest.lib.common.rest_client.RestClient.get\u0027,"},{"line_number":139,"context_line":"            self.FAKE_LIST_ENDPOINTS_FOR_PROJECTS,"},{"line_number":140,"context_line":"            bytes_body,"},{"line_number":141,"context_line":"            status\u003d200,"},{"line_number":142,"context_line":"            project_id\u003d4)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def _test_remove_endpoint_from_project(self, bytes_body\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":20,"id":"ffe62b97_97334fab","line":141,"range":{"start_line":141,"start_character":12,"end_line":141,"end_character":22},"updated":"2017-03-29 20:00:04.000000000","message":"nit: The default value for this kwarg in check_service_client_function is already 200.","commit_id":"6acf1b0a897755eb296ad73891494ec2eed982fe"}],"tempest/tests/lib/services/identity/v3/test_endpoint_filter_client.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"20bc24d5079554f08255fbebfafc2c6bd74883ba","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class TestEndPointsFilterClient(base.BaseServiceTest):"},{"line_number":22,"context_line":"    FAKE_ADD_ENDPOINT_TO_PROJECT \u003d {"},{"line_number":23,"context_line":"        \"endpoint\": {"},{"line_number":24,"context_line":"            \"endpoint_id\": 1,"},{"line_number":25,"context_line":"            \"project_id\": 2,"},{"line_number":26,"context_line":"        }"},{"line_number":27,"context_line":"    }"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    FAKE_CHECK_ENDPOINT_IN_PROJECT \u003d {"},{"line_number":30,"context_line":"        \"endpoint\": {"},{"line_number":31,"context_line":"            \"endpoint_id\": 1,"},{"line_number":32,"context_line":"            \"project_id\": 2,"},{"line_number":33,"context_line":"        }"},{"line_number":34,"context_line":"    }"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    FAKE_LIST_PROJECTS_FOR_ENDPOINTS \u003d {"},{"line_number":37,"context_line":"        \"projects\": ["}],"source_content_type":"text/x-python","patch_set":27,"id":"bff0334d_9f9da1bd","line":34,"range":{"start_line":22,"start_character":0,"end_line":34,"end_character":5},"updated":"2017-04-12 15:47:50.000000000","message":"Unused.","commit_id":"d3a4eb81222e74399da8f1e9550f33a70a8f4cc0"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"20bc24d5079554f08255fbebfafc2c6bd74883ba","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        self.check_service_client_function("},{"line_number":108,"context_line":"            self.client.add_endpoint_to_project,"},{"line_number":109,"context_line":"            \u0027tempest.lib.common.rest_client.RestClient.put\u0027,"},{"line_number":110,"context_line":"            {},"},{"line_number":111,"context_line":"            bytes_body,"},{"line_number":112,"context_line":"            status\u003d204,"},{"line_number":113,"context_line":"            endpoint_id\u003d3,"}],"source_content_type":"text/x-python","patch_set":27,"id":"bff0334d_3f71f5a8","line":110,"range":{"start_line":110,"start_character":12,"end_line":110,"end_character":14},"updated":"2017-04-12 15:47:50.000000000","message":"Checked [0] and this is correct. However, now FAKE_ADD_ENDPOINT_TO_PROJECT is unused.\n\n[0] https://developer.openstack.org/api-ref/identity/v3-ext/?expanded\u003dcreate-association-detail","commit_id":"d3a4eb81222e74399da8f1e9550f33a70a8f4cc0"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"20bc24d5079554f08255fbebfafc2c6bd74883ba","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        self.check_service_client_function("},{"line_number":118,"context_line":"            self.client.check_endpoint_in_project,"},{"line_number":119,"context_line":"            \u0027tempest.lib.common.rest_client.RestClient.head\u0027,"},{"line_number":120,"context_line":"            {},"},{"line_number":121,"context_line":"            bytes_body,"},{"line_number":122,"context_line":"            status\u003d204,"},{"line_number":123,"context_line":"            endpoint_id\u003d3,"}],"source_content_type":"text/x-python","patch_set":27,"id":"bff0334d_bf5ce518","line":120,"range":{"start_line":120,"start_character":12,"end_line":120,"end_character":14},"updated":"2017-04-12 15:47:50.000000000","message":"Checked [0] and this is correct. However, now FAKE_CHECK_ENDPOINT_IN_PROJECT is unused.\n\n[0] https://developer.openstack.org/api-ref/identity/v3-ext/?expanded\u003dcheck-association-detail","commit_id":"d3a4eb81222e74399da8f1e9550f33a70a8f4cc0"}]}
