)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"7b0fecdf1c5c7a3eec67aec4e1dce79d4d8aef6e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"40c934b8_abf60b73","updated":"2025-05-20 21:40:52.000000000","message":"looks fine, just one nit","commit_id":"5226dc7b8a98c1e0e5ac575888be9d1f3a275ea4"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"e820d0fa5d67b0dd2067b9bf82b42a8600523c60","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"6c339c16_eb707b33","updated":"2025-05-20 17:20:28.000000000","message":"recheck - /opt/stack/ironic/devstack/lib/ironic: line 1588: start_neutron_api: command not found","commit_id":"5226dc7b8a98c1e0e5ac575888be9d1f3a275ea4"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"2e558ac75a24700761e9cd9727a0ebd926cbc23e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"13320d7d_1939ea3d","updated":"2025-05-22 03:53:35.000000000","message":"recheck new results required","commit_id":"5226dc7b8a98c1e0e5ac575888be9d1f3a275ea4"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6b37109e8a859855f9046613b42ef734003b226b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"86ca72ba_78590a0d","updated":"2025-05-30 15:14:36.000000000","message":"LGTM, thanks for updating webapi history, the most forgotten place to update for all API changes!","commit_id":"65f1396d1984d68983546ae69a71e1a565f8662c"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"333c2f51667d083102def59d6a8563257bfa33d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"850cf93d_04a44ba3","updated":"2025-05-29 17:32:50.000000000","message":"recheck - unrelated failure.","commit_id":"65f1396d1984d68983546ae69a71e1a565f8662c"}],"doc/source/contributor/webapi-version-history.rst":[{"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":"93a8245224e41028ae88481254c9c6fda35256bd","unresolved":true,"context_lines":[{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"1.82 (Antelope)"},{"line_number":6,"context_line":"----------------------"},{"line_number":7,"context_line":"Add ability to filter on node conductor group when listing ports and"},{"line_number":8,"context_line":"portgroups."},{"line_number":9,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"95ad3326_629b7f12","line":6,"updated":"2023-02-06 19:56:04.000000000","message":"Sharding is set for 1.82 as well, and is close to landing. Perhaps rebase on my patch set and take 83?","commit_id":"6ab09d3985cb55660a5b9c40dd68b3cc0928799a"},{"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":"8019851382a62b9a775d9c073c943869431172c6","unresolved":false,"context_lines":[{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"1.82 (Antelope)"},{"line_number":6,"context_line":"----------------------"},{"line_number":7,"context_line":"Add ability to filter on node conductor group when listing ports and"},{"line_number":8,"context_line":"portgroups."},{"line_number":9,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"a36faebe_a4a082a6","line":6,"in_reply_to":"95ad3326_629b7f12","updated":"2025-05-07 18:58:07.000000000","message":"irrelevant","commit_id":"6ab09d3985cb55660a5b9c40dd68b3cc0928799a"}],"ironic/api/controllers/v1/port.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":"8019851382a62b9a775d9c073c943869431172c6","unresolved":true,"context_lines":[{"line_number":295,"context_line":"            filters[\u0027conductor_groups\u0027] \u003d conductor_groups"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        if conductor_groups and (node_ident or portgroup_ident or address):"},{"line_number":298,"context_line":"            raise exception.Invalid()"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        if portgroup_ident:"},{"line_number":301,"context_line":"            # FIXME: Since all we need is the portgroup ID, we can"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a7dc44f_4f5bcb93","line":298,"updated":"2025-05-07 18:58:07.000000000","message":"Can we add a message to this indicating why it\u0027s invalid to the API caller?","commit_id":"5ea71d1fe3a8f9536687ab72f81cee094a8aa55c"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"6ab6bc7c0e81d31f4f699b88b8de91f29e02001d","unresolved":false,"context_lines":[{"line_number":295,"context_line":"            filters[\u0027conductor_groups\u0027] \u003d conductor_groups"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        if conductor_groups and (node_ident or portgroup_ident or address):"},{"line_number":298,"context_line":"            raise exception.Invalid()"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        if portgroup_ident:"},{"line_number":301,"context_line":"            # FIXME: Since all we need is the portgroup ID, we can"}],"source_content_type":"text/x-python","patch_set":5,"id":"194e318e_a5dc60fd","line":298,"in_reply_to":"5a7dc44f_4f5bcb93","updated":"2025-05-20 12:50:19.000000000","message":"Acknowledged","commit_id":"5ea71d1fe3a8f9536687ab72f81cee094a8aa55c"}],"ironic/api/controllers/v1/portgroup.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":"8019851382a62b9a775d9c073c943869431172c6","unresolved":true,"context_lines":[{"line_number":202,"context_line":"            filters[\u0027conductor_groups\u0027] \u003d conductor_groups"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        if conductor_groups and (node_ident or address):"},{"line_number":205,"context_line":"            raise exception.Invalid()"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        if node_ident:"},{"line_number":208,"context_line":"            # FIXME: Since all we need is the node ID, we can"}],"source_content_type":"text/x-python","patch_set":5,"id":"06d6b82f_f529e471","line":205,"updated":"2025-05-07 18:58:07.000000000","message":"same, lets tell them why it\u0027s invalid","commit_id":"5ea71d1fe3a8f9536687ab72f81cee094a8aa55c"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"6ab6bc7c0e81d31f4f699b88b8de91f29e02001d","unresolved":false,"context_lines":[{"line_number":202,"context_line":"            filters[\u0027conductor_groups\u0027] \u003d conductor_groups"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        if conductor_groups and (node_ident or address):"},{"line_number":205,"context_line":"            raise exception.Invalid()"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        if node_ident:"},{"line_number":208,"context_line":"            # FIXME: Since all we need is the node ID, we can"}],"source_content_type":"text/x-python","patch_set":5,"id":"e1421533_058e6c55","line":205,"in_reply_to":"06d6b82f_f529e471","updated":"2025-05-20 12:50:19.000000000","message":"Acknowledged","commit_id":"5ea71d1fe3a8f9536687ab72f81cee094a8aa55c"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"7b0fecdf1c5c7a3eec67aec4e1dce79d4d8aef6e","unresolved":true,"context_lines":[{"line_number":304,"context_line":"            resource_url\u003d\u0027portgroups\u0027,"},{"line_number":305,"context_line":"            detail\u003ddetail,"},{"line_number":306,"context_line":"            project\u003dproject,"},{"line_number":307,"context_line":"            **extra_args)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    @METRICS.timer(\u0027PortgroupsController.detail\u0027)"},{"line_number":310,"context_line":"    @method.expose()"}],"source_content_type":"text/x-python","patch_set":6,"id":"c7f1c42e_e115242c","line":307,"updated":"2025-05-20 21:40:52.000000000","message":"Why not just pass conductor_groups as a normal arg?","commit_id":"5226dc7b8a98c1e0e5ac575888be9d1f3a275ea4"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"24a7e952fe1d007151c67a2eda7022f893298255","unresolved":true,"context_lines":[{"line_number":304,"context_line":"            resource_url\u003d\u0027portgroups\u0027,"},{"line_number":305,"context_line":"            detail\u003ddetail,"},{"line_number":306,"context_line":"            project\u003dproject,"},{"line_number":307,"context_line":"            **extra_args)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    @METRICS.timer(\u0027PortgroupsController.detail\u0027)"},{"line_number":310,"context_line":"    @method.expose()"}],"source_content_type":"text/x-python","patch_set":6,"id":"7fd5782a_b7642942","line":307,"in_reply_to":"c7f1c42e_e115242c","updated":"2025-05-28 14:32:19.000000000","message":"I tucked it into extra_args/filters to keep the signature from growing as new filters appear. So it\u0027s better passed along as a normal arg?","commit_id":"5226dc7b8a98c1e0e5ac575888be9d1f3a275ea4"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"7b0fecdf1c5c7a3eec67aec4e1dce79d4d8aef6e","unresolved":true,"context_lines":[{"line_number":353,"context_line":"        return self._get_portgroups_collection("},{"line_number":354,"context_line":"            node, address, marker, limit, sort_key, sort_dir,"},{"line_number":355,"context_line":"            resource_url\u003d\u0027portgroups/detail\u0027, project\u003dproject,"},{"line_number":356,"context_line":"            **extra_args)"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"    @METRICS.timer(\u0027PortgroupsController.get_one\u0027)"},{"line_number":359,"context_line":"    @method.expose()"}],"source_content_type":"text/x-python","patch_set":6,"id":"f88b4293_a8f7055b","line":356,"updated":"2025-05-20 21:40:52.000000000","message":"ditto","commit_id":"5226dc7b8a98c1e0e5ac575888be9d1f3a275ea4"}],"ironic/api/controllers/v1/versions.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":"8019851382a62b9a775d9c073c943869431172c6","unresolved":true,"context_lines":[{"line_number":136,"context_line":"# v1.96: Migrate inspection rules from Inspector"},{"line_number":137,"context_line":"# v1.97: Add description field to port."},{"line_number":138,"context_line":"# v1.98: Add support for object attributes with keys containing ~ or /."},{"line_number":139,"context_line":"# v1.99: Add conductor group filtering to port and portgroup list"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"MINOR_0_JUNO \u003d 0"},{"line_number":142,"context_line":"MINOR_1_INITIAL_VERSION \u003d 1"}],"source_content_type":"text/x-python","patch_set":5,"id":"7d71fc77_a26b6908","line":139,"updated":"2025-05-07 18:58:07.000000000","message":"We\u0027re going to run out of microversions! AHHHHHHHHHHHHHHHH (this is a joke)","commit_id":"5ea71d1fe3a8f9536687ab72f81cee094a8aa55c"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"6ab6bc7c0e81d31f4f699b88b8de91f29e02001d","unresolved":true,"context_lines":[{"line_number":136,"context_line":"# v1.96: Migrate inspection rules from Inspector"},{"line_number":137,"context_line":"# v1.97: Add description field to port."},{"line_number":138,"context_line":"# v1.98: Add support for object attributes with keys containing ~ or /."},{"line_number":139,"context_line":"# v1.99: Add conductor group filtering to port and portgroup list"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"MINOR_0_JUNO \u003d 0"},{"line_number":142,"context_line":"MINOR_1_INITIAL_VERSION \u003d 1"}],"source_content_type":"text/x-python","patch_set":5,"id":"5b937794_60595225","line":139,"in_reply_to":"7d71fc77_a26b6908","updated":"2025-05-20 12:50:19.000000000","message":"Heh, who knows what v1.100 would be :D","commit_id":"5ea71d1fe3a8f9536687ab72f81cee094a8aa55c"}],"ironic/objects/port.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":"c4509ac75ebb6169d590253a548b68f1e61c560a","unresolved":true,"context_lines":[{"line_number":43,"context_line":"    #              internal_info[\u0027tenant_vif_port_id\u0027] (not an explicit db"},{"line_number":44,"context_line":"    #              change)"},{"line_number":45,"context_line":"    # Version 1.9: Add support for Smart NIC port"},{"line_number":46,"context_line":"    # Version 1.10: Add name field"},{"line_number":47,"context_line":"    VERSION \u003d \u00271.10\u0027"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    dbapi \u003d dbapi.get_instance()"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"146a3e3e_18cd3f9d","line":47,"range":{"start_line":46,"start_character":8,"end_line":47,"end_character":20},"updated":"2022-10-25 18:58:14.000000000","message":"I guess we technically need to update this field version since we\u0027re adding a new parameter, same with portgroup.","commit_id":"2a6a9ae3143b5c81635b4934ff6e475da07a3268"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"d1755aceefe2f978d201ab2e9e27be255ac8ce99","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    #              internal_info[\u0027tenant_vif_port_id\u0027] (not an explicit db"},{"line_number":44,"context_line":"    #              change)"},{"line_number":45,"context_line":"    # Version 1.9: Add support for Smart NIC port"},{"line_number":46,"context_line":"    # Version 1.10: Add name field"},{"line_number":47,"context_line":"    VERSION \u003d \u00271.10\u0027"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    dbapi \u003d dbapi.get_instance()"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"aa6ef3af_32595bc5","line":47,"range":{"start_line":46,"start_character":8,"end_line":47,"end_character":20},"in_reply_to":"146a3e3e_18cd3f9d","updated":"2022-10-26 08:13:21.000000000","message":"dang, I actually did it initially and then changed it since there was not update of version when \"admin\" parameter was added.\n\nAnyhow, I\u0027ve pushed an update with Port and Portgroup obj versions bumped.","commit_id":"2a6a9ae3143b5c81635b4934ff6e475da07a3268"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"2aa7b5e38fc9eeff9cfb20c53e3377a029027d77","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    #              internal_info[\u0027tenant_vif_port_id\u0027] (not an explicit db"},{"line_number":44,"context_line":"    #              change)"},{"line_number":45,"context_line":"    # Version 1.9: Add support for Smart NIC port"},{"line_number":46,"context_line":"    # Version 1.10: Add name field"},{"line_number":47,"context_line":"    VERSION \u003d \u00271.10\u0027"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    dbapi \u003d dbapi.get_instance()"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"a6d38047_2e313bc9","line":47,"range":{"start_line":46,"start_character":8,"end_line":47,"end_character":20},"in_reply_to":"aa6ef3af_32595bc5","updated":"2022-10-27 17:14:45.000000000","message":"Ahh, yeah. We\u0027ve been \u0027bad\u0027 at doing it, but we really should in case we need to do data migrations at any time.","commit_id":"2a6a9ae3143b5c81635b4934ff6e475da07a3268"}]}
