)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"4792ab5d09d8928ab749c92a11833278b5123916","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add api_prefix for check capabilities"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The swift api is organized as"},{"line_number":10,"context_line":"host:port/info and host:port/v1/AUTH_\u003ctenant-id\u003e"},{"line_number":11,"context_line":"With the latter being registered as Swift endpoint"},{"line_number":12,"context_line":"in the Keystone catalog. Tempest tests for swift capabilities"},{"line_number":13,"context_line":"seem to cut all path from the API endpoint and append \u0027info\u0027 to it,"},{"line_number":14,"context_line":"however Ceph\u0027s RadosGW has a \u0027swift\u0027 prefix in its API"},{"line_number":15,"context_line":"(as it supports S3 api too) like"},{"line_number":16,"context_line":"host:port/swift/info and host:port/swift/v1/AUTH_\u003ctenant-id\u003e"},{"line_number":17,"context_line":"so those tests fail on RadosGW as they attempt to access the"},{"line_number":18,"context_line":"wrong capabilities url w/o swift prefix."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_6742dc0f","line":16,"range":{"start_line":10,"start_character":0,"end_line":16,"end_character":60},"updated":"2018-11-05 23:05:59.000000000","message":"May we provide a reference for this?","commit_id":"2fd58a07b8176f2cfa088224e66a3290ffe7734a"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"dcfcc1056161a67e25297a68678424d9b260d3e5","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The swift api is organized as"},{"line_number":10,"context_line":"host:port/info and host:port/v1/AUTH_\u003ctenant-id\u003e [1]"},{"line_number":11,"context_line":"With the latter being registered as Swift endpoint"},{"line_number":12,"context_line":"in the Keystone catalog. Tempest tests for swift capabilities"},{"line_number":13,"context_line":"seem to cut all path from the API endpoint and append \u0027info\u0027 to it,"},{"line_number":14,"context_line":"however Ceph\u0027s RadosGW has a \u0027swift\u0027 prefix in its API [2]"},{"line_number":15,"context_line":"(as it supports S3 api too) like"},{"line_number":16,"context_line":"host:port/swift/info and host:port/swift/v1/AUTH_\u003ctenant-id\u003e"},{"line_number":17,"context_line":"so those tests fail on RadosGW as they attempt to access the"},{"line_number":18,"context_line":"wrong capabilities url w/o swift prefix."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"[1] https://docs.openstack.org/api-ref/object-store/"},{"line_number":21,"context_line":"[2] https://docs.ceph.com/docs/master/radosgw/config-ref/#swift-settings"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_b1c3a906","line":18,"range":{"start_line":12,"start_character":25,"end_line":18,"end_character":40},"updated":"2019-08-23 11:53:39.000000000","message":"Question: Are you saying that all other object store rest API calls keeps the host:port/swift/v1 except for the capabilities client which drops /swift/v1 from the endpoint?\nOr\nis it just the  capabilities client that needs the prefix to work with RadosGw?","commit_id":"716d7aee0d6f82777e235a03a48b76fdaaa7e355"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"b559b9da645b784c109583cee8c73f61990e17ea","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The swift api is organized as"},{"line_number":10,"context_line":"host:port/info and host:port/v1/AUTH_\u003ctenant-id\u003e [1]"},{"line_number":11,"context_line":"With the latter being registered as Swift endpoint"},{"line_number":12,"context_line":"in the Keystone catalog. Tempest tests for swift capabilities"},{"line_number":13,"context_line":"seem to cut all path from the API endpoint and append \u0027info\u0027 to it,"},{"line_number":14,"context_line":"however Ceph\u0027s RadosGW has a \u0027swift\u0027 prefix in its API [2]"},{"line_number":15,"context_line":"(as it supports S3 api too) like"},{"line_number":16,"context_line":"host:port/swift/info and host:port/swift/v1/AUTH_\u003ctenant-id\u003e"},{"line_number":17,"context_line":"so those tests fail on RadosGW as they attempt to access the"},{"line_number":18,"context_line":"wrong capabilities url w/o swift prefix."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"[1] https://docs.openstack.org/api-ref/object-store/"},{"line_number":21,"context_line":"[2] https://docs.ceph.com/docs/master/radosgw/config-ref/#swift-settings"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_b19169fa","line":18,"range":{"start_line":12,"start_character":25,"end_line":18,"end_character":40},"in_reply_to":"7faddb67_b1c3a906","updated":"2019-08-23 11:55:06.000000000","message":"all the object store calls need the prefix\n\nthe swift compatibility api is deployed beyond the /swift/ prefix","commit_id":"716d7aee0d6f82777e235a03a48b76fdaaa7e355"}],"tempest/config.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"4792ab5d09d8928ab749c92a11833278b5123916","unresolved":false,"context_lines":[{"line_number":928,"context_line":"                    \"same cluster name as Swift\u0027s container-sync-realms.conf\"),"},{"line_number":929,"context_line":"    cfg.StrOpt(\u0027api_prefix\u0027,"},{"line_number":930,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":931,"context_line":"               help\u003d\"Prefix for check capabilities. \""},{"line_number":932,"context_line":"                    \"We need add prefix for testing radosgw by swift tests.\"),"},{"line_number":933,"context_line":"]"},{"line_number":934,"context_line":""},{"line_number":935,"context_line":"object_storage_feature_group \u003d cfg.OptGroup("}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_a7c79497","line":932,"range":{"start_line":931,"start_character":15,"end_line":932,"end_character":78},"updated":"2018-11-05 23:05:59.000000000","message":"Where is this documented in Swift? This help message should be more generalized. Like:\n\n\"Prefix for checking capabilities. If provided, ... Otherwise, ... For example, radosgw prefix returns...\"","commit_id":"2fd58a07b8176f2cfa088224e66a3290ffe7734a"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"dcfcc1056161a67e25297a68678424d9b260d3e5","unresolved":false,"context_lines":[{"line_number":1014,"context_line":"                    \"Swift api is organized as host:port/info and \""},{"line_number":1015,"context_line":"                    \"host:port/v1/AUTH_\u003ctenant-id\u003e [1]. But for example \""},{"line_number":1016,"context_line":"                    \"Ceph\u0027s RadosGW API endpoint contains additional \u0027swift\u0027 \""},{"line_number":1017,"context_line":"                    \"prefix in the URL [2]. \""},{"line_number":1018,"context_line":"                    \"In order to test RadosGW by swift tests, api_prefix \""},{"line_number":1019,"context_line":"                    \"should be set to \u0027swift\u0027, otherwise the tests fail. \""},{"line_number":1020,"context_line":"                    \"[1] https://docs.openstack.org/api-ref/object-store/\""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_313819d3","line":1017,"updated":"2019-08-23 11:53:39.000000000","message":"NIT maybe add area of document like:\nSee rgw swift url prefix","commit_id":"716d7aee0d6f82777e235a03a48b76fdaaa7e355"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"9c23cf19eef907935fe4dc9fd7d2a20f17af49e9","unresolved":false,"context_lines":[{"line_number":1014,"context_line":"                    \"Swift api is organized as host:port/info and \""},{"line_number":1015,"context_line":"                    \"host:port/v1/AUTH_\u003ctenant-id\u003e [1]. But for example \""},{"line_number":1016,"context_line":"                    \"Ceph\u0027s RadosGW API endpoint contains additional \u0027swift\u0027 \""},{"line_number":1017,"context_line":"                    \"prefix in the URL [2]. \""},{"line_number":1018,"context_line":"                    \"In order to test RadosGW by swift tests, api_prefix \""},{"line_number":1019,"context_line":"                    \"should be set to \u0027swift\u0027, otherwise the tests fail. \""},{"line_number":1020,"context_line":"                    \"[1] https://docs.openstack.org/api-ref/object-store/\""}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_374bc9b0","line":1017,"in_reply_to":"7faddb67_313819d3","updated":"2019-09-12 08:07:57.000000000","message":"Done","commit_id":"716d7aee0d6f82777e235a03a48b76fdaaa7e355"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"54115acda64e19bf3e713186d79f7124ef56c694","unresolved":false,"context_lines":[{"line_number":1013,"context_line":"               help\u003d\"One name of cluster which is set in the realm whose name \""},{"line_number":1014,"context_line":"                    \"is set in \u0027realm_name\u0027 item in this file. Set the \""},{"line_number":1015,"context_line":"                    \"same cluster name as Swift\u0027s container-sync-realms.conf\"),"},{"line_number":1016,"context_line":"    cfg.StrOpt(\u0027api_prefix\u0027,"},{"line_number":1017,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":1018,"context_line":"               help\u003d\"Prefix for check capabilities. \""},{"line_number":1019,"context_line":"                    \"Swift api is organized as host:port/info and \""}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_aad1f958","line":1016,"updated":"2019-12-16 14:43:51.000000000","message":"I am not sure why we decided to make it a config option and not use the keystone endpoint as-is ?","commit_id":"1c2bc3ffa2caefc0e1c979257e96981ca1ba7e2c"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"7d05738587f0e008078e3940fdd002419c8fe68a","unresolved":false,"context_lines":[{"line_number":1013,"context_line":"               help\u003d\"One name of cluster which is set in the realm whose name \""},{"line_number":1014,"context_line":"                    \"is set in \u0027realm_name\u0027 item in this file. Set the \""},{"line_number":1015,"context_line":"                    \"same cluster name as Swift\u0027s container-sync-realms.conf\"),"},{"line_number":1016,"context_line":"    cfg.StrOpt(\u0027api_prefix\u0027,"},{"line_number":1017,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":1018,"context_line":"               help\u003d\"Prefix for check capabilities. \""},{"line_number":1019,"context_line":"                    \"Swift api is organized as host:port/info and \""}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_ca71d547","line":1016,"in_reply_to":"3fa7e38b_aad1f958","updated":"2019-12-16 14:53:48.000000000","message":"that\u0027s just one approach .. another one without the config option is here https://review.opendev.org/#/c/692375/","commit_id":"1c2bc3ffa2caefc0e1c979257e96981ca1ba7e2c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8ce36c0fbe3f76aac2403d7aca3116ddae8d3f59","unresolved":false,"context_lines":[{"line_number":1013,"context_line":"               help\u003d\"One name of cluster which is set in the realm whose name \""},{"line_number":1014,"context_line":"                    \"is set in \u0027realm_name\u0027 item in this file. Set the \""},{"line_number":1015,"context_line":"                    \"same cluster name as Swift\u0027s container-sync-realms.conf\"),"},{"line_number":1016,"context_line":"    cfg.StrOpt(\u0027api_prefix\u0027,"},{"line_number":1017,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":1018,"context_line":"               help\u003d\"Prefix for check capabilities. \""},{"line_number":1019,"context_line":"                    \"Swift api is organized as host:port/info and \""}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_2bb724da","line":1016,"in_reply_to":"3fa7e38b_ca71d547","updated":"2020-01-15 19:54:09.000000000","message":"yeah, Tempest should be able to support the keystone endpoints as it is even that is devstack way registered or any customize. \n\nLet\u0027s go with the other patch approach - https://review.opendev.org/#/c/692375/2","commit_id":"1c2bc3ffa2caefc0e1c979257e96981ca1ba7e2c"}],"tempest/lib/services/object_storage/capabilities_client.py":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"36f3360b05520da8e146a5be27946107eebe6a35","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class CapabilitiesClient(rest_client.RestClient):"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def list_capabilities(self, api_prefix\u003d\u0027\u0027):"},{"line_number":24,"context_line":"        self.skip_path()"},{"line_number":25,"context_line":"        try:"},{"line_number":26,"context_line":"            resp, body \u003d self.get(\u0027%sinfo\u0027 % api_prefix)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_024bb0b0","line":23,"range":{"start_line":23,"start_character":32,"end_line":23,"end_character":45},"updated":"2019-08-19 05:22:50.000000000","message":"As Felipe ever commented,\n\"Since this adds a new param to a library service client, a releasenotes is required https://docs.openstack.org/tempest/latest/REVIEWING.html#release-notes\"","commit_id":"15338a3accbc14d8d86a369a4df6eb27da8b2715"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"d5ce594616b0965c2b63108359ff6e1bf2233a87","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class CapabilitiesClient(rest_client.RestClient):"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def list_capabilities(self, api_prefix\u003d\u0027\u0027):"},{"line_number":24,"context_line":"        self.skip_path()"},{"line_number":25,"context_line":"        try:"},{"line_number":26,"context_line":"            resp, body \u003d self.get(\u0027%sinfo\u0027 % api_prefix)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_892a072d","line":23,"range":{"start_line":23,"start_character":32,"end_line":23,"end_character":45},"in_reply_to":"7faddb67_024bb0b0","updated":"2019-08-23 07:34:04.000000000","message":"I\u0027ve already added a releasenote.","commit_id":"15338a3accbc14d8d86a369a4df6eb27da8b2715"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"759eeaccc318fd19f9cdaabfb4d3aafb58b57602","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class CapabilitiesClient(rest_client.RestClient):"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def list_capabilities(self, api_prefix\u003d\u0027\u0027):"},{"line_number":24,"context_line":"        self.skip_path()"},{"line_number":25,"context_line":"        try:"},{"line_number":26,"context_line":"            resp, body \u003d self.get(\u0027%sinfo\u0027 % api_prefix)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_29caf345","line":23,"range":{"start_line":23,"start_character":32,"end_line":23,"end_character":45},"in_reply_to":"7faddb67_892a072d","updated":"2019-08-23 07:54:26.000000000","message":"You\u0027ve added a reno for adding a config item(which is needed), but not for adding a parameter for list_capabilities interface.\nsee https://github.com/openstack/tempest/blob/master/releasenotes/notes/16/16.0.0-add-cascade-parameter-to-volumes-client-ff4f7f12795003a4.yaml","commit_id":"15338a3accbc14d8d86a369a4df6eb27da8b2715"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"062db18b76ff0a78580cde02951fc3ee65973b19","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def list_capabilities(self, api_prefix\u003d\u0027\u0027):"},{"line_number":24,"context_line":"        self.skip_path()"},{"line_number":25,"context_line":"        try:"},{"line_number":26,"context_line":"            resp, body \u003d self.get(\u0027%sinfo\u0027 % api_prefix)"},{"line_number":27,"context_line":"        finally:"},{"line_number":28,"context_line":"            self.reset_path()"},{"line_number":29,"context_line":"        body \u003d json.loads(body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_953820d3","line":26,"range":{"start_line":25,"start_character":8,"end_line":26,"end_character":56},"updated":"2019-08-05 02:08:51.000000000","message":"Question: would the api_prefix be None if not set?  do you need a if on api_prefix.","commit_id":"15338a3accbc14d8d86a369a4df6eb27da8b2715"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"36f3360b05520da8e146a5be27946107eebe6a35","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def list_capabilities(self, api_prefix\u003d\u0027\u0027):"},{"line_number":24,"context_line":"        self.skip_path()"},{"line_number":25,"context_line":"        try:"},{"line_number":26,"context_line":"            resp, body \u003d self.get(\u0027%sinfo\u0027 % api_prefix)"},{"line_number":27,"context_line":"        finally:"},{"line_number":28,"context_line":"            self.reset_path()"},{"line_number":29,"context_line":"        body \u003d json.loads(body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_42944844","line":26,"range":{"start_line":26,"start_character":45,"end_line":26,"end_character":55},"updated":"2019-08-19 05:22:50.000000000","message":"if we set api_prefix \u003d \u0027swift\u0027 in tempest.conf, then\nthe url will be \"swiftinfo\", not \"swift/info\"?","commit_id":"15338a3accbc14d8d86a369a4df6eb27da8b2715"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"d5ce594616b0965c2b63108359ff6e1bf2233a87","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def list_capabilities(self, api_prefix\u003d\u0027\u0027):"},{"line_number":24,"context_line":"        self.skip_path()"},{"line_number":25,"context_line":"        try:"},{"line_number":26,"context_line":"            resp, body \u003d self.get(\u0027%sinfo\u0027 % api_prefix)"},{"line_number":27,"context_line":"        finally:"},{"line_number":28,"context_line":"            self.reset_path()"},{"line_number":29,"context_line":"        body \u003d json.loads(body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_e9fb7bbb","line":26,"range":{"start_line":26,"start_character":45,"end_line":26,"end_character":55},"in_reply_to":"7faddb67_42944844","updated":"2019-08-23 07:34:04.000000000","message":"you\u0027re right, there would have to be api_prefix \u003d \"swift/\" in tempest.conf","commit_id":"15338a3accbc14d8d86a369a4df6eb27da8b2715"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"9e432bddff3665177c349f704881c1481a8f7b20","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def list_capabilities(self, api_prefix\u003d\u0027\u0027):"},{"line_number":24,"context_line":"        self.skip_path()"},{"line_number":25,"context_line":"        try:"},{"line_number":26,"context_line":"            resp, body \u003d self.get(\u0027%sinfo\u0027 % api_prefix)"},{"line_number":27,"context_line":"        finally:"},{"line_number":28,"context_line":"            self.reset_path()"},{"line_number":29,"context_line":"        body \u003d json.loads(body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_9bfdb16f","line":26,"range":{"start_line":25,"start_character":8,"end_line":26,"end_character":56},"in_reply_to":"7faddb67_953820d3","updated":"2019-08-05 08:04:38.000000000","message":"It should be an empty string if not set.","commit_id":"15338a3accbc14d8d86a369a4df6eb27da8b2715"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"734aa9cc34f9aa3d22378901d4712b83dda2ef5e","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def list_capabilities(self, api_prefix\u003d\u0027\u0027):"},{"line_number":24,"context_line":"        self.skip_path()"},{"line_number":25,"context_line":"        try:"},{"line_number":26,"context_line":"            resp, body \u003d self.get(\u0027%sinfo\u0027 % api_prefix)"},{"line_number":27,"context_line":"        finally:"},{"line_number":28,"context_line":"            self.reset_path()"},{"line_number":29,"context_line":"        body \u003d json.loads(body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_2919d0d5","line":26,"range":{"start_line":25,"start_character":8,"end_line":26,"end_character":56},"in_reply_to":"7faddb67_9bfdb16f","updated":"2019-08-05 13:07:05.000000000","message":"LOL I should not review code after a long weekend of having fun. That is also why I +0 and not soft -1.  Thanks for the response and sorry for the miss read.","commit_id":"15338a3accbc14d8d86a369a4df6eb27da8b2715"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"26e20e963b66746a83a54dc49799e60d7e065297","unresolved":false,"context_lines":[{"line_number":21,"context_line":"class CapabilitiesClient(rest_client.RestClient):"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def list_capabilities(self, api_prefix\u003d\u0027\u0027):"},{"line_number":24,"context_line":"        self.skip_path()"},{"line_number":25,"context_line":"        try:"},{"line_number":26,"context_line":"            resp, body \u003d self.get(\"/\".join(filter(None, [api_prefix,\u0027info\u0027])))"},{"line_number":27,"context_line":"        finally:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_ce2bf0e7","line":24,"range":{"start_line":24,"start_character":8,"end_line":24,"end_character":24},"updated":"2019-08-27 12:45:42.000000000","message":"this method informs the rest_client to tell the auth instance to remove the full path, including your /swift using a filter.\n\nI searched for the use of the filter skip_path and API_version.  \nI do not see api_version filter being used any more except in a unit test. \nThe skip_path is used by the capabilities_Client and the tests test_healthcheck and test_crossdoamain. The test cases uses them to create rest calls outside a client on the fly. As long as they are there skip_path is need to function that way.\nCan I suggest that we create a filter to skip_path_at_version that will remove the path from v1/* on\nabc.com/swift/v1/api_version\nabc.com/swift/\n\nThis would not need a config item and could have a full unit test for the change.\n\nThis is just an idea let me know what you all think.","commit_id":"716d7aee0d6f82777e235a03a48b76fdaaa7e355"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"9c23cf19eef907935fe4dc9fd7d2a20f17af49e9","unresolved":false,"context_lines":[{"line_number":21,"context_line":"class CapabilitiesClient(rest_client.RestClient):"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def list_capabilities(self, api_prefix\u003d\u0027\u0027):"},{"line_number":24,"context_line":"        self.skip_path()"},{"line_number":25,"context_line":"        try:"},{"line_number":26,"context_line":"            resp, body \u003d self.get(\"/\".join(filter(None, [api_prefix,\u0027info\u0027])))"},{"line_number":27,"context_line":"        finally:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_8e462d21","line":24,"range":{"start_line":24,"start_character":8,"end_line":24,"end_character":24},"in_reply_to":"7faddb67_ce2bf0e7","updated":"2019-09-12 08:07:57.000000000","message":"yes, skip_path removes the full path:\nself.base_url changes from for example http://10.0.0.102:8080/v1/AUTH_20255b25960c4e2a8a1dea04e180ae29 to http://10.0.0.102:8080/\nbut then when the GET request is being made in rest_client.py \"info\" from line 26 is appended to the url, so the req_url is http://10.0.0.102:8080/info and the goal of this patch is to have the req_url equal to http://10.0.0.102:8080/swift/info. Therefore concatinating api_prefix (\u0027\u0027 or \u0027swift\u0027) and \u0027info\u0027 on the line 26 should be enough.","commit_id":"716d7aee0d6f82777e235a03a48b76fdaaa7e355"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"a2f1fac54e51a12c3a51e8f0e6fa234cedc2e79c","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def list_capabilities(self, api_prefix\u003d\u0027\u0027):"},{"line_number":24,"context_line":"        self.skip_path()"},{"line_number":25,"context_line":"        try:"},{"line_number":26,"context_line":"            resp, body \u003d self.get(\"/\".join(filter(None, [api_prefix,\u0027info\u0027])))"},{"line_number":27,"context_line":"        finally:"},{"line_number":28,"context_line":"            self.reset_path()"},{"line_number":29,"context_line":"        body \u003d json.loads(body)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_28539f6e","line":26,"range":{"start_line":26,"start_character":24,"end_line":26,"end_character":78},"updated":"2019-08-27 08:36:10.000000000","message":"if someone set api_prefix \u003d \u0027swift/\u0027 in tempest.conf, then\nthe url will be swift//info, so better to strip \"/\" from api_prefix first.","commit_id":"716d7aee0d6f82777e235a03a48b76fdaaa7e355"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"9c23cf19eef907935fe4dc9fd7d2a20f17af49e9","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def list_capabilities(self, api_prefix\u003d\u0027\u0027):"},{"line_number":24,"context_line":"        self.skip_path()"},{"line_number":25,"context_line":"        try:"},{"line_number":26,"context_line":"            resp, body \u003d self.get(\"/\".join(filter(None, [api_prefix,\u0027info\u0027])))"},{"line_number":27,"context_line":"        finally:"},{"line_number":28,"context_line":"            self.reset_path()"},{"line_number":29,"context_line":"        body \u003d json.loads(body)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_ce2bc52d","line":26,"range":{"start_line":26,"start_character":24,"end_line":26,"end_character":78},"in_reply_to":"7faddb67_28539f6e","updated":"2019-09-12 08:07:57.000000000","message":"Done","commit_id":"716d7aee0d6f82777e235a03a48b76fdaaa7e355"}]}
