)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":39213,"name":"Jed Preist","display_name":"Jed Preist","email":"jed@stackhpc.com","username":"jed-preist"},"change_message_id":"573fe0e9d3112eb80281d0ad2c1339a810388574","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"36ac8f99_8f333a23","updated":"2026-07-06 08:55:29.000000000","message":"recheck Centos10 node SSH failure","commit_id":"c4648fedaad784ecb269d08e168f440bf3ef16cb"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"5bb0cd660b334545029bf5be3e30429111672250","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"e5bfb811_44dbfd4d","updated":"2026-07-06 12:22:27.000000000","message":"Looks pretty good. It would be handy if we collected the sushy logs. Similar to:\n\nhttps://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_564/openstack/564d5220e8f045eda3f786cad9937bcf/ubuntu-noble/system_logs/tenks/vbmc-tk0.txt","commit_id":"42d59747bbe85cab6448dbdc90b9a14d1141d1f5"},{"author":{"_account_id":39213,"name":"Jed Preist","display_name":"Jed Preist","email":"jed@stackhpc.com","username":"jed-preist"},"change_message_id":"75ca3cda20cc2472bd3d806d98b1d2606720bf12","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"ee18c737_63d437f5","in_reply_to":"70cafe3a_ac5f1421","updated":"2026-07-06 15:15:47.000000000","message":"Done","commit_id":"42d59747bbe85cab6448dbdc90b9a14d1141d1f5"},{"author":{"_account_id":39213,"name":"Jed Preist","display_name":"Jed Preist","email":"jed@stackhpc.com","username":"jed-preist"},"change_message_id":"199743b83849f885e9b964a5a0b2f521f288f898","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"70cafe3a_ac5f1421","in_reply_to":"e5bfb811_44dbfd4d","updated":"2026-07-06 12:35:07.000000000","message":"I\u0027ll see if I can get that working","commit_id":"42d59747bbe85cab6448dbdc90b9a14d1141d1f5"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"4dc4fd3170e114bb0f65d45516c5c989ff037b31","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"dbd421ab_3eb0ba3d","updated":"2026-07-08 13:33:59.000000000","message":"Also tested here:\nhttps://review.opendev.org/c/openstack/kolla-ansible/+/995952\nNice work Jed!","commit_id":"986ebd804264487c30c5f4242a567152d5526889"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"cc735d8fee5cab85a7ea86aa023bb21fb77e727e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"019cef56_2cfdd94f","updated":"2026-07-08 14:32:45.000000000","message":"recheck","commit_id":"986ebd804264487c30c5f4242a567152d5526889"}],"ansible/action_plugins/tenks_update_state.py":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"27da5911d42ec5ab33eb22a0593c31af69fcb862","unresolved":true,"context_lines":[{"line_number":358,"context_line":"            count +\u003d 1"},{"line_number":359,"context_line":"            hostname \u003d next(self._host_cycle)"},{"line_number":360,"context_line":"            host \u003d self.hosts[hostname]"},{"line_number":361,"context_line":"            if host.host_passes(node):"},{"line_number":362,"context_line":"                ipmi_port \u003d 0"},{"line_number":363,"context_line":"                if uses_ipmi:"},{"line_number":364,"context_line":"                    ipmi_port \u003d host.reserve()"}],"source_content_type":"text/x-python","patch_set":16,"id":"09d136f6_e4fac654","line":361,"updated":"2026-07-08 11:09:53.000000000","message":"Minor issue: host_passes still checks for free ipmi ports even if uses_ipmi\u003dFalse. Normally not a problem as we won\u0027t have exhausted ipmi ports.","commit_id":"0663958fb1bf5003380ffaf13a603cd2345687a5"},{"author":{"_account_id":39213,"name":"Jed Preist","display_name":"Jed Preist","email":"jed@stackhpc.com","username":"jed-preist"},"change_message_id":"e5bf5ffb772d27f9efab83fc38852dcddf473691","unresolved":false,"context_lines":[{"line_number":358,"context_line":"            count +\u003d 1"},{"line_number":359,"context_line":"            hostname \u003d next(self._host_cycle)"},{"line_number":360,"context_line":"            host \u003d self.hosts[hostname]"},{"line_number":361,"context_line":"            if host.host_passes(node):"},{"line_number":362,"context_line":"                ipmi_port \u003d 0"},{"line_number":363,"context_line":"                if uses_ipmi:"},{"line_number":364,"context_line":"                    ipmi_port \u003d host.reserve()"}],"source_content_type":"text/x-python","patch_set":16,"id":"153b7983_077e1a0d","line":361,"in_reply_to":"09d136f6_e4fac654","updated":"2026-07-08 13:07:44.000000000","message":"Done","commit_id":"0663958fb1bf5003380ffaf13a603cd2345687a5"}],"ansible/override.yml.example":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"5bb0cd660b334545029bf5be3e30429111672250","unresolved":true,"context_lines":[{"line_number":20,"context_line":"    physical_networks:"},{"line_number":21,"context_line":"      - physnet0"},{"line_number":22,"context_line":"    # The Ironic driver to use for the node\u0027s BMC. An appropriate BMC emulator"},{"line_number":23,"context_line":"    # will be configured based on this. Optional. "},{"line_number":24,"context_line":"    ironic_driver: ipmi"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"# specs is a list of configurations of nodes to be created. Each configuration"}],"source_content_type":"application/octet-stream","patch_set":10,"id":"30a52c4b_3b5c0e1d","line":23,"updated":"2026-07-06 12:22:27.000000000","message":"nit: whitespace\n```suggestion\n    # will be configured based on this. Optional.\n```","commit_id":"42d59747bbe85cab6448dbdc90b9a14d1141d1f5"},{"author":{"_account_id":39213,"name":"Jed Preist","display_name":"Jed Preist","email":"jed@stackhpc.com","username":"jed-preist"},"change_message_id":"199743b83849f885e9b964a5a0b2f521f288f898","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    physical_networks:"},{"line_number":21,"context_line":"      - physnet0"},{"line_number":22,"context_line":"    # The Ironic driver to use for the node\u0027s BMC. An appropriate BMC emulator"},{"line_number":23,"context_line":"    # will be configured based on this. Optional. "},{"line_number":24,"context_line":"    ironic_driver: ipmi"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"# specs is a list of configurations of nodes to be created. Each configuration"}],"source_content_type":"application/octet-stream","patch_set":10,"id":"ef5ed4e3_75089b07","line":23,"in_reply_to":"30a52c4b_3b5c0e1d","updated":"2026-07-06 12:35:07.000000000","message":"Done","commit_id":"42d59747bbe85cab6448dbdc90b9a14d1141d1f5"}],"ansible/roles/ironic-enrolment/tasks/node.yml":[{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"1e8bc723edc2d043afef663abf32b06e892c59a0","unresolved":true,"context_lines":[{"line_number":51,"context_line":"      ipmi_username: \"{{ hostvars[ironic_hypervisor].ipmi_username }}\""},{"line_number":52,"context_line":"      ipmi_password: \"{{ hostvars[ironic_hypervisor].ipmi_password }}\""},{"line_number":53,"context_line":"      redfish_address: \u0027http://{{ hostvars[ironic_hypervisor].redfish_address }}:8000\u0027"},{"line_number":54,"context_line":"      redfish_system_id: \u0027/redfish/v1/Systems/{{ node.uuid }}\u0027"},{"line_number":55,"context_line":"      redfish_username: \"{{ hostvars[ironic_hypervisor].redfish_username }}\""},{"line_number":56,"context_line":"      redfish_password: \"{{ hostvars[ironic_hypervisor].redfish_password }}\""},{"line_number":57,"context_line":"      deploy_kernel: \"{{ ironic_deploy_kernel_uuid | default(omit, true) }}\""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"987ca960_2decc135","line":54,"updated":"2026-07-02 14:49:35.000000000","message":"nit: You might want to consider a dedicated task for redfish so you don\u0027t set these fields on ipmi nodes.","commit_id":"832670fef6ef7583d98fde332edb39de2341ddd3"},{"author":{"_account_id":39213,"name":"Jed Preist","display_name":"Jed Preist","email":"jed@stackhpc.com","username":"jed-preist"},"change_message_id":"573fe0e9d3112eb80281d0ad2c1339a810388574","unresolved":false,"context_lines":[{"line_number":51,"context_line":"      ipmi_username: \"{{ hostvars[ironic_hypervisor].ipmi_username }}\""},{"line_number":52,"context_line":"      ipmi_password: \"{{ hostvars[ironic_hypervisor].ipmi_password }}\""},{"line_number":53,"context_line":"      redfish_address: \u0027http://{{ hostvars[ironic_hypervisor].redfish_address }}:8000\u0027"},{"line_number":54,"context_line":"      redfish_system_id: \u0027/redfish/v1/Systems/{{ node.uuid }}\u0027"},{"line_number":55,"context_line":"      redfish_username: \"{{ hostvars[ironic_hypervisor].redfish_username }}\""},{"line_number":56,"context_line":"      redfish_password: \"{{ hostvars[ironic_hypervisor].redfish_password }}\""},{"line_number":57,"context_line":"      deploy_kernel: \"{{ ironic_deploy_kernel_uuid | default(omit, true) }}\""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"4ce5e02f_00588c54","line":54,"in_reply_to":"987ca960_2decc135","updated":"2026-07-06 08:55:29.000000000","message":"Done","commit_id":"832670fef6ef7583d98fde332edb39de2341ddd3"}],"ansible/roles/sushy-redfish/README.md":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"5bb0cd660b334545029bf5be3e30429111672250","unresolved":true,"context_lines":[{"line_number":11,"context_line":"Role Variables"},{"line_number":12,"context_line":"--------------"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"- `sushy_tools_virtualenv_path`: The path to the virtualenv in which to install"},{"line_number":15,"context_line":"  sushy-tools. Must have libvirt-python installed in it."},{"line_number":16,"context_line":"- `sushy_python_upper_constraints_url`: The URL of the upper constraints file"},{"line_number":17,"context_line":"  to pass to pip when installing Python packages."}],"source_content_type":"text/x-gfm","patch_set":10,"id":"17f93bed_6da0dd65","line":14,"updated":"2026-07-06 12:22:27.000000000","message":"nit: I\u0027d normally stick these in role defaults (as well as in the README).","commit_id":"42d59747bbe85cab6448dbdc90b9a14d1141d1f5"},{"author":{"_account_id":39213,"name":"Jed Preist","display_name":"Jed Preist","email":"jed@stackhpc.com","username":"jed-preist"},"change_message_id":"199743b83849f885e9b964a5a0b2f521f288f898","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Role Variables"},{"line_number":12,"context_line":"--------------"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"- `sushy_tools_virtualenv_path`: The path to the virtualenv in which to install"},{"line_number":15,"context_line":"  sushy-tools. Must have libvirt-python installed in it."},{"line_number":16,"context_line":"- `sushy_python_upper_constraints_url`: The URL of the upper constraints file"},{"line_number":17,"context_line":"  to pass to pip when installing Python packages."}],"source_content_type":"text/x-gfm","patch_set":10,"id":"3fff69cd_f563389d","line":14,"in_reply_to":"17f93bed_6da0dd65","updated":"2026-07-06 12:35:07.000000000","message":"Done","commit_id":"42d59747bbe85cab6448dbdc90b9a14d1141d1f5"}],"ansible/roles/sushy-redfish/templates/sushy_emulator.service.j2":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"27da5911d42ec5ab33eb22a0593c31af69fcb862","unresolved":true,"context_lines":[{"line_number":1,"context_line":"[Unit]"},{"line_number":2,"context_line":"Description\u003dSushy Libvirt emulator"},{"line_number":3,"context_line":"After\u003dsyslog.target"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":16,"id":"48684c52_05501a32","line":1,"updated":"2026-07-08 11:09:53.000000000","message":"Do we need an [Install] section for use with systemctl enable?","commit_id":"0663958fb1bf5003380ffaf13a603cd2345687a5"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"9cd54e05046c8b5d68206eb3dc8b56821efd2f40","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[Unit]"},{"line_number":2,"context_line":"Description\u003dSushy Libvirt emulator"},{"line_number":3,"context_line":"After\u003dsyslog.target"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":16,"id":"3657c2e7_5a28e2a9","line":1,"in_reply_to":"1d363df9_7233dfad","updated":"2026-07-08 13:24:12.000000000","message":"We don\u0027t have it on vbmcd either: https://github.com/openstack/tenks/blob/master/ansible/roles/virtualbmc-daemon/templates/vbmcd.service.j2, so happy to merge in this state.","commit_id":"0663958fb1bf5003380ffaf13a603cd2345687a5"},{"author":{"_account_id":39213,"name":"Jed Preist","display_name":"Jed Preist","email":"jed@stackhpc.com","username":"jed-preist"},"change_message_id":"e5bf5ffb772d27f9efab83fc38852dcddf473691","unresolved":true,"context_lines":[{"line_number":1,"context_line":"[Unit]"},{"line_number":2,"context_line":"Description\u003dSushy Libvirt emulator"},{"line_number":3,"context_line":"After\u003dsyslog.target"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":16,"id":"1d363df9_7233dfad","line":1,"in_reply_to":"48684c52_05501a32","updated":"2026-07-08 13:07:44.000000000","message":"I don\u0027t know. The example sushy emulator service file doesn\u0027t have one: https://docs.openstack.org/sushy-tools/latest/admin/index.html","commit_id":"0663958fb1bf5003380ffaf13a603cd2345687a5"}],"releasenotes/notes/add-redfish-support-cc947f455c943f8c.yaml":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"5bb0cd660b334545029bf5be3e30429111672250","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for emulating Redfish BMCs using the sushy-tools"},{"line_number":5,"context_line":"    sushy-emulator. "}],"source_content_type":"text/x-yaml","patch_set":10,"id":"aa01cc7e_03c19132","line":5,"updated":"2026-07-06 12:22:27.000000000","message":"nit: trailing whitespace\n```suggestion\n    sushy-emulator.\n```","commit_id":"42d59747bbe85cab6448dbdc90b9a14d1141d1f5"},{"author":{"_account_id":39213,"name":"Jed Preist","display_name":"Jed Preist","email":"jed@stackhpc.com","username":"jed-preist"},"change_message_id":"199743b83849f885e9b964a5a0b2f521f288f898","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for emulating Redfish BMCs using the sushy-tools"},{"line_number":5,"context_line":"    sushy-emulator. "}],"source_content_type":"text/x-yaml","patch_set":10,"id":"49b93c41_ef6b74c1","line":5,"in_reply_to":"aa01cc7e_03c19132","updated":"2026-07-06 12:35:07.000000000","message":"Done","commit_id":"42d59747bbe85cab6448dbdc90b9a14d1141d1f5"}]}
