)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"09b9944e4bddd04f0ddefb5f7ecd758f1e6a7d18","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Tempest modifies the base url fetched from endpoints by truncating the"},{"line_number":10,"context_line":"whole path which is incorrect in case of registered endpoint with an"},{"line_number":11,"context_line":"extra path, like in a case of Rados GW."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Normally a swift url is organised as host:port/info and"},{"line_number":14,"context_line":"host:port/v1/AUTH_\u003ctenant-id\u003e, see"},{"line_number":15,"context_line":"https://docs.openstack.org/api-ref/object-store/"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3fa7e38b_d4e21ad3","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":0},"updated":"2020-01-27 15:19:01.000000000","message":"you can add the new code change info not. replace the skip_path logic to raw_request for swift info/version related tests.","commit_id":"b0f2523ee975c6c76c966a0bc87d94ef236b02bd"}],"tempest/api/object_storage/test_crossdomain.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"09b9944e4bddd04f0ddefb5f7ecd758f1e6a7d18","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    @utils.requires_ext(extension\u003d\u0027crossdomain\u0027, service\u003d\u0027object\u0027)"},{"line_number":39,"context_line":"    def test_get_crossdomain_policy(self):"},{"line_number":40,"context_line":"        url \u003d self.account_client._get_base_version_url() + \"crossdomain.xml\""},{"line_number":41,"context_line":"        resp, body \u003d self.account_client.raw_request(url, \"GET\")"},{"line_number":42,"context_line":"        body \u003d body.decode()"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        self.assertTrue(body.startswith(self.xml_start) and"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_949a625d","line":41,"range":{"start_line":41,"start_character":62,"end_line":41,"end_character":64},"updated":"2020-01-27 15:19:01.000000000","message":"we need to add self._error_checker(resp, body) also to convert the failed return code to tempest exception.","commit_id":"b0f2523ee975c6c76c966a0bc87d94ef236b02bd"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"6980fed7b419d87020933bc9b99d40f0090dc51e","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    def test_get_crossdomain_policy(self):"},{"line_number":40,"context_line":"        url \u003d self.account_client._get_base_version_url() + \"crossdomain.xml\""},{"line_number":41,"context_line":"        resp, body \u003d self.account_client.raw_request(url, \"GET\")"},{"line_number":42,"context_line":"        self._error_checker(resp, body)"},{"line_number":43,"context_line":"        body \u003d body.decode()"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        self.assertTrue(body.startswith(self.xml_start) and"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_4948ccb2","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":27},"updated":"2020-01-28 03:26:50.000000000","message":"Did you want to make this \n\n self.account_client._error_checker(resp, body)\n\n?","commit_id":"5859dcad05444e38b4ec495a22038534a3c770f4"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"1a31d6a5e55947e5f84f6ad4ecbcc4f201174306","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    def test_get_crossdomain_policy(self):"},{"line_number":40,"context_line":"        url \u003d self.account_client._get_base_version_url() + \"crossdomain.xml\""},{"line_number":41,"context_line":"        resp, body \u003d self.account_client.raw_request(url, \"GET\")"},{"line_number":42,"context_line":"        self._error_checker(resp, body)"},{"line_number":43,"context_line":"        body \u003d body.decode()"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        self.assertTrue(body.startswith(self.xml_start) and"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_fffb6611","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":27},"in_reply_to":"3fa7e38b_4948ccb2","updated":"2020-01-28 07:26:13.000000000","message":"yeah, i can see i was hurrying to much yesterday .. such a stupid mistake","commit_id":"5859dcad05444e38b4ec495a22038534a3c770f4"}],"tempest/api/object_storage/test_healthcheck.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"09b9944e4bddd04f0ddefb5f7ecd758f1e6a7d18","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    def test_get_healthcheck(self):"},{"line_number":28,"context_line":"        url \u003d self.account_client._get_base_version_url() + \"healthcheck\""},{"line_number":29,"context_line":"        resp, _ \u003d self.account_client.raw_request(url, \"GET\")"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        # The target of the request is not any Swift resource. Therefore, the"},{"line_number":32,"context_line":"        # existence of response header is checked without a custom matcher."},{"line_number":33,"context_line":"        self.assertIn(\u0027content-length\u0027, resp)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_34a5aea0","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":0},"updated":"2020-01-27 15:19:01.000000000","message":"ditto","commit_id":"b0f2523ee975c6c76c966a0bc87d94ef236b02bd"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"6980fed7b419d87020933bc9b99d40f0090dc51e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    def test_get_healthcheck(self):"},{"line_number":28,"context_line":"        url \u003d self.account_client._get_base_version_url() + \"healthcheck\""},{"line_number":29,"context_line":"        resp, body \u003d self.account_client.raw_request(url, \"GET\")"},{"line_number":30,"context_line":"        self._error_checker(resp, body)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        # The target of the request is not any Swift resource. Therefore, the"},{"line_number":33,"context_line":"        # existence of response header is checked without a custom matcher."}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_29c79013","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":39},"updated":"2020-01-28 03:26:50.000000000","message":"ditto","commit_id":"5859dcad05444e38b4ec495a22038534a3c770f4"}],"tempest/lib/auth.py":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"4f6e99bf8b7fde89f4f4234a23e4e05eeb00109b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    return url"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"def skip_from_version(url):"},{"line_number":54,"context_line":"    \"\"\"Cuts out path part from version.\"\"\""},{"line_number":55,"context_line":"    parts \u003d urlparse.urlparse(url)"},{"line_number":56,"context_line":"    new_path \u003d parts.path.partition(\u0027/v\u0027)[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_7c004b36","line":53,"updated":"2019-12-04 18:55:06.000000000","message":"skip_including_and_after(url, part)\npart \u003d \u0027/v\u0027\n\nwould be more generic.","commit_id":"beb2201f538231edb12a5c801862c1405827530b"}],"tempest/lib/common/rest_client.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"091f062ea4715a50cd901bb5bdc9fb8f7fdcffcc","unresolved":false,"context_lines":[{"line_number":220,"context_line":"                self._skip_including_and_after_string)"},{"line_number":221,"context_line":"        return _filters"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"    def skip_path(self):"},{"line_number":224,"context_line":"        \"\"\"When set, ignore the path part of the base URL from the catalog\"\"\""},{"line_number":225,"context_line":"        self._skip_path \u003d True"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    def skip_including_and_after_string(self, string):"},{"line_number":228,"context_line":"        \"\"\"When set, cut out the path from and including the given string."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        Ignore the path part from and including the given string of the base"},{"line_number":231,"context_line":"        URL from the catalog."},{"line_number":232,"context_line":"        \"\"\""},{"line_number":233,"context_line":"        self._skip_including_and_after_string \u003d string"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    def reset_path(self):"},{"line_number":236,"context_line":"        \"\"\"When reset, use the base URL from the catalog as-is\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_ab8b1420","line":233,"range":{"start_line":223,"start_character":0,"end_line":233,"end_character":54},"updated":"2020-01-15 19:52:14.000000000","message":"these are very tricky way to modify the url, let\u0027s use the raw_request for path-less APi request like done for other service tests and later we can deprecate and remove this method.","commit_id":"8d160eb5d939125a19521710fa446ed2e9047d61"}],"tempest/lib/services/object_storage/capabilities_client.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"091f062ea4715a50cd901bb5bdc9fb8f7fdcffcc","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def list_capabilities(self):"},{"line_number":24,"context_line":"        self.skip_including_and_after_string(\u0027/v\u0027)"},{"line_number":25,"context_line":"        try:"},{"line_number":26,"context_line":"            resp, body \u003d self.get(\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":2,"id":"3fa7e38b_4bc38059","line":26,"range":{"start_line":26,"start_character":3,"end_line":26,"end_character":41},"updated":"2020-01-15 19:52:14.000000000","message":"this is main issue actually. we should directly go with raw_request here instead of adding the things to modify in rest client filters via new self.skip_including_and_after_string(\u0027/v\u0027) method or old self.skip_path().\n\nrest client filters used to modify the endpoints is very risky and vague way. That always create the problem. We fixed the problem for _api_version things where we used to modify the api version from endpoints. That also was leading the same issue of not supporting the customized way. \n\nSame things is solved for version API of other services. There also we need to request API without path for example https://158.69.72.151/compute/ in case of GET compute version API[1].\n\nTo solve the swift case which is similar. let\u0027s use the raw_request here instead of self.skip_path() way. Similar to compute case\n- https://github.com/openstack/tempest/blob/9594233ffd93066677aa601c594d55f3a4f188d8/tempest/lib/services/compute/versions_client.py#L30\n\nlater we can deprecate rest client skip_path() and remove which is only used for swift case.\n\n[1] https://docs.openstack.org/api-ref/compute/#list-all-major-versions","commit_id":"8d160eb5d939125a19521710fa446ed2e9047d61"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"09b9944e4bddd04f0ddefb5f7ecd758f1e6a7d18","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def list_capabilities(self):"},{"line_number":24,"context_line":"        try:"},{"line_number":25,"context_line":"            url \u003d self._get_base_version_url() + \u0027info\u0027"},{"line_number":26,"context_line":"            resp, body \u003d self.raw_request(url, \u0027GET\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":4,"id":"3fa7e38b_14b8b2c4","line":26,"range":{"start_line":26,"start_character":51,"end_line":26,"end_character":53},"updated":"2020-01-27 15:19:01.000000000","message":"ditto","commit_id":"b0f2523ee975c6c76c966a0bc87d94ef236b02bd"}]}
