)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7a42c5e2a20d02380985edb08590edd5aed443ac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f762a49e_5766187a","updated":"2023-02-03 22:35:54.000000000","message":"Looks good","commit_id":"cf33be68713e30b7e4a4ca8dd3c4138329914503"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8d3ff4d5326338ed66e04fe2314daf3e2aa53e85","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"438f8e21_d2c64f5d","updated":"2023-02-01 17:25:49.000000000","message":"This is why we\u0027re not failing currently for the nodename conflict (even without this series). I\u0027m going to work on a functional test for node startup failures with STUB_NODE_ID\u003dFalse, I just wanted to get this up to answer the mystery.","commit_id":"cf33be68713e30b7e4a4ca8dd3c4138329914503"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1b69b8b5ec42d6349139dbe7e8d381e3dfbb35f5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8321b271_11d6e882","updated":"2023-02-05 22:10:17.000000000","message":"recheck","commit_id":"cf33be68713e30b7e4a4ca8dd3c4138329914503"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c3679079123e3111406b4fa62263ffdf07f13bdc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"09a3bd5d_d4bce563","updated":"2023-02-07 14:34:00.000000000","message":"recheck failed a glance test","commit_id":"cf33be68713e30b7e4a4ca8dd3c4138329914503"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"76db57c8e6dcae7f85b8488a99734c80c41154d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"db49d72d_2136b5ee","updated":"2023-02-02 16:50:30.000000000","message":"recheck live migration unrelated","commit_id":"cf33be68713e30b7e4a4ca8dd3c4138329914503"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ec3df2365921b13663959d3fbaecfe323dd8ef31","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"143af2d0_0d2769e0","updated":"2023-02-02 14:25:53.000000000","message":"recheck nova-next post_failure","commit_id":"cf33be68713e30b7e4a4ca8dd3c4138329914503"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"29332775d9236fc49e8ad2d17106f59aa9bf4d90","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f870abf5_b633f658","updated":"2023-02-07 08:55:58.000000000","message":"recheck tempest-integrated-compute timeed out","commit_id":"cf33be68713e30b7e4a4ca8dd3c4138329914503"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d9db46fa8e1daa752af497102118c0b3ae12364f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b84ffcdc_69f1d9ca","updated":"2023-02-07 17:43:01.000000000","message":"recheck volume fails","commit_id":"cf33be68713e30b7e4a4ca8dd3c4138329914503"}],"nova/objects/compute_node.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ea9d77750a0b2be408b3b61b5c87afd67047965f","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        except db_exc.DBDuplicateEntry:"},{"line_number":346,"context_line":"            target \u003d \u0027compute node %s:%s\u0027 % (updates[\u0027hypervisor_hostname\u0027],"},{"line_number":347,"context_line":"                                             updates[\u0027uuid\u0027])"},{"line_number":348,"context_line":"            raise exception.DuplicateRecord(target\u003dtarget)"},{"line_number":349,"context_line":"        self._from_db_object(self._context, self, db_compute)"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"    @base.remotable"}],"source_content_type":"text/x-python","patch_set":1,"id":"680daf11_e10abd40","line":348,"updated":"2023-02-02 15:26:06.000000000","message":"ok so here your converting from the sqlalchemy excpetion to a nova one with just the info we care about instead of all the detail of the  insert +1","commit_id":"cf33be68713e30b7e4a4ca8dd3c4138329914503"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"41d542dc91acc21b1739e006d5786ba2d1a35b98","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        except db_exc.DBDuplicateEntry:"},{"line_number":346,"context_line":"            target \u003d \u0027compute node %s:%s\u0027 % (updates[\u0027hypervisor_hostname\u0027],"},{"line_number":347,"context_line":"                                             updates[\u0027uuid\u0027])"},{"line_number":348,"context_line":"            raise exception.DuplicateRecord(target\u003dtarget)"},{"line_number":349,"context_line":"        self._from_db_object(self._context, self, db_compute)"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"    @base.remotable"}],"source_content_type":"text/x-python","patch_set":1,"id":"4cfd42f0_bc4404ad","line":348,"in_reply_to":"680daf11_e10abd40","updated":"2023-02-02 15:53:41.000000000","message":"Yeah, because we know why this is failing. Without doing a conversion like this, the compute has to either catch Exception, or import oslo_db to get DBDuplicateEntry, which is less good.","commit_id":"cf33be68713e30b7e4a4ca8dd3c4138329914503"}],"nova/tests/unit/compute/test_resource_tracker.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ea9d77750a0b2be408b3b61b5c87afd67047965f","unresolved":true,"context_lines":[{"line_number":1564,"context_line":"        self.assertRaises(exc.InvalidConfiguration,"},{"line_number":1565,"context_line":"                          self.rt._init_compute_node,"},{"line_number":1566,"context_line":"                          mock.MagicMock,"},{"line_number":1567,"context_line":"                          resources)"},{"line_number":1568,"context_line":""},{"line_number":1569,"context_line":""},{"line_number":1570,"context_line":"@ddt.ddt"}],"source_content_type":"text/x-python","patch_set":1,"id":"94f4c320_688fb00c","line":1567,"updated":"2023-02-02 15:26:06.000000000","message":"+1 so this verifies the converation of the DuplicateRecord excption to the InvalidConfiguration excpetion type","commit_id":"cf33be68713e30b7e4a4ca8dd3c4138329914503"}]}
