)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"c70d286a5ba426b5e1cdb9380dc2337cdb47bde6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e1c4228f_5f445f08","updated":"2023-06-12 15:28:53.000000000","message":"probalby an improvement.\n\ndo we have a zuul test that hits the encrypted branches or do we need to test this locally to review properly?","commit_id":"75495b9f35d8c6232d0ccb8b268cd7754b6210ce"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"6448c9500c16593067bbbe7331f617f290d847eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e1fdcfb9_ffe74590","in_reply_to":"e1c4228f_5f445f08","updated":"2023-06-13 00:06:00.000000000","message":"\u003e do we have a zuul test that hits the encrypted branches\n\nNope -- we could probably pick either of swift-probetests-centos-7 or swift-probetests-centos-8-stream and turn encryption on, but I think https://bugs.launchpad.net/swift/+bug/2020667 is probably proof enough that we need *some* non-encryption tests (and tests enough to fully exercise the system), so longer term we\u0027ll want two probe test jobs even when we\u0027re entirely on py3.","commit_id":"75495b9f35d8c6232d0ccb8b268cd7754b6210ce"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b7c0d79dee79923ab9caa58c4c5a017ab7967435","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a3d4a8f8_fe60e42e","updated":"2024-01-17 16:54:33.000000000","message":"Bah! Just as well that the gate\u0027s currently busted...","commit_id":"fef86c5de14cf0dfb01c7e4ed5ba15f655c56f2d"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"5d6e060dcaa9aa5872efa3960c27c00c7425f081","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1c0a2253_b488de1d","updated":"2024-01-17 14:40:51.000000000","message":"this test already claimed to support encyrption - and I can\u0027t spot where it would fail.  I think this change is about making the assertions more unified an stronger in the encrypted case.","commit_id":"fef86c5de14cf0dfb01c7e4ed5ba15f655c56f2d"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"06d3f7bbca816336031298eed2f58cfbdfba23ff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"cabfc398_b9fbdae6","in_reply_to":"1c0a2253_b488de1d","updated":"2024-01-18 05:26:07.000000000","message":"What makes you think it claimed to support encryption before? It would previously fail at\n```\nself.assertEqual([\u0027meta-bar\u0027] * len(self.nodes), metadata)\n```\nbecause all of the `metadata` entries would be `None`, because we were doing direct HEADs looking for `X-Object-Meta-Bar` which wouldn\u0027t be present (having been shifted to `X-Object-Transient-Sysmeta-Crypto-Meta-Bar` when encrypted).","commit_id":"fef86c5de14cf0dfb01c7e4ed5ba15f655c56f2d"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"06d3f7bbca816336031298eed2f58cfbdfba23ff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"eca930ef_94458cee","updated":"2024-01-18 05:26:07.000000000","message":"Previously approved, and I\u0027m sick of falling down rabbit holes because of probe test failures when I run them locally (always w/ encryption).","commit_id":"7e3925aa9c004a0add738f2ed14c466c92a3f88d"}],"test/probe/test_object_versioning.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"c70d286a5ba426b5e1cdb9380dc2337cdb47bde6","unresolved":true,"context_lines":[{"line_number":317,"context_line":"        for node in self.nodes:"},{"line_number":318,"context_line":"            headers, etag \u003d self.direct_get(node, self.part)"},{"line_number":319,"context_line":"            etags.add(headers[\u0027X-Object-Sysmeta-Ec-Etag\u0027])"},{"line_number":320,"context_line":"            metadata.append(headers[\u0027X-Object-Meta-Bar\u0027])"},{"line_number":321,"context_line":"        self.assertEqual(1, len(etags))"},{"line_number":322,"context_line":"        self.assertEqual([\u0027meta-bar\u0027] * len(self.nodes), metadata)"},{"line_number":323,"context_line":"        # and removed form handoff"}],"source_content_type":"text/x-python","patch_set":2,"id":"b07cce91_473f4e43","side":"PARENT","line":320,"updated":"2023-06-12 15:28:53.000000000","message":"maybe better as:\n\n    metadata.append(headers.get(ecrypted-key, headers.get(meta-bar)))","commit_id":"eb3fe260d51d021674b2bccc4b9d1b4cc0757450"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"6448c9500c16593067bbbe7331f617f290d847eb","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        for node in self.nodes:"},{"line_number":318,"context_line":"            headers, etag \u003d self.direct_get(node, self.part)"},{"line_number":319,"context_line":"            etags.add(headers[\u0027X-Object-Sysmeta-Ec-Etag\u0027])"},{"line_number":320,"context_line":"            metadata.append(headers[\u0027X-Object-Meta-Bar\u0027])"},{"line_number":321,"context_line":"        self.assertEqual(1, len(etags))"},{"line_number":322,"context_line":"        self.assertEqual([\u0027meta-bar\u0027] * len(self.nodes), metadata)"},{"line_number":323,"context_line":"        # and removed form handoff"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ed06f4f_8b607a92","side":"PARENT","line":320,"in_reply_to":"b07cce91_473f4e43","updated":"2023-06-13 00:06:00.000000000","message":"I thought about that -- then thought we\u0027d miss the opportunity for a `KeyError` if *both* `\u0027X-Object-Meta-Bar\u0027` and `\u0027X-Object-Transient-Sysmeta-Crypto-Meta\u0027` are missing -- and now realize that it wouldn\u0027t throw a `KeyError` anyway, and if it *did*, I\u0027d have to rephrase as `encrypted_val \u003d headers.get(\u0027X-Object-Transient-Sysmeta-Crypto-Meta\u0027)` 😕\n\n#will \"fix?\"","commit_id":"eb3fe260d51d021674b2bccc4b9d1b4cc0757450"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"c70d286a5ba426b5e1cdb9380dc2337cdb47bde6","unresolved":true,"context_lines":[{"line_number":291,"context_line":"        # validate object in all locations"},{"line_number":292,"context_line":"        missing \u003d []"},{"line_number":293,"context_line":"        etags \u003d set()"},{"line_number":294,"context_line":"        metadata \u003d []"},{"line_number":295,"context_line":"        encrypted_meta \u003d set()"},{"line_number":296,"context_line":"        for node in self.nodes:"},{"line_number":297,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1360d96a_5ceba665","line":294,"updated":"2023-06-12 15:28:53.000000000","message":"I think using the set the ensure consistent results of encypted_meta is reasonable, but apparently the idea here was that we wanted to make sure all nodes had the correct metadata (not just that of the nodes that DID have the metadata they matched)","commit_id":"75495b9f35d8c6232d0ccb8b268cd7754b6210ce"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"6448c9500c16593067bbbe7331f617f290d847eb","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        # validate object in all locations"},{"line_number":292,"context_line":"        missing \u003d []"},{"line_number":293,"context_line":"        etags \u003d set()"},{"line_number":294,"context_line":"        metadata \u003d []"},{"line_number":295,"context_line":"        encrypted_meta \u003d set()"},{"line_number":296,"context_line":"        for node in self.nodes:"},{"line_number":297,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1bd4af57_04c2b0df","line":294,"in_reply_to":"1360d96a_5ceba665","updated":"2023-06-13 00:06:00.000000000","message":"Done","commit_id":"75495b9f35d8c6232d0ccb8b268cd7754b6210ce"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"c70d286a5ba426b5e1cdb9380dc2337cdb47bde6","unresolved":true,"context_lines":[{"line_number":306,"context_line":"            if encrypted_val:"},{"line_number":307,"context_line":"                encrypted_meta.add(encrypted_val)"},{"line_number":308,"context_line":"            else:"},{"line_number":309,"context_line":"                metadata.append(headers[\u0027X-Object-Meta-Bar\u0027])"},{"line_number":310,"context_line":"        if missing:"},{"line_number":311,"context_line":"            self.fail(\u0027Ran reconstructor config #%s to repair %r but \u0027"},{"line_number":312,"context_line":"                      \u0027found 404 on primary: %r\u0027 % ("}],"source_content_type":"text/x-python","patch_set":2,"id":"168e4b66_b8a88556","line":309,"updated":"2023-06-12 15:28:53.000000000","message":"I could be missing something, but I think the abstraction here is around \"which key should we pull metadata from\" instead of having the test bifricate into a totally different set of interfaces/assertions based on encrypted metadata keys or not.","commit_id":"75495b9f35d8c6232d0ccb8b268cd7754b6210ce"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"6448c9500c16593067bbbe7331f617f290d847eb","unresolved":false,"context_lines":[{"line_number":306,"context_line":"            if encrypted_val:"},{"line_number":307,"context_line":"                encrypted_meta.add(encrypted_val)"},{"line_number":308,"context_line":"            else:"},{"line_number":309,"context_line":"                metadata.append(headers[\u0027X-Object-Meta-Bar\u0027])"},{"line_number":310,"context_line":"        if missing:"},{"line_number":311,"context_line":"            self.fail(\u0027Ran reconstructor config #%s to repair %r but \u0027"},{"line_number":312,"context_line":"                      \u0027found 404 on primary: %r\u0027 % ("}],"source_content_type":"text/x-python","patch_set":2,"id":"95858437_72e8e718","line":309,"in_reply_to":"168e4b66_b8a88556","updated":"2023-06-13 00:06:00.000000000","message":"Ack","commit_id":"75495b9f35d8c6232d0ccb8b268cd7754b6210ce"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b7c0d79dee79923ab9caa58c4c5a017ab7967435","unresolved":true,"context_lines":[{"line_number":302,"context_line":"                continue"},{"line_number":303,"context_line":"            etags.add(headers[\u0027X-Object-Sysmeta-Ec-Etag\u0027])"},{"line_number":304,"context_line":"            metadata.append(headers.get("},{"line_number":305,"context_line":"                \u0027X-Object-Transient-Sysmeta-Crypto-Meta\u0027,"},{"line_number":306,"context_line":"                headers[\u0027X-Object-Meta-Bar\u0027]))"},{"line_number":307,"context_line":"        if missing:"},{"line_number":308,"context_line":"            self.fail(\u0027Ran reconstructor config #%s to repair %r but \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"e88c3ce6_b3e33c43","line":305,"range":{"start_line":305,"start_character":51,"end_line":305,"end_character":55},"updated":"2024-01-17 16:54:33.000000000","message":"This *can\u0027t* be right -- surely it should have `Meta-Bar`...","commit_id":"fef86c5de14cf0dfb01c7e4ed5ba15f655c56f2d"}]}
