)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"1d64ba7d5687bd7aad797ea811e40cfa2f1c3b77","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"e288e132_4919c0e4","updated":"2026-04-07 10:00:35.000000000","message":"This is a new feature added, I think we need a Spec for it so we can all be on informed about what is intending to do.","commit_id":"1a54c8ac403523cca707909f8ba30405ab0b603d"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"9d863cc2c6c27f4182dd1ef4fb7b0ce78648e0c1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"bb873021_274617f3","in_reply_to":"6b517c02_3b8483f4","updated":"2026-04-07 10:17:56.000000000","message":"Absolutely my bad, sorry about this.","commit_id":"1a54c8ac403523cca707909f8ba30405ab0b603d"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"d61248a89d10e7c4ea1b0e22dbfc664e459976a3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"b8fb96f7_8d2cfb28","in_reply_to":"bb873021_274617f3","updated":"2026-04-07 10:18:24.000000000","message":"the implementation looks good to me.","commit_id":"1a54c8ac403523cca707909f8ba30405ab0b603d"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"e294efbc4c988da961b9a6284551c5adca1ab369","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"6b517c02_3b8483f4","in_reply_to":"e288e132_4919c0e4","updated":"2026-04-07 10:02:07.000000000","message":"See the `Implements: ` in the commit message. It points to a spec https://review.opendev.org/c/openstack/cloudkitty-specs/+/966753","commit_id":"1a54c8ac403523cca707909f8ba30405ab0b603d"}],"cloudkitty/collector/aetos.py":[{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"07f7a533bc791efaa270dcaf496a611a0cf67ef9","unresolved":true,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        session \u003d custom_session.create_custom_session("},{"line_number":70,"context_line":"            {\u0027auth\u0027: auth_plugin},"},{"line_number":71,"context_line":"            pool_size\u003d10,"},{"line_number":72,"context_line":"        )"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        adapter_options \u003d {"}],"source_content_type":"text/x-python","patch_set":5,"id":"15451406_9ce25520","line":71,"updated":"2026-03-12 07:17:30.000000000","message":"Is there any reason why this is not configurable?","commit_id":"3d03ac388e26c8328c0265244dc971c1929d97d2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"f9fadbf910d3eebd1cd63c2947d555f48c93325e","unresolved":true,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        session \u003d custom_session.create_custom_session("},{"line_number":70,"context_line":"            {\u0027auth\u0027: auth_plugin},"},{"line_number":71,"context_line":"            pool_size\u003d10,"},{"line_number":72,"context_line":"        )"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        adapter_options \u003d {"}],"source_content_type":"text/x-python","patch_set":5,"id":"f3335bb0_ce2abe3a","line":71,"in_reply_to":"15451406_9ce25520","updated":"2026-03-31 10:02:11.000000000","message":"Actually no. I don\u0027t see much of a need for the parameter at this point, I just followed the gnocchi collector implementation. I replaced the custom_session with ks_loading.load_session_from_conf_options, which is a similar pattern that e.g. watcher uses https://opendev.org/openstack/watcher/src/branch/master/watcher/decision_engine/datasources/aetos.py#L140","commit_id":"3d03ac388e26c8328c0265244dc971c1929d97d2"}],"cloudkitty/tests/common/test_aetos_client.py":[{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"07f7a533bc791efaa270dcaf496a611a0cf67ef9","unresolved":true,"context_lines":[{"line_number":133,"context_line":"        self.mock_prom_client._get.return_value \u003d \"invalid\""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        # This should raise an error when trying to access dict methods"},{"line_number":136,"context_line":"        self.assertRaises("},{"line_number":137,"context_line":"            prometheus_client_base.PrometheusResponseError,"},{"line_number":138,"context_line":"            self.client.get_instant,"},{"line_number":139,"context_line":"            \u0027test_query\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"6008b43b_53b6d86b","line":136,"updated":"2026-03-12 07:17:30.000000000","message":"This test expects a PrometheusResponseError, but looking at aetos_client.py:64-73, the exception is only raised inside a try-except for PrometheusAPIClientError. If _get() returns \"invalid\", the code will hit line 68 (return res) and return the string - no error will be raised. The test will fail.","commit_id":"3d03ac388e26c8328c0265244dc971c1929d97d2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"f9fadbf910d3eebd1cd63c2947d555f48c93325e","unresolved":true,"context_lines":[{"line_number":133,"context_line":"        self.mock_prom_client._get.return_value \u003d \"invalid\""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        # This should raise an error when trying to access dict methods"},{"line_number":136,"context_line":"        self.assertRaises("},{"line_number":137,"context_line":"            prometheus_client_base.PrometheusResponseError,"},{"line_number":138,"context_line":"            self.client.get_instant,"},{"line_number":139,"context_line":"            \u0027test_query\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"f2e338ce_e1b1ac27","line":136,"in_reply_to":"6008b43b_53b6d86b","updated":"2026-03-31 10:02:11.000000000","message":"Nice find. After checking it in more depth, it probably doesn\u0027t make much sense. Looking at python-observabilitycode once more, it\u0027ll either return a dict or it\u0027ll raise the PrometheusAPIClientError. There shouldn\u0027t be a situation in which it\u0027d return a non-dict object without raising an exception. So I deleted this testcase.","commit_id":"3d03ac388e26c8328c0265244dc971c1929d97d2"}]}
