)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"50d39ef8b0b9c133614decbab4b621f58f9e6776","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"56f43a85_c7abbf67","updated":"2022-06-21 12:09:49.000000000","message":"Looks good! Thanks for fixing it","commit_id":"f60572569cd1805de13bb946d4446ffdf7d8d8e3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"0fcb7ea9f3a7f59809a61ba36c2312a04410d3d1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7eb775dd_8b7bec24","updated":"2022-06-21 13:31:13.000000000","message":"LGTM, thanks for moving the try clause.","commit_id":"02ba3759464a131936cfa330796eca33f7457740"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"f17fcf2a445c56b28babdaa51040cd34da3728a1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ed926492_6a992bd4","updated":"2022-06-30 14:24:12.000000000","message":"LGTM, I have some comments but I don\u0027t want to hold this change because of them.","commit_id":"cd2c2f359bbd4913cfe73199847bc35b2664aaa9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9503bd64f737c9ee2e42122ee32b350d81311172","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9cd943f5_9fc63aed","updated":"2022-06-22 09:45:54.000000000","message":"just two nits but none of them worth holding this up. Thanks Sean!","commit_id":"cd2c2f359bbd4913cfe73199847bc35b2664aaa9"}],"nova/compute/manager.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"031fe69f439aa792553f0bb7f9f4b9f9fd21bdf8","unresolved":true,"context_lines":[{"line_number":1716,"context_line":"        # multiple instances with an affinity policy could end up on different"},{"line_number":1717,"context_line":"        # hosts.  This is a validation step to make sure that starting the"},{"line_number":1718,"context_line":"        # instance here doesn\u0027t violate the policy."},{"line_number":1719,"context_line":"        try:"},{"line_number":1720,"context_line":"            if scheduler_hints is not None:"},{"line_number":1721,"context_line":"                # only go through here if scheduler_hints is provided,"},{"line_number":1722,"context_line":"                # even if it is empty."}],"source_content_type":"text/x-python","patch_set":1,"id":"ccb6edeb_39e20f81","line":1719,"updated":"2022-06-21 13:02:21.000000000","message":"no, please only wrap with try/except where you need, even if that means you need to have twice the except.","commit_id":"f60572569cd1805de13bb946d4446ffdf7d8d8e3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ae422270ee700882576acc417ec0306ab0ecf73e","unresolved":false,"context_lines":[{"line_number":1716,"context_line":"        # multiple instances with an affinity policy could end up on different"},{"line_number":1717,"context_line":"        # hosts.  This is a validation step to make sure that starting the"},{"line_number":1718,"context_line":"        # instance here doesn\u0027t violate the policy."},{"line_number":1719,"context_line":"        try:"},{"line_number":1720,"context_line":"            if scheduler_hints is not None:"},{"line_number":1721,"context_line":"                # only go through here if scheduler_hints is provided,"},{"line_number":1722,"context_line":"                # even if it is empty."}],"source_content_type":"text/x-python","patch_set":1,"id":"c8f731a5_73485313","line":1719,"in_reply_to":"ccb6edeb_39e20f81","updated":"2022-06-22 09:37:52.000000000","message":"Done","commit_id":"f60572569cd1805de13bb946d4446ffdf7d8d8e3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"f17fcf2a445c56b28babdaa51040cd34da3728a1","unresolved":true,"context_lines":[{"line_number":1734,"context_line":"                        context, group_hint"},{"line_number":1735,"context_line":"                    )"},{"line_number":1736,"context_line":"                except exception.InstanceGroupNotFound:"},{"line_number":1737,"context_line":"                    return"},{"line_number":1738,"context_line":"        else:"},{"line_number":1739,"context_line":"            # TODO(ganso): a call to DB can be saved by adding request_spec"},{"line_number":1740,"context_line":"            # to rpcapi payload of live_migration, pre_live_migration and"}],"source_content_type":"text/x-python","patch_set":3,"id":"5e2b562c_a1c7032b","line":1737,"updated":"2022-06-30 14:24:12.000000000","message":"thanks","commit_id":"cd2c2f359bbd4913cfe73199847bc35b2664aaa9"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"f17fcf2a445c56b28babdaa51040cd34da3728a1","unresolved":true,"context_lines":[{"line_number":1742,"context_line":"            try:"},{"line_number":1743,"context_line":"                group \u003d objects.InstanceGroup.get_by_instance_uuid("},{"line_number":1744,"context_line":"                    context, instance.uuid"},{"line_number":1745,"context_line":"                )"},{"line_number":1746,"context_line":"            except exception.InstanceGroupNotFound:"},{"line_number":1747,"context_line":"                return"},{"line_number":1748,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9826431b_64e0c4d7","line":1745,"updated":"2022-06-30 14:24:12.000000000","message":"unrelated change but ok","commit_id":"cd2c2f359bbd4913cfe73199847bc35b2664aaa9"}],"nova/objects/request_spec.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"f17fcf2a445c56b28babdaa51040cd34da3728a1","unresolved":true,"context_lines":[{"line_number":645,"context_line":"            except exception.InstanceGroupNotFound:"},{"line_number":646,"context_line":"                # NOTE(danms): Instance group may have been deleted"},{"line_number":647,"context_line":"                spec.instance_group \u003d None"},{"line_number":648,"context_line":"                spec.scheduler_hints.pop(\u0027group\u0027, None)"},{"line_number":649,"context_line":""},{"line_number":650,"context_line":"        if data_migrated:"},{"line_number":651,"context_line":"            spec.save()"}],"source_content_type":"text/x-python","patch_set":3,"id":"e978a4d6_0c38d291","line":648,"updated":"2022-06-30 14:24:12.000000000","message":"haha, good point !","commit_id":"cd2c2f359bbd4913cfe73199847bc35b2664aaa9"}],"nova/tests/functional/regressions/test_bug_1890244.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9503bd64f737c9ee2e42122ee32b350d81311172","unresolved":true,"context_lines":[{"line_number":26,"context_line":"    \"\"\"Regression test for bug 1890244"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    If instance are created as member of server groups it"},{"line_number":29,"context_line":"    should be possibel to evacuate them if the server groups are"},{"line_number":30,"context_line":"    deleted prior to the host failure."},{"line_number":31,"context_line":"    \"\"\""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"299b3a07_4e0287af","line":29,"range":{"start_line":29,"start_character":14,"end_line":29,"end_character":22},"updated":"2022-06-22 09:45:54.000000000","message":"nit: possible","commit_id":"cd2c2f359bbd4913cfe73199847bc35b2664aaa9"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"f17fcf2a445c56b28babdaa51040cd34da3728a1","unresolved":true,"context_lines":[{"line_number":73,"context_line":"        self.assertEqual(\u0027host1\u0027, server[\u0027OS-EXT-SRV-ATTR:host\u0027])"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        # Down the source compute to enable the evacuation"},{"line_number":76,"context_line":"        self.api.microversion \u003d \u00272.11\u0027     # Cap for the force-down call."},{"line_number":77,"context_line":"        self.api.force_down_service(\u0027host1\u0027, \u0027nova-compute\u0027, True)"},{"line_number":78,"context_line":"        self.api.microversion \u003d \u0027latest\u0027"},{"line_number":79,"context_line":"        self.src.stop()"}],"source_content_type":"text/x-python","patch_set":3,"id":"4aa7c44c_dfbef40f","line":76,"updated":"2022-06-30 14:24:12.000000000","message":"nit : you should explain why you use this microversion and why not the latest but I guess because of https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#maximum-in-pike","commit_id":"cd2c2f359bbd4913cfe73199847bc35b2664aaa9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6e54be53a07db486d28959f255b8f4ef50021a25","unresolved":true,"context_lines":[{"line_number":73,"context_line":"        self.assertEqual(\u0027host1\u0027, server[\u0027OS-EXT-SRV-ATTR:host\u0027])"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        # Down the source compute to enable the evacuation"},{"line_number":76,"context_line":"        self.api.microversion \u003d \u00272.11\u0027     # Cap for the force-down call."},{"line_number":77,"context_line":"        self.api.force_down_service(\u0027host1\u0027, \u0027nova-compute\u0027, True)"},{"line_number":78,"context_line":"        self.api.microversion \u003d \u0027latest\u0027"},{"line_number":79,"context_line":"        self.src.stop()"}],"source_content_type":"text/x-python","patch_set":3,"id":"feda6a85_bdf9e3dd","line":76,"in_reply_to":"4aa7c44c_dfbef40f","updated":"2022-06-30 14:43:27.000000000","message":"ya it\u0027s not supper important, latest could be used but i think 2.53 changes force down to use the service uuid isntead of host and binary\nhttps://docs.openstack.org/nova/latest/reference/api-microversion-history.html#maximum-in-pike\n\ni could get the uuid from the comptue service object relitivly simply but using the old microversion was simpler.","commit_id":"cd2c2f359bbd4913cfe73199847bc35b2664aaa9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9503bd64f737c9ee2e42122ee32b350d81311172","unresolved":true,"context_lines":[{"line_number":76,"context_line":"        self.api.microversion \u003d \u00272.11\u0027     # Cap for the force-down call."},{"line_number":77,"context_line":"        self.api.force_down_service(\u0027host1\u0027, \u0027nova-compute\u0027, True)"},{"line_number":78,"context_line":"        self.api.microversion \u003d \u0027latest\u0027"},{"line_number":79,"context_line":"        self.src.stop()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        # assert the server currently has a server group"},{"line_number":82,"context_line":"        reqspec \u003d objects.RequestSpec.get_by_instance_uuid("}],"source_content_type":"text/x-python","patch_set":3,"id":"dd6804c7_3603a454","line":79,"updated":"2022-06-22 09:45:54.000000000","message":"nit: I would do stop first then forcedown just be more realistic","commit_id":"cd2c2f359bbd4913cfe73199847bc35b2664aaa9"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"f17fcf2a445c56b28babdaa51040cd34da3728a1","unresolved":true,"context_lines":[{"line_number":76,"context_line":"        self.api.microversion \u003d \u00272.11\u0027     # Cap for the force-down call."},{"line_number":77,"context_line":"        self.api.force_down_service(\u0027host1\u0027, \u0027nova-compute\u0027, True)"},{"line_number":78,"context_line":"        self.api.microversion \u003d \u0027latest\u0027"},{"line_number":79,"context_line":"        self.src.stop()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        # assert the server currently has a server group"},{"line_number":82,"context_line":"        reqspec \u003d objects.RequestSpec.get_by_instance_uuid("}],"source_content_type":"text/x-python","patch_set":3,"id":"51b28f39_8084b17d","line":79,"in_reply_to":"dd6804c7_3603a454","updated":"2022-06-30 14:24:12.000000000","message":"Agreed, but can be a FUP.","commit_id":"cd2c2f359bbd4913cfe73199847bc35b2664aaa9"}],"releasenotes/notes/fix-group-policy-validation-with-deleted-groups-4f685fd1d6b84192.yaml":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"0fcb7ea9f3a7f59809a61ba36c2312a04410d3d1","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    When the server group policy validation upcall is enabled"},{"line_number":5,"context_line":"    nova will assert that the policy is not violated on move operations"},{"line_number":6,"context_line":"    and initial instance creation. As noted in bug: #1890244 if a"},{"line_number":7,"context_line":"    server was created in a server group and that group was later deleted"},{"line_number":8,"context_line":"    the validation upcall would fail due to an uncaught excpetion if the"},{"line_number":9,"context_line":"    server group was deleted. This prevented evacuate and other move"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"2cf83dd0_2472f1ea","line":6,"range":{"start_line":6,"start_character":47,"end_line":6,"end_character":60},"updated":"2022-06-21 13:31:13.000000000","message":"nit: we can fix the relnote by adding a link to the bug report.\nI don\u0027t wanna hold for this but in case you need to respin, you could do it.","commit_id":"02ba3759464a131936cfa330796eca33f7457740"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ae422270ee700882576acc417ec0306ab0ecf73e","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    When the server group policy validation upcall is enabled"},{"line_number":5,"context_line":"    nova will assert that the policy is not violated on move operations"},{"line_number":6,"context_line":"    and initial instance creation. As noted in bug: #1890244 if a"},{"line_number":7,"context_line":"    server was created in a server group and that group was later deleted"},{"line_number":8,"context_line":"    the validation upcall would fail due to an uncaught excpetion if the"},{"line_number":9,"context_line":"    server group was deleted. This prevented evacuate and other move"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"48b3c30e_46f1f2e7","line":6,"range":{"start_line":6,"start_character":47,"end_line":6,"end_character":60},"in_reply_to":"2cf83dd0_2472f1ea","updated":"2022-06-22 09:37:52.000000000","message":"Done, we dont always include a link by the way so i dont think is was broken before but since i was respinning anyway i fixed it","commit_id":"02ba3759464a131936cfa330796eca33f7457740"}]}
