)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"41b6640ac5d630e55bc80ce0d169a578cbb1602d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a6cf5b29_5ec38f17","updated":"2022-09-06 09:42:26.000000000","message":"On that note, we should make sure to actually run some manual api tests against a real server before checking these in.  That way we can be sure it actually is able to do what needs to be done.","commit_id":"c71cf7e68ac6fdf9f9b06fc30c0592ca3f5f8fe9"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"7fcf9549dd3686350f9401f0bdab18df18ff1b21","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"bbf9c5d1_ed66e5fe","updated":"2022-09-14 10:09:11.000000000","message":"I\u0027m curious to see if this passes.  I had thought that we needed a change on the server side to make the delete work (and hence, a depends-on).","commit_id":"2abee5eb6ede9948395d724d7dad6b8edb97a620"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"96cea42d89741e251106caa5b817d12478e61815","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"250eba73_c69a3a5e","updated":"2022-10-25 19:18:48.000000000","message":"Also, I can delete a secret even if it has consumers.\nIs that supposed to be blocked by the API or is that a client only feature?","commit_id":"07a0b0a84609b02cc3488f42fe1ccebe90b98f12"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"99f394b88210831e47e9dbf68d57437c4f273bc8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"03e57228_d5445334","updated":"2022-10-05 14:56:20.000000000","message":"Looking forward to this","commit_id":"07a0b0a84609b02cc3488f42fe1ccebe90b98f12"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"e91dad20e6bbff60f294b27f5a1aa5742e8e1456","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":20,"id":"0794359e_5cff1f44","in_reply_to":"250eba73_c69a3a5e","updated":"2022-10-27 10:00:35.000000000","message":"AFAIK the DELETE API call is not modified for backwards compatibility.","commit_id":"07a0b0a84609b02cc3488f42fe1ccebe90b98f12"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"b4e4e73fe6b2f24b2ee6db44e3db9fbe1fba58f9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"f05e92bd_9a91d1b1","updated":"2022-11-12 00:51:11.000000000","message":"FYI, I have posted the Octavia patch that uses this:\nhttps://review.opendev.org/c/openstack/octavia/+/864308","commit_id":"170b935e6f09a22557ebebed8a772e0d41fb312c"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"d4c0860906fd6256ca7733ba15ce4c4ba7742374","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"a084607a_26b8a4b7","updated":"2023-01-05 09:56:55.000000000","message":"There are still unresolved comments","commit_id":"037b422b2f71d7d309986507fb4a0291caaae6e0"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"954cf214da98d06b3c8ac21ec8d90ab192a2e313","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"d3e99873_757040ea","updated":"2023-01-18 19:10:09.000000000","message":"LGTM\nThe Octavia patch that uses this feature now passes the tempest tests.\nThanks!","commit_id":"3ffa1600af21620d7f141faee9389c7e7e9079e3"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"47a12a52264d1f5ec88073d7fc526589f0f36024","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"45f9b3cb_f03dd6d9","updated":"2023-01-18 15:29:34.000000000","message":"Looks good so far.  Lets see what Michael Johnson says before merging.","commit_id":"3ffa1600af21620d7f141faee9389c7e7e9079e3"}],"barbicanclient/tests/test_client.py":[{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"4b8ed88943b784e3c124350a484b13bd385f02d0","unresolved":true,"context_lines":[{"line_number":32,"context_line":"_DEFAULT_MICROVERSION \u003d (1, 1)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"_DEFAULT_MICROVERSION \u003d (1, 1)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class TestClient(testtools.TestCase):"}],"source_content_type":"text/x-python","patch_set":29,"id":"7b04adab_965c30c5","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":6},"updated":"2023-01-18 11:00:21.000000000","message":"no longer needed","commit_id":"3795656353c371519167d55a6fcbbb489cdadbd2"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"f0db79b35b19d42aae63ecb9ee15eb69b51e062d","unresolved":false,"context_lines":[{"line_number":32,"context_line":"_DEFAULT_MICROVERSION \u003d (1, 1)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"_DEFAULT_MICROVERSION \u003d (1, 1)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class TestClient(testtools.TestCase):"}],"source_content_type":"text/x-python","patch_set":29,"id":"bbe86ce6_c3c8b1f5","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":6},"in_reply_to":"7b04adab_965c30c5","updated":"2023-01-18 11:14:36.000000000","message":"Done","commit_id":"3795656353c371519167d55a6fcbbb489cdadbd2"}],"barbicanclient/tests/v1/test_secrets.py":[{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"599512f060671a9dce41f983f30512806f492caa","unresolved":true,"context_lines":[{"line_number":45,"context_line":"            secret[\u0027secret_ref\u0027] \u003d secret_ref"},{"line_number":46,"context_line":"        if content_types_dict:"},{"line_number":47,"context_line":"            secret[\u0027content_types\u0027] \u003d content_types_dict"},{"line_number":48,"context_line":"        if consumers:"},{"line_number":49,"context_line":"            secret[\u0027consumers\u0027] \u003d consumers"},{"line_number":50,"context_line":"        return secret"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1db7bec2_b40ff543","line":49,"range":{"start_line":48,"start_character":1,"end_line":49,"end_character":43},"updated":"2022-09-06 09:45:24.000000000","message":"How are you handling the version differences?","commit_id":"c71cf7e68ac6fdf9f9b06fc30c0592ca3f5f8fe9"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"056b0def94b475b977f4adfb0f6404cb3d785f4e","unresolved":false,"context_lines":[{"line_number":45,"context_line":"            secret[\u0027secret_ref\u0027] \u003d secret_ref"},{"line_number":46,"context_line":"        if content_types_dict:"},{"line_number":47,"context_line":"            secret[\u0027content_types\u0027] \u003d content_types_dict"},{"line_number":48,"context_line":"        if consumers:"},{"line_number":49,"context_line":"            secret[\u0027consumers\u0027] \u003d consumers"},{"line_number":50,"context_line":"        return secret"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"6eaebb6f_ad61e25d","line":49,"range":{"start_line":48,"start_character":1,"end_line":49,"end_character":43},"in_reply_to":"1db7bec2_b40ff543","updated":"2022-12-08 10:40:16.000000000","message":"Done","commit_id":"c71cf7e68ac6fdf9f9b06fc30c0592ca3f5f8fe9"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"599512f060671a9dce41f983f30512806f492caa","unresolved":true,"context_lines":[{"line_number":595,"context_line":"                         self.responses.last_request.url)"},{"line_number":596,"context_line":"        self.assertEqual(self.secret.consumer, body)"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"    def test_should_get_total(self):"},{"line_number":600,"context_line":"        self.responses.get(self.entity_base, json\u003d{\u0027total\u0027: 1})"},{"line_number":601,"context_line":"        total \u003d self.manager.total()"}],"source_content_type":"text/x-python","patch_set":2,"id":"f1a09ab5_a0a01727","line":598,"updated":"2022-09-06 09:45:24.000000000","message":"For the above, how are version differences being addressed?","commit_id":"c71cf7e68ac6fdf9f9b06fc30c0592ca3f5f8fe9"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"65798a91ae0211acb41433d890af22f7ea610b71","unresolved":false,"context_lines":[{"line_number":595,"context_line":"                         self.responses.last_request.url)"},{"line_number":596,"context_line":"        self.assertEqual(self.secret.consumer, body)"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"    def test_should_get_total(self):"},{"line_number":600,"context_line":"        self.responses.get(self.entity_base, json\u003d{\u0027total\u0027: 1})"},{"line_number":601,"context_line":"        total \u003d self.manager.total()"}],"source_content_type":"text/x-python","patch_set":2,"id":"df395c9e_ed7166c4","line":598,"in_reply_to":"f1a09ab5_a0a01727","updated":"2022-09-22 08:14:49.000000000","message":"Done","commit_id":"c71cf7e68ac6fdf9f9b06fc30c0592ca3f5f8fe9"},{"author":{"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"},"change_message_id":"5c7b81100a249b8bcf81f5185f5a80626166b6cc","unresolved":true,"context_lines":[{"line_number":32,"context_line":"        self.payload_content_type \u003d \u0027text/plain\u0027"},{"line_number":33,"context_line":"        self.algorithm \u003d \u0027AES\u0027"},{"line_number":34,"context_line":"        self.created \u003d str(timeutils.utcnow())"},{"line_number":35,"context_line":"        self.consumer \u003d {\u0027service\u0027: \u0027service_test\u0027,"},{"line_number":36,"context_line":"                         \u0027resource_type\u0027: \u0027type_test\u0027,"},{"line_number":37,"context_line":"                         \u0027resource_id\u0027: \u0027id_test\u0027}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        self.secret_dict \u003d {\u0027name\u0027: self.name,"},{"line_number":40,"context_line":"                            \u0027status\u0027: \u0027ACTIVE\u0027,"}],"source_content_type":"text/x-python","patch_set":20,"id":"463c3597_cc0591ac","line":37,"range":{"start_line":35,"start_character":24,"end_line":37,"end_character":50},"updated":"2022-11-10 16:10:08.000000000","message":"I realize this is how we handle consumers for containers as well, but it seems like bad design to me to have some entities represented by classes and others just use base types like this one.\n\nA better approach might be to create something like a named tuple e.g.\n\n    SecretConsumer \u003d namedtuple(\u0027SecretConsumer\u0027, [\u0027service\u0027, \u0027resource_type\u0027, \u0027resource_id\u0027])\n    \nso that you can do things like:\n\n    my_consumer \u003d SecretConsumer(\u0027compute\u0027, \u0027instance\u0027, \u0027UUUU-UUUU-IIII-DDDD\u0027)\n    my_consumer.service \u003d\u003d \u0027compute\u0027 # is True\n    \nthat would show users exactly how a Secret Consumer should be created without having to make a full class for it.\n\nI don\u0027t expect us to make that change now, but something to consider for openstacksdk","commit_id":"07a0b0a84609b02cc3488f42fe1ccebe90b98f12"},{"author":{"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"},"change_message_id":"cc89df662f7c6f17f6c25a9ee333f9c3eea08cc6","unresolved":true,"context_lines":[{"line_number":571,"context_line":"        data \u003d self.secret.get_dict(self.entity_href,"},{"line_number":572,"context_line":"                                    consumers\u003d[self.secret.consumer])"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"        self.responses.post(self.entity_href + \u0027/consumers/\u0027, json\u003ddata)"},{"line_number":575,"context_line":"        secret \u003d self.manager.register_consumer("},{"line_number":576,"context_line":"            self.entity_href, self.secret.consumer.get(\u0027service\u0027),"},{"line_number":577,"context_line":"            self.secret.consumer.get(\u0027resource_type\u0027),"}],"source_content_type":"text/x-python","patch_set":21,"id":"bfa25498_5afd60e3","line":574,"range":{"start_line":574,"start_character":67,"end_line":574,"end_character":71},"updated":"2022-11-14 18:53:34.000000000","message":"this is not right, the response from the /v1/secrets/SECRET_ID/consumers/ endpoint looks like:\n\n    {\n        \"consumers\": [\n            {\n                \"created\": \"2022-11-09T21:09:49\",\n                \"updated\": \"2022-11-09T21:09:49\",\n                \"status\": \"ACTIVE\",\n                \"service\": \"storage\",\n                \"resource_type\": \"volume\",\n                \"resource_id\": \"12345\"\n            }\n         ],\n         \"total\": 1\n    }\n    \nthat is to say, it does not include the secret\u0027s data.  `get_dict` here is returning the response from the /v1/secrets/SECRET_ID/ endpoint.  We either need a new helper function, or fix the data dict here to represent the actual response from the API.","commit_id":"170b935e6f09a22557ebebed8a772e0d41fb312c"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"fe21eae8636bc71b7e0aec49abd7f7b163600a9f","unresolved":true,"context_lines":[{"line_number":571,"context_line":"        data \u003d self.secret.get_dict(self.entity_href,"},{"line_number":572,"context_line":"                                    consumers\u003d[self.secret.consumer])"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"        self.responses.post(self.entity_href + \u0027/consumers/\u0027, json\u003ddata)"},{"line_number":575,"context_line":"        secret \u003d self.manager.register_consumer("},{"line_number":576,"context_line":"            self.entity_href, self.secret.consumer.get(\u0027service\u0027),"},{"line_number":577,"context_line":"            self.secret.consumer.get(\u0027resource_type\u0027),"}],"source_content_type":"text/x-python","patch_set":21,"id":"96e92e58_4374f974","line":574,"range":{"start_line":574,"start_character":67,"end_line":574,"end_character":71},"in_reply_to":"bfa25498_5afd60e3","updated":"2022-11-24 15:04:14.000000000","message":"No, I think this is right.  The response from the POST to  /v1/secrets/SECRET_ID/consumers/ is a secret (which includes the updated consumers)\n\nWhat you have noted above is the response to the GET of  /v1/secrets/SECRET_ID/consumers/\n\nYes - this is somewhat inconsistent, but its consistent with the way we did container consumers.","commit_id":"170b935e6f09a22557ebebed8a772e0d41fb312c"}],"barbicanclient/v1/client.py":[{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"fe21eae8636bc71b7e0aec49abd7f7b163600a9f","unresolved":true,"context_lines":[{"line_number":41,"context_line":"        `barbicanclient.client.Client`.  It\u0027s recommended to use that"},{"line_number":42,"context_line":"        function instead of making instances of this class directly."},{"line_number":43,"context_line":"        \"\"\""},{"line_number":44,"context_line":"        microversion \u003d kwargs.pop(\u0027microversion\u0027, \u00271.1\u0027)"},{"line_number":45,"context_line":"        if not self._is_supported_microversion("},{"line_number":46,"context_line":"            session,"},{"line_number":47,"context_line":"            kwargs.get(\u0027endpoint\u0027),"}],"source_content_type":"text/x-python","patch_set":21,"id":"ec962890_dbe32bd2","line":44,"range":{"start_line":44,"start_character":50,"end_line":44,"end_character":55},"updated":"2022-11-24 15:04:14.000000000","message":"This should be a constant that we would update as client versions change.\nSee note below though ..","commit_id":"170b935e6f09a22557ebebed8a772e0d41fb312c"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"fe21eae8636bc71b7e0aec49abd7f7b163600a9f","unresolved":true,"context_lines":[{"line_number":52,"context_line":"            kwargs.get(\u0027region_name\u0027),"},{"line_number":53,"context_line":"            microversion"},{"line_number":54,"context_line":"        ):"},{"line_number":55,"context_line":"            raise ValueError("},{"line_number":56,"context_line":"                \"Endpoint does not support microversion {}\".format("},{"line_number":57,"context_line":"                    microversion"},{"line_number":58,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":21,"id":"2815d628_baa5d330","line":55,"updated":"2022-11-24 15:04:14.000000000","message":"Are we comfortable with the implications of this change?\n\nThat is, if someone updates their client but not their server, then their client\ncalls will fail unless they explicitly specify that the microversion they want is 1.0.  This is despite the fact that more likely than not, they are not using secret consumers - and so would probably be just fine.\n\nThis breaking behavior will be repeated every time we increment the client version.\n\nIn the previous patch, if the server did not support the requested microversion, we ended up negotiating the best version that the server did support - and warned the user accordingly.  While not as clean, it might provide for a better user experience and also allow us more flexibility to make changes without worrying about breaking changes.","commit_id":"170b935e6f09a22557ebebed8a772e0d41fb312c"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"1ceded236358be1d0e1e6d19c0387878a4641bfa","unresolved":true,"context_lines":[{"line_number":52,"context_line":"            kwargs.get(\u0027region_name\u0027),"},{"line_number":53,"context_line":"            microversion"},{"line_number":54,"context_line":"        ):"},{"line_number":55,"context_line":"            raise ValueError("},{"line_number":56,"context_line":"                \"Endpoint does not support microversion {}\".format("},{"line_number":57,"context_line":"                    microversion"},{"line_number":58,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":21,"id":"2e13bf2e_79f8eef9","line":55,"in_reply_to":"2815d628_baa5d330","updated":"2023-01-11 09:55:19.000000000","message":"+1","commit_id":"170b935e6f09a22557ebebed8a772e0d41fb312c"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"33b494428acfb0a26c2c0c56a065f5a3b04597b8","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            kwargs.get(\u0027region_name\u0027),"},{"line_number":53,"context_line":"            microversion"},{"line_number":54,"context_line":"        ):"},{"line_number":55,"context_line":"            raise ValueError("},{"line_number":56,"context_line":"                \"Endpoint does not support microversion {}\".format("},{"line_number":57,"context_line":"                    microversion"},{"line_number":58,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":21,"id":"78b0558c_dac1c203","line":55,"in_reply_to":"2e13bf2e_79f8eef9","updated":"2023-01-18 10:50:19.000000000","message":"This should be addressed now with the changes in https://review.opendev.org/c/openstack/python-barbicanclient/+/870077/11","commit_id":"170b935e6f09a22557ebebed8a772e0d41fb312c"}],"barbicanclient/v1/secrets.py":[{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"599512f060671a9dce41f983f30512806f492caa","unresolved":true,"context_lines":[{"line_number":657,"context_line":"            Secret(api\u003dself._api, **s)"},{"line_number":658,"context_line":"            for s in response.get(\u0027secrets\u0027, [])"},{"line_number":659,"context_line":"        ]"},{"line_number":660,"context_line":""},{"line_number":661,"context_line":"    def register_consumer(self, secret_ref, name, url):"},{"line_number":662,"context_line":"        \"\"\"Add a consumer to the secret"},{"line_number":663,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9dc14315_1c8a1e81","line":660,"updated":"2022-09-06 09:45:24.000000000","message":"Note - we also need the relevant annotations for version 1.1","commit_id":"c71cf7e68ac6fdf9f9b06fc30c0592ca3f5f8fe9"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"65798a91ae0211acb41433d890af22f7ea610b71","unresolved":false,"context_lines":[{"line_number":657,"context_line":"            Secret(api\u003dself._api, **s)"},{"line_number":658,"context_line":"            for s in response.get(\u0027secrets\u0027, [])"},{"line_number":659,"context_line":"        ]"},{"line_number":660,"context_line":""},{"line_number":661,"context_line":"    def register_consumer(self, secret_ref, name, url):"},{"line_number":662,"context_line":"        \"\"\"Add a consumer to the secret"},{"line_number":663,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1444a242_14c01924","line":660,"in_reply_to":"9dc14315_1c8a1e81","updated":"2022-09-22 08:14:49.000000000","message":"Done","commit_id":"c71cf7e68ac6fdf9f9b06fc30c0592ca3f5f8fe9"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"cd008cdc0346574b721622db609ff2d23ea07b36","unresolved":true,"context_lines":[{"line_number":675,"context_line":"            secret_ref, \u0027Secret\u0027)"},{"line_number":676,"context_line":"        href \u003d \u0027{0}/{1}/consumers\u0027.format(self._entity, secret_uuid)"},{"line_number":677,"context_line":"        consumer_dict \u003d dict()"},{"line_number":678,"context_line":"        consumer_dict[\u0027name\u0027] \u003d name"},{"line_number":679,"context_line":"        consumer_dict[\u0027URL\u0027] \u003d url"},{"line_number":680,"context_line":""},{"line_number":681,"context_line":"        response \u003d self._api.post(href, json\u003dconsumer_dict)"},{"line_number":682,"context_line":"        return Secret(api\u003dself._api, **response)"}],"source_content_type":"text/x-python","patch_set":2,"id":"f7f98771_96cfda92","line":679,"range":{"start_line":678,"start_character":1,"end_line":679,"end_character":34},"updated":"2022-09-06 09:40:02.000000000","message":"This doesn\u0027t conform to the secret consumer API as far as I recall.\n\nhttps://opendev.org/openstack/barbican/src/branch/master/barbican/model/models.py#L1510-L1568","commit_id":"c71cf7e68ac6fdf9f9b06fc30c0592ca3f5f8fe9"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"65798a91ae0211acb41433d890af22f7ea610b71","unresolved":false,"context_lines":[{"line_number":675,"context_line":"            secret_ref, \u0027Secret\u0027)"},{"line_number":676,"context_line":"        href \u003d \u0027{0}/{1}/consumers\u0027.format(self._entity, secret_uuid)"},{"line_number":677,"context_line":"        consumer_dict \u003d dict()"},{"line_number":678,"context_line":"        consumer_dict[\u0027name\u0027] \u003d name"},{"line_number":679,"context_line":"        consumer_dict[\u0027URL\u0027] \u003d url"},{"line_number":680,"context_line":""},{"line_number":681,"context_line":"        response \u003d self._api.post(href, json\u003dconsumer_dict)"},{"line_number":682,"context_line":"        return Secret(api\u003dself._api, **response)"}],"source_content_type":"text/x-python","patch_set":2,"id":"140c35b6_abb33a1d","line":679,"range":{"start_line":678,"start_character":1,"end_line":679,"end_character":34},"in_reply_to":"35d0679a_c3bb23b7","updated":"2022-09-22 08:14:49.000000000","message":"Done","commit_id":"c71cf7e68ac6fdf9f9b06fc30c0592ca3f5f8fe9"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"4ebb35167704a3ad40c06a136a0115fa6ce134db","unresolved":true,"context_lines":[{"line_number":675,"context_line":"            secret_ref, \u0027Secret\u0027)"},{"line_number":676,"context_line":"        href \u003d \u0027{0}/{1}/consumers\u0027.format(self._entity, secret_uuid)"},{"line_number":677,"context_line":"        consumer_dict \u003d dict()"},{"line_number":678,"context_line":"        consumer_dict[\u0027name\u0027] \u003d name"},{"line_number":679,"context_line":"        consumer_dict[\u0027URL\u0027] \u003d url"},{"line_number":680,"context_line":""},{"line_number":681,"context_line":"        response \u003d self._api.post(href, json\u003dconsumer_dict)"},{"line_number":682,"context_line":"        return Secret(api\u003dself._api, **response)"}],"source_content_type":"text/x-python","patch_set":2,"id":"35d0679a_c3bb23b7","line":679,"range":{"start_line":678,"start_character":1,"end_line":679,"end_character":34},"in_reply_to":"f7f98771_96cfda92","updated":"2022-09-06 11:36:36.000000000","message":"Yeah, it\u0027s using the fields of the container consumer \n\nhttps://opendev.org/openstack/barbican/src/branch/master/barbican/model/models.py#L825-L827\n\nThe tests pass, because those are unit tests, not functional tests","commit_id":"c71cf7e68ac6fdf9f9b06fc30c0592ca3f5f8fe9"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"42c846639ac5a477d9a61deda234d86c9ebefeaf","unresolved":true,"context_lines":[{"line_number":311,"context_line":"        self._payload_content_encoding \u003d value"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    def _fetch_payload(self):"},{"line_number":314,"context_line":"        if not self.payload_content_type and not self.content_types:"},{"line_number":315,"context_line":"            raise ValueError(\u0027Secret has no encrypted data to decrypt.\u0027)"},{"line_number":316,"context_line":"        elif not self.payload_content_type:"},{"line_number":317,"context_line":"            raise ValueError(\"Must specify decrypt content-type as \""}],"source_content_type":"text/x-python","patch_set":20,"id":"e3522d24_47477b70","line":314,"updated":"2022-10-25 18:56:21.000000000","message":"This seems to trigger.","commit_id":"07a0b0a84609b02cc3488f42fe1ccebe90b98f12"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"1b0770931f0ab57b2a1adbb616a06e2dadb372ba","unresolved":true,"context_lines":[{"line_number":694,"context_line":"        consumer_dict[\u0027resource_type\u0027] \u003d resource_type"},{"line_number":695,"context_line":"        consumer_dict[\u0027resource_id\u0027] \u003d resource_id"},{"line_number":696,"context_line":""},{"line_number":697,"context_line":"        response \u003d self._api.post(href, json\u003dconsumer_dict)"},{"line_number":698,"context_line":"        return Secret(api\u003dself._api, **response)"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"    @api_versions.wraps(\"1.1\")"}],"source_content_type":"text/x-python","patch_set":20,"id":"153592aa_6e34708a","line":697,"updated":"2022-10-25 18:59:46.000000000","message":"There is no content_types in this response dict.","commit_id":"07a0b0a84609b02cc3488f42fe1ccebe90b98f12"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"fe21eae8636bc71b7e0aec49abd7f7b163600a9f","unresolved":true,"context_lines":[{"line_number":694,"context_line":"        consumer_dict[\u0027resource_type\u0027] \u003d resource_type"},{"line_number":695,"context_line":"        consumer_dict[\u0027resource_id\u0027] \u003d resource_id"},{"line_number":696,"context_line":""},{"line_number":697,"context_line":"        response \u003d self._api.post(href, json\u003dconsumer_dict)"},{"line_number":698,"context_line":"        return Secret(api\u003dself._api, **response)"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"    @api_versions.wraps(\"1.1\")"}],"source_content_type":"text/x-python","patch_set":20,"id":"b677fd79_3663a982","line":697,"in_reply_to":"153592aa_6e34708a","updated":"2022-11-24 15:04:14.000000000","message":"I think what we are seeing here is a bug on the server side.\n\nThe response here is supposed to be a secret - so that the code in the next line should be correct.\n\nHowever, it appears that what is being returned from the server is invalid.  Specifically,  this response is provided by:\n\nhttps://opendev.org/openstack/barbican/src/branch/master/barbican/api/controllers/consumers.py#L340\n\nwhich is defined here:\n\nhttps://opendev.org/openstack/barbican/src/branch/master/barbican/api/controllers/consumers.py#L390-L397\n\nbut, if we look at the response from a secret.get(), we see this instead:\n\nhttps://opendev.org/openstack/barbican/src/branch/master/barbican/api/controllers/secrets.py#L133-L146\n\n-- which clearly has all the content types and transport key stuff added etc.","commit_id":"07a0b0a84609b02cc3488f42fe1ccebe90b98f12"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"33b494428acfb0a26c2c0c56a065f5a3b04597b8","unresolved":false,"context_lines":[{"line_number":694,"context_line":"        consumer_dict[\u0027resource_type\u0027] \u003d resource_type"},{"line_number":695,"context_line":"        consumer_dict[\u0027resource_id\u0027] \u003d resource_id"},{"line_number":696,"context_line":""},{"line_number":697,"context_line":"        response \u003d self._api.post(href, json\u003dconsumer_dict)"},{"line_number":698,"context_line":"        return Secret(api\u003dself._api, **response)"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"    @api_versions.wraps(\"1.1\")"}],"source_content_type":"text/x-python","patch_set":20,"id":"8ae262af_b29319ea","line":697,"in_reply_to":"8b8e8b66_03c460dc","updated":"2023-01-18 10:50:19.000000000","message":"Done","commit_id":"07a0b0a84609b02cc3488f42fe1ccebe90b98f12"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"1ceded236358be1d0e1e6d19c0387878a4641bfa","unresolved":true,"context_lines":[{"line_number":694,"context_line":"        consumer_dict[\u0027resource_type\u0027] \u003d resource_type"},{"line_number":695,"context_line":"        consumer_dict[\u0027resource_id\u0027] \u003d resource_id"},{"line_number":696,"context_line":""},{"line_number":697,"context_line":"        response \u003d self._api.post(href, json\u003dconsumer_dict)"},{"line_number":698,"context_line":"        return Secret(api\u003dself._api, **response)"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"    @api_versions.wraps(\"1.1\")"}],"source_content_type":"text/x-python","patch_set":20,"id":"8b8e8b66_03c460dc","line":697,"in_reply_to":"b677fd79_3663a982","updated":"2023-01-11 09:55:19.000000000","message":"I submitted a patch to add content_types responses here: https://review.opendev.org/c/openstack/barbican/+/869801","commit_id":"07a0b0a84609b02cc3488f42fe1ccebe90b98f12"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"704c706aa624db56f4a11c12777b8965a266da26","unresolved":true,"context_lines":[{"line_number":695,"context_line":"        consumer_dict[\u0027resource_id\u0027] \u003d resource_id"},{"line_number":696,"context_line":""},{"line_number":697,"context_line":"        response \u003d self._api.post(href, json\u003dconsumer_dict)"},{"line_number":698,"context_line":"        return Secret(api\u003dself._api, **response)"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"    @api_versions.wraps(\"1.1\")"},{"line_number":701,"context_line":"    def remove_consumer(self, secret_ref, service,"}],"source_content_type":"text/x-python","patch_set":20,"id":"e411824c_2fe39618","line":698,"updated":"2022-10-25 18:38:24.000000000","message":"Something isn\u0027t working here. I get back \"Secret does not contain a payload\" but it works fine with just a get().","commit_id":"07a0b0a84609b02cc3488f42fe1ccebe90b98f12"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"fe21eae8636bc71b7e0aec49abd7f7b163600a9f","unresolved":true,"context_lines":[{"line_number":695,"context_line":"        consumer_dict[\u0027resource_id\u0027] \u003d resource_id"},{"line_number":696,"context_line":""},{"line_number":697,"context_line":"        response \u003d self._api.post(href, json\u003dconsumer_dict)"},{"line_number":698,"context_line":"        return Secret(api\u003dself._api, **response)"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"    @api_versions.wraps(\"1.1\")"},{"line_number":701,"context_line":"    def remove_consumer(self, secret_ref, service,"}],"source_content_type":"text/x-python","patch_set":20,"id":"e1fcce51_36105922","line":698,"in_reply_to":"7c3718cf_3d2620ce","updated":"2022-11-24 15:04:14.000000000","message":"see above.  I think it should work maybe if the server code is correct?","commit_id":"07a0b0a84609b02cc3488f42fe1ccebe90b98f12"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"1d1948a32b167bb4402bdfca2acef919110a9f32","unresolved":true,"context_lines":[{"line_number":695,"context_line":"        consumer_dict[\u0027resource_id\u0027] \u003d resource_id"},{"line_number":696,"context_line":""},{"line_number":697,"context_line":"        response \u003d self._api.post(href, json\u003dconsumer_dict)"},{"line_number":698,"context_line":"        return Secret(api\u003dself._api, **response)"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"    @api_versions.wraps(\"1.1\")"},{"line_number":701,"context_line":"    def remove_consumer(self, secret_ref, service,"}],"source_content_type":"text/x-python","patch_set":20,"id":"7c3718cf_3d2620ce","line":698,"in_reply_to":"e411824c_2fe39618","updated":"2022-10-25 19:07:17.000000000","message":"I changed this line to:\nreturn Secret(api\u003dself._api, secret_ref\u003dsecret_ref)\nand it now works correctly.","commit_id":"07a0b0a84609b02cc3488f42fe1ccebe90b98f12"},{"author":{"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"},"change_message_id":"109fc225ce04591759b2b96826fc947910ec7e5b","unresolved":true,"context_lines":[{"line_number":635,"context_line":"                  \u0027{0} of service {1} for resource type {2}\u0027"},{"line_number":636,"context_line":"                  \u0027with resource id {3}\u0027.format(secret_ref, service,"},{"line_number":637,"context_line":"                                                resource_type, resource_id))"},{"line_number":638,"context_line":"        if self._api.microversion \u003d\u003d (1, 0):"},{"line_number":639,"context_line":"            raise NotImplementedError("},{"line_number":640,"context_line":"                \"Server does not support secret consumers.  Minimum \""},{"line_number":641,"context_line":"                \"key-manager microversion required: 1.1\")"},{"line_number":642,"context_line":"        secret_uuid \u003d base.validate_ref_and_return_uuid("},{"line_number":643,"context_line":"            secret_ref, \u0027Secret\u0027)"},{"line_number":644,"context_line":"        href \u003d \u0027{0}/{1}/consumers\u0027.format(self._entity, secret_uuid)"}],"source_content_type":"text/x-python","patch_set":21,"id":"02cfa12b_7e582f4f","line":641,"range":{"start_line":638,"start_character":8,"end_line":641,"end_character":57},"updated":"2022-11-10 21:18:11.000000000","message":"I\u0027m channeling the Zen of Python here.  Specifically: \"Simple is better than complex.\"\n\nThe annotation framework in earlier versions of this patch chain is a nice use of metaprogramming, and it could be useful if we get into a situation where we\u0027re having to support lots of microvesrions at once.  For the purposes of implementing secret consumers though, we can the same result from this (and the below) if statements.\n\nIf we find ourselves adding more microversions in the future then we can reconsider the multimethod approach, but I think this is good enough for now.","commit_id":"170b935e6f09a22557ebebed8a772e0d41fb312c"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"fe21eae8636bc71b7e0aec49abd7f7b163600a9f","unresolved":true,"context_lines":[{"line_number":635,"context_line":"                  \u0027{0} of service {1} for resource type {2}\u0027"},{"line_number":636,"context_line":"                  \u0027with resource id {3}\u0027.format(secret_ref, service,"},{"line_number":637,"context_line":"                                                resource_type, resource_id))"},{"line_number":638,"context_line":"        if self._api.microversion \u003d\u003d (1, 0):"},{"line_number":639,"context_line":"            raise NotImplementedError("},{"line_number":640,"context_line":"                \"Server does not support secret consumers.  Minimum \""},{"line_number":641,"context_line":"                \"key-manager microversion required: 1.1\")"},{"line_number":642,"context_line":"        secret_uuid \u003d base.validate_ref_and_return_uuid("},{"line_number":643,"context_line":"            secret_ref, \u0027Secret\u0027)"},{"line_number":644,"context_line":"        href \u003d \u0027{0}/{1}/consumers\u0027.format(self._entity, secret_uuid)"}],"source_content_type":"text/x-python","patch_set":21,"id":"f40c0e2b_aed63b29","line":641,"range":{"start_line":638,"start_character":8,"end_line":641,"end_character":57},"in_reply_to":"02cfa12b_7e582f4f","updated":"2022-11-24 15:04:14.000000000","message":"I also appreciate that there is the not-so-secret agenda of ultimately deprecating this client for the openstack SDK, so that adding less complexity is better.\n\nWe\u0027ll see how it goes ..","commit_id":"170b935e6f09a22557ebebed8a772e0d41fb312c"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f471e778fb017a15d1482df4fe88b94459cc91f8","unresolved":true,"context_lines":[{"line_number":648,"context_line":"        consumer_dict[\u0027resource_id\u0027] \u003d resource_id"},{"line_number":649,"context_line":""},{"line_number":650,"context_line":"        response \u003d self._api.post(href, json\u003dconsumer_dict)"},{"line_number":651,"context_line":"        return Secret(api\u003dself._api, **response)"},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"    def remove_consumer(self, secret_ref, service,"},{"line_number":654,"context_line":"                        resource_type, resource_id):"}],"source_content_type":"text/x-python","patch_set":21,"id":"81a632bf_51895a90","line":651,"updated":"2022-11-11 20:51:37.000000000","message":"This is still wrong, it\u0027s still trying to create a Secret out of a consumer response.","commit_id":"170b935e6f09a22557ebebed8a772e0d41fb312c"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"fe21eae8636bc71b7e0aec49abd7f7b163600a9f","unresolved":true,"context_lines":[{"line_number":648,"context_line":"        consumer_dict[\u0027resource_id\u0027] \u003d resource_id"},{"line_number":649,"context_line":""},{"line_number":650,"context_line":"        response \u003d self._api.post(href, json\u003dconsumer_dict)"},{"line_number":651,"context_line":"        return Secret(api\u003dself._api, **response)"},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"    def remove_consumer(self, secret_ref, service,"},{"line_number":654,"context_line":"                        resource_type, resource_id):"}],"source_content_type":"text/x-python","patch_set":21,"id":"f9e48660_23bf1b42","line":651,"in_reply_to":"81a632bf_51895a90","updated":"2022-11-24 15:04:14.000000000","message":"see above.","commit_id":"170b935e6f09a22557ebebed8a772e0d41fb312c"}],"functionaltests/client/v1/functional/test_secrets.py":[{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"7fcf9549dd3686350f9401f0bdab18df18ff1b21","unresolved":true,"context_lines":[{"line_number":163,"context_line":"            remove_consumers):"},{"line_number":164,"context_line":"        \"\"\"The following activities are carried:"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        Create a secret, then register each container"},{"line_number":167,"context_line":"        in the register_consumers list, then remove each container"},{"line_number":168,"context_line":"        in the remove_consumers list."},{"line_number":169,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":13,"id":"119e0794_695dc268","line":166,"range":{"start_line":166,"start_character":44,"end_line":166,"end_character":53},"updated":"2022-09-14 10:09:11.000000000","message":"s/container/consumer","commit_id":"2abee5eb6ede9948395d724d7dad6b8edb97a620"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"65798a91ae0211acb41433d890af22f7ea610b71","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            remove_consumers):"},{"line_number":164,"context_line":"        \"\"\"The following activities are carried:"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        Create a secret, then register each container"},{"line_number":167,"context_line":"        in the register_consumers list, then remove each container"},{"line_number":168,"context_line":"        in the remove_consumers list."},{"line_number":169,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":13,"id":"1af74379_f9990b17","line":166,"range":{"start_line":166,"start_character":44,"end_line":166,"end_character":53},"in_reply_to":"119e0794_695dc268","updated":"2022-09-22 08:14:49.000000000","message":"Done","commit_id":"2abee5eb6ede9948395d724d7dad6b8edb97a620"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"7fcf9549dd3686350f9401f0bdab18df18ff1b21","unresolved":true,"context_lines":[{"line_number":164,"context_line":"        \"\"\"The following activities are carried:"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        Create a secret, then register each container"},{"line_number":167,"context_line":"        in the register_consumers list, then remove each container"},{"line_number":168,"context_line":"        in the remove_consumers list."},{"line_number":169,"context_line":"        \"\"\""},{"line_number":170,"context_line":"        new_secret \u003d self.barbicanclient.secrets.create("}],"source_content_type":"text/x-python","patch_set":13,"id":"cfcd44fc_61e7d4f9","line":167,"range":{"start_line":167,"start_character":57,"end_line":167,"end_character":66},"updated":"2022-09-14 10:09:11.000000000","message":"ditto","commit_id":"2abee5eb6ede9948395d724d7dad6b8edb97a620"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"65798a91ae0211acb41433d890af22f7ea610b71","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        \"\"\"The following activities are carried:"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        Create a secret, then register each container"},{"line_number":167,"context_line":"        in the register_consumers list, then remove each container"},{"line_number":168,"context_line":"        in the remove_consumers list."},{"line_number":169,"context_line":"        \"\"\""},{"line_number":170,"context_line":"        new_secret \u003d self.barbicanclient.secrets.create("}],"source_content_type":"text/x-python","patch_set":13,"id":"fe914463_d9daade0","line":167,"range":{"start_line":167,"start_character":57,"end_line":167,"end_character":66},"in_reply_to":"cfcd44fc_61e7d4f9","updated":"2022-09-22 08:14:49.000000000","message":"Done","commit_id":"2abee5eb6ede9948395d724d7dad6b8edb97a620"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"59b18b226557b911f1291b48b9e15af94360cf8d","unresolved":true,"context_lines":[{"line_number":157,"context_line":"                         \u0027resource_id\u0027: \u0027id_test2\u0027}]]"},{"line_number":158,"context_line":"    })"},{"line_number":159,"context_line":"    @testcase.attr(\u0027positive\u0027)"},{"line_number":160,"context_line":"    def test_secret_create_and_registering_removing_consumers("},{"line_number":161,"context_line":"            self,"},{"line_number":162,"context_line":"            register_consumers,"},{"line_number":163,"context_line":"            remove_consumers):"}],"source_content_type":"text/x-python","patch_set":20,"id":"f6ead43c_62441358","line":160,"updated":"2022-10-26 21:47:53.000000000","message":"Can we have a test that covers the case of someone reporting the same consumer twice?\nCurrently this works well by returning 200 if an existing consumer is registered multiple times. Octavia would like to rely on that functionality.","commit_id":"07a0b0a84609b02cc3488f42fe1ccebe90b98f12"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"728dfcf740a04dd8b84eef7520712429f9662c54","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                         \u0027resource_id\u0027: \u0027id_test2\u0027}]]"},{"line_number":158,"context_line":"    })"},{"line_number":159,"context_line":"    @testcase.attr(\u0027positive\u0027)"},{"line_number":160,"context_line":"    def test_secret_create_and_registering_removing_consumers("},{"line_number":161,"context_line":"            self,"},{"line_number":162,"context_line":"            register_consumers,"},{"line_number":163,"context_line":"            remove_consumers):"}],"source_content_type":"text/x-python","patch_set":20,"id":"5ef10c08_a55c2f03","line":160,"in_reply_to":"ea579cb5_0ff493ff","updated":"2023-01-18 10:58:23.000000000","message":"Done","commit_id":"07a0b0a84609b02cc3488f42fe1ccebe90b98f12"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"e91dad20e6bbff60f294b27f5a1aa5742e8e1456","unresolved":true,"context_lines":[{"line_number":157,"context_line":"                         \u0027resource_id\u0027: \u0027id_test2\u0027}]]"},{"line_number":158,"context_line":"    })"},{"line_number":159,"context_line":"    @testcase.attr(\u0027positive\u0027)"},{"line_number":160,"context_line":"    def test_secret_create_and_registering_removing_consumers("},{"line_number":161,"context_line":"            self,"},{"line_number":162,"context_line":"            register_consumers,"},{"line_number":163,"context_line":"            remove_consumers):"}],"source_content_type":"text/x-python","patch_set":20,"id":"ea579cb5_0ff493ff","line":160,"in_reply_to":"f6ead43c_62441358","updated":"2022-10-27 10:00:35.000000000","message":"I think we can, I checked that it works the same way in the case of container consumers.","commit_id":"07a0b0a84609b02cc3488f42fe1ccebe90b98f12"}]}
