)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"293cd6eafb871b2349efe808aca897ce6835fc87","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5b932bf2_133c32a4","updated":"2023-01-31 08:35:22.000000000","message":"recheck","commit_id":"6bcd951568b71505a309cc2fcab5f3eb9bdb622f"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"8efcf647065232d0714a3d3e13b948ebce2dbb91","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"0ec620a1_745b8a6c","updated":"2023-02-07 12:40:13.000000000","message":"recheck","commit_id":"ab73897e8bbe83d0f44b312dc31e0ccb3e9c9ede"}],"barbicanclient/barbican_cli/v1/secrets.py":[{"author":{"_account_id":34120,"name":"Andre Aranha","display_name":"afariasa","email":"afariasa@redhat.com","username":"afariasa"},"change_message_id":"5e4d9a8392536d0ff96ac3ef6df850c3ae159fdb","unresolved":true,"context_lines":[{"line_number":255,"context_line":""},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"class ListConsumer(lister.Lister):"},{"line_number":258,"context_line":"    \"\"\"List consumers of a secret.\"\"\""},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    def get_parser(self, prog_name):"},{"line_number":261,"context_line":"        parser \u003d super(ListConsumer, self).get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":6,"id":"16e1992b_b0eeaba7","line":258,"updated":"2023-02-01 12:19:01.000000000","message":"I think we should also have smoke tests for this class.","commit_id":"15da9dae8a9beb7669dadafda069fbee6b9bafe0"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"2e03b5379f09961df99a9a6537b287be592eedd7","unresolved":false,"context_lines":[{"line_number":255,"context_line":""},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"class ListConsumer(lister.Lister):"},{"line_number":258,"context_line":"    \"\"\"List consumers of a secret.\"\"\""},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    def get_parser(self, prog_name):"},{"line_number":261,"context_line":"        parser \u003d super(ListConsumer, self).get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fe62a9bc_ab1e229a","line":258,"in_reply_to":"16e1992b_b0eeaba7","updated":"2023-02-02 11:32:34.000000000","message":"Ack","commit_id":"15da9dae8a9beb7669dadafda069fbee6b9bafe0"}],"barbicanclient/tests/v1/test_consumers.py":[{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"2960857a64da20a726828dd5b2c131b115baa4fd","unresolved":true,"context_lines":[{"line_number":139,"context_line":"        consumers \u003d [{\u0027service\u0027: \u0027service_test\u0027,"},{"line_number":140,"context_line":"                      \u0027resource_type\u0027: \u0027type_test\u0027,"},{"line_number":141,"context_line":"                      \u0027resource_id\u0027: \u0027id_test\u0027}]"},{"line_number":142,"context_line":"        self._list_consumers(self.entity_href, consumers)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1b82c110_1c5b437d","line":142,"updated":"2023-01-31 17:17:10.000000000","message":"It also needs a test trying to get consumers of a secret that does not exist, which should throw the same error as getting a secret when it doesn\u0027t exist.","commit_id":"15da9dae8a9beb7669dadafda069fbee6b9bafe0"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"49bdf41bea48145faa6863c5b0594a2efd8bb634","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        consumers \u003d [{\u0027service\u0027: \u0027service_test\u0027,"},{"line_number":140,"context_line":"                      \u0027resource_type\u0027: \u0027type_test\u0027,"},{"line_number":141,"context_line":"                      \u0027resource_id\u0027: \u0027id_test\u0027}]"},{"line_number":142,"context_line":"        self._list_consumers(self.entity_href, consumers)"}],"source_content_type":"text/x-python","patch_set":6,"id":"4fba3fa1_66653094","line":142,"in_reply_to":"1b82c110_1c5b437d","updated":"2023-01-31 17:27:24.000000000","message":"Ack","commit_id":"15da9dae8a9beb7669dadafda069fbee6b9bafe0"},{"author":{"_account_id":34120,"name":"Andre Aranha","display_name":"afariasa","email":"afariasa@redhat.com","username":"afariasa"},"change_message_id":"6fe0920a015635867bc5c596bcf2ece65a83a86e","unresolved":true,"context_lines":[{"line_number":132,"context_line":"        mock_get_secret_for_client(self.client, consumers)"},{"line_number":133,"context_line":"        self.manager.list_consumer(secret_ref)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def test_list_consumers_from_secret_without_consumers(self):"},{"line_number":136,"context_line":"        self._list_consumers(self.entity_href)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def test_list_consumers_from_secret_with_consumers(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"2fe65589_61a3a44b","line":135,"updated":"2023-02-02 11:10:15.000000000","message":"This seems like we are testing only to see if there\u0027s no exception here.\nFor a secret without consumers we should test if the list_consumers is empty.","commit_id":"3cfba329df44851e01f6cae3d382e2a01caf2dc6"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"2e03b5379f09961df99a9a6537b287be592eedd7","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        mock_get_secret_for_client(self.client, consumers)"},{"line_number":133,"context_line":"        self.manager.list_consumer(secret_ref)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def test_list_consumers_from_secret_without_consumers(self):"},{"line_number":136,"context_line":"        self._list_consumers(self.entity_href)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def test_list_consumers_from_secret_with_consumers(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"b7b8e4bc_65fe6100","line":135,"in_reply_to":"2fe65589_61a3a44b","updated":"2023-02-02 11:32:34.000000000","message":"Ack","commit_id":"3cfba329df44851e01f6cae3d382e2a01caf2dc6"},{"author":{"_account_id":34120,"name":"Andre Aranha","display_name":"afariasa","email":"afariasa@redhat.com","username":"afariasa"},"change_message_id":"6fe0920a015635867bc5c596bcf2ece65a83a86e","unresolved":true,"context_lines":[{"line_number":139,"context_line":"        consumers \u003d [{\u0027service\u0027: \u0027service_test\u0027,"},{"line_number":140,"context_line":"                      \u0027resource_type\u0027: \u0027type_test\u0027,"},{"line_number":141,"context_line":"                      \u0027resource_id\u0027: \u0027id_test\u0027}]"},{"line_number":142,"context_line":"        self._list_consumers(self.entity_href, consumers)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def test_should_fail_list_consumers_invalid_secret(self):"},{"line_number":145,"context_line":"        self.assertRaises(ValueError, self.manager.list_consumer,"}],"source_content_type":"text/x-python","patch_set":7,"id":"4f7b6bf7_b387652e","line":142,"updated":"2023-02-02 11:10:15.000000000","message":"Same as above, but here we should make sure the consumer returned from list_consumers is the same as the registered one.","commit_id":"3cfba329df44851e01f6cae3d382e2a01caf2dc6"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"2e03b5379f09961df99a9a6537b287be592eedd7","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        consumers \u003d [{\u0027service\u0027: \u0027service_test\u0027,"},{"line_number":140,"context_line":"                      \u0027resource_type\u0027: \u0027type_test\u0027,"},{"line_number":141,"context_line":"                      \u0027resource_id\u0027: \u0027id_test\u0027}]"},{"line_number":142,"context_line":"        self._list_consumers(self.entity_href, consumers)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def test_should_fail_list_consumers_invalid_secret(self):"},{"line_number":145,"context_line":"        self.assertRaises(ValueError, self.manager.list_consumer,"}],"source_content_type":"text/x-python","patch_set":7,"id":"efd38e7b_9282d15b","line":142,"in_reply_to":"4f7b6bf7_b387652e","updated":"2023-02-02 11:32:34.000000000","message":"Ack","commit_id":"3cfba329df44851e01f6cae3d382e2a01caf2dc6"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"e80e594302d9588b97183fe461dbde83c46531f6","unresolved":true,"context_lines":[{"line_number":136,"context_line":"        consumer_list \u003d self._list_consumers(self.entity_href)"},{"line_number":137,"context_line":"        self.assertTrue(len(consumer_list) \u003d\u003d 0)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    def test_list_consumers_from_secret_with_consumers(self):"},{"line_number":140,"context_line":"        consumers \u003d [{\u0027service\u0027: \u0027service_test\u0027,"},{"line_number":141,"context_line":"                      \u0027resource_type\u0027: \u0027type_test\u0027,"},{"line_number":142,"context_line":"                      \u0027resource_id\u0027: \u0027id_test\u0027}]"}],"source_content_type":"text/x-python","patch_set":9,"id":"810c35d4_c8c3136d","line":139,"range":{"start_line":139,"start_character":8,"end_line":139,"end_character":55},"updated":"2023-02-06 12:41:44.000000000","message":"we should add a test with more than one consumer","commit_id":"796a35fa8ee66aea41f29bc8cd6c45b68b3d9226"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"eb0362e3fbc826c77b4d24beb26e08fb0d766a69","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        consumer_list \u003d self._list_consumers(self.entity_href)"},{"line_number":137,"context_line":"        self.assertTrue(len(consumer_list) \u003d\u003d 0)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    def test_list_consumers_from_secret_with_consumers(self):"},{"line_number":140,"context_line":"        consumers \u003d [{\u0027service\u0027: \u0027service_test\u0027,"},{"line_number":141,"context_line":"                      \u0027resource_type\u0027: \u0027type_test\u0027,"},{"line_number":142,"context_line":"                      \u0027resource_id\u0027: \u0027id_test\u0027}]"}],"source_content_type":"text/x-python","patch_set":9,"id":"868ad995_5fc15ccb","line":139,"range":{"start_line":139,"start_character":8,"end_line":139,"end_character":55},"in_reply_to":"810c35d4_c8c3136d","updated":"2023-02-06 13:18:24.000000000","message":"Ack","commit_id":"796a35fa8ee66aea41f29bc8cd6c45b68b3d9226"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"72d5a10d91a130ac9f336c510ed403ac96c524cb","unresolved":true,"context_lines":[{"line_number":136,"context_line":"        consumer_list \u003d self._list_consumers(self.entity_href)"},{"line_number":137,"context_line":"        self.assertTrue(len(consumer_list) \u003d\u003d 0)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    def test_list_consumers_from_secret_with_consumers(self):"},{"line_number":140,"context_line":"        consumers \u003d [{\u0027service\u0027: \u0027service_test\u0027,"},{"line_number":141,"context_line":"                      \u0027resource_type\u0027: \u0027type_test\u0027,"},{"line_number":142,"context_line":"                      \u0027resource_id\u0027: \u0027id_test\u0027}]"}],"source_content_type":"text/x-python","patch_set":14,"id":"41d84cb5_4430e363","line":139,"range":{"start_line":139,"start_character":8,"end_line":139,"end_character":54},"updated":"2023-02-08 10:27:58.000000000","message":"please add a test with more than one consumer","commit_id":"2c8b839d988acdf5f82021b8428d6111c948614c"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"c90d005e63a9de28b482612196bd745058231fff","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        consumer_list \u003d self._list_consumers(self.entity_href)"},{"line_number":137,"context_line":"        self.assertTrue(len(consumer_list) \u003d\u003d 0)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    def test_list_consumers_from_secret_with_consumers(self):"},{"line_number":140,"context_line":"        consumers \u003d [{\u0027service\u0027: \u0027service_test\u0027,"},{"line_number":141,"context_line":"                      \u0027resource_type\u0027: \u0027type_test\u0027,"},{"line_number":142,"context_line":"                      \u0027resource_id\u0027: \u0027id_test\u0027}]"}],"source_content_type":"text/x-python","patch_set":14,"id":"448475f5_42349ab0","line":139,"range":{"start_line":139,"start_character":8,"end_line":139,"end_character":54},"in_reply_to":"41d84cb5_4430e363","updated":"2023-02-08 11:28:50.000000000","message":"Ack","commit_id":"2c8b839d988acdf5f82021b8428d6111c948614c"}],"barbicanclient/v1/secrets.py":[{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"819dfae8d37b924c47cf817f16a8c43420c8222d","unresolved":true,"context_lines":[{"line_number":75,"context_line":"        self.service \u003d service"},{"line_number":76,"context_line":"        self.resource_type \u003d resource_type"},{"line_number":77,"context_line":"        self.resource_id \u003d resource_id"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"class SecretFormatter(formatter.EntityFormatter):"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9afcfa78_77cb810a","line":78,"updated":"2023-01-31 17:34:47.000000000","message":"Maybe we should actually add a _secret_ref, we can add it the same way we are passing in the api when we initialize the class.","commit_id":"15da9dae8a9beb7669dadafda069fbee6b9bafe0"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"de3a0f56c6209fee344e1a3d1c2891460ff34033","unresolved":true,"context_lines":[{"line_number":75,"context_line":"        self.service \u003d service"},{"line_number":76,"context_line":"        self.resource_type \u003d resource_type"},{"line_number":77,"context_line":"        self.resource_id \u003d resource_id"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"class SecretFormatter(formatter.EntityFormatter):"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9c0c65a4_0e4d5bf1","line":78,"updated":"2023-01-31 17:18:50.000000000","message":"You should also add a __repr__ method.","commit_id":"15da9dae8a9beb7669dadafda069fbee6b9bafe0"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"32fd9da8125df8bf9da819c29e78cb750e93b066","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        self.service \u003d service"},{"line_number":76,"context_line":"        self.resource_type \u003d resource_type"},{"line_number":77,"context_line":"        self.resource_id \u003d resource_id"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"class SecretFormatter(formatter.EntityFormatter):"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"4b6535c0_1f6c83cb","line":78,"in_reply_to":"986e6207_62f34c60","updated":"2023-02-01 12:14:51.000000000","message":"Done","commit_id":"15da9dae8a9beb7669dadafda069fbee6b9bafe0"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"32fd9da8125df8bf9da819c29e78cb750e93b066","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        self.service \u003d service"},{"line_number":76,"context_line":"        self.resource_type \u003d resource_type"},{"line_number":77,"context_line":"        self.resource_id \u003d resource_id"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"class SecretFormatter(formatter.EntityFormatter):"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5c1ce8ec_f32b57d4","line":78,"in_reply_to":"9afcfa78_77cb810a","updated":"2023-02-01 12:14:51.000000000","message":"Done","commit_id":"15da9dae8a9beb7669dadafda069fbee6b9bafe0"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"49bdf41bea48145faa6863c5b0594a2efd8bb634","unresolved":true,"context_lines":[{"line_number":75,"context_line":"        self.service \u003d service"},{"line_number":76,"context_line":"        self.resource_type \u003d resource_type"},{"line_number":77,"context_line":"        self.resource_id \u003d resource_id"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"class SecretFormatter(formatter.EntityFormatter):"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"986e6207_62f34c60","line":78,"in_reply_to":"9c0c65a4_0e4d5bf1","updated":"2023-01-31 17:27:24.000000000","message":"This class doesn\u0027t have a `self._secret_ref` attribute.  So, what would be equivalent to this?","commit_id":"15da9dae8a9beb7669dadafda069fbee6b9bafe0"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"c1f36ee37a5cb8d9169ec40c50c4f1fa890ee0f4","unresolved":true,"context_lines":[{"line_number":746,"context_line":"        response \u003d self._api.get(href, params\u003dparams)"},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"        return ["},{"line_number":749,"context_line":"            SecretConsumers(secret_ref\u003dsecret_ref, **s)"},{"line_number":750,"context_line":"            for s in response.get(\u0027consumers\u0027, [])"},{"line_number":751,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":7,"id":"6c053eb5_4c4f8e1d","line":749,"range":{"start_line":749,"start_character":12,"end_line":749,"end_character":55},"updated":"2023-02-02 07:15:17.000000000","message":"when running this patch, I had a\n\"__init__() got an unexpected keyword argument \u0027created\u0027\" exception here,\n\nthe value of response[\u0027consumers\u0027] was:\n[{\u0027created\u0027: \u00272023-02-02T06:47:44\u0027, \u0027updated\u0027: \u00272023-02-02T06:47:44\u0027, \u0027status\u0027: \u0027ACTIVE\u0027, \u0027service\u0027: \u0027load-balancer\u0027, \u0027resource_type\u0027: \u0027listener\u0027, \u0027resource_id\u0027: \u002718bf2bbd-1fb0-49bd-ba36-0b95ee8baaab\u0027}]","commit_id":"3cfba329df44851e01f6cae3d382e2a01caf2dc6"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"2e03b5379f09961df99a9a6537b287be592eedd7","unresolved":true,"context_lines":[{"line_number":746,"context_line":"        response \u003d self._api.get(href, params\u003dparams)"},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"        return ["},{"line_number":749,"context_line":"            SecretConsumers(secret_ref\u003dsecret_ref, **s)"},{"line_number":750,"context_line":"            for s in response.get(\u0027consumers\u0027, [])"},{"line_number":751,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":7,"id":"70fafa1e_cdb3f01b","line":749,"range":{"start_line":749,"start_character":12,"end_line":749,"end_character":55},"in_reply_to":"6c053eb5_4c4f8e1d","updated":"2023-02-02 11:32:34.000000000","message":"Ok. This is still being built. More to come.","commit_id":"3cfba329df44851e01f6cae3d382e2a01caf2dc6"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"949d1e587e72e72a31a8748784610e87e2ca985f","unresolved":false,"context_lines":[{"line_number":746,"context_line":"        response \u003d self._api.get(href, params\u003dparams)"},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"        return ["},{"line_number":749,"context_line":"            SecretConsumers(secret_ref\u003dsecret_ref, **s)"},{"line_number":750,"context_line":"            for s in response.get(\u0027consumers\u0027, [])"},{"line_number":751,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":7,"id":"c3de8afa_353fcb1d","line":749,"range":{"start_line":749,"start_character":12,"end_line":749,"end_character":55},"in_reply_to":"70fafa1e_cdb3f01b","updated":"2023-02-02 19:58:14.000000000","message":"Done","commit_id":"3cfba329df44851e01f6cae3d382e2a01caf2dc6"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"e80e594302d9588b97183fe461dbde83c46531f6","unresolved":true,"context_lines":[{"line_number":668,"context_line":"            for s in response.get(\u0027secrets\u0027, [])"},{"line_number":669,"context_line":"        ]"},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"    def _enforce_microversion(self, microversion\u003d\"1.0\"):"},{"line_number":672,"context_line":"        if self._api.microversion \u003d\u003d \"1.0\":"},{"line_number":673,"context_line":"            raise NotImplementedError("},{"line_number":674,"context_line":"                \"Server does not support secret consumers.  Minimum \""}],"source_content_type":"text/x-python","patch_set":9,"id":"fbaeb93b_b311b2de","line":671,"range":{"start_line":671,"start_character":36,"end_line":671,"end_character":54},"updated":"2023-02-06 12:41:44.000000000","message":"Not sure if this is the patch to comment on this, but we don\u0027t do anything with this parameter as far as I can tell.","commit_id":"796a35fa8ee66aea41f29bc8cd6c45b68b3d9226"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"eb0362e3fbc826c77b4d24beb26e08fb0d766a69","unresolved":false,"context_lines":[{"line_number":668,"context_line":"            for s in response.get(\u0027secrets\u0027, [])"},{"line_number":669,"context_line":"        ]"},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"    def _enforce_microversion(self, microversion\u003d\"1.0\"):"},{"line_number":672,"context_line":"        if self._api.microversion \u003d\u003d \"1.0\":"},{"line_number":673,"context_line":"            raise NotImplementedError("},{"line_number":674,"context_line":"                \"Server does not support secret consumers.  Minimum \""}],"source_content_type":"text/x-python","patch_set":9,"id":"fb437b93_06fafcd5","line":671,"range":{"start_line":671,"start_character":36,"end_line":671,"end_character":54},"in_reply_to":"fbaeb93b_b311b2de","updated":"2023-02-06 13:18:24.000000000","message":"This is not part of 872193.","commit_id":"796a35fa8ee66aea41f29bc8cd6c45b68b3d9226"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"72d5a10d91a130ac9f336c510ed403ac96c524cb","unresolved":true,"context_lines":[{"line_number":72,"context_line":"        self.service \u003d service"},{"line_number":73,"context_line":"        self.resource_type \u003d resource_type"},{"line_number":74,"context_line":"        self.resource_id \u003d resource_id"},{"line_number":75,"context_line":"        self.created \u003d created"},{"line_number":76,"context_line":"        self.updated \u003d updated"},{"line_number":77,"context_line":"        self.status \u003d status"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def __repr__(self):"},{"line_number":80,"context_line":"        return (\u0027SecretConsumers(secret_ref\u003d\"{0}\", service\u003d\"{1}\", \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"deef4536_278a05b2","line":77,"range":{"start_line":75,"start_character":0,"end_line":77,"end_character":28},"updated":"2023-02-08 10:27:58.000000000","message":"Where is this data coming from?  Do we even store this?  And if this data is real (and I don\u0027t think it is) then it should show up in the columns in the formatter.","commit_id":"2c8b839d988acdf5f82021b8428d6111c948614c"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"48a7f285030f361ae349cf3f6d4a486b273041a8","unresolved":true,"context_lines":[{"line_number":72,"context_line":"        self.service \u003d service"},{"line_number":73,"context_line":"        self.resource_type \u003d resource_type"},{"line_number":74,"context_line":"        self.resource_id \u003d resource_id"},{"line_number":75,"context_line":"        self.created \u003d created"},{"line_number":76,"context_line":"        self.updated \u003d updated"},{"line_number":77,"context_line":"        self.status \u003d status"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def __repr__(self):"},{"line_number":80,"context_line":"        return (\u0027SecretConsumers(secret_ref\u003d\"{0}\", service\u003d\"{1}\", \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"f264425d_badd22a5","line":77,"range":{"start_line":75,"start_character":0,"end_line":77,"end_character":28},"in_reply_to":"4993c315_dda22b39","updated":"2023-02-08 12:42:24.000000000","message":"If we want to add those, maybe just add the \"updated\" value, status will have the same value for all models that are not deleted, and we don\u0027t currently update consumers, so the updated field will be the same as created.","commit_id":"2c8b839d988acdf5f82021b8428d6111c948614c"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"19077aaa5c7a949d5916f4105cae4b8fa83ec2b7","unresolved":true,"context_lines":[{"line_number":72,"context_line":"        self.service \u003d service"},{"line_number":73,"context_line":"        self.resource_type \u003d resource_type"},{"line_number":74,"context_line":"        self.resource_id \u003d resource_id"},{"line_number":75,"context_line":"        self.created \u003d created"},{"line_number":76,"context_line":"        self.updated \u003d updated"},{"line_number":77,"context_line":"        self.status \u003d status"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def __repr__(self):"},{"line_number":80,"context_line":"        return (\u0027SecretConsumers(secret_ref\u003d\"{0}\", service\u003d\"{1}\", \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"4993c315_dda22b39","line":77,"range":{"start_line":75,"start_character":0,"end_line":77,"end_character":28},"in_reply_to":"5ebb9181_53d86bb5","updated":"2023-02-08 12:37:03.000000000","message":"These fields are there for all models in barbican https://github.com/openstack/barbican/blob/master/barbican/model/models.py#L99-L106, they are also used for the soft delete functionality.","commit_id":"2c8b839d988acdf5f82021b8428d6111c948614c"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"c90d005e63a9de28b482612196bd745058231fff","unresolved":true,"context_lines":[{"line_number":72,"context_line":"        self.service \u003d service"},{"line_number":73,"context_line":"        self.resource_type \u003d resource_type"},{"line_number":74,"context_line":"        self.resource_id \u003d resource_id"},{"line_number":75,"context_line":"        self.created \u003d created"},{"line_number":76,"context_line":"        self.updated \u003d updated"},{"line_number":77,"context_line":"        self.status \u003d status"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def __repr__(self):"},{"line_number":80,"context_line":"        return (\u0027SecretConsumers(secret_ref\u003d\"{0}\", service\u003d\"{1}\", \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"5ebb9181_53d86bb5","line":77,"range":{"start_line":75,"start_character":0,"end_line":77,"end_character":28},"in_reply_to":"deef4536_278a05b2","updated":"2023-02-08 11:28:50.000000000","message":"When the list_consumers() method down below in this file instantiates this class, it passes all secret\u0027s attributes to it.  Should the secret has consumers, the \"created\", \"updated\" and \"status\" attributes show up. When the secret doesn\u0027t have a single consumer, such attributes don\u0027t exist.  This is the reason for these lines.","commit_id":"2c8b839d988acdf5f82021b8428d6111c948614c"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"56c1aa4cfcea709ef4ee142e399fd9c254b13418","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        self.service \u003d service"},{"line_number":73,"context_line":"        self.resource_type \u003d resource_type"},{"line_number":74,"context_line":"        self.resource_id \u003d resource_id"},{"line_number":75,"context_line":"        self.created \u003d created"},{"line_number":76,"context_line":"        self.updated \u003d updated"},{"line_number":77,"context_line":"        self.status \u003d status"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def __repr__(self):"},{"line_number":80,"context_line":"        return (\u0027SecretConsumers(secret_ref\u003d\"{0}\", service\u003d\"{1}\", \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"f940e059_20473009","line":77,"range":{"start_line":75,"start_character":0,"end_line":77,"end_character":28},"in_reply_to":"eb73a297_df59d5eb","updated":"2023-02-10 13:30:42.000000000","message":"Done","commit_id":"2c8b839d988acdf5f82021b8428d6111c948614c"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"1e37e9d8d0decefc0546b412ddc25bb01c283e11","unresolved":true,"context_lines":[{"line_number":72,"context_line":"        self.service \u003d service"},{"line_number":73,"context_line":"        self.resource_type \u003d resource_type"},{"line_number":74,"context_line":"        self.resource_id \u003d resource_id"},{"line_number":75,"context_line":"        self.created \u003d created"},{"line_number":76,"context_line":"        self.updated \u003d updated"},{"line_number":77,"context_line":"        self.status \u003d status"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def __repr__(self):"},{"line_number":80,"context_line":"        return (\u0027SecretConsumers(secret_ref\u003d\"{0}\", service\u003d\"{1}\", \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"eb73a297_df59d5eb","line":77,"range":{"start_line":75,"start_character":0,"end_line":77,"end_character":28},"in_reply_to":"f264425d_badd22a5","updated":"2023-02-08 12:45:51.000000000","message":"Or maybe just the created then -- otherwise we give the impression that we can update the consumer","commit_id":"2c8b839d988acdf5f82021b8428d6111c948614c"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"72d5a10d91a130ac9f336c510ed403ac96c524cb","unresolved":true,"context_lines":[{"line_number":82,"context_line":"                \u0027created\u003d\"{4}\", updated\u003d\"{5}\", status\u003d\"{6}\")\u0027"},{"line_number":83,"context_line":"                .format(self.secret_ref, self.service,"},{"line_number":84,"context_line":"                        self.resource_type, self.resource_id,"},{"line_number":85,"context_line":"                        self.created, self.updated, self.status))"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"class SecretFormatter(formatter.EntityFormatter):"}],"source_content_type":"text/x-python","patch_set":14,"id":"0d2ac6f4_1186d52d","line":85,"updated":"2023-02-08 10:27:58.000000000","message":"see comment above.","commit_id":"2c8b839d988acdf5f82021b8428d6111c948614c"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"c90d005e63a9de28b482612196bd745058231fff","unresolved":true,"context_lines":[{"line_number":82,"context_line":"                \u0027created\u003d\"{4}\", updated\u003d\"{5}\", status\u003d\"{6}\")\u0027"},{"line_number":83,"context_line":"                .format(self.secret_ref, self.service,"},{"line_number":84,"context_line":"                        self.resource_type, self.resource_id,"},{"line_number":85,"context_line":"                        self.created, self.updated, self.status))"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"class SecretFormatter(formatter.EntityFormatter):"}],"source_content_type":"text/x-python","patch_set":14,"id":"283d3f1e_57921630","line":85,"in_reply_to":"0d2ac6f4_1186d52d","updated":"2023-02-08 11:28:50.000000000","message":"Same as above.","commit_id":"2c8b839d988acdf5f82021b8428d6111c948614c"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"4da28489e3cadf5303cf5ae84253f3c51662c968","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                \u0027created\u003d\"{4}\", updated\u003d\"{5}\", status\u003d\"{6}\")\u0027"},{"line_number":83,"context_line":"                .format(self.secret_ref, self.service,"},{"line_number":84,"context_line":"                        self.resource_type, self.resource_id,"},{"line_number":85,"context_line":"                        self.created, self.updated, self.status))"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"class SecretFormatter(formatter.EntityFormatter):"}],"source_content_type":"text/x-python","patch_set":14,"id":"d163e9a0_41c50d62","line":85,"in_reply_to":"283d3f1e_57921630","updated":"2023-02-09 12:39:55.000000000","message":"Done","commit_id":"2c8b839d988acdf5f82021b8428d6111c948614c"},{"author":{"_account_id":34120,"name":"Andre Aranha","display_name":"afariasa","email":"afariasa@redhat.com","username":"afariasa"},"change_message_id":"2304796756f3720c71d2b838a07698b836b8d232","unresolved":true,"context_lines":[{"line_number":731,"context_line":""},{"line_number":732,"context_line":"        self._api.delete(href, json\u003dconsumer_dict)"},{"line_number":733,"context_line":""},{"line_number":734,"context_line":"    def list_consumers(self, secret_ref, limit\u003d10, offset\u003d0):"},{"line_number":735,"context_line":"        \"\"\"List consumers of the secret"},{"line_number":736,"context_line":""},{"line_number":737,"context_line":"        :param secret_ref: Full HATEOAS reference to a secret, or a UUID"}],"source_content_type":"text/x-python","patch_set":21,"id":"d1ab8099_a1fdeab9","line":734,"updated":"2023-02-09 13:04:19.000000000","message":"I think we should test also the parameters: \"limit\" and \"offset\"","commit_id":"088fecc5a66dc85602da30082e7bf82161587dc1"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"56c1aa4cfcea709ef4ee142e399fd9c254b13418","unresolved":false,"context_lines":[{"line_number":731,"context_line":""},{"line_number":732,"context_line":"        self._api.delete(href, json\u003dconsumer_dict)"},{"line_number":733,"context_line":""},{"line_number":734,"context_line":"    def list_consumers(self, secret_ref, limit\u003d10, offset\u003d0):"},{"line_number":735,"context_line":"        \"\"\"List consumers of the secret"},{"line_number":736,"context_line":""},{"line_number":737,"context_line":"        :param secret_ref: Full HATEOAS reference to a secret, or a UUID"}],"source_content_type":"text/x-python","patch_set":21,"id":"899c1d22_124b90f8","line":734,"in_reply_to":"d1ab8099_a1fdeab9","updated":"2023-02-10 13:30:42.000000000","message":"Done","commit_id":"088fecc5a66dc85602da30082e7bf82161587dc1"}],"functionaltests/cli/v1/behaviors/secret_behaviors.py":[{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"f260f0130107d5b25830a13321b9b978393cdc4e","unresolved":true,"context_lines":[{"line_number":220,"context_line":"        return"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def list_secret_consumers(self, secret_href):"},{"line_number":223,"context_line":"        \"\"\"Delete a secret"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        :param secret_href the href to the secret to delete"},{"line_number":226,"context_line":"        \"\"\""},{"line_number":227,"context_line":"        argv \u003d [\u0027secret\u0027, \u0027consumer\u0027, \u0027list\u0027]"},{"line_number":228,"context_line":"        self.add_auth_and_endpoint(argv)"}],"source_content_type":"text/x-python","patch_set":15,"id":"8c166145_7a4d65bb","line":225,"range":{"start_line":223,"start_character":6,"end_line":225,"end_character":59},"updated":"2023-02-08 10:31:42.000000000","message":"does not match method","commit_id":"80d1e8016f8fa2fcec37ceb3ccb831bd9770a9b9"},{"author":{"_account_id":34120,"name":"Andre Aranha","display_name":"afariasa","email":"afariasa@redhat.com","username":"afariasa"},"change_message_id":"a66422f8b506a4365bef914e776f551c3e42cf4e","unresolved":true,"context_lines":[{"line_number":220,"context_line":"        return"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def list_secret_consumers(self, secret_href):"},{"line_number":223,"context_line":"        \"\"\"Delete a secret"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        :param secret_href the href to the secret to delete"},{"line_number":226,"context_line":"        \"\"\""},{"line_number":227,"context_line":"        argv \u003d [\u0027secret\u0027, \u0027consumer\u0027, \u0027list\u0027]"},{"line_number":228,"context_line":"        self.add_auth_and_endpoint(argv)"}],"source_content_type":"text/x-python","patch_set":15,"id":"b3cae517_f52c9a15","line":225,"range":{"start_line":223,"start_character":6,"end_line":225,"end_character":59},"in_reply_to":"8c166145_7a4d65bb","updated":"2023-02-08 10:43:34.000000000","message":"Sorry, my bad, ctrl v from another method.\nThe issue below is temporary, I need to check the output to do the proper test, I\u0027ll remove later.","commit_id":"80d1e8016f8fa2fcec37ceb3ccb831bd9770a9b9"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"c90d005e63a9de28b482612196bd745058231fff","unresolved":false,"context_lines":[{"line_number":220,"context_line":"        return"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def list_secret_consumers(self, secret_href):"},{"line_number":223,"context_line":"        \"\"\"Delete a secret"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        :param secret_href the href to the secret to delete"},{"line_number":226,"context_line":"        \"\"\""},{"line_number":227,"context_line":"        argv \u003d [\u0027secret\u0027, \u0027consumer\u0027, \u0027list\u0027]"},{"line_number":228,"context_line":"        self.add_auth_and_endpoint(argv)"}],"source_content_type":"text/x-python","patch_set":15,"id":"4e411249_f55344c7","line":225,"range":{"start_line":223,"start_character":6,"end_line":225,"end_character":59},"in_reply_to":"b3cae517_f52c9a15","updated":"2023-02-08 11:28:50.000000000","message":"Done","commit_id":"80d1e8016f8fa2fcec37ceb3ccb831bd9770a9b9"}],"functionaltests/cli/v1/smoke/test_consumer.py":[{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"f260f0130107d5b25830a13321b9b978393cdc4e","unresolved":true,"context_lines":[{"line_number":57,"context_line":"        secret_href \u003d self._create_secret_with_consumer(consumer)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        consumers \u003d self.secret_behaviors.list_secret_consumers(secret_href)"},{"line_number":60,"context_line":"        print(consumers)"},{"line_number":61,"context_line":"        self.assertDictEqual([consumer], consumers)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9eaea35e_fa036c7d","line":60,"range":{"start_line":60,"start_character":8,"end_line":60,"end_character":24},"updated":"2023-02-08 10:31:42.000000000","message":"debug?","commit_id":"80d1e8016f8fa2fcec37ceb3ccb831bd9770a9b9"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"c90d005e63a9de28b482612196bd745058231fff","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        secret_href \u003d self._create_secret_with_consumer(consumer)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        consumers \u003d self.secret_behaviors.list_secret_consumers(secret_href)"},{"line_number":60,"context_line":"        print(consumers)"},{"line_number":61,"context_line":"        self.assertDictEqual([consumer], consumers)"}],"source_content_type":"text/x-python","patch_set":15,"id":"33e991e9_281a41ba","line":60,"range":{"start_line":60,"start_character":8,"end_line":60,"end_character":24},"in_reply_to":"9eaea35e_fa036c7d","updated":"2023-02-08 11:28:50.000000000","message":"Done","commit_id":"80d1e8016f8fa2fcec37ceb3ccb831bd9770a9b9"},{"author":{"_account_id":34120,"name":"Andre Aranha","display_name":"afariasa","email":"afariasa@redhat.com","username":"afariasa"},"change_message_id":"94e1c0be366acc5dcfa49b40147eeaa5a6f18c75","unresolved":true,"context_lines":[{"line_number":79,"context_line":"            \u0027resource_id\u0027: \u0027id2\u0027"},{"line_number":80,"context_line":"        }"},{"line_number":81,"context_line":"        self._register_consumer(secret_href, second_consumer)"},{"line_number":82,"context_line":"        self._register_consumer(secret_href, second_consumer)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        self.assertEqual("},{"line_number":85,"context_line":"            2, len(self.secret_behaviors.list_secret_consumers(secret_href)))"}],"source_content_type":"text/x-python","patch_set":19,"id":"d8206646_206fccad","line":82,"updated":"2023-02-09 10:00:35.000000000","message":"We don\u0027t need test adding the same consumer on 3 different tests.","commit_id":"76a5ee2b121b90ed3a213d49614fb09dc77aca4c"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"f763dc4162cb7fad64c2960b4f56bb23cc267454","unresolved":false,"context_lines":[{"line_number":79,"context_line":"            \u0027resource_id\u0027: \u0027id2\u0027"},{"line_number":80,"context_line":"        }"},{"line_number":81,"context_line":"        self._register_consumer(secret_href, second_consumer)"},{"line_number":82,"context_line":"        self._register_consumer(secret_href, second_consumer)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        self.assertEqual("},{"line_number":85,"context_line":"            2, len(self.secret_behaviors.list_secret_consumers(secret_href)))"}],"source_content_type":"text/x-python","patch_set":19,"id":"3f23f7fe_b4bec503","line":82,"in_reply_to":"d8206646_206fccad","updated":"2023-02-09 11:51:58.000000000","message":"Done","commit_id":"76a5ee2b121b90ed3a213d49614fb09dc77aca4c"},{"author":{"_account_id":34120,"name":"Andre Aranha","display_name":"afariasa","email":"afariasa@redhat.com","username":"afariasa"},"change_message_id":"4cbb0c08858cdbe72adc6739f73cfcd0641949d6","unresolved":true,"context_lines":[{"line_number":128,"context_line":"        self.assertEqual(0, len(consumers))"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    @testcase.attr(\u0027positive\u0027)"},{"line_number":131,"context_line":"    def test_list_consumer_secret_with_multiple_consumers(self):"},{"line_number":132,"context_line":"        secret_href \u003d self._create_secret()"},{"line_number":133,"context_line":"        number_of_consumers \u003d random.randint(_MINIMUM_CONSUMERS,"},{"line_number":134,"context_line":"                                             _MAXIMUM_CONSUMERS)"}],"source_content_type":"text/x-python","patch_set":20,"id":"517dc36f_4db8fb75","line":131,"updated":"2023-02-09 11:53:02.000000000","message":"I don\u0027t like that we have random in a test. We have have the base cases, like: creating 1 consumer, 2 consumers, the maximum number of consumers and the maximum + 1.\nI particularly dislike random in a tests because it needs to be deterministic, if I run it once and fail, next time I could run and then it could pass, the problem wasn\u0027t solved, just the test didn\u0027t hit it anymore.","commit_id":"7cf5cb78332ac04cf331e90e8bccd3560cb4158c"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"4da28489e3cadf5303cf5ae84253f3c51662c968","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        self.assertEqual(0, len(consumers))"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    @testcase.attr(\u0027positive\u0027)"},{"line_number":131,"context_line":"    def test_list_consumer_secret_with_multiple_consumers(self):"},{"line_number":132,"context_line":"        secret_href \u003d self._create_secret()"},{"line_number":133,"context_line":"        number_of_consumers \u003d random.randint(_MINIMUM_CONSUMERS,"},{"line_number":134,"context_line":"                                             _MAXIMUM_CONSUMERS)"}],"source_content_type":"text/x-python","patch_set":20,"id":"a3b26d50_6562dd7f","line":131,"in_reply_to":"517dc36f_4db8fb75","updated":"2023-02-09 12:39:55.000000000","message":"Done","commit_id":"7cf5cb78332ac04cf331e90e8bccd3560cb4158c"}],"functionaltests/client/v1/functional/test_secrets.py":[{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"e80e594302d9588b97183fe461dbde83c46531f6","unresolved":true,"context_lines":[{"line_number":340,"context_line":"        self.barbicanclient.secrets.delete(secret.secret_ref, True)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    def _test_consumers_list(self):"},{"line_number":343,"context_line":"        \"\"\"Helper module to create a secret withouth consumers\"\"\""},{"line_number":344,"context_line":"        new_secret \u003d self.barbicanclient.secrets.create("},{"line_number":345,"context_line":"            **secret_create_defaults_data)"},{"line_number":346,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"a56f73e8_a5e87347","line":343,"range":{"start_line":343,"start_character":44,"end_line":343,"end_character":52},"updated":"2023-02-06 12:41:44.000000000","message":"NIT typo\n\nThat said -- I\u0027m not sure of the need to create this function at all.  Isn\u0027t this just creating a secret?  Surely we already do this for all the secret management tests.  Now if you were creating a helper function to create a secret with consumers for tests, I might understand.","commit_id":"796a35fa8ee66aea41f29bc8cd6c45b68b3d9226"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"fad15726427785128010c1f78bc865f028b44c9f","unresolved":false,"context_lines":[{"line_number":340,"context_line":"        self.barbicanclient.secrets.delete(secret.secret_ref, True)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    def _test_consumers_list(self):"},{"line_number":343,"context_line":"        \"\"\"Helper module to create a secret withouth consumers\"\"\""},{"line_number":344,"context_line":"        new_secret \u003d self.barbicanclient.secrets.create("},{"line_number":345,"context_line":"            **secret_create_defaults_data)"},{"line_number":346,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"fe028f9a_599298c7","line":343,"range":{"start_line":343,"start_character":44,"end_line":343,"end_character":52},"in_reply_to":"21509eed_9f51ae23","updated":"2023-02-06 16:09:02.000000000","message":"Ack","commit_id":"796a35fa8ee66aea41f29bc8cd6c45b68b3d9226"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"eb0362e3fbc826c77b4d24beb26e08fb0d766a69","unresolved":true,"context_lines":[{"line_number":340,"context_line":"        self.barbicanclient.secrets.delete(secret.secret_ref, True)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    def _test_consumers_list(self):"},{"line_number":343,"context_line":"        \"\"\"Helper module to create a secret withouth consumers\"\"\""},{"line_number":344,"context_line":"        new_secret \u003d self.barbicanclient.secrets.create("},{"line_number":345,"context_line":"            **secret_create_defaults_data)"},{"line_number":346,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"21509eed_9f51ae23","line":343,"range":{"start_line":343,"start_character":44,"end_line":343,"end_character":52},"in_reply_to":"a56f73e8_a5e87347","updated":"2023-02-06 13:18:24.000000000","message":"The sole reason was to avoid repeated code in all subsequent functions.","commit_id":"796a35fa8ee66aea41f29bc8cd6c45b68b3d9226"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"e80e594302d9588b97183fe461dbde83c46531f6","unresolved":true,"context_lines":[{"line_number":366,"context_line":"        \"\"\"Lists consumers from a secret with a consumer\"\"\""},{"line_number":367,"context_line":"        secret_ref \u003d self._test_consumers_list()"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"        consumers_list \u003d self.barbicanclient.secrets.list_consumers("},{"line_number":370,"context_line":"            secret_ref)"},{"line_number":371,"context_line":"        consumer \u003d {\u0027service\u0027: \u0027service1\u0027,"},{"line_number":372,"context_line":"                    \u0027resource_type\u0027: \u0027type1\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"f816f197_97428728","line":369,"range":{"start_line":369,"start_character":8,"end_line":369,"end_character":23},"updated":"2023-02-06 12:41:44.000000000","message":"you do not do anything with this","commit_id":"796a35fa8ee66aea41f29bc8cd6c45b68b3d9226"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"fad15726427785128010c1f78bc865f028b44c9f","unresolved":false,"context_lines":[{"line_number":366,"context_line":"        \"\"\"Lists consumers from a secret with a consumer\"\"\""},{"line_number":367,"context_line":"        secret_ref \u003d self._test_consumers_list()"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"        consumers_list \u003d self.barbicanclient.secrets.list_consumers("},{"line_number":370,"context_line":"            secret_ref)"},{"line_number":371,"context_line":"        consumer \u003d {\u0027service\u0027: \u0027service1\u0027,"},{"line_number":372,"context_line":"                    \u0027resource_type\u0027: \u0027type1\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"9749f8c8_fde42a54","line":369,"range":{"start_line":369,"start_character":8,"end_line":369,"end_character":23},"in_reply_to":"f816f197_97428728","updated":"2023-02-06 16:09:02.000000000","message":"Ack","commit_id":"796a35fa8ee66aea41f29bc8cd6c45b68b3d9226"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"e80e594302d9588b97183fe461dbde83c46531f6","unresolved":true,"context_lines":[{"line_number":368,"context_line":""},{"line_number":369,"context_line":"        consumers_list \u003d self.barbicanclient.secrets.list_consumers("},{"line_number":370,"context_line":"            secret_ref)"},{"line_number":371,"context_line":"        consumer \u003d {\u0027service\u0027: \u0027service1\u0027,"},{"line_number":372,"context_line":"                    \u0027resource_type\u0027: \u0027type1\u0027,"},{"line_number":373,"context_line":"                    \u0027resource_id\u0027: \u0027id1\u0027}"},{"line_number":374,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"cc12fa2b_70d24438","line":371,"range":{"start_line":371,"start_character":7,"end_line":371,"end_character":17},"updated":"2023-02-06 12:41:44.000000000","message":"It would be nice to have tests with 1 and with more than 1 consumer","commit_id":"796a35fa8ee66aea41f29bc8cd6c45b68b3d9226"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"eb0362e3fbc826c77b4d24beb26e08fb0d766a69","unresolved":false,"context_lines":[{"line_number":368,"context_line":""},{"line_number":369,"context_line":"        consumers_list \u003d self.barbicanclient.secrets.list_consumers("},{"line_number":370,"context_line":"            secret_ref)"},{"line_number":371,"context_line":"        consumer \u003d {\u0027service\u0027: \u0027service1\u0027,"},{"line_number":372,"context_line":"                    \u0027resource_type\u0027: \u0027type1\u0027,"},{"line_number":373,"context_line":"                    \u0027resource_id\u0027: \u0027id1\u0027}"},{"line_number":374,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"cedc98e1_b73a4d1d","line":371,"range":{"start_line":371,"start_character":7,"end_line":371,"end_character":17},"in_reply_to":"cc12fa2b_70d24438","updated":"2023-02-06 13:18:24.000000000","message":"Ack","commit_id":"796a35fa8ee66aea41f29bc8cd6c45b68b3d9226"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"72d5a10d91a130ac9f336c510ed403ac96c524cb","unresolved":true,"context_lines":[{"line_number":72,"context_line":"    @testcase.attr(\u0027positive\u0027)"},{"line_number":73,"context_line":"    def test_secret_create_defaults_check_content_types(self):"},{"line_number":74,"context_line":"        \"\"\"Check that set content-type attribute is retained in metadata.\"\"\""},{"line_number":75,"context_line":"        secret \u003d self.barbicanclient.secrets.create("},{"line_number":76,"context_line":"            **secret_create_defaults_data)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        secret_ref \u003d self.cleanup.add_entity(secret)"},{"line_number":79,"context_line":"        self.assertIsNotNone(secret_ref)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        resp \u003d self.barbicanclient.secrets.get(secret_ref)"},{"line_number":82,"context_line":"        content_types \u003d resp.content_types"}],"source_content_type":"text/x-python","patch_set":14,"id":"e19cbebd_1a353b86","line":79,"range":{"start_line":75,"start_character":7,"end_line":79,"end_character":40},"updated":"2023-02-08 10:27:58.000000000","message":"this, for instance could be replaced by a call to the new helper method.  See below.","commit_id":"2c8b839d988acdf5f82021b8428d6111c948614c"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"c90d005e63a9de28b482612196bd745058231fff","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    @testcase.attr(\u0027positive\u0027)"},{"line_number":73,"context_line":"    def test_secret_create_defaults_check_content_types(self):"},{"line_number":74,"context_line":"        \"\"\"Check that set content-type attribute is retained in metadata.\"\"\""},{"line_number":75,"context_line":"        secret \u003d self.barbicanclient.secrets.create("},{"line_number":76,"context_line":"            **secret_create_defaults_data)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        secret_ref \u003d self.cleanup.add_entity(secret)"},{"line_number":79,"context_line":"        self.assertIsNotNone(secret_ref)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        resp \u003d self.barbicanclient.secrets.get(secret_ref)"},{"line_number":82,"context_line":"        content_types \u003d resp.content_types"}],"source_content_type":"text/x-python","patch_set":14,"id":"ac99d735_6d8af3ad","line":79,"range":{"start_line":75,"start_character":7,"end_line":79,"end_character":40},"in_reply_to":"e19cbebd_1a353b86","updated":"2023-02-08 11:28:50.000000000","message":"Ack","commit_id":"2c8b839d988acdf5f82021b8428d6111c948614c"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"72d5a10d91a130ac9f336c510ed403ac96c524cb","unresolved":true,"context_lines":[{"line_number":365,"context_line":"        self.assertRaises(exceptions.HTTPClientError, getattr, resp, \"name\")"},{"line_number":366,"context_line":"        self.cleanup.delete_entity(secret_ref)"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"    def _test_consumers_list(self):"},{"line_number":369,"context_line":"        \"\"\"Helper module to create a secret withouth consumers\"\"\""},{"line_number":370,"context_line":"        new_secret \u003d self.barbicanclient.secrets.create("},{"line_number":371,"context_line":"            **secret_create_defaults_data)"}],"source_content_type":"text/x-python","patch_set":14,"id":"fd1415ec_e3a1cde5","line":368,"range":{"start_line":368,"start_character":8,"end_line":368,"end_character":34},"updated":"2023-02-08 10:27:58.000000000","message":"This helper method is useful but badly named.  What we are doing is creating a secret.  A more useful thing to do is rename the method as follows:  _create_test_secret(self, consumers\u003dNone)\n\nand have it create a secret with or without consumers.  You can then call this helper method not just in the new tests - but also refactor some of the old tests to reduce code duplication.\n\nYou can also move this helper method to the top of the class (ie. before the test methods)","commit_id":"2c8b839d988acdf5f82021b8428d6111c948614c"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"c90d005e63a9de28b482612196bd745058231fff","unresolved":false,"context_lines":[{"line_number":365,"context_line":"        self.assertRaises(exceptions.HTTPClientError, getattr, resp, \"name\")"},{"line_number":366,"context_line":"        self.cleanup.delete_entity(secret_ref)"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"    def _test_consumers_list(self):"},{"line_number":369,"context_line":"        \"\"\"Helper module to create a secret withouth consumers\"\"\""},{"line_number":370,"context_line":"        new_secret \u003d self.barbicanclient.secrets.create("},{"line_number":371,"context_line":"            **secret_create_defaults_data)"}],"source_content_type":"text/x-python","patch_set":14,"id":"cafb954c_73b01d55","line":368,"range":{"start_line":368,"start_character":8,"end_line":368,"end_character":34},"in_reply_to":"fd1415ec_e3a1cde5","updated":"2023-02-08 11:28:50.000000000","message":"Ack","commit_id":"2c8b839d988acdf5f82021b8428d6111c948614c"}],"releasenotes/notes/add-secret-consumers-a65cd6b22d28184d.yaml":[{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"3ff4a5cd54fb2777398cc73a7e3e2196022eb750","unresolved":true,"context_lines":[{"line_number":3,"context_line":"    Secret consumers is a functionality to allow any single secret "},{"line_number":4,"context_line":"    to have one or more consumers. This functionality adds a new"},{"line_number":5,"context_line":"    API to Python Barbican client."},{"line_number":6,"context_line":"    "},{"line_number":7,"context_line":"    With this new API, other OpenStack projects would register "},{"line_number":8,"context_line":"    as a consumer of a secret by sending a request to Barbican. "},{"line_number":9,"context_line":"    Barbican stores the service type of the requesting service, "}],"source_content_type":"text/x-yaml","patch_set":22,"id":"3b73907b_081c8017","line":6,"updated":"2023-02-10 14:53:03.000000000","message":"nit: whitespaces at end of lines","commit_id":"894e7415413df40d21aa40e96c4b50c371ea640d"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"a4c9b8991c38b98b8889727dcdd429c0aa772c4f","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    Secret consumers is a functionality to allow any single secret "},{"line_number":4,"context_line":"    to have one or more consumers. This functionality adds a new"},{"line_number":5,"context_line":"    API to Python Barbican client."},{"line_number":6,"context_line":"    "},{"line_number":7,"context_line":"    With this new API, other OpenStack projects would register "},{"line_number":8,"context_line":"    as a consumer of a secret by sending a request to Barbican. "},{"line_number":9,"context_line":"    Barbican stores the service type of the requesting service, "}],"source_content_type":"text/x-yaml","patch_set":22,"id":"2aaae8f8_f8bd2067","line":6,"in_reply_to":"3b73907b_081c8017","updated":"2023-02-10 17:27:03.000000000","message":"Done","commit_id":"894e7415413df40d21aa40e96c4b50c371ea640d"}]}
