)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"da28cc66ceb91c576959e16b7c3eae582e5532a9","unresolved":true,"context_lines":[{"line_number":12,"context_line":"on the model instead of querying the Nova API directly, removing"},{"line_number":13,"context_line":"the novaclient dependency from zone_migration."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: #2119957"},{"line_number":16,"context_line":"Change-Id: I42394082f2d43668da54974dead0cdf053e36a5e"},{"line_number":17,"context_line":"Signed-off-by: Alfredo Moralejo \u003camoralej@redhat.com\u003e"},{"line_number":18,"context_line":"Assisted-By: Claude"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"59fb1d7a_943aadbc","line":15,"updated":"2026-06-10 13:04:20.000000000","message":"I think this should be Partial-Bug since after this patch the zone migration will still be making calls to other services (cinder). I think it\u0027s fine to postpone that, but we should not be closing the bug unless we create a new one to track the remaining work","commit_id":"9d3b214b833661ed4f36a0de71942e68a17f73e4"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"7e5e6b2f82fd4e7c1189fd624f7b80945909d8a8","unresolved":false,"context_lines":[{"line_number":12,"context_line":"on the model instead of querying the Nova API directly, removing"},{"line_number":13,"context_line":"the novaclient dependency from zone_migration."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: #2119957"},{"line_number":16,"context_line":"Change-Id: I42394082f2d43668da54974dead0cdf053e36a5e"},{"line_number":17,"context_line":"Signed-off-by: Alfredo Moralejo \u003camoralej@redhat.com\u003e"},{"line_number":18,"context_line":"Assisted-By: Claude"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"59f7234c_1341d312","line":15,"in_reply_to":"59fb1d7a_943aadbc","updated":"2026-06-11 07:46:10.000000000","message":"Done","commit_id":"9d3b214b833661ed4f36a0de71942e68a17f73e4"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"007ea3642b22bf1a44b541e553bc707792ea40ef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"54850bc9_6d5bd9a7","updated":"2026-05-13 14:59:37.000000000","message":"check-rdo","commit_id":"00c087b7873b99501104e45b1166263596e0184f"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"2ab5619880d6b524d9ab83053221bb9afd80e3ef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d1c4ce94_09cdc1a5","updated":"2026-05-13 16:50:53.000000000","message":"check-rdo","commit_id":"00c087b7873b99501104e45b1166263596e0184f"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"25f709d6c0d904cd9771817b70cda7e469f38df0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8b70e838_be0e0b20","updated":"2026-06-09 09:31:51.000000000","message":"check-rdo","commit_id":"9d3b214b833661ed4f36a0de71942e68a17f73e4"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"cab0378a0d0dbc0c38e4d2cf1518ca3d6c83ed79","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"b4261a04_8ede7479","updated":"2026-06-26 18:08:31.000000000","message":"LGTM, thanks","commit_id":"0cc8aa52f459a832b75486a26c68e4fff9a376d4"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"f549507e64275fec94e1157a36e2ce9b1b3d0142","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"fcec510c_fada13ab","updated":"2026-06-25 08:53:31.000000000","message":"lgtm, thanks for fixing this Alfredo","commit_id":"0cc8aa52f459a832b75486a26c68e4fff9a376d4"}],"watcher/decision_engine/model/element/instance.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"df34466d272d7896f5f2efea1d93e5fa4aa219cf","unresolved":true,"context_lines":[{"line_number":58,"context_line":"        \"pinned_az\": ovo_fields.StringField(default\u003d\"\"),"},{"line_number":59,"context_line":"        \"flavor_extra_specs\": wfields.JsonField(default\u003d{}),"},{"line_number":60,"context_line":"        # New fields for zone migration"},{"line_number":61,"context_line":"        \"host\": ovo_fields.StringField(default\u003d\"\"),"},{"line_number":62,"context_line":"        \"created\": ovo_fields.DateTimeField(),"},{"line_number":63,"context_line":"    }"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7d9ad21f_8f56c7dd","line":61,"range":{"start_line":61,"start_character":0,"end_line":61,"end_character":51},"updated":"2026-05-15 19:55:14.000000000","message":"Another option would be to get the Node from the model, since Instance and Node are connected with an Edge. Why should we store the host here instead?","commit_id":"00c087b7873b99501104e45b1166263596e0184f"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"2192f467e5e805c26339b04af1c7369adc797aa8","unresolved":true,"context_lines":[{"line_number":58,"context_line":"        \"pinned_az\": ovo_fields.StringField(default\u003d\"\"),"},{"line_number":59,"context_line":"        \"flavor_extra_specs\": wfields.JsonField(default\u003d{}),"},{"line_number":60,"context_line":"        # New fields for zone migration"},{"line_number":61,"context_line":"        \"host\": ovo_fields.StringField(default\u003d\"\"),"},{"line_number":62,"context_line":"        \"created\": ovo_fields.DateTimeField(),"},{"line_number":63,"context_line":"    }"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"2cc87137_ca5b04a1","line":61,"range":{"start_line":61,"start_character":0,"end_line":61,"end_character":51},"in_reply_to":"4ca65855_f0837da0","updated":"2026-05-18 15:05:51.000000000","message":"I was thinking in a different way, because we already have to maintain the edge connection between nodes and instances, so there is already a code doing that processing on updates.","commit_id":"00c087b7873b99501104e45b1166263596e0184f"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"f1feb7039fd0bd68a10c45bf274262d65cf8fa49","unresolved":true,"context_lines":[{"line_number":58,"context_line":"        \"pinned_az\": ovo_fields.StringField(default\u003d\"\"),"},{"line_number":59,"context_line":"        \"flavor_extra_specs\": wfields.JsonField(default\u003d{}),"},{"line_number":60,"context_line":"        # New fields for zone migration"},{"line_number":61,"context_line":"        \"host\": ovo_fields.StringField(default\u003d\"\"),"},{"line_number":62,"context_line":"        \"created\": ovo_fields.DateTimeField(),"},{"line_number":63,"context_line":"    }"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"4ca65855_f0837da0","line":61,"range":{"start_line":61,"start_character":0,"end_line":61,"end_character":51},"in_reply_to":"7d9ad21f_8f56c7dd","updated":"2026-05-18 06:57:37.000000000","message":"Just for convenience. I feel it\u0027s an easier and cheaper to get the host from the Server to use a field that need to follow the graph. Also, it\u0027s easy to keep the field updated with the actual value.","commit_id":"00c087b7873b99501104e45b1166263596e0184f"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"df34466d272d7896f5f2efea1d93e5fa4aa219cf","unresolved":true,"context_lines":[{"line_number":59,"context_line":"        \"flavor_extra_specs\": wfields.JsonField(default\u003d{}),"},{"line_number":60,"context_line":"        # New fields for zone migration"},{"line_number":61,"context_line":"        \"host\": ovo_fields.StringField(default\u003d\"\"),"},{"line_number":62,"context_line":"        \"created\": ovo_fields.DateTimeField(),"},{"line_number":63,"context_line":"    }"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def accept(self, visitor):"}],"source_content_type":"text/x-python","patch_set":1,"id":"dc2fb6d7_500fe0a0","line":62,"range":{"start_line":62,"start_character":9,"end_line":62,"end_character":16},"updated":"2026-05-15 19:55:14.000000000","message":"why not \"created_at\"?","commit_id":"00c087b7873b99501104e45b1166263596e0184f"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"f1feb7039fd0bd68a10c45bf274262d65cf8fa49","unresolved":true,"context_lines":[{"line_number":59,"context_line":"        \"flavor_extra_specs\": wfields.JsonField(default\u003d{}),"},{"line_number":60,"context_line":"        # New fields for zone migration"},{"line_number":61,"context_line":"        \"host\": ovo_fields.StringField(default\u003d\"\"),"},{"line_number":62,"context_line":"        \"created\": ovo_fields.DateTimeField(),"},{"line_number":63,"context_line":"    }"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def accept(self, visitor):"}],"source_content_type":"text/x-python","patch_set":1,"id":"eb48a15a_f90bb99f","line":62,"range":{"start_line":62,"start_character":9,"end_line":62,"end_character":16},"in_reply_to":"dc2fb6d7_500fe0a0","updated":"2026-05-18 06:57:37.000000000","message":"the Server class from nova_helper uses `created` , https://github.com/openstack/watcher/blob/master/watcher/common/nova_helper.py#L114 , and it uses `created to access it`.","commit_id":"00c087b7873b99501104e45b1166263596e0184f"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"2192f467e5e805c26339b04af1c7369adc797aa8","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        \"flavor_extra_specs\": wfields.JsonField(default\u003d{}),"},{"line_number":60,"context_line":"        # New fields for zone migration"},{"line_number":61,"context_line":"        \"host\": ovo_fields.StringField(default\u003d\"\"),"},{"line_number":62,"context_line":"        \"created\": ovo_fields.DateTimeField(),"},{"line_number":63,"context_line":"    }"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def accept(self, visitor):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7473fc81_fc93ed9d","line":62,"range":{"start_line":62,"start_character":9,"end_line":62,"end_character":16},"in_reply_to":"eb48a15a_f90bb99f","updated":"2026-05-18 15:05:51.000000000","message":"hum, ok then","commit_id":"00c087b7873b99501104e45b1166263596e0184f"}],"watcher/decision_engine/model/model_root.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"df34466d272d7896f5f2efea1d93e5fa4aa219cf","unresolved":true,"context_lines":[{"line_number":118,"context_line":"        self.assert_node(node)"},{"line_number":119,"context_line":"        self.assert_instance(instance)"},{"line_number":120,"context_line":"        instance.host \u003d node.hostname"},{"line_number":121,"context_line":"        self.add_edge(instance.uuid, node.uuid)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    @lockutils.synchronized(\"model_root\")"},{"line_number":124,"context_line":"    def unmap_instance(self, instance, node):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9c4c5a96_c4836498","line":121,"range":{"start_line":121,"start_character":8,"end_line":121,"end_character":47},"updated":"2026-05-15 19:55:14.000000000","message":"each Instance should be connected only to one Node. We could retrieve the Node from Instance with a \"self.successors(Instance)\" here. Wdyt?","commit_id":"00c087b7873b99501104e45b1166263596e0184f"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"f1feb7039fd0bd68a10c45bf274262d65cf8fa49","unresolved":true,"context_lines":[{"line_number":118,"context_line":"        self.assert_node(node)"},{"line_number":119,"context_line":"        self.assert_instance(instance)"},{"line_number":120,"context_line":"        instance.host \u003d node.hostname"},{"line_number":121,"context_line":"        self.add_edge(instance.uuid, node.uuid)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    @lockutils.synchronized(\"model_root\")"},{"line_number":124,"context_line":"    def unmap_instance(self, instance, node):"}],"source_content_type":"text/x-python","patch_set":1,"id":"c4906f60_8d954c66","line":121,"range":{"start_line":121,"start_character":8,"end_line":121,"end_character":47},"in_reply_to":"9c4c5a96_c4836498","updated":"2026-05-18 06:57:37.000000000","message":"you mean use it here in the map_instance or use \"self.successors(Instance)\" instead of adding the host field?. As mentioned before, I found it a convenient way to identify the host from the instance object but yes, it could be avoided and use graph instead. I simply see it easier from developer pov.","commit_id":"00c087b7873b99501104e45b1166263596e0184f"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"2192f467e5e805c26339b04af1c7369adc797aa8","unresolved":true,"context_lines":[{"line_number":118,"context_line":"        self.assert_node(node)"},{"line_number":119,"context_line":"        self.assert_instance(instance)"},{"line_number":120,"context_line":"        instance.host \u003d node.hostname"},{"line_number":121,"context_line":"        self.add_edge(instance.uuid, node.uuid)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    @lockutils.synchronized(\"model_root\")"},{"line_number":124,"context_line":"    def unmap_instance(self, instance, node):"}],"source_content_type":"text/x-python","patch_set":1,"id":"f01ead8b_a99c9c7e","line":121,"range":{"start_line":121,"start_character":8,"end_line":121,"end_character":47},"in_reply_to":"c4906f60_8d954c66","updated":"2026-05-18 15:05:51.000000000","message":"I was considering using self.successors(Instance) to retrieve this info, intead of adding \u0027host\u0027 to Instace element, since we already manage this update when a instance is moved for example. The difference is that you are storing this info in the element, while the other would be based on the compute model.\nNot sure what other think about that.","commit_id":"00c087b7873b99501104e45b1166263596e0184f"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"cab0378a0d0dbc0c38e4d2cf1518ca3d6c83ed79","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        self.assert_node(node)"},{"line_number":119,"context_line":"        self.assert_instance(instance)"},{"line_number":120,"context_line":"        instance.host \u003d node.hostname"},{"line_number":121,"context_line":"        self.add_edge(instance.uuid, node.uuid)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    @lockutils.synchronized(\"model_root\")"},{"line_number":124,"context_line":"    def unmap_instance(self, instance, node):"}],"source_content_type":"text/x-python","patch_set":1,"id":"8b882222_df709345","line":121,"range":{"start_line":121,"start_character":8,"end_line":121,"end_character":47},"in_reply_to":"f01ead8b_a99c9c7e","updated":"2026-06-26 18:08:31.000000000","message":"As discussed before during irc meeting, the team agree on having new attributes to represent not only host but also hypervisor_hostname, which may not be the same depending on the deployment.","commit_id":"00c087b7873b99501104e45b1166263596e0184f"}],"watcher/decision_engine/strategy/strategies/zone_migration.py":[{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"da28cc66ceb91c576959e16b7c3eae582e5532a9","unresolved":true,"context_lines":[{"line_number":470,"context_line":"            # to the volumes, only if they are possible migration targets"},{"line_number":471,"context_line":"            if self.with_attached_volume:"},{"line_number":472,"context_line":"                instances \u003d ["},{"line_number":473,"context_line":"                    self.compute_model.get_instance_by_uuid("},{"line_number":474,"context_line":"                        dic.get(\u0027server_id\u0027)"},{"line_number":475,"context_line":"                    )"},{"line_number":476,"context_line":"                    for dic in volume.attachments"}],"source_content_type":"text/x-python","patch_set":3,"id":"0d2787c7_fa3f2a22","line":473,"updated":"2026-06-10 13:04:20.000000000","message":"this call could still throw, we should keep the try/except for `InstanceNotFound`","commit_id":"9d3b214b833661ed4f36a0de71942e68a17f73e4"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"7e5e6b2f82fd4e7c1189fd624f7b80945909d8a8","unresolved":false,"context_lines":[{"line_number":470,"context_line":"            # to the volumes, only if they are possible migration targets"},{"line_number":471,"context_line":"            if self.with_attached_volume:"},{"line_number":472,"context_line":"                instances \u003d ["},{"line_number":473,"context_line":"                    self.compute_model.get_instance_by_uuid("},{"line_number":474,"context_line":"                        dic.get(\u0027server_id\u0027)"},{"line_number":475,"context_line":"                    )"},{"line_number":476,"context_line":"                    for dic in volume.attachments"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ee60f07_06b34f17","line":473,"in_reply_to":"0d2787c7_fa3f2a22","updated":"2026-06-11 07:46:10.000000000","message":"Good catch, done","commit_id":"9d3b214b833661ed4f36a0de71942e68a17f73e4"}],"watcher/tests/unit/decision_engine/model/data/scenario_1.xml":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"df34466d272d7896f5f2efea1d93e5fa4aa219cf","unresolved":true,"context_lines":[{"line_number":1,"context_line":"\u003cModelRoot\u003e"},{"line_number":2,"context_line":"  \u003cComputeNode uuid\u003d\"Node_0\" status\u003d\"enabled\" state\u003d\"up\" id\u003d\"0\" hostname\u003d\"hostname_0\" vcpus\u003d\"40\" vcpu_reserved\u003d\"0\" vcpu_ratio\u003d\"1\" disk\u003d\"250\" disk_gb_reserved\u003d\"0\" disk_ratio\u003d\"1\" disk_capacity\u003d\"250\" memory\u003d\"132\" memory_mb_reserved\u003d\"0\" memory_ratio\u003d\"1\"\u003e"},{"line_number":3,"context_line":"    \u003cInstance watcher_exclude\u003d\"False\" state\u003d\"active\" name\u003d\"INSTANCE_0\" uuid\u003d\"d000ef1f-dc19-4982-9383-087498bfde03\" vcpus\u003d\"10\" disk\u003d\"20\" disk_capacity\u003d\"20\" memory\u003d\"2\" metadata\u003d\u0027{\"optimize\": true,\"top\": \"floor\", \"nested\": {\"x\": \"y\"}}\u0027 project_id\u003d\"91FFFE30-78A0-4152-ACD2-8310FF274DC9\" created\u003d\"2026-02-09T18:55:13Z\"/\u003e"},{"line_number":4,"context_line":"    \u003cInstance watcher_exclude\u003d\"False\" state\u003d\"active\" name\u003d\"INSTANCE_1\" uuid\u003d\"d010ef1f-dc19-4982-9383-087498bfde03\" vcpus\u003d\"11\" disk\u003d\"18\" disk_capacity\u003d\"20\" memory\u003d\"3\" metadata\u003d\u0027{\"optimize\": true,\"top\": \"floor\", \"nested\": {\"x\": \"y\"}}\u0027 project_id\u003d\"26F03131-32CB-4697-9D61-9123F87A8147\" created\u003d\"2026-02-08T18:55:13Z\"/\u003e"},{"line_number":5,"context_line":"  \u003c/ComputeNode\u003e"},{"line_number":6,"context_line":"  \u003cComputeNode uuid\u003d\"Node_1\" status\u003d\"enabled\" state\u003d\"up\" id\u003d\"1\" hostname\u003d\"hostname_1\" vcpus\u003d\"40\" vcpu_reserved\u003d\"0\" vcpu_ratio\u003d\"1\" disk\u003d\"250\" disk_gb_reserved\u003d\"0\" disk_ratio\u003d\"1\" disk_capacity\u003d\"250\" memory\u003d\"132\" memory_mb_reserved\u003d\"0\" memory_ratio\u003d\"1\"\u003e"},{"line_number":7,"context_line":"    \u003cInstance watcher_exclude\u003d\"False\" state\u003d\"active\" name\u003d\"INSTANCE_2\" uuid\u003d\"d020ef1f-dc19-4982-9383-087498bfde03\" vcpus\u003d\"12\" disk\u003d\"19\" disk_capacity\u003d\"20\" memory\u003d\"1\" metadata\u003d\u0027{\"optimize\": true,\"top\": \"floor\", \"nested\": {\"x\": \"y\"}}\u0027 project_id\u003d\"109F7909-0607-4712-B32C-5CC6D49D2F15\" created\u003d\"2026-02-07T18:55:13Z\"/\u003e"}],"source_content_type":"application/xml","patch_set":1,"id":"dae9ca9a_861196e8","line":4,"range":{"start_line":4,"start_character":283,"end_line":4,"end_character":313},"updated":"2026-05-15 19:55:14.000000000","message":"I think that we should update all instances, it expected that all instances in the model have the same attributes. So this model would not represent the expected model in memory. \nBtw, that\u0027s one of the reasons to have this files generated by a class/fixture.","commit_id":"00c087b7873b99501104e45b1166263596e0184f"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"cab0378a0d0dbc0c38e4d2cf1518ca3d6c83ed79","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003cModelRoot\u003e"},{"line_number":2,"context_line":"  \u003cComputeNode uuid\u003d\"Node_0\" status\u003d\"enabled\" state\u003d\"up\" id\u003d\"0\" hostname\u003d\"hostname_0\" vcpus\u003d\"40\" vcpu_reserved\u003d\"0\" vcpu_ratio\u003d\"1\" disk\u003d\"250\" disk_gb_reserved\u003d\"0\" disk_ratio\u003d\"1\" disk_capacity\u003d\"250\" memory\u003d\"132\" memory_mb_reserved\u003d\"0\" memory_ratio\u003d\"1\"\u003e"},{"line_number":3,"context_line":"    \u003cInstance watcher_exclude\u003d\"False\" state\u003d\"active\" name\u003d\"INSTANCE_0\" uuid\u003d\"d000ef1f-dc19-4982-9383-087498bfde03\" vcpus\u003d\"10\" disk\u003d\"20\" disk_capacity\u003d\"20\" memory\u003d\"2\" metadata\u003d\u0027{\"optimize\": true,\"top\": \"floor\", \"nested\": {\"x\": \"y\"}}\u0027 project_id\u003d\"91FFFE30-78A0-4152-ACD2-8310FF274DC9\" created\u003d\"2026-02-09T18:55:13Z\"/\u003e"},{"line_number":4,"context_line":"    \u003cInstance watcher_exclude\u003d\"False\" state\u003d\"active\" name\u003d\"INSTANCE_1\" uuid\u003d\"d010ef1f-dc19-4982-9383-087498bfde03\" vcpus\u003d\"11\" disk\u003d\"18\" disk_capacity\u003d\"20\" memory\u003d\"3\" metadata\u003d\u0027{\"optimize\": true,\"top\": \"floor\", \"nested\": {\"x\": \"y\"}}\u0027 project_id\u003d\"26F03131-32CB-4697-9D61-9123F87A8147\" created\u003d\"2026-02-08T18:55:13Z\"/\u003e"},{"line_number":5,"context_line":"  \u003c/ComputeNode\u003e"},{"line_number":6,"context_line":"  \u003cComputeNode uuid\u003d\"Node_1\" status\u003d\"enabled\" state\u003d\"up\" id\u003d\"1\" hostname\u003d\"hostname_1\" vcpus\u003d\"40\" vcpu_reserved\u003d\"0\" vcpu_ratio\u003d\"1\" disk\u003d\"250\" disk_gb_reserved\u003d\"0\" disk_ratio\u003d\"1\" disk_capacity\u003d\"250\" memory\u003d\"132\" memory_mb_reserved\u003d\"0\" memory_ratio\u003d\"1\"\u003e"},{"line_number":7,"context_line":"    \u003cInstance watcher_exclude\u003d\"False\" state\u003d\"active\" name\u003d\"INSTANCE_2\" uuid\u003d\"d020ef1f-dc19-4982-9383-087498bfde03\" vcpus\u003d\"12\" disk\u003d\"19\" disk_capacity\u003d\"20\" memory\u003d\"1\" metadata\u003d\u0027{\"optimize\": true,\"top\": \"floor\", \"nested\": {\"x\": \"y\"}}\u0027 project_id\u003d\"109F7909-0607-4712-B32C-5CC6D49D2F15\" created\u003d\"2026-02-07T18:55:13Z\"/\u003e"}],"source_content_type":"application/xml","patch_set":1,"id":"119ee3b7_f5386115","line":4,"range":{"start_line":4,"start_character":283,"end_line":4,"end_character":313},"in_reply_to":"5e497e22_ee32a1e6","updated":"2026-06-26 18:08:31.000000000","message":"Done","commit_id":"00c087b7873b99501104e45b1166263596e0184f"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"f1feb7039fd0bd68a10c45bf274262d65cf8fa49","unresolved":true,"context_lines":[{"line_number":1,"context_line":"\u003cModelRoot\u003e"},{"line_number":2,"context_line":"  \u003cComputeNode uuid\u003d\"Node_0\" status\u003d\"enabled\" state\u003d\"up\" id\u003d\"0\" hostname\u003d\"hostname_0\" vcpus\u003d\"40\" vcpu_reserved\u003d\"0\" vcpu_ratio\u003d\"1\" disk\u003d\"250\" disk_gb_reserved\u003d\"0\" disk_ratio\u003d\"1\" disk_capacity\u003d\"250\" memory\u003d\"132\" memory_mb_reserved\u003d\"0\" memory_ratio\u003d\"1\"\u003e"},{"line_number":3,"context_line":"    \u003cInstance watcher_exclude\u003d\"False\" state\u003d\"active\" name\u003d\"INSTANCE_0\" uuid\u003d\"d000ef1f-dc19-4982-9383-087498bfde03\" vcpus\u003d\"10\" disk\u003d\"20\" disk_capacity\u003d\"20\" memory\u003d\"2\" metadata\u003d\u0027{\"optimize\": true,\"top\": \"floor\", \"nested\": {\"x\": \"y\"}}\u0027 project_id\u003d\"91FFFE30-78A0-4152-ACD2-8310FF274DC9\" created\u003d\"2026-02-09T18:55:13Z\"/\u003e"},{"line_number":4,"context_line":"    \u003cInstance watcher_exclude\u003d\"False\" state\u003d\"active\" name\u003d\"INSTANCE_1\" uuid\u003d\"d010ef1f-dc19-4982-9383-087498bfde03\" vcpus\u003d\"11\" disk\u003d\"18\" disk_capacity\u003d\"20\" memory\u003d\"3\" metadata\u003d\u0027{\"optimize\": true,\"top\": \"floor\", \"nested\": {\"x\": \"y\"}}\u0027 project_id\u003d\"26F03131-32CB-4697-9D61-9123F87A8147\" created\u003d\"2026-02-08T18:55:13Z\"/\u003e"},{"line_number":5,"context_line":"  \u003c/ComputeNode\u003e"},{"line_number":6,"context_line":"  \u003cComputeNode uuid\u003d\"Node_1\" status\u003d\"enabled\" state\u003d\"up\" id\u003d\"1\" hostname\u003d\"hostname_1\" vcpus\u003d\"40\" vcpu_reserved\u003d\"0\" vcpu_ratio\u003d\"1\" disk\u003d\"250\" disk_gb_reserved\u003d\"0\" disk_ratio\u003d\"1\" disk_capacity\u003d\"250\" memory\u003d\"132\" memory_mb_reserved\u003d\"0\" memory_ratio\u003d\"1\"\u003e"},{"line_number":7,"context_line":"    \u003cInstance watcher_exclude\u003d\"False\" state\u003d\"active\" name\u003d\"INSTANCE_2\" uuid\u003d\"d020ef1f-dc19-4982-9383-087498bfde03\" vcpus\u003d\"12\" disk\u003d\"19\" disk_capacity\u003d\"20\" memory\u003d\"1\" metadata\u003d\u0027{\"optimize\": true,\"top\": \"floor\", \"nested\": {\"x\": \"y\"}}\u0027 project_id\u003d\"109F7909-0607-4712-B32C-5CC6D49D2F15\" created\u003d\"2026-02-07T18:55:13Z\"/\u003e"}],"source_content_type":"application/xml","patch_set":1,"id":"5e497e22_ee32a1e6","line":4,"range":{"start_line":4,"start_character":283,"end_line":4,"end_character":313},"in_reply_to":"dae9ca9a_861196e8","updated":"2026-05-18 06:57:37.000000000","message":"I will in next PS.","commit_id":"00c087b7873b99501104e45b1166263596e0184f"}]}
