)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"137e2bb77551cba2d009a502c8aeb75c51c05f61","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"25cbdb19_c9e1f201","updated":"2026-02-25 11:31:30.000000000","message":"adding +W since the previous patches in the chain are merged","commit_id":"64ecc88972dafdf463d98a39b79aecbfabf5eaf8"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"a973210cdc3e1df036f17936e67484127499e782","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"705853a8_38c213a4","updated":"2026-02-24 19:18:51.000000000","message":"lgtm, we can w+1 later since it still depends on other patche in the chain","commit_id":"64ecc88972dafdf463d98a39b79aecbfabf5eaf8"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d86289fb747b766d956a785e35ee9798d998fd95","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"62d9aa31_d7a164ae","updated":"2026-02-25 13:22:29.000000000","message":"recheck\n\ngrenade job failed with: \"Unexpected status of volume cinder_grenade_vol3 (expected in-use, but was error)\"\nwhich doesn\u0027t seems related to this patch\n\n[1] https://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_20a/openstack/20a2c9a15cb14ecbb59d896686f51a7f/controller/logs/grenade.sh_log.txt","commit_id":"64ecc88972dafdf463d98a39b79aecbfabf5eaf8"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"df58fb4c1f41f4fff854fa69edfc0b9555bc8122","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1b5cbccc_781be7b6","updated":"2026-02-24 15:55:00.000000000","message":"the change lgtm, the refactor make sense if the block would be used in an action as well","commit_id":"64ecc88972dafdf463d98a39b79aecbfabf5eaf8"}],"watcher/common/nova_helper.py":[{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"62c09356b36444584eb46d0e43a85c7fb94c23a7","unresolved":true,"context_lines":[{"line_number":569,"context_line":"        flavors \u003d self.connection.compute.flavors(is_public\u003dNone)"},{"line_number":570,"context_line":"        return [Flavor.from_openstacksdk(f) for f in flavors]"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":"    @handle_nova_error(\"Flavor\")"},{"line_number":573,"context_line":"    def get_flavor_id(self, flavor):"},{"line_number":574,"context_line":"        \"\"\"Get the flavor id for a given flavor name or id."},{"line_number":575,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba503472_4d8b2430","line":572,"in_reply_to":"2debc3f9_1e49e2ae","updated":"2026-02-24 12:22:47.000000000","message":"Actually, I probably don\u0027t need @handle_nova_error decorator here neither given that i\u0027m using just two calls already covered by it.","commit_id":"bf7d5f80375e8b4a70a6c174447812fe69602ffe"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"62c09356b36444584eb46d0e43a85c7fb94c23a7","unresolved":false,"context_lines":[{"line_number":569,"context_line":"        flavors \u003d self.connection.compute.flavors(is_public\u003dNone)"},{"line_number":570,"context_line":"        return [Flavor.from_openstacksdk(f) for f in flavors]"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":"    @handle_nova_error(\"Flavor\")"},{"line_number":573,"context_line":"    def get_flavor_id(self, flavor):"},{"line_number":574,"context_line":"        \"\"\"Get the flavor id for a given flavor name or id."},{"line_number":575,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9c33d7f0_14da921b","line":572,"in_reply_to":"eaea9734_a93d74e9","updated":"2026-02-24 12:22:47.000000000","message":"We don\u0027t need nova_retries here given that this method is not doing any call to nova api directly.","commit_id":"bf7d5f80375e8b4a70a6c174447812fe69602ffe"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"62c09356b36444584eb46d0e43a85c7fb94c23a7","unresolved":true,"context_lines":[{"line_number":584,"context_line":"            flavor_obj \u003d self._get_flavor(flavor)"},{"line_number":585,"context_line":"            return flavor_obj.id"},{"line_number":586,"context_line":"        except exception.ComputeResourceNotFound:"},{"line_number":587,"context_line":"            flavor_id \u003d next((f.id for f in self.get_flavor_list() if"},{"line_number":588,"context_line":"                              f.flavor_name \u003d\u003d flavor), None)"},{"line_number":589,"context_line":"            if flavor_id:"},{"line_number":590,"context_line":"                return flavor_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"56eb6a93_61c830db","line":587,"in_reply_to":"3813d2f3_78edd14a","updated":"2026-02-24 12:22:47.000000000","message":"That\u0027s a nice to have but watcher is actually using this method only in resize operations which is rarely used in Watcher. Not worthy at this point.","commit_id":"bf7d5f80375e8b4a70a6c174447812fe69602ffe"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"a973210cdc3e1df036f17936e67484127499e782","unresolved":true,"context_lines":[{"line_number":584,"context_line":"            flavor_obj \u003d self._get_flavor(flavor)"},{"line_number":585,"context_line":"            return flavor_obj.id"},{"line_number":586,"context_line":"        except exception.ComputeResourceNotFound:"},{"line_number":587,"context_line":"            flavor_id \u003d next((f.id for f in self.get_flavor_list() if"},{"line_number":588,"context_line":"                              f.flavor_name \u003d\u003d flavor), None)"},{"line_number":589,"context_line":"            if flavor_id:"},{"line_number":590,"context_line":"                return flavor_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"6f0fa6d0_1de10fff","line":587,"in_reply_to":"56eb6a93_61c830db","updated":"2026-02-24 19:18:51.000000000","message":"it would be good if we had filter by name instead of listing all, but it seems that we don\u0027t have that in flavors list, and I also don\u0027t agree with a caching here.","commit_id":"bf7d5f80375e8b4a70a6c174447812fe69602ffe"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"ce77bfb2c4c398e05263288fad5e8f0b3be80a41","unresolved":false,"context_lines":[{"line_number":584,"context_line":"            flavor_obj \u003d self._get_flavor(flavor)"},{"line_number":585,"context_line":"            return flavor_obj.id"},{"line_number":586,"context_line":"        except exception.ComputeResourceNotFound:"},{"line_number":587,"context_line":"            flavor_id \u003d next((f.id for f in self.get_flavor_list() if"},{"line_number":588,"context_line":"                              f.flavor_name \u003d\u003d flavor), None)"},{"line_number":589,"context_line":"            if flavor_id:"},{"line_number":590,"context_line":"                return flavor_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ba2ec61_c9ee4f59","line":587,"in_reply_to":"6f0fa6d0_1de10fff","updated":"2026-02-25 08:28:21.000000000","message":"Yes, nova API does not provide filter by name, only by id.","commit_id":"bf7d5f80375e8b4a70a6c174447812fe69602ffe"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"62c09356b36444584eb46d0e43a85c7fb94c23a7","unresolved":true,"context_lines":[{"line_number":895,"context_line":""},{"line_number":896,"context_line":"        flavor_id \u003d None"},{"line_number":897,"context_line":""},{"line_number":898,"context_line":"        try:"},{"line_number":899,"context_line":"            flavor_id \u003d self.get_flavor_id(flavor)"},{"line_number":900,"context_line":"        except exception.ComputeResourceNotFound:"},{"line_number":901,"context_line":"            LOG.debug(\"Flavor not found: %s, could not resize\", flavor)"}],"source_content_type":"text/x-python","patch_set":1,"id":"302ec779_caad5529","line":898,"in_reply_to":"43158fc6_cc5b63ea","updated":"2026-02-24 12:22:47.000000000","message":"I\u0027ll re-add it.","commit_id":"bf7d5f80375e8b4a70a6c174447812fe69602ffe"}]}
