)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"de4fd76d0c76e6384a81fc2f45fd747027eb3a19","unresolved":true,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2026-04-07 01:00:38 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add node history state timestamps"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I44abfba623aaa2ae0d248d864a87bacc8eaf5f60"},{"line_number":10,"context_line":"Signed-off-by: Anishere Mariam Adeola \u003cmaradeola4me@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3cd3f007_10ee2883","line":8,"updated":"2026-04-07 14:03:57.000000000","message":"Is there a bug this was tied to?\n\nGenerally, more verbose commit messages help reviewers understand the full context of what your trying to do. In other words, your going to get more terse responses when you give reviewers ambiguity or require them to guess. Just something to consider moving forward to help yourself and the reviewers out. 😊","commit_id":"da62e321fd1c35aa66043842ffa3ad04f0701837"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"4aa2b0832baa2d5ae3ec7edf38b9d5cf12475c38","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"d4a5402a_4822c3c9","updated":"2026-04-07 04:27:25.000000000","message":"You already have the created at. You’re making two events in your example. Just read the created at time for both entries and use that as your start and stop time.","commit_id":"da62e321fd1c35aa66043842ffa3ad04f0701837"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"de4fd76d0c76e6384a81fc2f45fd747027eb3a19","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"7b00b9e6_42319060","in_reply_to":"d4a5402a_4822c3c9","updated":"2026-04-07 14:03:57.000000000","message":"I concur with Doug.","commit_id":"da62e321fd1c35aa66043842ffa3ad04f0701837"},{"author":{"_account_id":38549,"name":"David Nwosu","display_name":"Pointbr8ker-123","email":"nwosudavid13@gmail.com","username":"Pointbr8ker-123"},"change_message_id":"d401d7fe767c6091e7af9836a3d43c0924662bc6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"8f500651_90985987","updated":"2026-05-25 12:41:40.000000000","message":"Hey Mahdey, just a reminder — I added a \"project\" field to the node history table in my patch. It would be great if you could include \"project\u003dtask.node.lessee\" in your \"Deployment started\" history record so the project attribution is captured there too. Let me know if you have any questions about it!","commit_id":"a61a855ebb55a7958ae922dda0e19290732cd870"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"179e0f72a6d9f3d05b59c3f93196d95aed5180e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"e0450e23_f75f5a42","updated":"2026-05-26 15:58:34.000000000","message":"this is currently under discussion","commit_id":"a61a855ebb55a7958ae922dda0e19290732cd870"}],"ironic/conductor/deployments.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":"de4fd76d0c76e6384a81fc2f45fd747027eb3a19","unresolved":true,"context_lines":[{"line_number":499,"context_line":"        event\u003d\u0027Deployment completed\u0027,"},{"line_number":500,"context_line":"        event_type\u003dstates.DEPLOYING,"},{"line_number":501,"context_line":"        user\u003dtask.context.user_id,"},{"line_number":502,"context_line":"        exited_at\u003dtimeutils.utcnow(),"},{"line_number":503,"context_line":"        )"},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"    task.process_event(\u0027done\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3c1c5f65_a0116f72","line":502,"range":{"start_line":502,"start_character":8,"end_line":502,"end_character":37},"updated":"2026-04-07 14:03:57.000000000","message":"This seems kind of weird to do because we inherently get created_at when this entry is added to the database, which means we get two slightly different times from utcnow(). It just seems more like noise and the only value in the separate column is \"something ended\", but at the same time the event field is a freeform string and would be different, which means the reviewer of the log needs to parse the log as a journal of events anyway.","commit_id":"da62e321fd1c35aa66043842ffa3ad04f0701837"}],"ironic/db/sqlalchemy/models.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":"de4fd76d0c76e6384a81fc2f45fd747027eb3a19","unresolved":true,"context_lines":[{"line_number":479,"context_line":"    )"},{"line_number":480,"context_line":""},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"class NodeHistory(Base):"},{"line_number":483,"context_line":"    \"\"\"Represents a history event of a bare metal node.\"\"\""},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"    __tablename__ \u003d \u0027node_history\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"1b476abc_2e438f1c","line":482,"range":{"start_line":482,"start_character":18,"end_line":482,"end_character":22},"updated":"2026-04-07 14:03:57.000000000","message":"FYI, created_at/updated_at comes from Base which uses a timestamp mixin.\n\nNot that updated at is ever really used. The whole purpose of the history is append only.","commit_id":"da62e321fd1c35aa66043842ffa3ad04f0701837"}]}
