)]}'
{"/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":"7528693c41613fbb350b1c8e1ef6168c49e3a5c9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"c2563687_7d827cc1","updated":"2026-06-01 18:16:29.000000000","message":"Changes that modify the API generally reference an RFE, at a minimum, and a spec in most cases.","commit_id":"5a6794cb0991136d5fa91609bf45fa4df935d0e9"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"36feada25164d347f9e632708cbe99c3a4aa2edb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b1849c8d_4b540ac2","updated":"2026-05-30 08:23:46.000000000","message":"I\u0027m getting errors when working on this patch, and I can see several merge conflicts. It looks like there have been recent changes to the same file by other contributors.\nWhat would be the recommended next steps for resolving this?","commit_id":"5a6794cb0991136d5fa91609bf45fa4df935d0e9"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"04fad7d622d9346f56417dacae659afdddc4a812","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"755f4455_bf88b86e","in_reply_to":"0ad27423_de5517ce","updated":"2026-06-16 15:55:35.000000000","message":"Done","commit_id":"5a6794cb0991136d5fa91609bf45fa4df935d0e9"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"9cfeac1a8cdf6324af15e91f5ea4435a773982aa","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"0ad27423_de5517ce","in_reply_to":"b1849c8d_4b540ac2","updated":"2026-05-30 08:38:59.000000000","message":"Re-opening for discussion: I mistakenly checked resolved.","commit_id":"5a6794cb0991136d5fa91609bf45fa4df935d0e9"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"04fad7d622d9346f56417dacae659afdddc4a812","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"fd6da55f_11d0ee65","in_reply_to":"c2563687_7d827cc1","updated":"2026-06-16 15:55:35.000000000","message":"Thank you for the review. I have opened RFE bug #2154817 for this change:\nhttps://bugs.launchpad.net/ironic/+bug/2154817\n\nJulia (TheJulia) provided feedback on the RFE suggesting the simplified approach\nusing state, target_provision_state, and duration_seconds instead of entry_at/exit_at.\n\nI appreciate the guidance.","commit_id":"5a6794cb0991136d5fa91609bf45fa4df935d0e9"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b469e9ba7d2a40ad6f59316ddea23a7fd467ea83","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"d1945d52_1daa0526","updated":"2026-06-16 14:38:07.000000000","message":"Overall good, I\u0027m a little concerned by the double version jump and applying a -1 to raise the question of revising the data model.","commit_id":"4157b53ace8a5dd7162041a5cedef7e1ca5a019d"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"04fad7d622d9346f56417dacae659afdddc4a812","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"fdb822d3_8eb2bc7a","in_reply_to":"d1945d52_1daa0526","updated":"2026-06-16 15:55:35.000000000","message":"Thank you for the review, Julia. I\u0027ve addressed the double version jump by compressing it down to version 1.2 and removing references to 1.3 in the follow-up patch.","commit_id":"4157b53ace8a5dd7162041a5cedef7e1ca5a019d"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"f9c3cbf7ff0dd2e9f1889f357f98d58eed9a70f7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"c7ae328e_ca2c5e73","updated":"2026-06-18 13:03:08.000000000","message":"Looks good, but I think this needs the convert_to_version added.","commit_id":"05d4a0c2edcd9488df5fea4d906d336c35ae3bb8"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"1801c80b08eecb52f87e81775e0b9f1e07a54814","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"8c7f5a63_54d30fc6","updated":"2026-07-09 08:12:19.000000000","message":"good progress so far, check my comments inline\nwe should also think about adding tests for _convert_to_version in test_node_history for completeness","commit_id":"4f999eb2ab3a0d069bf3def98dfabdb776c2f0f0"}],"ironic/common/release_mappings.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"424167bca094e1b9ff716b3cf0d31d4ad79163a6","unresolved":true,"context_lines":[{"line_number":1051,"context_line":"            \u0027Allocation\u0027: [\u00271.3\u0027, \u00271.2\u0027, \u00271.1\u0027],"},{"line_number":1052,"context_line":"            \u0027BIOSSetting\u0027: [\u00271.2\u0027, \u00271.1\u0027],"},{"line_number":1053,"context_line":"            \u0027Node\u0027: [\u00271.44\u0027, \u00271.43\u0027, \u00271.42\u0027, \u00271.41\u0027],"},{"line_number":1054,"context_line":"            \u0027NodeHistory\u0027: [\u00271.3\u0027, \u00271.2\u0027, \u00271.1\u0027, \u00271.0\u0027],"},{"line_number":1055,"context_line":"            \u0027NodeInventory\u0027: [\u00271.1\u0027, \u00271.0\u0027],"},{"line_number":1056,"context_line":"            \u0027Conductor\u0027: [\u00271.6\u0027, \u00271.5\u0027, \u00271.4\u0027],"},{"line_number":1057,"context_line":"            \u0027Chassis\u0027: [\u00271.4\u0027, \u00271.3\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"b6d4392e_e4e59a80","line":1054,"updated":"2026-06-16 14:36:26.000000000","message":"This seems weird to have revisions in one change, FWIW.","commit_id":"4157b53ace8a5dd7162041a5cedef7e1ca5a019d"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"04fad7d622d9346f56417dacae659afdddc4a812","unresolved":false,"context_lines":[{"line_number":1051,"context_line":"            \u0027Allocation\u0027: [\u00271.3\u0027, \u00271.2\u0027, \u00271.1\u0027],"},{"line_number":1052,"context_line":"            \u0027BIOSSetting\u0027: [\u00271.2\u0027, \u00271.1\u0027],"},{"line_number":1053,"context_line":"            \u0027Node\u0027: [\u00271.44\u0027, \u00271.43\u0027, \u00271.42\u0027, \u00271.41\u0027],"},{"line_number":1054,"context_line":"            \u0027NodeHistory\u0027: [\u00271.3\u0027, \u00271.2\u0027, \u00271.1\u0027, \u00271.0\u0027],"},{"line_number":1055,"context_line":"            \u0027NodeInventory\u0027: [\u00271.1\u0027, \u00271.0\u0027],"},{"line_number":1056,"context_line":"            \u0027Conductor\u0027: [\u00271.6\u0027, \u00271.5\u0027, \u00271.4\u0027],"},{"line_number":1057,"context_line":"            \u0027Chassis\u0027: [\u00271.4\u0027, \u00271.3\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"5e7821cc_a7ee2392","line":1054,"in_reply_to":"b6d4392e_e4e59a80","updated":"2026-06-16 15:55:35.000000000","message":"Done","commit_id":"4157b53ace8a5dd7162041a5cedef7e1ca5a019d"}],"ironic/db/sqlalchemy/alembic/versions/9fb44677ef15_add_state_and_timestamps_to_node_history.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"424167bca094e1b9ff716b3cf0d31d4ad79163a6","unresolved":true,"context_lines":[{"line_number":37,"context_line":"                            nullable\u003dTrue))"},{"line_number":38,"context_line":"    op.add_column(\u0027node_history\u0027,"},{"line_number":39,"context_line":"                  sa.Column(\u0027duration_seconds\u0027,"},{"line_number":40,"context_line":"                            sa.Integer(),"},{"line_number":41,"context_line":"                            nullable\u003dTrue))"}],"source_content_type":"text/x-python","patch_set":9,"id":"3db8992a_a376240f","line":40,"updated":"2026-06-16 14:36:26.000000000","message":"Note to other reviewers: this is the Mysql integer type which is 4 bytes of storage. Either signed or unsigned (unknown) but this ends up being a minimum of ~68 years or a max of ~136 years.","commit_id":"4157b53ace8a5dd7162041a5cedef7e1ca5a019d"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"04fad7d622d9346f56417dacae659afdddc4a812","unresolved":false,"context_lines":[{"line_number":37,"context_line":"                            nullable\u003dTrue))"},{"line_number":38,"context_line":"    op.add_column(\u0027node_history\u0027,"},{"line_number":39,"context_line":"                  sa.Column(\u0027duration_seconds\u0027,"},{"line_number":40,"context_line":"                            sa.Integer(),"},{"line_number":41,"context_line":"                            nullable\u003dTrue))"}],"source_content_type":"text/x-python","patch_set":9,"id":"56fdfa57_06e45dcc","line":40,"in_reply_to":"3db8992a_a376240f","updated":"2026-06-16 15:55:35.000000000","message":"Done","commit_id":"4157b53ace8a5dd7162041a5cedef7e1ca5a019d"}],"ironic/objects/node_history.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"424167bca094e1b9ff716b3cf0d31d4ad79163a6","unresolved":true,"context_lines":[{"line_number":27,"context_line":"    # Version 1.2: Added state, entry_at, and exit_at fields."},{"line_number":28,"context_line":"    # Version 1.3: Replaced entry_at/exit_at with target_provision_state"},{"line_number":29,"context_line":"    #              and duration_seconds"},{"line_number":30,"context_line":"    VERSION \u003d \u00271.3\u0027"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    dbapi \u003d dbapi.get_instance()"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bef41edb_fec59433","line":30,"updated":"2026-06-16 14:36:26.000000000","message":"FWIW, this is all \"merged\" together, and as such it can likely just be \"1.2\"","commit_id":"4157b53ace8a5dd7162041a5cedef7e1ca5a019d"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"04fad7d622d9346f56417dacae659afdddc4a812","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    # Version 1.2: Added state, entry_at, and exit_at fields."},{"line_number":28,"context_line":"    # Version 1.3: Replaced entry_at/exit_at with target_provision_state"},{"line_number":29,"context_line":"    #              and duration_seconds"},{"line_number":30,"context_line":"    VERSION \u003d \u00271.3\u0027"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    dbapi \u003d dbapi.get_instance()"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"58de695a_9aae344a","line":30,"in_reply_to":"bef41edb_fec59433","updated":"2026-06-16 15:55:35.000000000","message":"Done","commit_id":"4157b53ace8a5dd7162041a5cedef7e1ca5a019d"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"f9c3cbf7ff0dd2e9f1889f357f98d58eed9a70f7","unresolved":true,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"@base.IronicObjectRegistry.register"},{"line_number":24,"context_line":"class NodeHistory(base.IronicObject, object_base.VersionedObjectDictCompat):"},{"line_number":25,"context_line":"    # Version 1.0: Initial version"},{"line_number":26,"context_line":"    # Version 1.1: Relevant methods changed to be remotable methods."},{"line_number":27,"context_line":"    # Version 1.2: Added state, target_provision_state, and duration_seconds"}],"source_content_type":"text/x-python","patch_set":11,"id":"83ad1125_2183c52a","line":24,"range":{"start_line":24,"start_character":6,"end_line":24,"end_character":17},"updated":"2026-06-18 13:03:08.000000000","message":"This needs a version compatibility method now that there are new fields?\nSee method `convert_to_version` in ironic/objects/base.py.","commit_id":"05d4a0c2edcd9488df5fea4d906d336c35ae3bb8"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"aa904d101b3a9a61e6416c330741b04a50071078","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"@base.IronicObjectRegistry.register"},{"line_number":24,"context_line":"class NodeHistory(base.IronicObject, object_base.VersionedObjectDictCompat):"},{"line_number":25,"context_line":"    # Version 1.0: Initial version"},{"line_number":26,"context_line":"    # Version 1.1: Relevant methods changed to be remotable methods."},{"line_number":27,"context_line":"    # Version 1.2: Added state, target_provision_state, and duration_seconds"}],"source_content_type":"text/x-python","patch_set":11,"id":"ea5c1904_b83d5b9a","line":24,"range":{"start_line":24,"start_character":6,"end_line":24,"end_character":17},"in_reply_to":"83ad1125_2183c52a","updated":"2026-06-18 18:31:32.000000000","message":"Done","commit_id":"05d4a0c2edcd9488df5fea4d906d336c35ae3bb8"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"f9c3cbf7ff0dd2e9f1889f357f98d58eed9a70f7","unresolved":true,"context_lines":[{"line_number":41,"context_line":"        \u0027state\u0027: object_fields.StringField(nullable\u003dTrue),"},{"line_number":42,"context_line":"        \u0027target_provision_state\u0027: object_fields.StringField(nullable\u003dTrue),"},{"line_number":43,"context_line":"        \u0027duration_seconds\u0027: object_fields.IntegerField(nullable\u003dTrue),"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    }"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"a91a4e13_b7e24c08","line":47,"range":{"start_line":44,"start_character":1,"end_line":47,"end_character":1},"updated":"2026-06-18 13:03:08.000000000","message":"nit, remove the extra blank lines?","commit_id":"05d4a0c2edcd9488df5fea4d906d336c35ae3bb8"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"aa904d101b3a9a61e6416c330741b04a50071078","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        \u0027state\u0027: object_fields.StringField(nullable\u003dTrue),"},{"line_number":42,"context_line":"        \u0027target_provision_state\u0027: object_fields.StringField(nullable\u003dTrue),"},{"line_number":43,"context_line":"        \u0027duration_seconds\u0027: object_fields.IntegerField(nullable\u003dTrue),"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    }"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3896c227_8b922e67","line":47,"range":{"start_line":44,"start_character":1,"end_line":47,"end_character":1},"in_reply_to":"a91a4e13_b7e24c08","updated":"2026-06-18 18:31:32.000000000","message":"Done","commit_id":"05d4a0c2edcd9488df5fea4d906d336c35ae3bb8"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"1801c80b08eecb52f87e81775e0b9f1e07a54814","unresolved":true,"context_lines":[{"line_number":25,"context_line":"class NodeHistory(base.IronicObject, object_base.VersionedObjectDictCompat):"},{"line_number":26,"context_line":"    # Version 1.0: Initial version"},{"line_number":27,"context_line":"    # Version 1.1: Relevant methods changed to be remotable methods."},{"line_number":28,"context_line":"    # Version 1.2: Added project fields, state, target_provision_state,"},{"line_number":29,"context_line":"    #              duration_seconds, user tracking, power_watts, and energy_wh."},{"line_number":30,"context_line":"    VERSION \u003d \u00271.2\u0027"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"da155307_0d3728bc","line":28,"updated":"2026-07-09 08:12:19.000000000","message":"the comment here is misleading: power_watts, energy_wh, and user tracking are not added in this change","commit_id":"4f999eb2ab3a0d069bf3def98dfabdb776c2f0f0"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"94d81ddc06b0e16650c45f05c174d6b0b0c8ab52","unresolved":false,"context_lines":[{"line_number":25,"context_line":"class NodeHistory(base.IronicObject, object_base.VersionedObjectDictCompat):"},{"line_number":26,"context_line":"    # Version 1.0: Initial version"},{"line_number":27,"context_line":"    # Version 1.1: Relevant methods changed to be remotable methods."},{"line_number":28,"context_line":"    # Version 1.2: Added project fields, state, target_provision_state,"},{"line_number":29,"context_line":"    #              duration_seconds, user tracking, power_watts, and energy_wh."},{"line_number":30,"context_line":"    VERSION \u003d \u00271.2\u0027"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"c938e363_1be4358f","line":28,"in_reply_to":"da155307_0d3728bc","updated":"2026-07-10 11:05:44.000000000","message":"Done","commit_id":"4f999eb2ab3a0d069bf3def98dfabdb776c2f0f0"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"1801c80b08eecb52f87e81775e0b9f1e07a54814","unresolved":true,"context_lines":[{"line_number":175,"context_line":"            target_version,"},{"line_number":176,"context_line":"            remove_unavailable_fields\u003dremove_unavailable_fields)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        target_version\u003dversionutils.convert_version_to_tuple(target_version)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        # Version 1.2 added \u0027state\u0027, \u0027target_provision_state\u0027,"},{"line_number":181,"context_line":"        # and \u0027duration_seconds\u0027."}],"source_content_type":"text/x-python","patch_set":18,"id":"d9059387_e881ba2b","line":178,"updated":"2026-07-09 08:12:19.000000000","message":"nit: this is a pep8 violation, you need to leave a space around \u003d","commit_id":"4f999eb2ab3a0d069bf3def98dfabdb776c2f0f0"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"94d81ddc06b0e16650c45f05c174d6b0b0c8ab52","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            target_version,"},{"line_number":176,"context_line":"            remove_unavailable_fields\u003dremove_unavailable_fields)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        target_version\u003dversionutils.convert_version_to_tuple(target_version)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        # Version 1.2 added \u0027state\u0027, \u0027target_provision_state\u0027,"},{"line_number":181,"context_line":"        # and \u0027duration_seconds\u0027."}],"source_content_type":"text/x-python","patch_set":18,"id":"9e5f9676_3673ba87","line":178,"in_reply_to":"d9059387_e881ba2b","updated":"2026-07-10 11:05:44.000000000","message":"Done","commit_id":"4f999eb2ab3a0d069bf3def98dfabdb776c2f0f0"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"1801c80b08eecb52f87e81775e0b9f1e07a54814","unresolved":true,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        target_version\u003dversionutils.convert_version_to_tuple(target_version)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        # Version 1.2 added \u0027state\u0027, \u0027target_provision_state\u0027,"},{"line_number":181,"context_line":"        # and \u0027duration_seconds\u0027."},{"line_number":182,"context_line":"        if target_version \u003c (1, 2):"},{"line_number":183,"context_line":"            if remove_unavailable_fields:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7e37f6b8_dabf3cc2","line":180,"updated":"2026-07-09 08:12:19.000000000","message":"we should add also project as it was added in 1.2 too (this is a precedent bug)","commit_id":"4f999eb2ab3a0d069bf3def98dfabdb776c2f0f0"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"94d81ddc06b0e16650c45f05c174d6b0b0c8ab52","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        target_version\u003dversionutils.convert_version_to_tuple(target_version)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        # Version 1.2 added \u0027state\u0027, \u0027target_provision_state\u0027,"},{"line_number":181,"context_line":"        # and \u0027duration_seconds\u0027."},{"line_number":182,"context_line":"        if target_version \u003c (1, 2):"},{"line_number":183,"context_line":"            if remove_unavailable_fields:"}],"source_content_type":"text/x-python","patch_set":18,"id":"5bf04daf_fb24fd9a","line":180,"in_reply_to":"7e37f6b8_dabf3cc2","updated":"2026-07-10 11:05:44.000000000","message":"Done","commit_id":"4f999eb2ab3a0d069bf3def98dfabdb776c2f0f0"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"1801c80b08eecb52f87e81775e0b9f1e07a54814","unresolved":true,"context_lines":[{"line_number":181,"context_line":"        # and \u0027duration_seconds\u0027."},{"line_number":182,"context_line":"        if target_version \u003c (1, 2):"},{"line_number":183,"context_line":"            if remove_unavailable_fields:"},{"line_number":184,"context_line":"                self.obj_attributes.pop(\u0027state\u0027, None)"},{"line_number":185,"context_line":"                self.obj_attributes.pop(\u0027target_provision_state\u0027, None)"},{"line_number":186,"context_line":"                self.obj_attributes.pop(\u0027duration_seconds\u0027, None)"},{"line_number":187,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":18,"id":"f3660716_b005b4da","line":184,"updated":"2026-07-09 08:12:19.000000000","message":"I don\u0027t think we use self.obj_attributes.pop() in other objects for this, check node and port to see how we do it","commit_id":"4f999eb2ab3a0d069bf3def98dfabdb776c2f0f0"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"94d81ddc06b0e16650c45f05c174d6b0b0c8ab52","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        # and \u0027duration_seconds\u0027."},{"line_number":182,"context_line":"        if target_version \u003c (1, 2):"},{"line_number":183,"context_line":"            if remove_unavailable_fields:"},{"line_number":184,"context_line":"                self.obj_attributes.pop(\u0027state\u0027, None)"},{"line_number":185,"context_line":"                self.obj_attributes.pop(\u0027target_provision_state\u0027, None)"},{"line_number":186,"context_line":"                self.obj_attributes.pop(\u0027duration_seconds\u0027, None)"},{"line_number":187,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":18,"id":"2e6fe017_c0f4dd0b","line":184,"in_reply_to":"f3660716_b005b4da","updated":"2026-07-10 11:05:44.000000000","message":"Done","commit_id":"4f999eb2ab3a0d069bf3def98dfabdb776c2f0f0"}],"ironic/tests/unit/db/utils.py":[{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"f9c3cbf7ff0dd2e9f1889f357f98d58eed9a70f7","unresolved":true,"context_lines":[{"line_number":710,"context_line":"        \u0027created_at\u0027: kw.get(\u0027created_at\u0027),"},{"line_number":711,"context_line":"        \u0027updated_at\u0027: kw.get(\u0027updated_at\u0027),"},{"line_number":712,"context_line":"        \u0027state\u0027: kw.get(\u0027state\u0027, \u0027available\u0027),"},{"line_number":713,"context_line":"        \u0027target_provision_state\u0027: kw.get(\u0027target_provision_state\u0027, \u0027active\u0027),"},{"line_number":714,"context_line":"        \u0027duration_seconds\u0027: kw.get(\u0027duration_seconds\u0027, 120),"},{"line_number":715,"context_line":"    }"},{"line_number":716,"context_line":""},{"line_number":717,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"5e150f8b_9d971073","line":714,"range":{"start_line":713,"start_character":1,"end_line":714,"end_character":60},"updated":"2026-06-18 13:03:08.000000000","message":"I think we should drop the defaults for target and duration, to avoid potential false positive in tests. It also matches created_at and updates_at above.","commit_id":"05d4a0c2edcd9488df5fea4d906d336c35ae3bb8"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"aa904d101b3a9a61e6416c330741b04a50071078","unresolved":false,"context_lines":[{"line_number":710,"context_line":"        \u0027created_at\u0027: kw.get(\u0027created_at\u0027),"},{"line_number":711,"context_line":"        \u0027updated_at\u0027: kw.get(\u0027updated_at\u0027),"},{"line_number":712,"context_line":"        \u0027state\u0027: kw.get(\u0027state\u0027, \u0027available\u0027),"},{"line_number":713,"context_line":"        \u0027target_provision_state\u0027: kw.get(\u0027target_provision_state\u0027, \u0027active\u0027),"},{"line_number":714,"context_line":"        \u0027duration_seconds\u0027: kw.get(\u0027duration_seconds\u0027, 120),"},{"line_number":715,"context_line":"    }"},{"line_number":716,"context_line":""},{"line_number":717,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"49b38ed9_3b323f82","line":714,"range":{"start_line":713,"start_character":1,"end_line":714,"end_character":60},"in_reply_to":"5e150f8b_9d971073","updated":"2026-06-18 18:31:32.000000000","message":"Thanks for the review, Harald! Removed the default values for both fields to prevent false positives.","commit_id":"05d4a0c2edcd9488df5fea4d906d336c35ae3bb8"}]}
