)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"b9617f286fa24069abfda2d3bb6dff082e907092","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ea30f2ad_d2d04db1","updated":"2025-10-17 13:23:05.000000000","message":"Hello, thanks for these changes. Your patch LGTM, however, here are some suggestions:\n- Consider adding a test case where auth_type is not specified to ensure the `None` context handling is working as expected.\n- The logging message in the exception handler could be improved to provide more context about the failure and about how to potentially solve this.","commit_id":"be8c534284592e03ac6d16d5656f2bcb8b084afb"},{"author":{"_account_id":38430,"name":"Abilash Perinparasa","display_name":"Abi","email":"abi.perinparasa@canonical.com","username":"abi-p"},"change_message_id":"e23d8fb2bc5bc7c161cdf1318d0e18560a0e6f1e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d6c9f2aa_39625667","in_reply_to":"ea30f2ad_d2d04db1","updated":"2025-10-20 14:38:53.000000000","message":"Added new test case: test_missing_auth_type. \nImproved logging message.","commit_id":"be8c534284592e03ac6d16d5656f2bcb8b084afb"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"82c86a593c61c2482e09a764365570cf63affd8e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f26e2586_6cfc0d98","updated":"2025-12-03 13:23:42.000000000","message":"TZhiThis has been kept open for enough time.","commit_id":"6e7a055deeb6ab786c91ae7f1006834d7aff5d71"}],"castellan/_config_driver.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"01330d781a1b403e79e5794e67b4f1706c797448","unresolved":true,"context_lines":[{"line_number":48,"context_line":"from castellan.common import utils"},{"line_number":49,"context_line":"from castellan import key_manager"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"from oslo_config import cfg"},{"line_number":53,"context_line":"from oslo_config import sources"},{"line_number":54,"context_line":"from oslo_log import log"}],"source_content_type":"text/x-python","patch_set":2,"id":"7fa0cdef_eebc8125","line":51,"updated":"2025-10-02 13:33:51.000000000","message":"this additional blank like is not necessary.","commit_id":"61a7f7b4200f2c65f4fa1cc833cfbfa6bef749fb"},{"author":{"_account_id":38430,"name":"Abilash Perinparasa","display_name":"Abi","email":"abi.perinparasa@canonical.com","username":"abi-p"},"change_message_id":"2a4633c0988feb801a86302863096c6ba0274bc2","unresolved":false,"context_lines":[{"line_number":48,"context_line":"from castellan.common import utils"},{"line_number":49,"context_line":"from castellan import key_manager"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"from oslo_config import cfg"},{"line_number":53,"context_line":"from oslo_config import sources"},{"line_number":54,"context_line":"from oslo_log import log"}],"source_content_type":"text/x-python","patch_set":2,"id":"199882cf_11258bc8","line":51,"in_reply_to":"7fa0cdef_eebc8125","updated":"2025-10-08 21:55:21.000000000","message":"Done","commit_id":"61a7f7b4200f2c65f4fa1cc833cfbfa6bef749fb"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"01330d781a1b403e79e5794e67b4f1706c797448","unresolved":true,"context_lines":[{"line_number":116,"context_line":"        try:"},{"line_number":117,"context_line":"            self._context \u003d utils.credential_factory(conf)"},{"line_number":118,"context_line":"        except AuthTypeInvalidError:"},{"line_number":119,"context_line":"            self._context \u003d \"ctx\""},{"line_number":120,"context_line":"            LOG.debug(\"no valid auth_type present in \u0027%s\u0027, using fake context\","},{"line_number":121,"context_line":"                      config_file)"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"41117892_c9212750","line":119,"range":{"start_line":119,"start_character":12,"end_line":119,"end_character":33},"updated":"2025-10-02 13:33:51.000000000","message":"Should we pass None instead. It may trigger a message which may give more clear view about the problem, rather than internal type mismatch.","commit_id":"61a7f7b4200f2c65f4fa1cc833cfbfa6bef749fb"},{"author":{"_account_id":38430,"name":"Abilash Perinparasa","display_name":"Abi","email":"abi.perinparasa@canonical.com","username":"abi-p"},"change_message_id":"2a4633c0988feb801a86302863096c6ba0274bc2","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        try:"},{"line_number":117,"context_line":"            self._context \u003d utils.credential_factory(conf)"},{"line_number":118,"context_line":"        except AuthTypeInvalidError:"},{"line_number":119,"context_line":"            self._context \u003d \"ctx\""},{"line_number":120,"context_line":"            LOG.debug(\"no valid auth_type present in \u0027%s\u0027, using fake context\","},{"line_number":121,"context_line":"                      config_file)"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"2e941a25_22246058","line":119,"range":{"start_line":119,"start_character":12,"end_line":119,"end_character":33},"in_reply_to":"41117892_c9212750","updated":"2025-10-08 21:55:21.000000000","message":"I agree that the context should be set to None. This requires an update to test_config_diver.test_fetch_secret() to include a valid auth_type in the config. Interestingly enough, vault_key_manager.py would actually work fine with context\u003dNone (https://bugs.launchpad.net/castellan/+bug/1776989)","commit_id":"61a7f7b4200f2c65f4fa1cc833cfbfa6bef749fb"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"01330d781a1b403e79e5794e67b4f1706c797448","unresolved":true,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        except KeyManagerError:"},{"line_number":141,"context_line":"            # bad mapping \u0027option \u003d\u0027 without a castellan_id"},{"line_number":142,"context_line":"            LOG.error(\"missing castellan_id for option \u0027[%s] %s\u0027 in \u0027[%s] \""},{"line_number":143,"context_line":"                      \"mapping_file\u0027\","},{"line_number":144,"context_line":"                      group_name, option_name, self._name)"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"644ad4a1_ca7edb4b","line":142,"range":{"start_line":142,"start_character":23,"end_line":142,"end_character":54},"updated":"2025-10-02 13:33:51.000000000","message":"This might be off-topic but I wonder if we should rephrase this because KeyManagerError can be raised in multiple situations (for example when auth_type is not set properly).","commit_id":"61a7f7b4200f2c65f4fa1cc833cfbfa6bef749fb"},{"author":{"_account_id":38430,"name":"Abilash Perinparasa","display_name":"Abi","email":"abi.perinparasa@canonical.com","username":"abi-p"},"change_message_id":"2a4633c0988feb801a86302863096c6ba0274bc2","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        except KeyManagerError:"},{"line_number":141,"context_line":"            # bad mapping \u0027option \u003d\u0027 without a castellan_id"},{"line_number":142,"context_line":"            LOG.error(\"missing castellan_id for option \u0027[%s] %s\u0027 in \u0027[%s] \""},{"line_number":143,"context_line":"                      \"mapping_file\u0027\","},{"line_number":144,"context_line":"                      group_name, option_name, self._name)"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ffe40a9b_c4296238","line":142,"range":{"start_line":142,"start_character":23,"end_line":142,"end_character":54},"in_reply_to":"644ad4a1_ca7edb4b","updated":"2025-10-08 21:55:21.000000000","message":"Done","commit_id":"61a7f7b4200f2c65f4fa1cc833cfbfa6bef749fb"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"245b4dcdc532aeb696456846f545a813cb90b4dd","unresolved":true,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        except KeyManagerError as e:"},{"line_number":140,"context_line":"            # error retrieving the secret from the key manager"},{"line_number":141,"context_line":"            LOG.error(\"Failed to retrieve secret for option \u0027[%s] %s\u0027 in \""},{"line_number":142,"context_line":"                      \"\u0027[%s] mapping_file\u0027: %s\","},{"line_number":143,"context_line":"                      group_name, option_name, self._name, e)"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"f7117de6_089bf642","line":141,"range":{"start_line":141,"start_character":16,"end_line":141,"end_character":21},"updated":"2025-10-14 14:35:07.000000000","message":"Maybe we could even use LOG.exception (and omit the additional %s -\u003e e) but that may not be a big problem.","commit_id":"282d2239f2f06da33a2894bd6e305e63b209492b"},{"author":{"_account_id":38430,"name":"Abilash Perinparasa","display_name":"Abi","email":"abi.perinparasa@canonical.com","username":"abi-p"},"change_message_id":"7bee1c6c9f06ea42742fc209bae22c4fbad84ef8","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        except KeyManagerError as e:"},{"line_number":140,"context_line":"            # error retrieving the secret from the key manager"},{"line_number":141,"context_line":"            LOG.error(\"Failed to retrieve secret for option \u0027[%s] %s\u0027 in \""},{"line_number":142,"context_line":"                      \"\u0027[%s] mapping_file\u0027: %s\","},{"line_number":143,"context_line":"                      group_name, option_name, self._name, e)"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"8dd84272_153c63ae","line":141,"range":{"start_line":141,"start_character":16,"end_line":141,"end_character":21},"in_reply_to":"f7117de6_089bf642","updated":"2025-10-15 16:05:49.000000000","message":"Done","commit_id":"282d2239f2f06da33a2894bd6e305e63b209492b"}]}
