)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"286760c261824858c7eb653f783e1017411052c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"451ea330_678566f3","updated":"2024-02-23 11:13:51.000000000","message":"LGTM","commit_id":"3f5fdebec44651a07cdb3823abf7800a993fbb66"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"cfcc46427517b790cc649b984d15e4c740ba4a8a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"563cdaa9_ad747f73","updated":"2024-02-29 11:32:20.000000000","message":"Mostly trivial change. Sticking with a +1 since there\u0027s an open question around object versioning in here","commit_id":"59527863fb9348a2c882de872c301c325ba3f92c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4620dc53210e84a3d0c00bea2a1149cf722bf313","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5b5aa3a7_9035e745","updated":"2024-05-28 08:58:27.000000000","message":"one more cleanup and it looks OK to me","commit_id":"8a9ab81c0851b8f0aecb6fab9e28bcf913efa63e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"98142fc0579a7995e643c0ca4c0aa6191c76f1b3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"fb73ab4a_90b24847","updated":"2024-06-27 07:14:05.000000000","message":"Let\u0027s give it a go, just reviewing the whole series before +2.","commit_id":"bed02968bd9f924cda4f47f08662be99fc0816b4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9286cc256eb1e2b79454d1d7fa621cf11fe78968","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"b7014eb8_460190c4","updated":"2024-06-04 09:23:44.000000000","message":"looks good to me.","commit_id":"bed02968bd9f924cda4f47f08662be99fc0816b4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4070879d3598f3b27b0765af7075406597c392e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"2b73d0c4_cdad3d14","updated":"2024-11-05 12:50:45.000000000","message":"no changes since last review just rebase so this still looks good","commit_id":"73e8dce9255b93aaea32954a7bf0d128934cac1b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"eba30c5bdfc2ae2aec797bb70ae0524b60114031","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"c7be2f87_b564c701","updated":"2024-11-15 09:51:49.000000000","message":"Just rebased since my last review. Still looks good.","commit_id":"34b14eb438816b3db6e6b091d4eb861afac1235b"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"868635fa99d3efe6807ad1b4b549646fbbce128c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"5dc7abbb_993bc579","updated":"2024-11-14 10:39:31.000000000","message":"No diffs in this patchset, restating my +1 here for making sure we don\u0027t merge yet this but I\u0027ll start +2ing the above patches.","commit_id":"34b14eb438816b3db6e6b091d4eb861afac1235b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5449d2550cac2367d3a1c1af429df15ecbe64785","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"abb4b40d_c2475ead","updated":"2024-11-20 14:56:46.000000000","message":"still looks good just a rebase","commit_id":"f493633aed5d4cc3d05a595abadc4bf0479ae975"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"562710ab14a211640b7fbb3020c5e508e1e2f0ad","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"fc175b05_5646b176","updated":"2024-11-21 13:17:42.000000000","message":"recheck failed volume test:\n```\nDetails: {\u0027message\u0027: \u0027No image found with ID 97ae1622-8ec8-4235-a159-45da365b5754\u003cbr /\u003e\u003cbr /\u003e\\n\\n\\n\u0027, \u0027code\u0027: \u0027404 Not Found\u0027, \u0027title\u0027: \u0027Not Found\u0027}\n```","commit_id":"aea56e9bcc5ee4252f24e5d79e85361c7d2cd3ca"}],"nova/objects/share_mapping.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9a400b3d1b596f2eb094078ad29cf10970411b36","unresolved":true,"context_lines":[{"line_number":50,"context_line":"            self.status, self.tag, self.export_location, self.share_proto)"},{"line_number":51,"context_line":"        self._from_db_object(self._context, self, db_share_mapping)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def create(self):"},{"line_number":54,"context_line":"        LOG.info("},{"line_number":55,"context_line":"            \"Attaching share \u0027%s\u0027 to instance \u0027%s\u0027.\","},{"line_number":56,"context_line":"            self.share_id, self.instance_uuid)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        self.save()"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @base.remotable"},{"line_number":61,"context_line":"    def delete(self):"},{"line_number":62,"context_line":"        LOG.info("},{"line_number":63,"context_line":"            \"Detaching share \u0027%s\u0027 from instance \u0027%s\u0027.\","},{"line_number":64,"context_line":"            self.share_id,"},{"line_number":65,"context_line":"            self.instance_uuid,"},{"line_number":66,"context_line":"        )"},{"line_number":67,"context_line":"        db.share_mapping_delete_by_instance_uuid_and_share_id("},{"line_number":68,"context_line":"            self._context, self.instance_uuid, self.share_id"},{"line_number":69,"context_line":"        )"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def attach(self):"},{"line_number":72,"context_line":"        LOG.info("},{"line_number":73,"context_line":"            \"Share \u0027%s\u0027 about to be attached to instance \u0027%s\u0027.\","},{"line_number":74,"context_line":"            self.share_id, self.instance_uuid)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        self.status \u003d fields.ShareMappingStatus.ACTIVE"},{"line_number":77,"context_line":"        self.save()"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def detach(self):"},{"line_number":80,"context_line":"        LOG.info("},{"line_number":81,"context_line":"            \"Share \u0027%s\u0027 about to be detached from instance \u0027%s\u0027.\","},{"line_number":82,"context_line":"            self.share_id,"},{"line_number":83,"context_line":"            self.instance_uuid,"},{"line_number":84,"context_line":"        )"},{"line_number":85,"context_line":"        self.status \u003d fields.ShareMappingStatus.INACTIVE"},{"line_number":86,"context_line":"        self.save()"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba0d49c3_e9432734","line":83,"range":{"start_line":53,"start_character":1,"end_line":83,"end_character":31},"updated":"2024-02-13 13:18:31.000000000","message":"It seems that now we have a clash of terminology as both the create() and attach() function uses the same \"attach\" terminology.\n\nMaybe we create can say mapping the share to the instance (as it creates a sharemapping object) and delete can say unmapping. But then we will still have the misleading situation that attach() does not relate to the new ATTACHING state of the share mapping. Maybe the new state is not really ATTACHING but MOUNTING? Or maybe attach() is not really does \"attaching\"","commit_id":"e181c3e486183a15424ae00c42d21c4f19ed5b8c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f4390f4c6ae7c13576e70d955e8c8bf9b76b2af8","unresolved":true,"context_lines":[{"line_number":50,"context_line":"            self.status, self.tag, self.export_location, self.share_proto)"},{"line_number":51,"context_line":"        self._from_db_object(self._context, self, db_share_mapping)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def create(self):"},{"line_number":54,"context_line":"        LOG.info("},{"line_number":55,"context_line":"            \"Attaching share \u0027%s\u0027 to instance \u0027%s\u0027.\","},{"line_number":56,"context_line":"            self.share_id, self.instance_uuid)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        self.save()"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @base.remotable"},{"line_number":61,"context_line":"    def delete(self):"},{"line_number":62,"context_line":"        LOG.info("},{"line_number":63,"context_line":"            \"Detaching share \u0027%s\u0027 from instance \u0027%s\u0027.\","},{"line_number":64,"context_line":"            self.share_id,"},{"line_number":65,"context_line":"            self.instance_uuid,"},{"line_number":66,"context_line":"        )"},{"line_number":67,"context_line":"        db.share_mapping_delete_by_instance_uuid_and_share_id("},{"line_number":68,"context_line":"            self._context, self.instance_uuid, self.share_id"},{"line_number":69,"context_line":"        )"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def attach(self):"},{"line_number":72,"context_line":"        LOG.info("},{"line_number":73,"context_line":"            \"Share \u0027%s\u0027 about to be attached to instance \u0027%s\u0027.\","},{"line_number":74,"context_line":"            self.share_id, self.instance_uuid)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        self.status \u003d fields.ShareMappingStatus.ACTIVE"},{"line_number":77,"context_line":"        self.save()"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def detach(self):"},{"line_number":80,"context_line":"        LOG.info("},{"line_number":81,"context_line":"            \"Share \u0027%s\u0027 about to be detached from instance \u0027%s\u0027.\","},{"line_number":82,"context_line":"            self.share_id,"},{"line_number":83,"context_line":"            self.instance_uuid,"},{"line_number":84,"context_line":"        )"},{"line_number":85,"context_line":"        self.status \u003d fields.ShareMappingStatus.INACTIVE"},{"line_number":86,"context_line":"        self.save()"}],"source_content_type":"text/x-python","patch_set":1,"id":"a15652ac_df072f95","line":83,"range":{"start_line":53,"start_character":1,"end_line":83,"end_character":31},"in_reply_to":"92e500c0_c95f6599","updated":"2024-02-19 16:37:31.000000000","message":"so attach would be renamed to activate. that is probably fine.","commit_id":"e181c3e486183a15424ae00c42d21c4f19ed5b8c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"cfcc46427517b790cc649b984d15e4c740ba4a8a","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            self.status, self.tag, self.export_location, self.share_proto)"},{"line_number":51,"context_line":"        self._from_db_object(self._context, self, db_share_mapping)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def create(self):"},{"line_number":54,"context_line":"        LOG.info("},{"line_number":55,"context_line":"            \"Attaching share \u0027%s\u0027 to instance \u0027%s\u0027.\","},{"line_number":56,"context_line":"            self.share_id, self.instance_uuid)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        self.save()"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @base.remotable"},{"line_number":61,"context_line":"    def delete(self):"},{"line_number":62,"context_line":"        LOG.info("},{"line_number":63,"context_line":"            \"Detaching share \u0027%s\u0027 from instance \u0027%s\u0027.\","},{"line_number":64,"context_line":"            self.share_id,"},{"line_number":65,"context_line":"            self.instance_uuid,"},{"line_number":66,"context_line":"        )"},{"line_number":67,"context_line":"        db.share_mapping_delete_by_instance_uuid_and_share_id("},{"line_number":68,"context_line":"            self._context, self.instance_uuid, self.share_id"},{"line_number":69,"context_line":"        )"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def attach(self):"},{"line_number":72,"context_line":"        LOG.info("},{"line_number":73,"context_line":"            \"Share \u0027%s\u0027 about to be attached to instance \u0027%s\u0027.\","},{"line_number":74,"context_line":"            self.share_id, self.instance_uuid)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        self.status \u003d fields.ShareMappingStatus.ACTIVE"},{"line_number":77,"context_line":"        self.save()"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def detach(self):"},{"line_number":80,"context_line":"        LOG.info("},{"line_number":81,"context_line":"            \"Share \u0027%s\u0027 about to be detached from instance \u0027%s\u0027.\","},{"line_number":82,"context_line":"            self.share_id,"},{"line_number":83,"context_line":"            self.instance_uuid,"},{"line_number":84,"context_line":"        )"},{"line_number":85,"context_line":"        self.status \u003d fields.ShareMappingStatus.INACTIVE"},{"line_number":86,"context_line":"        self.save()"}],"source_content_type":"text/x-python","patch_set":1,"id":"496c19db_d614b6c2","line":83,"range":{"start_line":53,"start_character":1,"end_line":83,"end_character":31},"in_reply_to":"a15652ac_df072f95","updated":"2024-02-29 11:32:20.000000000","message":"Done","commit_id":"e181c3e486183a15424ae00c42d21c4f19ed5b8c"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"474105c477dd4c8c86f825c05a89699b76d1da29","unresolved":true,"context_lines":[{"line_number":50,"context_line":"            self.status, self.tag, self.export_location, self.share_proto)"},{"line_number":51,"context_line":"        self._from_db_object(self._context, self, db_share_mapping)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def create(self):"},{"line_number":54,"context_line":"        LOG.info("},{"line_number":55,"context_line":"            \"Attaching share \u0027%s\u0027 to instance \u0027%s\u0027.\","},{"line_number":56,"context_line":"            self.share_id, self.instance_uuid)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        self.save()"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @base.remotable"},{"line_number":61,"context_line":"    def delete(self):"},{"line_number":62,"context_line":"        LOG.info("},{"line_number":63,"context_line":"            \"Detaching share \u0027%s\u0027 from instance \u0027%s\u0027.\","},{"line_number":64,"context_line":"            self.share_id,"},{"line_number":65,"context_line":"            self.instance_uuid,"},{"line_number":66,"context_line":"        )"},{"line_number":67,"context_line":"        db.share_mapping_delete_by_instance_uuid_and_share_id("},{"line_number":68,"context_line":"            self._context, self.instance_uuid, self.share_id"},{"line_number":69,"context_line":"        )"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def attach(self):"},{"line_number":72,"context_line":"        LOG.info("},{"line_number":73,"context_line":"            \"Share \u0027%s\u0027 about to be attached to instance \u0027%s\u0027.\","},{"line_number":74,"context_line":"            self.share_id, self.instance_uuid)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        self.status \u003d fields.ShareMappingStatus.ACTIVE"},{"line_number":77,"context_line":"        self.save()"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def detach(self):"},{"line_number":80,"context_line":"        LOG.info("},{"line_number":81,"context_line":"            \"Share \u0027%s\u0027 about to be detached from instance \u0027%s\u0027.\","},{"line_number":82,"context_line":"            self.share_id,"},{"line_number":83,"context_line":"            self.instance_uuid,"},{"line_number":84,"context_line":"        )"},{"line_number":85,"context_line":"        self.status \u003d fields.ShareMappingStatus.INACTIVE"},{"line_number":86,"context_line":"        self.save()"}],"source_content_type":"text/x-python","patch_set":1,"id":"92e500c0_c95f6599","line":83,"range":{"start_line":53,"start_character":1,"end_line":83,"end_character":31},"in_reply_to":"ba0d49c3_e9432734","updated":"2024-02-16 14:00:33.000000000","message":"I use activate and deactivate. It\u0027s better aligned with the status field.\nI may need to change the doc accordingly, not checked yet.\n\nPlease let me know what you think about it.","commit_id":"e181c3e486183a15424ae00c42d21c4f19ed5b8c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8c6c5cd8c70fe329fda825aea06332a130e39892","unresolved":true,"context_lines":[{"line_number":25,"context_line":"@base.NovaObjectRegistry.register"},{"line_number":26,"context_line":"class ShareMapping(base.NovaTimestampObject, base.NovaObject):"},{"line_number":27,"context_line":"    # Version 1.0: Initial version"},{"line_number":28,"context_line":"    # Version 1.1: Add \"attaching\" to possible value of status field"},{"line_number":29,"context_line":"    VERSION \u003d \u00271.1\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    fields \u003d {"}],"source_content_type":"text/x-python","patch_set":5,"id":"e3bfbe04_3898f161","line":28,"updated":"2024-05-13 09:09:55.000000000","message":"there is also detaching state now","commit_id":"2d0c1efe689912ea15cf58136f755de0ca7c86f8"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"701ee96a3955b9098b112dc6f0fde96c7d4b95cb","unresolved":false,"context_lines":[{"line_number":25,"context_line":"@base.NovaObjectRegistry.register"},{"line_number":26,"context_line":"class ShareMapping(base.NovaTimestampObject, base.NovaObject):"},{"line_number":27,"context_line":"    # Version 1.0: Initial version"},{"line_number":28,"context_line":"    # Version 1.1: Add \"attaching\" to possible value of status field"},{"line_number":29,"context_line":"    VERSION \u003d \u00271.1\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    fields \u003d {"}],"source_content_type":"text/x-python","patch_set":5,"id":"d5874826_7be93d48","line":28,"in_reply_to":"e3bfbe04_3898f161","updated":"2024-05-15 16:27:15.000000000","message":"Done","commit_id":"2d0c1efe689912ea15cf58136f755de0ca7c86f8"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8c6c5cd8c70fe329fda825aea06332a130e39892","unresolved":true,"context_lines":[{"line_number":46,"context_line":"        target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":47,"context_line":"        if target_version \u003c (1, 1):"},{"line_number":48,"context_line":"            status \u003d primitive.get(\u0027status\u0027)"},{"line_number":49,"context_line":"            if status and \u0027attaching\u0027 in status:"},{"line_number":50,"context_line":"                raise exception.ObjectActionError("},{"line_number":51,"context_line":"                    action\u003d\u0027obj_make_compatible\u0027,"},{"line_number":52,"context_line":"                    reason\u003d\u0027status\u003d%s not supported in version %s\u0027 % ("}],"source_content_type":"text/x-python","patch_set":5,"id":"ff41daf3_c34620e3","line":49,"updated":"2024-05-13 09:09:55.000000000","message":"there is also detaching state now","commit_id":"2d0c1efe689912ea15cf58136f755de0ca7c86f8"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"701ee96a3955b9098b112dc6f0fde96c7d4b95cb","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":47,"context_line":"        if target_version \u003c (1, 1):"},{"line_number":48,"context_line":"            status \u003d primitive.get(\u0027status\u0027)"},{"line_number":49,"context_line":"            if status and \u0027attaching\u0027 in status:"},{"line_number":50,"context_line":"                raise exception.ObjectActionError("},{"line_number":51,"context_line":"                    action\u003d\u0027obj_make_compatible\u0027,"},{"line_number":52,"context_line":"                    reason\u003d\u0027status\u003d%s not supported in version %s\u0027 % ("}],"source_content_type":"text/x-python","patch_set":5,"id":"173caf00_6510b7d6","line":49,"in_reply_to":"ff41daf3_c34620e3","updated":"2024-05-15 16:27:15.000000000","message":"Done","commit_id":"2d0c1efe689912ea15cf58136f755de0ca7c86f8"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8c6c5cd8c70fe329fda825aea06332a130e39892","unresolved":true,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def activate(self):"},{"line_number":89,"context_line":"        LOG.info("},{"line_number":90,"context_line":"            \"Share \u0027%s\u0027 about to be activated to instance \u0027%s\u0027.\","},{"line_number":91,"context_line":"            self.share_id, self.instance_uuid)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        self.status \u003d fields.ShareMappingStatus.ACTIVE"}],"source_content_type":"text/x-python","patch_set":5,"id":"d8e82cd7_aa66e12a","line":90,"updated":"2024-05-13 09:09:55.000000000","message":"nit: activated on","commit_id":"2d0c1efe689912ea15cf58136f755de0ca7c86f8"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"701ee96a3955b9098b112dc6f0fde96c7d4b95cb","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def activate(self):"},{"line_number":89,"context_line":"        LOG.info("},{"line_number":90,"context_line":"            \"Share \u0027%s\u0027 about to be activated to instance \u0027%s\u0027.\","},{"line_number":91,"context_line":"            self.share_id, self.instance_uuid)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        self.status \u003d fields.ShareMappingStatus.ACTIVE"}],"source_content_type":"text/x-python","patch_set":5,"id":"dcfcb224_ebafed89","line":90,"in_reply_to":"d8e82cd7_aa66e12a","updated":"2024-05-15 16:27:15.000000000","message":"Done","commit_id":"2d0c1efe689912ea15cf58136f755de0ca7c86f8"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8c6c5cd8c70fe329fda825aea06332a130e39892","unresolved":true,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def deactivate(self):"},{"line_number":97,"context_line":"        LOG.info("},{"line_number":98,"context_line":"            \"Share \u0027%s\u0027 about to be deactivated from instance \u0027%s\u0027.\","},{"line_number":99,"context_line":"            self.share_id,"},{"line_number":100,"context_line":"            self.instance_uuid,"},{"line_number":101,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":5,"id":"32484f0d_84160b64","line":98,"updated":"2024-05-13 09:09:55.000000000","message":"nit: deactivated on","commit_id":"2d0c1efe689912ea15cf58136f755de0ca7c86f8"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"701ee96a3955b9098b112dc6f0fde96c7d4b95cb","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def deactivate(self):"},{"line_number":97,"context_line":"        LOG.info("},{"line_number":98,"context_line":"            \"Share \u0027%s\u0027 about to be deactivated from instance \u0027%s\u0027.\","},{"line_number":99,"context_line":"            self.share_id,"},{"line_number":100,"context_line":"            self.instance_uuid,"},{"line_number":101,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":5,"id":"65f63598_386b058d","line":98,"in_reply_to":"32484f0d_84160b64","updated":"2024-05-15 16:27:15.000000000","message":"Done","commit_id":"2d0c1efe689912ea15cf58136f755de0ca7c86f8"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4620dc53210e84a3d0c00bea2a1149cf722bf313","unresolved":true,"context_lines":[{"line_number":47,"context_line":"        target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":48,"context_line":"        if target_version \u003c (1, 1):"},{"line_number":49,"context_line":"            status \u003d primitive.get(\u0027status\u0027)"},{"line_number":50,"context_line":"            if status and (\u0027attaching\u0027 in status or \u0027detaching\u0027 in status):"},{"line_number":51,"context_line":"                raise exception.ObjectActionError("},{"line_number":52,"context_line":"                    action\u003d\u0027obj_make_compatible\u0027,"},{"line_number":53,"context_line":"                    reason\u003d\u0027status\u003d%s not supported in version %s\u0027 % ("}],"source_content_type":"text/x-python","patch_set":6,"id":"012cd57c_cb26142f","line":50,"updated":"2024-05-28 08:58:27.000000000","message":"the `\u0027attaching\u0027 in status` checks if the status string contains \u0027attaching\u0027 as a substring. We can be more stricter and check for string equality.\n\n```\nif status and (status in (\u0027attaching\u0027, \u0027detaching\u0027)):\n```\n\nif status is None (get returns None if the key is not in the dic) then the second half of the condition will never be true so the following is equivalent:\n\n```\nif status in (\u0027attaching\u0027, \u0027detaching\u0027):\n```\n\nalso we have constants for these strings\n\n```\nif status is in (fields.ShareMappingStatus.ATTACHING, fields.ShareMappingStatus.DETACHING):\n```","commit_id":"8a9ab81c0851b8f0aecb6fab9e28bcf913efa63e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8ac41e8ad9000171ec25da7b79827116cb9d95fb","unresolved":true,"context_lines":[{"line_number":47,"context_line":"        target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":48,"context_line":"        if target_version \u003c (1, 1):"},{"line_number":49,"context_line":"            status \u003d primitive.get(\u0027status\u0027)"},{"line_number":50,"context_line":"            if status and (\u0027attaching\u0027 in status or \u0027detaching\u0027 in status):"},{"line_number":51,"context_line":"                raise exception.ObjectActionError("},{"line_number":52,"context_line":"                    action\u003d\u0027obj_make_compatible\u0027,"},{"line_number":53,"context_line":"                    reason\u003d\u0027status\u003d%s not supported in version %s\u0027 % ("}],"source_content_type":"text/x-python","patch_set":6,"id":"0b52a066_479ff219","line":50,"in_reply_to":"012cd57c_cb26142f","updated":"2024-05-28 08:59:27.000000000","message":"I mean:\n```\nif status in (fields.ShareMappingStatus.ATTACHING, fields.ShareMappingStatus.DETACHING):\n```","commit_id":"8a9ab81c0851b8f0aecb6fab9e28bcf913efa63e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"3da2f698ffa098f10e1d885ef620d84b0cb99f15","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":48,"context_line":"        if target_version \u003c (1, 1):"},{"line_number":49,"context_line":"            status \u003d primitive.get(\u0027status\u0027)"},{"line_number":50,"context_line":"            if status and (\u0027attaching\u0027 in status or \u0027detaching\u0027 in status):"},{"line_number":51,"context_line":"                raise exception.ObjectActionError("},{"line_number":52,"context_line":"                    action\u003d\u0027obj_make_compatible\u0027,"},{"line_number":53,"context_line":"                    reason\u003d\u0027status\u003d%s not supported in version %s\u0027 % ("}],"source_content_type":"text/x-python","patch_set":6,"id":"b163f03b_cb053058","line":50,"in_reply_to":"0b52a066_479ff219","updated":"2024-06-03 14:30:40.000000000","message":"Done","commit_id":"8a9ab81c0851b8f0aecb6fab9e28bcf913efa63e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3c9843bf0b3cd216c5e34fe40c89c3ea8a447ffb","unresolved":true,"context_lines":[{"line_number":47,"context_line":"        target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":48,"context_line":"        if target_version \u003c (1, 1):"},{"line_number":49,"context_line":"            status \u003d primitive.get(\u0027status\u0027)"},{"line_number":50,"context_line":"            if status and (\u0027attaching\u0027 in status or \u0027detaching\u0027 in status):"},{"line_number":51,"context_line":"                raise exception.ObjectActionError("},{"line_number":52,"context_line":"                    action\u003d\u0027obj_make_compatible\u0027,"},{"line_number":53,"context_line":"                    reason\u003d\u0027status\u003d%s not supported in version %s\u0027 % ("}],"source_content_type":"text/x-python","patch_set":6,"id":"85e6ee31_b0038748","line":50,"in_reply_to":"0b52a066_479ff219","updated":"2024-05-31 09:27:46.000000000","message":"ditto here","commit_id":"8a9ab81c0851b8f0aecb6fab9e28bcf913efa63e"}],"nova/tests/unit/objects/test_objects.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"04f9eb94521ed273df710d7a272acc10179eead7","unresolved":true,"context_lines":[{"line_number":1168,"context_line":"    \u0027Selection\u0027: \u00271.1-548e3c2f04da2a61ceaf9c4e1589f264\u0027,"},{"line_number":1169,"context_line":"    \u0027Service\u0027: \u00271.22-8a740459ab9bf258a19c8fcb875c2d9a\u0027,"},{"line_number":1170,"context_line":"    \u0027ServiceList\u0027: \u00271.19-5325bce13eebcbf22edc9678285270cc\u0027,"},{"line_number":1171,"context_line":"    \u0027ShareMapping\u0027: \u00271.0-4ca76e44ca4d7cae886a7307adbbfbb3\u0027,"},{"line_number":1172,"context_line":"    \u0027ShareMappingList\u0027: \u00271.0-634980d5efdf3656e28c8dec3d862ab9\u0027,"},{"line_number":1173,"context_line":"    \u0027Tag\u0027: \u00271.1-8b8d7d5b48887651a0e01241672e2963\u0027,"},{"line_number":1174,"context_line":"    \u0027TagList\u0027: \u00271.1-55231bdb671ecf7641d6a2e9109b5d8e\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"22725094_8b61fb7c","line":1171,"range":{"start_line":1171,"start_character":5,"end_line":1171,"end_character":58},"updated":"2024-02-23 11:14:55.000000000","message":"actually, you need to add a new object version due to the new field usage","commit_id":"3f5fdebec44651a07cdb3823abf7800a993fbb66"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"85df4092f2f943ee453aa5cc8312b6b3af36c873","unresolved":true,"context_lines":[{"line_number":1168,"context_line":"    \u0027Selection\u0027: \u00271.1-548e3c2f04da2a61ceaf9c4e1589f264\u0027,"},{"line_number":1169,"context_line":"    \u0027Service\u0027: \u00271.22-8a740459ab9bf258a19c8fcb875c2d9a\u0027,"},{"line_number":1170,"context_line":"    \u0027ServiceList\u0027: \u00271.19-5325bce13eebcbf22edc9678285270cc\u0027,"},{"line_number":1171,"context_line":"    \u0027ShareMapping\u0027: \u00271.0-4ca76e44ca4d7cae886a7307adbbfbb3\u0027,"},{"line_number":1172,"context_line":"    \u0027ShareMappingList\u0027: \u00271.0-634980d5efdf3656e28c8dec3d862ab9\u0027,"},{"line_number":1173,"context_line":"    \u0027Tag\u0027: \u00271.1-8b8d7d5b48887651a0e01241672e2963\u0027,"},{"line_number":1174,"context_line":"    \u0027TagList\u0027: \u00271.1-55231bdb671ecf7641d6a2e9109b5d8e\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"d27b6dc6_7a25d29d","line":1171,"range":{"start_line":1171,"start_character":5,"end_line":1171,"end_character":58},"in_reply_to":"22725094_8b61fb7c","updated":"2024-02-28 15:08:11.000000000","message":"Am I wrong or we said this was not required because this is not used ?","commit_id":"3f5fdebec44651a07cdb3823abf7800a993fbb66"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6bb46097d6e5dab1a150161d784af2b3b0798a24","unresolved":true,"context_lines":[{"line_number":1168,"context_line":"    \u0027Selection\u0027: \u00271.1-548e3c2f04da2a61ceaf9c4e1589f264\u0027,"},{"line_number":1169,"context_line":"    \u0027Service\u0027: \u00271.22-8a740459ab9bf258a19c8fcb875c2d9a\u0027,"},{"line_number":1170,"context_line":"    \u0027ServiceList\u0027: \u00271.19-5325bce13eebcbf22edc9678285270cc\u0027,"},{"line_number":1171,"context_line":"    \u0027ShareMapping\u0027: \u00271.0-4ca76e44ca4d7cae886a7307adbbfbb3\u0027,"},{"line_number":1172,"context_line":"    \u0027ShareMappingList\u0027: \u00271.0-634980d5efdf3656e28c8dec3d862ab9\u0027,"},{"line_number":1173,"context_line":"    \u0027Tag\u0027: \u00271.1-8b8d7d5b48887651a0e01241672e2963\u0027,"},{"line_number":1174,"context_line":"    \u0027TagList\u0027: \u00271.1-55231bdb671ecf7641d6a2e9109b5d8e\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"58ab4e7f_6ad16319","line":1171,"range":{"start_line":1171,"start_character":5,"end_line":1171,"end_character":58},"in_reply_to":"3eac6713_85fd5071","updated":"2024-02-29 11:42:37.000000000","message":"techinally it might be ok if its not used yet but being strict about this \nif the object is already present in the code it should be treated as if its used and have a bump and the compat code for the containing object like this\n\nhttps://github.com/openstack/nova/commit/35a591d33d8b1a6c30bf40ddc48a07715fd87339\n\n\nwe try not to have different rule for code in development and after its been released so treat it as if someone had deploy the patch beffore this in production and they are upgrading to this patch.\n\nmaster shoudl always be deployable and upgradable so while this might not break anything because its not used yet it does not follow our normal pattern so we should pretened it may be used.","commit_id":"3f5fdebec44651a07cdb3823abf7800a993fbb66"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"864b1e67770b6932eadac974d45d28e247945065","unresolved":false,"context_lines":[{"line_number":1168,"context_line":"    \u0027Selection\u0027: \u00271.1-548e3c2f04da2a61ceaf9c4e1589f264\u0027,"},{"line_number":1169,"context_line":"    \u0027Service\u0027: \u00271.22-8a740459ab9bf258a19c8fcb875c2d9a\u0027,"},{"line_number":1170,"context_line":"    \u0027ServiceList\u0027: \u00271.19-5325bce13eebcbf22edc9678285270cc\u0027,"},{"line_number":1171,"context_line":"    \u0027ShareMapping\u0027: \u00271.0-4ca76e44ca4d7cae886a7307adbbfbb3\u0027,"},{"line_number":1172,"context_line":"    \u0027ShareMappingList\u0027: \u00271.0-634980d5efdf3656e28c8dec3d862ab9\u0027,"},{"line_number":1173,"context_line":"    \u0027Tag\u0027: \u00271.1-8b8d7d5b48887651a0e01241672e2963\u0027,"},{"line_number":1174,"context_line":"    \u0027TagList\u0027: \u00271.1-55231bdb671ecf7641d6a2e9109b5d8e\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9211386e_8bd161f0","line":1171,"range":{"start_line":1171,"start_character":5,"end_line":1171,"end_character":58},"in_reply_to":"58ab4e7f_6ad16319","updated":"2024-03-11 14:04:37.000000000","message":"Done","commit_id":"3f5fdebec44651a07cdb3823abf7800a993fbb66"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0ef7f023c650e2de786b3a963159243385a9a425","unresolved":true,"context_lines":[{"line_number":1168,"context_line":"    \u0027Selection\u0027: \u00271.1-548e3c2f04da2a61ceaf9c4e1589f264\u0027,"},{"line_number":1169,"context_line":"    \u0027Service\u0027: \u00271.22-8a740459ab9bf258a19c8fcb875c2d9a\u0027,"},{"line_number":1170,"context_line":"    \u0027ServiceList\u0027: \u00271.19-5325bce13eebcbf22edc9678285270cc\u0027,"},{"line_number":1171,"context_line":"    \u0027ShareMapping\u0027: \u00271.0-4ca76e44ca4d7cae886a7307adbbfbb3\u0027,"},{"line_number":1172,"context_line":"    \u0027ShareMappingList\u0027: \u00271.0-634980d5efdf3656e28c8dec3d862ab9\u0027,"},{"line_number":1173,"context_line":"    \u0027Tag\u0027: \u00271.1-8b8d7d5b48887651a0e01241672e2963\u0027,"},{"line_number":1174,"context_line":"    \u0027TagList\u0027: \u00271.1-55231bdb671ecf7641d6a2e9109b5d8e\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3eac6713_85fd5071","line":1171,"range":{"start_line":1171,"start_character":5,"end_line":1171,"end_character":58},"in_reply_to":"d27b6dc6_7a25d29d","updated":"2024-02-29 11:23:54.000000000","message":"If that was a conclusion reached from a previous discussion, it would be helpful to mention it in the commit message for reviewers/future reference.\n\nIn general, adding a new value to an enum field used by an object necessitates a new object version since you need some way to downgrade (or reject the downgrade) in environments where that enum field isn\u0027t present.","commit_id":"3f5fdebec44651a07cdb3823abf7800a993fbb66"}]}
