)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"64a9e99b4298453fe2a3538e5f0da95dbdccb0a4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"d4f39531_506f450c","updated":"2022-12-12 19:59:53.000000000","message":"I\u0027m going to vote +2 and allow things to be fixed in follow-up, but I do think it\u0027d be better if we fixed the reno + race conditions pointed out in the review before it landed.","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c19655f5d00d60d5210cb2d291dc127d1297f89c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"259f4ebd_9d52dc39","updated":"2022-12-12 15:18:32.000000000","message":"Nice, thanks! A bunch of nits inline, but nothing seems blocking.","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"1f0e92436876f67620323672ecd60a5c43d5ce77","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"cfd77b00_2ab7e3d9","updated":"2022-12-14 16:21:45.000000000","message":"recheck grenade job fixed","commit_id":"f16243b22e7df422e8edf21b70cf0b07be2e3f91"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"77a9ad56415a4fe3af2bcbc339d14c4f3c7d238b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"ac526486_9e1126d0","updated":"2022-12-13 17:59:18.000000000","message":"recheck neutron grenade shenanigans, hopefully it doesn\u0027t happen again","commit_id":"f16243b22e7df422e8edf21b70cf0b07be2e3f91"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6b56064b1f041ac0250fb0b94ddf3a36cd675524","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"ba7176d9_6c62a144","updated":"2023-01-04 14:32:52.000000000","message":"recheck IPA image size is more reasonable again on master branch","commit_id":"3fe42b53fd69fba3c6c13df4ad6b04d447a7f46f"}],"ironic_inspector/conductor/manager.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c19655f5d00d60d5210cb2d291dc127d1297f89c","unresolved":true,"context_lines":[{"line_number":172,"context_line":"            self._zeroconf \u003d None"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        self._shutting_down.release()"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        LOG.info(\u0027Shut down successfully\u0027)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def _periodics_watchdog(self, callable_, activity, spacing, exc_info,"}],"source_content_type":"text/x-python","patch_set":14,"id":"9b93ca5f_04c5aa60","line":175,"updated":"2022-12-12 15:18:32.000000000","message":"self.dbapi \u003d None?","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"13b12ba97174c64b2cfe5effb5067e64b598250d","unresolved":true,"context_lines":[{"line_number":172,"context_line":"            self._zeroconf \u003d None"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        self._shutting_down.release()"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        LOG.info(\u0027Shut down successfully\u0027)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def _periodics_watchdog(self, callable_, activity, spacing, exc_info,"}],"source_content_type":"text/x-python","patch_set":14,"id":"e24ef7b6_9a4813c1","line":175,"in_reply_to":"9b93ca5f_04c5aa60","updated":"2022-12-13 18:49:52.000000000","message":"I guess that would force GC\u0027ing in the grand scheme of the universe.","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"}],"ironic_inspector/db/__init__.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"282f164d249abebaf41690098d0e1db20b904e01","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from oslo_db.sqlalchemy import enginefacade"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"# NOTE(TheJulia): This has been been set to False since"},{"line_number":16,"context_line":"# Ia03f35a1f3b22b2eda74263e319469cf2391e7b5 when it was originally in"},{"line_number":17,"context_line":"# db.py. It *should* be True."},{"line_number":18,"context_line":"enginefacade.configure(sqlite_fk\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":10,"id":"a0474098_57830f29","line":16,"updated":"2022-11-18 13:47:26.000000000","message":"I\u0027m not sure I get this comment...","commit_id":"8d5530518776233570718f426b5524f5343c8e6d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"282f164d249abebaf41690098d0e1db20b904e01","unresolved":false,"context_lines":[{"line_number":15,"context_line":"# NOTE(TheJulia): This has been been set to False since"},{"line_number":16,"context_line":"# Ia03f35a1f3b22b2eda74263e319469cf2391e7b5 when it was originally in"},{"line_number":17,"context_line":"# db.py. It *should* be True."},{"line_number":18,"context_line":"enginefacade.configure(sqlite_fk\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":10,"id":"6b3dba9a_c266cf36","line":18,"updated":"2022-11-18 13:47:26.000000000","message":"I don\u0027t understand why this is done, and the comment is not helping. May cause regressions down the road. Maybe at least point out which code requires this workaround?","commit_id":"8d5530518776233570718f426b5524f5343c8e6d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"600a3c696d65a558f602530d6e589cb5a8df3f3d","unresolved":false,"context_lines":[{"line_number":15,"context_line":"# NOTE(TheJulia): This has been been set to False since"},{"line_number":16,"context_line":"# Ia03f35a1f3b22b2eda74263e319469cf2391e7b5 when it was originally in"},{"line_number":17,"context_line":"# db.py. It *should* be True."},{"line_number":18,"context_line":"enginefacade.configure(sqlite_fk\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":10,"id":"8c96d04c_9f407e7d","line":18,"in_reply_to":"6b3dba9a_c266cf36","updated":"2022-11-21 21:14:54.000000000","message":"It was always False up until very recently. Just trying to fix it as it came up in the unit testing when I changed out the modeling for SQLAlchemy 1.4 \u0026\u0026 2.0.","commit_id":"8d5530518776233570718f426b5524f5343c8e6d"}],"ironic_inspector/db/api.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"282f164d249abebaf41690098d0e1db20b904e01","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        res \u003d session.execute(stmt)"},{"line_number":188,"context_line":"        if res.rowcount \u003d\u003d 0:"},{"line_number":189,"context_line":"            raise utils.NodeNotFoundInDBError()"},{"line_number":190,"context_line":"        session.commit()"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"def create_node(uuid, state, started_at\u003dNone, finished_at\u003dNone,"}],"source_content_type":"text/x-python","patch_set":10,"id":"e285e3a4_11715f71","line":190,"updated":"2022-11-18 13:47:26.000000000","message":"Not needed","commit_id":"8d5530518776233570718f426b5524f5343c8e6d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"282f164d249abebaf41690098d0e1db20b904e01","unresolved":false,"context_lines":[{"line_number":206,"context_line":"                      error\u003derror, manage_boot\u003dmanage_boot)"},{"line_number":207,"context_line":"    with session_for_write() as session:"},{"line_number":208,"context_line":"        session.add(node)"},{"line_number":209,"context_line":"        session.commit()"},{"line_number":210,"context_line":"    return node"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"659ea8a8_cd0b3518","line":209,"updated":"2022-11-18 13:47:26.000000000","message":"Not needed","commit_id":"8d5530518776233570718f426b5524f5343c8e6d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"282f164d249abebaf41690098d0e1db20b904e01","unresolved":false,"context_lines":[{"line_number":236,"context_line":"    :param manage_boot: whether to manage boot for this node"},{"line_number":237,"context_line":"    :returns: created node object"},{"line_number":238,"context_line":"    \"\"\""},{"line_number":239,"context_line":"    delete_node(uuid\u003duuid)"},{"line_number":240,"context_line":"    return _add_node(uuid\u003duuid, state\u003dstate, started_at\u003dstarted_at,"},{"line_number":241,"context_line":"                     finished_at\u003dfinished_at, error\u003derror,"},{"line_number":242,"context_line":"                     manage_boot\u003dmanage_boot)"}],"source_content_type":"text/x-python","patch_set":10,"id":"860361bb_3a52d290","line":239,"updated":"2022-11-18 13:47:26.000000000","message":"nit: could be useful to start one session for both actions here","commit_id":"8d5530518776233570718f426b5524f5343c8e6d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"600a3c696d65a558f602530d6e589cb5a8df3f3d","unresolved":false,"context_lines":[{"line_number":236,"context_line":"    :param manage_boot: whether to manage boot for this node"},{"line_number":237,"context_line":"    :returns: created node object"},{"line_number":238,"context_line":"    \"\"\""},{"line_number":239,"context_line":"    delete_node(uuid\u003duuid)"},{"line_number":240,"context_line":"    return _add_node(uuid\u003duuid, state\u003dstate, started_at\u003dstarted_at,"},{"line_number":241,"context_line":"                     finished_at\u003dfinished_at, error\u003derror,"},{"line_number":242,"context_line":"                     manage_boot\u003dmanage_boot)"}],"source_content_type":"text/x-python","patch_set":10,"id":"082dc3ac_6a1c1350","line":239,"in_reply_to":"860361bb_3a52d290","updated":"2022-11-21 21:14:54.000000000","message":"I thought the same, but delete node has a bunch of logic in it, for simplicity I opted to make it two separate calls.","commit_id":"8d5530518776233570718f426b5524f5343c8e6d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"282f164d249abebaf41690098d0e1db20b904e01","unresolved":false,"context_lines":[{"line_number":262,"context_line":"    \"\"\""},{"line_number":263,"context_line":"    # Delete the items associated to the node."},{"line_number":264,"context_line":"    delete_attributes(uuid)"},{"line_number":265,"context_line":"    delete_introspection(uuid)"},{"line_number":266,"context_line":"    with session_for_write() as session:"},{"line_number":267,"context_line":"        # Delete the actual node"},{"line_number":268,"context_line":"        session.execute("}],"source_content_type":"text/x-python","patch_set":10,"id":"f7a79dda_85edc873","line":265,"updated":"2022-11-18 13:47:26.000000000","message":"These were supposed to be in the same session (but we screwed up). Could you maybe follow-up?","commit_id":"8d5530518776233570718f426b5524f5343c8e6d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"600a3c696d65a558f602530d6e589cb5a8df3f3d","unresolved":false,"context_lines":[{"line_number":262,"context_line":"    \"\"\""},{"line_number":263,"context_line":"    # Delete the items associated to the node."},{"line_number":264,"context_line":"    delete_attributes(uuid)"},{"line_number":265,"context_line":"    delete_introspection(uuid)"},{"line_number":266,"context_line":"    with session_for_write() as session:"},{"line_number":267,"context_line":"        # Delete the actual node"},{"line_number":268,"context_line":"        session.execute("}],"source_content_type":"text/x-python","patch_set":10,"id":"16024d78_0590fc3e","line":265,"in_reply_to":"f7a79dda_85edc873","updated":"2022-11-21 21:14:54.000000000","message":"ack.","commit_id":"8d5530518776233570718f426b5524f5343c8e6d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"282f164d249abebaf41690098d0e1db20b904e01","unresolved":false,"context_lines":[{"line_number":327,"context_line":"    with session_for_write() as session:"},{"line_number":328,"context_line":"        opt \u003d model.Option(uuid\u003dnode_uuid, name\u003dname, value\u003dvalue)"},{"line_number":329,"context_line":"        session.add(opt)"},{"line_number":330,"context_line":"        session.commit()"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"def delete_options(**filters):"}],"source_content_type":"text/x-python","patch_set":10,"id":"4fb040f8_6d0cfcf7","line":330,"updated":"2022-11-18 13:47:26.000000000","message":"not needed","commit_id":"8d5530518776233570718f426b5524f5343c8e6d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"600a3c696d65a558f602530d6e589cb5a8df3f3d","unresolved":false,"context_lines":[{"line_number":327,"context_line":"    with session_for_write() as session:"},{"line_number":328,"context_line":"        opt \u003d model.Option(uuid\u003dnode_uuid, name\u003dname, value\u003dvalue)"},{"line_number":329,"context_line":"        session.add(opt)"},{"line_number":330,"context_line":"        session.commit()"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"def delete_options(**filters):"}],"source_content_type":"text/x-python","patch_set":10,"id":"07970002_17d5a21e","line":330,"in_reply_to":"4fb040f8_6d0cfcf7","updated":"2022-11-21 21:14:54.000000000","message":"Done.","commit_id":"8d5530518776233570718f426b5524f5343c8e6d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"282f164d249abebaf41690098d0e1db20b904e01","unresolved":false,"context_lines":[{"line_number":357,"context_line":"                                   uuid\u003duuidutils.generate_uuid(),"},{"line_number":358,"context_line":"                                   name\u003dname, value\u003dvalue)"},{"line_number":359,"context_line":"            session.add(attr)"},{"line_number":360,"context_line":"        session.commit()"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"def delete_attributes(uuid):"}],"source_content_type":"text/x-python","patch_set":10,"id":"fce78b48_a4a40885","line":360,"updated":"2022-11-18 13:47:26.000000000","message":"not needed","commit_id":"8d5530518776233570718f426b5524f5343c8e6d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"282f164d249abebaf41690098d0e1db20b904e01","unresolved":false,"context_lines":[{"line_number":562,"context_line":"        res \u003d session.execute(stmt)"},{"line_number":563,"context_line":"        if res.rowcount \u003d\u003d 0:"},{"line_number":564,"context_line":"            raise utils.RuleNotFoundError(uuid)"},{"line_number":565,"context_line":"        session.commit()"},{"line_number":566,"context_line":""},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"def delete_all_rules():"}],"source_content_type":"text/x-python","patch_set":10,"id":"8dfa4ac4_fd40419e","line":565,"updated":"2022-11-18 13:47:26.000000000","message":"not needed","commit_id":"8d5530518776233570718f426b5524f5343c8e6d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c19655f5d00d60d5210cb2d291dc127d1297f89c","unresolved":true,"context_lines":[{"line_number":234,"context_line":"    :param manage_boot: whether to manage boot for this node"},{"line_number":235,"context_line":"    :returns: created node object"},{"line_number":236,"context_line":"    \"\"\""},{"line_number":237,"context_line":"    delete_node(uuid\u003duuid)"},{"line_number":238,"context_line":"    return _add_node(uuid\u003duuid, state\u003dstate, started_at\u003dstarted_at,"},{"line_number":239,"context_line":"                     finished_at\u003dfinished_at, error\u003derror,"},{"line_number":240,"context_line":"                     manage_boot\u003dmanage_boot)"}],"source_content_type":"text/x-python","patch_set":14,"id":"20ffafc2_99131ebe","line":237,"updated":"2022-12-12 15:18:32.000000000","message":"nit: leave a TODO to use the same transaction for both operations","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"64a9e99b4298453fe2a3538e5f0da95dbdccb0a4","unresolved":true,"context_lines":[{"line_number":234,"context_line":"    :param manage_boot: whether to manage boot for this node"},{"line_number":235,"context_line":"    :returns: created node object"},{"line_number":236,"context_line":"    \"\"\""},{"line_number":237,"context_line":"    delete_node(uuid\u003duuid)"},{"line_number":238,"context_line":"    return _add_node(uuid\u003duuid, state\u003dstate, started_at\u003dstarted_at,"},{"line_number":239,"context_line":"                     finished_at\u003dfinished_at, error\u003derror,"},{"line_number":240,"context_line":"                     manage_boot\u003dmanage_boot)"}],"source_content_type":"text/x-python","patch_set":14,"id":"4b98e6da_eea19cee","line":237,"in_reply_to":"20ffafc2_99131ebe","updated":"2022-12-12 19:59:53.000000000","message":"+1","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"13b12ba97174c64b2cfe5effb5067e64b598250d","unresolved":false,"context_lines":[{"line_number":234,"context_line":"    :param manage_boot: whether to manage boot for this node"},{"line_number":235,"context_line":"    :returns: created node object"},{"line_number":236,"context_line":"    \"\"\""},{"line_number":237,"context_line":"    delete_node(uuid\u003duuid)"},{"line_number":238,"context_line":"    return _add_node(uuid\u003duuid, state\u003dstate, started_at\u003dstarted_at,"},{"line_number":239,"context_line":"                     finished_at\u003dfinished_at, error\u003derror,"},{"line_number":240,"context_line":"                     manage_boot\u003dmanage_boot)"}],"source_content_type":"text/x-python","patch_set":14,"id":"b2cdcb96_10a2ad8f","line":237,"in_reply_to":"4b98e6da_eea19cee","updated":"2022-12-13 18:49:52.000000000","message":"Done","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c19655f5d00d60d5210cb2d291dc127d1297f89c","unresolved":true,"context_lines":[{"line_number":278,"context_line":"        )"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"def delete_introspection(uuid):"},{"line_number":282,"context_line":"    \"\"\"Delete introspection data for a node."},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    :param uuid: node uuid"}],"source_content_type":"text/x-python","patch_set":14,"id":"cbd3e588_e7f28a25","line":281,"updated":"2022-12-12 15:18:32.000000000","message":"This call seems unused, and it\u0027s intention is unclear (options and introspection data are unrelated).","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"13b12ba97174c64b2cfe5effb5067e64b598250d","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        )"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"def delete_introspection(uuid):"},{"line_number":282,"context_line":"    \"\"\"Delete introspection data for a node."},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    :param uuid: node uuid"}],"source_content_type":"text/x-python","patch_set":14,"id":"406db27f_ad007a9e","line":281,"in_reply_to":"cbd3e588_e7f28a25","updated":"2022-12-13 18:49:52.000000000","message":"Hmm, removing. I suspect this was a result in the prior refactoring/retooling patch to cleanup some of the flows.","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c19655f5d00d60d5210cb2d291dc127d1297f89c","unresolved":true,"context_lines":[{"line_number":610,"context_line":"            updated \u003d True"},{"line_number":611,"context_line":"        else:"},{"line_number":612,"context_line":"            # by default, all write sessions are committed. In this"},{"line_number":613,"context_line":"            # case, we can safely rollback."},{"line_number":614,"context_line":"            session.rollback()"},{"line_number":615,"context_line":"    if not updated:"},{"line_number":616,"context_line":"        with session_for_write() as session:"}],"source_content_type":"text/x-python","patch_set":14,"id":"2bf8a376_2eb96b1e","line":613,"updated":"2022-12-12 15:18:32.000000000","message":"nit: I wonder if rolling back will upset the context manager..","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"13b12ba97174c64b2cfe5effb5067e64b598250d","unresolved":false,"context_lines":[{"line_number":610,"context_line":"            updated \u003d True"},{"line_number":611,"context_line":"        else:"},{"line_number":612,"context_line":"            # by default, all write sessions are committed. In this"},{"line_number":613,"context_line":"            # case, we can safely rollback."},{"line_number":614,"context_line":"            session.rollback()"},{"line_number":615,"context_line":"    if not updated:"},{"line_number":616,"context_line":"        with session_for_write() as session:"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6f8e67_49f2a16d","line":613,"in_reply_to":"2bf8a376_2eb96b1e","updated":"2022-12-13 18:49:52.000000000","message":"Yeah, it is unusable afterwards. You have to launch a new session AIUI.","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"}],"ironic_inspector/db/migration.py":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"64a9e99b4298453fe2a3538e5f0da95dbdccb0a4","unresolved":true,"context_lines":[{"line_number":17,"context_line":"# NOTE(TheJulia): This file was primarily taken from"},{"line_number":18,"context_line":"# https://github.com/openstack/ironic/blob/af0e5ee096fa237290776969a37f3bced96b7456/ironic/db/sqlalchemy/migration.py"},{"line_number":19,"context_line":"# which is used in the ironic project. It specifically provides a clean"},{"line_number":20,"context_line":"# and consistent way to invoke alembic calls."},{"line_number":21,"context_line":"import os"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"import alembic"}],"source_content_type":"text/x-python","patch_set":14,"id":"cc779f3e_df89aedc","line":20,"updated":"2022-12-12 19:59:53.000000000","message":"suggestion; put this comment in the Ironic version of this file too, so people might know to make that change here, too?","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"13b12ba97174c64b2cfe5effb5067e64b598250d","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# NOTE(TheJulia): This file was primarily taken from"},{"line_number":18,"context_line":"# https://github.com/openstack/ironic/blob/af0e5ee096fa237290776969a37f3bced96b7456/ironic/db/sqlalchemy/migration.py"},{"line_number":19,"context_line":"# which is used in the ironic project. It specifically provides a clean"},{"line_number":20,"context_line":"# and consistent way to invoke alembic calls."},{"line_number":21,"context_line":"import os"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"import alembic"}],"source_content_type":"text/x-python","patch_set":14,"id":"6184a1d3_73e8edbd","line":20,"in_reply_to":"cc779f3e_df89aedc","updated":"2022-12-13 18:49:52.000000000","message":"Uhh, commit from the commit log, but sure.","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"}],"ironic_inspector/node_cache.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"282f164d249abebaf41690098d0e1db20b904e01","unresolved":false,"context_lines":[{"line_number":246,"context_line":"        \"\"\"Set an option for a node.\"\"\""},{"line_number":247,"context_line":"        encoded \u003d json.dumps(value)"},{"line_number":248,"context_line":"        self.options[name] \u003d value"},{"line_number":249,"context_line":"        with db.session_for_write() as session:"},{"line_number":250,"context_line":"            db.delete_options(uuid\u003dself.uuid, name\u003dname)"},{"line_number":251,"context_line":"            db.set_option(self.uuid, name, encoded)"},{"line_number":252,"context_line":"            session.commit()"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f233a09_7f0ca68c","line":249,"updated":"2022-11-18 13:47:26.000000000","message":"neither of the calls use this session, can be removed (or need to be passed)","commit_id":"8d5530518776233570718f426b5524f5343c8e6d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"282f164d249abebaf41690098d0e1db20b904e01","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        with db.session_for_write() as session:"},{"line_number":250,"context_line":"            db.delete_options(uuid\u003dself.uuid, name\u003dname)"},{"line_number":251,"context_line":"            db.set_option(self.uuid, name, encoded)"},{"line_number":252,"context_line":"            session.commit()"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    def finished(self, event, error\u003dNone):"},{"line_number":255,"context_line":"        \"\"\"Record status for this node and process a terminal transition."}],"source_content_type":"text/x-python","patch_set":10,"id":"6fd53670_ca90b2d1","line":252,"updated":"2022-11-18 13:47:26.000000000","message":"not needed","commit_id":"8d5530518776233570718f426b5524f5343c8e6d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c19655f5d00d60d5210cb2d291dc127d1297f89c","unresolved":true,"context_lines":[{"line_number":246,"context_line":"        \"\"\"Set an option for a node.\"\"\""},{"line_number":247,"context_line":"        encoded \u003d json.dumps(value)"},{"line_number":248,"context_line":"        self.options[name] \u003d value"},{"line_number":249,"context_line":"        db.delete_options(uuid\u003dself.uuid, name\u003dname)"},{"line_number":250,"context_line":"        db.set_option(self.uuid, name, encoded)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    def finished(self, event, error\u003dNone):"}],"source_content_type":"text/x-python","patch_set":14,"id":"43014230_793f5303","line":249,"updated":"2022-12-12 15:18:32.000000000","message":"nit: racy, needs one transaction","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"13b12ba97174c64b2cfe5effb5067e64b598250d","unresolved":false,"context_lines":[{"line_number":246,"context_line":"        \"\"\"Set an option for a node.\"\"\""},{"line_number":247,"context_line":"        encoded \u003d json.dumps(value)"},{"line_number":248,"context_line":"        self.options[name] \u003d value"},{"line_number":249,"context_line":"        db.delete_options(uuid\u003dself.uuid, name\u003dname)"},{"line_number":250,"context_line":"        db.set_option(self.uuid, name, encoded)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    def finished(self, event, error\u003dNone):"}],"source_content_type":"text/x-python","patch_set":14,"id":"e199eb6c_6668efcf","line":249,"in_reply_to":"43014230_793f5303","updated":"2022-12-13 18:49:52.000000000","message":"Ack","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c19655f5d00d60d5210cb2d291dc127d1297f89c","unresolved":true,"context_lines":[{"line_number":691,"context_line":"    :returns: NodeInfo"},{"line_number":692,"context_line":"    \"\"\""},{"line_number":693,"context_line":"    started_at \u003d timeutils.utcnow()"},{"line_number":694,"context_line":"    db.delete_node(uuid\u003duuid)"},{"line_number":695,"context_line":"    db.add_node(uuid\u003duuid, state\u003dstate, started_at\u003dstarted_at,"},{"line_number":696,"context_line":"                manage_boot\u003dmanage_boot)"},{"line_number":697,"context_line":"    node_info \u003d NodeInfo(uuid\u003duuid, state\u003dstate,"}],"source_content_type":"text/x-python","patch_set":14,"id":"e735bf43_95e4282f","line":694,"updated":"2022-12-12 15:18:32.000000000","message":"This racy is potentially particularly nasty (if add_node fails, the record silently disappears)","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"13b12ba97174c64b2cfe5effb5067e64b598250d","unresolved":false,"context_lines":[{"line_number":691,"context_line":"    :returns: NodeInfo"},{"line_number":692,"context_line":"    \"\"\""},{"line_number":693,"context_line":"    started_at \u003d timeutils.utcnow()"},{"line_number":694,"context_line":"    db.delete_node(uuid\u003duuid)"},{"line_number":695,"context_line":"    db.add_node(uuid\u003duuid, state\u003dstate, started_at\u003dstarted_at,"},{"line_number":696,"context_line":"                manage_boot\u003dmanage_boot)"},{"line_number":697,"context_line":"    node_info \u003d NodeInfo(uuid\u003duuid, state\u003dstate,"}],"source_content_type":"text/x-python","patch_set":14,"id":"578d98e2_0e640aef","line":694,"in_reply_to":"e735bf43_95e4282f","updated":"2022-12-13 18:49:52.000000000","message":"True, although we auto-re-add stuff if inspection is rerun and the operator (human) workflow is typically bang on it with a hammer until it passes... *shrugs*\n\nDelete node is actually explicit to avoid issues. That being said, it does occur to me that in a transaction could be worse if someone is hammering the service over and over directly. i.e. I suspect some downstream CI workflows may detonate on this being rewritten, but hey, it would be good for them to finally merge the job fixes. :)\n\nAnyhow, cleaned up in next revision.","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c19655f5d00d60d5210cb2d291dc127d1297f89c","unresolved":true,"context_lines":[{"line_number":952,"context_line":"        if marker is None:"},{"line_number":953,"context_line":"            raise utils.Error(_(\u0027Node not found for marker: %s\u0027) % marker,"},{"line_number":954,"context_line":"                              code\u003d404)"},{"line_number":955,"context_line":"    with db.session_for_read() as session:"},{"line_number":956,"context_line":"        rows \u003d session.query(db_model.Node)"},{"line_number":957,"context_line":"        if state:"},{"line_number":958,"context_line":"            rows \u003d rows.filter(db_model.Node.state.in_(state))"}],"source_content_type":"text/x-python","patch_set":14,"id":"40d246bf_4976c8a9","line":955,"updated":"2022-12-12 15:18:32.000000000","message":"nit: TODO: move do dbapi?","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"13b12ba97174c64b2cfe5effb5067e64b598250d","unresolved":false,"context_lines":[{"line_number":952,"context_line":"        if marker is None:"},{"line_number":953,"context_line":"            raise utils.Error(_(\u0027Node not found for marker: %s\u0027) % marker,"},{"line_number":954,"context_line":"                              code\u003d404)"},{"line_number":955,"context_line":"    with db.session_for_read() as session:"},{"line_number":956,"context_line":"        rows \u003d session.query(db_model.Node)"},{"line_number":957,"context_line":"        if state:"},{"line_number":958,"context_line":"            rows \u003d rows.filter(db_model.Node.state.in_(state))"}],"source_content_type":"text/x-python","patch_set":14,"id":"572c53d0_874bbb21","line":955,"in_reply_to":"40d246bf_4976c8a9","updated":"2022-12-13 18:49:52.000000000","message":"Done","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c7926bc7d7d94b67f7f8a8e06780a61fc32d3458","unresolved":true,"context_lines":[{"line_number":28,"context_line":"from oslo_utils import reflection"},{"line_number":29,"context_line":"from oslo_utils import timeutils"},{"line_number":30,"context_line":"from oslo_utils import uuidutils"},{"line_number":31,"context_line":"from sqlalchemy import delete"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"from ironic_inspector.common.i18n import _"},{"line_number":34,"context_line":"from ironic_inspector.common import ironic as ir_utils"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f311095_b02538d8","line":31,"updated":"2022-12-13 16:58:15.000000000","message":"nit: with some exceptions, we tend to prefer importing modules, not functions (it used to be a lint, not sure why not any more)","commit_id":"f16243b22e7df422e8edf21b70cf0b07be2e3f91"}],"ironic_inspector/process.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"282f164d249abebaf41690098d0e1db20b904e01","unresolved":false,"context_lines":[{"line_number":223,"context_line":"                            \u0027error: %s\u0027) % node_info.error,"},{"line_number":224,"context_line":"                          node_info\u003dnode_info, code\u003d400)"},{"line_number":225,"context_line":"    # NOTE(TheJulia): this was previously called as a background"},{"line_number":226,"context_line":"    # process, but we can\u0027t do that with sqlite."},{"line_number":227,"context_line":"    _store_unprocessed_data(node_info.uuid, unprocessed_data)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":10,"id":"b3f49569_4130331f","line":226,"updated":"2022-11-18 13:47:26.000000000","message":"This is not true, it\u0027s probably a sign of yet another lost thread","commit_id":"8d5530518776233570718f426b5524f5343c8e6d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"282f164d249abebaf41690098d0e1db20b904e01","unresolved":false,"context_lines":[{"line_number":224,"context_line":"                          node_info\u003dnode_info, code\u003d400)"},{"line_number":225,"context_line":"    # NOTE(TheJulia): this was previously called as a background"},{"line_number":226,"context_line":"    # process, but we can\u0027t do that with sqlite."},{"line_number":227,"context_line":"    _store_unprocessed_data(node_info.uuid, unprocessed_data)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    try:"},{"line_number":230,"context_line":"        node \u003d node_info.node()"}],"source_content_type":"text/x-python","patch_set":10,"id":"4d84ee39_7451d662","line":227,"updated":"2022-11-18 13:47:26.000000000","message":"... that being said, it may be not worth the effort to create a thread here","commit_id":"8d5530518776233570718f426b5524f5343c8e6d"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"64a9e99b4298453fe2a3538e5f0da95dbdccb0a4","unresolved":true,"context_lines":[{"line_number":224,"context_line":"                          node_info\u003dnode_info, code\u003d400)"},{"line_number":225,"context_line":"    # NOTE(TheJulia): this was previously called as a background"},{"line_number":226,"context_line":"    # process, but we can\u0027t do that with sqlite."},{"line_number":227,"context_line":"    _store_unprocessed_data(node_info.uuid, unprocessed_data)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    try:"},{"line_number":230,"context_line":"        node \u003d node_info.node()"}],"source_content_type":"text/x-python","patch_set":14,"id":"ad5d1322_301c60e8","line":227,"updated":"2022-12-12 19:59:53.000000000","message":"I don\u0027t have a good sense of how long this takes; will it be an operator-noticable difference?","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"13b12ba97174c64b2cfe5effb5067e64b598250d","unresolved":true,"context_lines":[{"line_number":224,"context_line":"                          node_info\u003dnode_info, code\u003d400)"},{"line_number":225,"context_line":"    # NOTE(TheJulia): this was previously called as a background"},{"line_number":226,"context_line":"    # process, but we can\u0027t do that with sqlite."},{"line_number":227,"context_line":"    _store_unprocessed_data(node_info.uuid, unprocessed_data)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    try:"},{"line_number":230,"context_line":"        node \u003d node_info.node()"}],"source_content_type":"text/x-python","patch_set":14,"id":"a19e6f83_a3e4fdad","line":227,"in_reply_to":"ad5d1322_301c60e8","updated":"2022-12-13 18:49:52.000000000","message":"It really shouldn\u0027t take long at all, a few hundred kb at worst is the typical payload if I\u0027m remembering correctly.","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c7926bc7d7d94b67f7f8a8e06780a61fc32d3458","unresolved":true,"context_lines":[{"line_number":224,"context_line":"                          node_info\u003dnode_info, code\u003d400)"},{"line_number":225,"context_line":"    # NOTE(TheJulia): this was previously called as a background"},{"line_number":226,"context_line":"    # process, but we can\u0027t do that with sqlite."},{"line_number":227,"context_line":"    _store_unprocessed_data(node_info.uuid, unprocessed_data)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    try:"},{"line_number":230,"context_line":"        node \u003d node_info.node()"}],"source_content_type":"text/x-python","patch_set":14,"id":"13adf7a1_2d14210f","line":227,"in_reply_to":"ad5d1322_301c60e8","updated":"2022-12-13 16:58:15.000000000","message":"It\u0027s a database or swift access.","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"}],"ironic_inspector/utils.py":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"64a9e99b4298453fe2a3538e5f0da95dbdccb0a4","unresolved":true,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"class NodeNotFoundInDBError(Error):"},{"line_number":212,"context_line":"    \"\"\"\"\"\""},{"line_number":213,"context_line":"    def __init__(self, **kwargs):"},{"line_number":214,"context_line":"        msg \u003d \u0027\u0027"},{"line_number":215,"context_line":"        super(NodeNotFoundInDBError, self).__init__("}],"source_content_type":"text/x-python","patch_set":14,"id":"9dd4b337_f7a39f0f","line":212,"updated":"2022-12-12 19:59:53.000000000","message":"Empty doctrings for all three of these classes. Remove or populate them please.","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"13b12ba97174c64b2cfe5effb5067e64b598250d","unresolved":false,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"class NodeNotFoundInDBError(Error):"},{"line_number":212,"context_line":"    \"\"\"\"\"\""},{"line_number":213,"context_line":"    def __init__(self, **kwargs):"},{"line_number":214,"context_line":"        msg \u003d \u0027\u0027"},{"line_number":215,"context_line":"        super(NodeNotFoundInDBError, self).__init__("}],"source_content_type":"text/x-python","patch_set":14,"id":"bb29381b_d223b253","line":212,"in_reply_to":"9dd4b337_f7a39f0f","updated":"2022-12-13 18:49:52.000000000","message":"Heh, I didn\u0027t notice this in the original db model changes. Easy enough to fix!","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c19655f5d00d60d5210cb2d291dc127d1297f89c","unresolved":true,"context_lines":[{"line_number":211,"context_line":"class NodeNotFoundInDBError(Error):"},{"line_number":212,"context_line":"    \"\"\"\"\"\""},{"line_number":213,"context_line":"    def __init__(self, **kwargs):"},{"line_number":214,"context_line":"        msg \u003d \u0027\u0027"},{"line_number":215,"context_line":"        super(NodeNotFoundInDBError, self).__init__("},{"line_number":216,"context_line":"            msg, code\u003d404, log_level\u003d\u0027error\u0027, **kwargs)"},{"line_number":217,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9bbd7417_eec8900a","line":214,"updated":"2022-12-12 15:18:32.000000000","message":"Missing?","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"13b12ba97174c64b2cfe5effb5067e64b598250d","unresolved":false,"context_lines":[{"line_number":211,"context_line":"class NodeNotFoundInDBError(Error):"},{"line_number":212,"context_line":"    \"\"\"\"\"\""},{"line_number":213,"context_line":"    def __init__(self, **kwargs):"},{"line_number":214,"context_line":"        msg \u003d \u0027\u0027"},{"line_number":215,"context_line":"        super(NodeNotFoundInDBError, self).__init__("},{"line_number":216,"context_line":"            msg, code\u003d404, log_level\u003d\u0027error\u0027, **kwargs)"},{"line_number":217,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"b99506ab_c572c8d5","line":214,"in_reply_to":"9bbd7417_eec8900a","updated":"2022-12-13 18:49:52.000000000","message":"Fixed.","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"}],"releasenotes/notes/db-model-updates-a1f6285675b2b965.yaml":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"64a9e99b4298453fe2a3538e5f0da95dbdccb0a4","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":14,"id":"c6e245e8_3046f09b","line":24,"updated":"2022-12-12 19:59:53.000000000","message":"Should we mention the formerly-backgrounded stuff that got made sync?","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"13b12ba97174c64b2cfe5effb5067e64b598250d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":14,"id":"4870afa6_b002a080","line":24,"in_reply_to":"c6e245e8_3046f09b","updated":"2022-12-13 18:49:52.000000000","message":"Oh, you mean autocommit vs not. I don\u0027t think that matters much, and inspector is a background low traffic service which is semi-ephemeral... so *shrug*","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"}],"releasenotes/notes/sqlalchemy-minimum-version-cd34a2e10d7946fd.yaml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c19655f5d00d60d5210cb2d291dc127d1297f89c","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The minimum version of SQLAlchemy is now ``1.4.0``, in preparation for the"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"0589c09f_1c69f358","line":1,"updated":"2022-12-12 15:18:32.000000000","message":"nit: merge two reno files","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"13b12ba97174c64b2cfe5effb5067e64b598250d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The minimum version of SQLAlchemy is now ``1.4.0``, in preparation for the"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"58a9111b_d648b17a","line":1,"in_reply_to":"0589c09f_1c69f358","updated":"2022-12-13 18:49:52.000000000","message":"Done","commit_id":"218000bc47c929211286a8cc8c6ce35011c8528c"}],"tox.ini":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"97e3e5150afc2c6caea9b30e791b2e87445ab876","unresolved":true,"context_lines":[{"line_number":20,"context_line":"    SQLALCHEMY_WARN_20\u003dtrue"},{"line_number":21,"context_line":"    TZ\u003dUTC"},{"line_number":22,"context_line":"    TESTS_DIR\u003d./ironic_inspector/test/unit/"},{"line_number":23,"context_line":"passenv \u003d http_proxy,HTTP_PROXY,https_proxy,HTTPS_PROXY,no_proxy,NO_PROXY"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"[testenv:venv]"},{"line_number":26,"context_line":"commands \u003d {posargs}"}],"source_content_type":"text/x-properties","patch_set":18,"id":"deb02cb0_bdd93ab6","line":23,"updated":"2022-12-15 23:52:56.000000000","message":"You may have to rebase this, as the landed fix uses each on their own line, instead of newlines. :(","commit_id":"3fe42b53fd69fba3c6c13df4ad6b04d447a7f46f"}]}
