)]}'
{"/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":"0ec72cb5458b02879b7fcb873d19ac2348f7ad3f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"41606cf6_6332a3eb","updated":"2025-09-17 17:24:30.000000000","message":"This may be too early, but it might be interesting to have a unit test which validates a port and a portgroup with similar attributes are evaluated identically (barring is_port{,group})\n\n-1 for exception needing to move and global-requirements","commit_id":"59bc3f26e0b625d3a6d6d0a60cc084b10ebbf356"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"6695c2950ae7c8d48475a6aea1942fe1322115d6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a606b139_01a44a20","updated":"2025-09-22 15:13:54.000000000","message":"I have removed the ironic-week-prio tag since this is still WIP","commit_id":"1848d4d190033f907ed483a408be184b5e1ba051"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e4152062d241245b605e0e1ad5c2b3ac12800f49","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"aab7a3ac_6e627dfd","updated":"2025-09-30 19:21:21.000000000","message":"Just pointing out the requirements need","commit_id":"0becb1b6dc1057fec89ac73f8674967eff40a753"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"48e43966b220751a9507a1cf70a564fad2a9b7d8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f3207e7e_aea7ec8d","updated":"2025-10-29 00:38:26.000000000","message":"recheck","commit_id":"d9f588459af8971cf0ed92326b9946ec81891326"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"ae205a7ea3ab3235fc2fe0b4da05a282524022de","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"fa01ed69_9d6fad35","updated":"2025-10-20 20:12:16.000000000","message":"recheck ci flake","commit_id":"d9f588459af8971cf0ed92326b9946ec81891326"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"2d389a41fb5cd680c6cef7677f4600506a79e381","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"7e6a92aa_7bc6e00f","updated":"2025-11-11 19:48:45.000000000","message":"Broadly speaking, I\u0027m +2. I can see Jay\u0027s point style wise. My only real issue is the bolded inline text bothers but it could also be taken care of in follow-up.","commit_id":"c2905dc908e821cc4370de419ad06d30233594eb"},{"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":"a4e3bc9a3e9aacdec1e7cab6664880aed5b8b2a5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"67f9b295_5c63eb31","updated":"2025-11-05 23:22:20.000000000","message":"This LGTM but is the style of code I\u0027m really, really bad at in general so I\u0027d strongly prefer not to core review this. If needed after some time I can.","commit_id":"c2905dc908e821cc4370de419ad06d30233594eb"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"40a5c96345938418b576f4c4140d84cb60f268a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"04ce910b_fdf256f1","in_reply_to":"67f9b295_5c63eb31","updated":"2025-11-12 23:07:32.000000000","message":"Acknowledged","commit_id":"c2905dc908e821cc4370de419ad06d30233594eb"},{"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":"08235e7dacc69a28d8d7d0d86ed2875b18913d98","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"e3641f95_3e1ed9fd","updated":"2025-11-12 23:16:14.000000000","message":"Same idea, feel free to treat as a +2 if needed (or ask me to upgrade) but ideally we\u0027d have two folks stronger in this kinda parsing code reviewing this.","commit_id":"a93e60c7ab3af5f4b20a10573a0c2b7e246357cf"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"09eacd0eee8a41289c02c0e45b4ec6def2916c9d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"b812a936_02ee9565","updated":"2025-11-13 17:52:07.000000000","message":"recheck ci fail","commit_id":"a93e60c7ab3af5f4b20a10573a0c2b7e246357cf"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e09f65af01bbfa1811de3a93d77cf467a1ae9043","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"0e4d3571_6866f91f","updated":"2025-11-17 14:40:02.000000000","message":"Overall, LGTM. One aspect we may want to denote is that there is an additional dependency (lark).","commit_id":"8676b73c7539e0bd74fb33a380e214c987e8c566"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"59cd29c2d5f6f8033d878884bc18f95c6c1f0d6b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"2081c837_c5cd7ab1","updated":"2025-11-21 17:59:35.000000000","message":"recheck requirements error","commit_id":"8676b73c7539e0bd74fb33a380e214c987e8c566"},{"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":"f95b511a794179f31906e9995eafefca2159db1f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"4bb98b5b_14fe7114","updated":"2025-11-19 15:20:25.000000000","message":"recheck requirements threw in the python code plus a node_failure","commit_id":"8676b73c7539e0bd74fb33a380e214c987e8c566"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"2d2ba531345a0999ab8ea13309ab28297bead90a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"cbc4e62c_ef1b8b20","updated":"2025-11-24 19:23:14.000000000","message":"recheck CI failure","commit_id":"aa96982e6df20906102c52841919a77f35ba64c8"}],"ironic/common/exception.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":"0a87189d14c3266e60523ffed291fe1d9dbe6352","unresolved":true,"context_lines":[{"line_number":1143,"context_line":"    # so we handle known possible failure cases and don\u0027t fail horribly."},{"line_number":1144,"context_line":""},{"line_number":1145,"context_line":""},{"line_number":1146,"context_line":"class TraitBasedNetworkingException(IronicException):"},{"line_number":1147,"context_line":"    \"\"\"Raised when there\u0027s an issue with trait based networking feature.\"\"\""},{"line_number":1148,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":4,"id":"58f32345_405fa4be","line":1146,"updated":"2025-11-03 14:16:07.000000000","message":"As an aside, is there anyway to make errors more specific for error reporting?","commit_id":"0becb1b6dc1057fec89ac73f8674967eff40a753"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"83e7da4fe7513818c945fb29a670b9d323d097f4","unresolved":false,"context_lines":[{"line_number":1143,"context_line":"    # so we handle known possible failure cases and don\u0027t fail horribly."},{"line_number":1144,"context_line":""},{"line_number":1145,"context_line":""},{"line_number":1146,"context_line":"class TraitBasedNetworkingException(IronicException):"},{"line_number":1147,"context_line":"    \"\"\"Raised when there\u0027s an issue with trait based networking feature.\"\"\""},{"line_number":1148,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":4,"id":"9efe480c_8f5f17ac","line":1146,"in_reply_to":"43842851_d0081bd0","updated":"2025-11-05 19:23:39.000000000","message":"Done","commit_id":"0becb1b6dc1057fec89ac73f8674967eff40a753"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"0edac564ea0dcd51b19d16c45c3b144fb423bd98","unresolved":true,"context_lines":[{"line_number":1143,"context_line":"    # so we handle known possible failure cases and don\u0027t fail horribly."},{"line_number":1144,"context_line":""},{"line_number":1145,"context_line":""},{"line_number":1146,"context_line":"class TraitBasedNetworkingException(IronicException):"},{"line_number":1147,"context_line":"    \"\"\"Raised when there\u0027s an issue with trait based networking feature.\"\"\""},{"line_number":1148,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":4,"id":"43842851_d0081bd0","line":1146,"in_reply_to":"58f32345_405fa4be","updated":"2025-11-03 14:54:39.000000000","message":"I\u0027ll look at adding more specific errors.","commit_id":"0becb1b6dc1057fec89ac73f8674967eff40a753"}],"ironic/common/trait_based_networking/base.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":"0ec72cb5458b02879b7fcb873d19ac2348f7ad3f","unresolved":true,"context_lines":[{"line_number":15,"context_line":"import ironic.common.trait_based_networking.grammar.parser as tbn_parser"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class TraitBasedNetworkingException(Exception):"},{"line_number":19,"context_line":"    def __init__(self, message):"},{"line_number":20,"context_line":"        self.message \u003d message"},{"line_number":21,"context_line":"        super().__init__(self.message)"}],"source_content_type":"text/x-python","patch_set":1,"id":"0f276542_aa290ee9","line":18,"updated":"2025-09-17 17:24:30.000000000","message":"these should go into exception.py -\u003e https://opendev.org/openstack/ironic/src/commit/247ae57a22d1b48173398e940d62e531c237d66e/ironic/common/exception.py","commit_id":"59bc3f26e0b625d3a6d6d0a60cc084b10ebbf356"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"dfbacc55c318a5b418b99c0c341d952e85c37f2b","unresolved":false,"context_lines":[{"line_number":15,"context_line":"import ironic.common.trait_based_networking.grammar.parser as tbn_parser"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class TraitBasedNetworkingException(Exception):"},{"line_number":19,"context_line":"    def __init__(self, message):"},{"line_number":20,"context_line":"        self.message \u003d message"},{"line_number":21,"context_line":"        super().__init__(self.message)"}],"source_content_type":"text/x-python","patch_set":1,"id":"46eb6680_805307ad","line":18,"in_reply_to":"0f276542_aa290ee9","updated":"2025-09-18 14:37:49.000000000","message":"Done","commit_id":"59bc3f26e0b625d3a6d6d0a60cc084b10ebbf356"},{"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":"0ec72cb5458b02879b7fcb873d19ac2348f7ad3f","unresolved":true,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        return attribute()"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        def __str__(self):"},{"line_number":110,"context_line":"            return f\"{self._variable}\""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"27fee00c_25677d3b","line":109,"updated":"2025-09-17 17:24:30.000000000","message":"should be class level?","commit_id":"59bc3f26e0b625d3a6d6d0a60cc084b10ebbf356"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"dfbacc55c318a5b418b99c0c341d952e85c37f2b","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        return attribute()"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        def __str__(self):"},{"line_number":110,"context_line":"            return f\"{self._variable}\""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"616e2b11_7bdd9ff4","line":109,"in_reply_to":"27fee00c_25677d3b","updated":"2025-09-18 14:37:49.000000000","message":"Done","commit_id":"59bc3f26e0b625d3a6d6d0a60cc084b10ebbf356"},{"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":"0ec72cb5458b02879b7fcb873d19ac2348f7ad3f","unresolved":true,"context_lines":[{"line_number":195,"context_line":"        self._actions \u003d actions"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"class PrimordialPort(object):"},{"line_number":199,"context_line":"    def __init__(self, ironic_port_like_obj):"},{"line_number":200,"context_line":"        # NOTE: Both ironic port and portgroups should support the attributes"},{"line_number":201,"context_line":"        # below."}],"source_content_type":"text/x-python","patch_set":1,"id":"2702324f_d9e84b6a","line":198,"updated":"2025-09-17 17:24:30.000000000","message":"This is a fun name for a Port-like object.","commit_id":"59bc3f26e0b625d3a6d6d0a60cc084b10ebbf356"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"dfbacc55c318a5b418b99c0c341d952e85c37f2b","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        self._actions \u003d actions"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"class PrimordialPort(object):"},{"line_number":199,"context_line":"    def __init__(self, ironic_port_like_obj):"},{"line_number":200,"context_line":"        # NOTE: Both ironic port and portgroups should support the attributes"},{"line_number":201,"context_line":"        # below."}],"source_content_type":"text/x-python","patch_set":1,"id":"d0b73cab_bad2a389","line":198,"in_reply_to":"2702324f_d9e84b6a","updated":"2025-09-18 14:37:49.000000000","message":"Acknowledged","commit_id":"59bc3f26e0b625d3a6d6d0a60cc084b10ebbf356"},{"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":"0ec72cb5458b02879b7fcb873d19ac2348f7ad3f","unresolved":true,"context_lines":[{"line_number":229,"context_line":"        return True"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"# TODO(Clif): Where does this actually draw data from?"},{"line_number":233,"context_line":"class Network(object):"},{"line_number":234,"context_line":"    def __init__(self, name, tags):"},{"line_number":235,"context_line":"        self.name \u003d name"}],"source_content_type":"text/x-python","patch_set":1,"id":"1c091714_f1fd1c29","line":232,"updated":"2025-09-17 17:24:30.000000000","message":"A network-like object should be on the VIF","commit_id":"59bc3f26e0b625d3a6d6d0a60cc084b10ebbf356"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"dfbacc55c318a5b418b99c0c341d952e85c37f2b","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        return True"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"# TODO(Clif): Where does this actually draw data from?"},{"line_number":233,"context_line":"class Network(object):"},{"line_number":234,"context_line":"    def __init__(self, name, tags):"},{"line_number":235,"context_line":"        self.name \u003d name"}],"source_content_type":"text/x-python","patch_set":1,"id":"722afed5_97a77dd5","line":232,"in_reply_to":"1c091714_f1fd1c29","updated":"2025-09-18 14:37:49.000000000","message":"Acknowledged","commit_id":"59bc3f26e0b625d3a6d6d0a60cc084b10ebbf356"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c720e23b4344c5248a97b2dd6830acefe5dc2649","unresolved":true,"context_lines":[{"line_number":21,"context_line":"    OR \u003d \"||\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def eval(self, variable, value):"},{"line_number":24,"context_line":"        # NOTE: These can operate on string values, and return the values"},{"line_number":25,"context_line":"        # themselves instead of a boolean!"},{"line_number":26,"context_line":"        match self.name:"},{"line_number":27,"context_line":"            case self.AND.name:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3cea6b3e_67fa629e","line":24,"range":{"start_line":24,"start_character":10,"end_line":24,"end_character":15},"updated":"2025-11-11 19:45:08.000000000","message":"Please change this to the community note style. \"NOTE(handle): text\".","commit_id":"c2905dc908e821cc4370de419ad06d30233594eb"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"e9ac70e5e472f823bb93a43c1fd52031a1eccf79","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    OR \u003d \"||\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def eval(self, variable, value):"},{"line_number":24,"context_line":"        # NOTE: These can operate on string values, and return the values"},{"line_number":25,"context_line":"        # themselves instead of a boolean!"},{"line_number":26,"context_line":"        match self.name:"},{"line_number":27,"context_line":"            case self.AND.name:"}],"source_content_type":"text/x-python","patch_set":7,"id":"c1d7ce40_30822176","line":24,"range":{"start_line":24,"start_character":10,"end_line":24,"end_character":15},"in_reply_to":"3cea6b3e_67fa629e","updated":"2025-11-12 23:07:22.000000000","message":"Done","commit_id":"c2905dc908e821cc4370de419ad06d30233594eb"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c720e23b4344c5248a97b2dd6830acefe5dc2649","unresolved":true,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"class PrimordialPort(object):"},{"line_number":199,"context_line":"    def __init__(self, ironic_port_like_obj):"},{"line_number":200,"context_line":"        # NOTE: Both ironic port and portgroups should support the attributes"},{"line_number":201,"context_line":"        # below."},{"line_number":202,"context_line":"        self.address \u003d ironic_port_like_obj.address"},{"line_number":203,"context_line":"        self.category \u003d ironic_port_like_obj.category"}],"source_content_type":"text/x-python","patch_set":7,"id":"d3fc39c6_6eaec553","line":200,"updated":"2025-11-11 19:45:08.000000000","message":"Same as the NOTE earlier above.","commit_id":"c2905dc908e821cc4370de419ad06d30233594eb"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"e9ac70e5e472f823bb93a43c1fd52031a1eccf79","unresolved":false,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"class PrimordialPort(object):"},{"line_number":199,"context_line":"    def __init__(self, ironic_port_like_obj):"},{"line_number":200,"context_line":"        # NOTE: Both ironic port and portgroups should support the attributes"},{"line_number":201,"context_line":"        # below."},{"line_number":202,"context_line":"        self.address \u003d ironic_port_like_obj.address"},{"line_number":203,"context_line":"        self.category \u003d ironic_port_like_obj.category"}],"source_content_type":"text/x-python","patch_set":7,"id":"7749c7ba_f0075e1a","line":200,"in_reply_to":"d3fc39c6_6eaec553","updated":"2025-11-12 23:07:22.000000000","message":"Done","commit_id":"c2905dc908e821cc4370de419ad06d30233594eb"}],"ironic/common/trait_based_networking/grammar/parser.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":"0ec72cb5458b02879b7fcb873d19ac2348f7ad3f","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import ironic.common.trait_based_networking.base as tbn_base"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import lark"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"FilterExpressionParser \u003d lark.Lark(r\"\"\""},{"line_number":18,"context_line":"filter_expression: single_expression"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4ec92e_7d38ae73","line":15,"updated":"2025-09-17 17:24:30.000000000","message":"This is exceedingly well supported (last commit 2W ago) + has zero additional dependencies. It will need to be added to global-requirements.txt but should be a shoo in to get in there.","commit_id":"59bc3f26e0b625d3a6d6d0a60cc084b10ebbf356"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"ae205a7ea3ab3235fc2fe0b4da05a282524022de","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import ironic.common.trait_based_networking.base as tbn_base"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import lark"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"FilterExpressionParser \u003d lark.Lark(r\"\"\""},{"line_number":18,"context_line":"filter_expression: single_expression"}],"source_content_type":"text/x-python","patch_set":1,"id":"780e3256_20d8accf","line":15,"in_reply_to":"1a4ec92e_7d38ae73","updated":"2025-10-20 20:12:16.000000000","message":"Done","commit_id":"59bc3f26e0b625d3a6d6d0a60cc084b10ebbf356"}],"ironic/conf/default.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":"0ec72cb5458b02879b7fcb873d19ac2348f7ad3f","unresolved":true,"context_lines":[{"line_number":501,"context_line":"]"},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"# TODO(clif): Add options for trait based port scheduling here or in its own"},{"line_number":504,"context_line":"# file?"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"def list_opts():"}],"source_content_type":"text/x-python","patch_set":1,"id":"65fe91ba_4e9587bc","line":504,"updated":"2025-09-17 17:24:30.000000000","message":"I would suggest creating a new file and dedicated configuration group, potentially? If the config we\u0027re creating is simply one config that points to a Yaml file, maybe put it in [conductor]?","commit_id":"59bc3f26e0b625d3a6d6d0a60cc084b10ebbf356"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"dfbacc55c318a5b418b99c0c341d952e85c37f2b","unresolved":false,"context_lines":[{"line_number":501,"context_line":"]"},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"# TODO(clif): Add options for trait based port scheduling here or in its own"},{"line_number":504,"context_line":"# file?"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"def list_opts():"}],"source_content_type":"text/x-python","patch_set":1,"id":"0983a003_50fb61d1","line":504,"in_reply_to":"65fe91ba_4e9587bc","updated":"2025-09-18 14:37:49.000000000","message":"Acknowledged","commit_id":"59bc3f26e0b625d3a6d6d0a60cc084b10ebbf356"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c720e23b4344c5248a97b2dd6830acefe5dc2649","unresolved":true,"context_lines":[{"line_number":499,"context_line":"                      \u0027if they are doing an OpenStack deployment manually.\u0027)),"},{"line_number":500,"context_line":"]"},{"line_number":501,"context_line":""},{"line_number":502,"context_line":"# TODO(clif): Add options for trait based port scheduling here or in its own"},{"line_number":503,"context_line":"# file?"},{"line_number":504,"context_line":""},{"line_number":505,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"8fc595ab_e32d0560","line":502,"updated":"2025-11-11 19:45:08.000000000","message":"Maybe ironic/conf/conductor.py? Since it is logic/code which applies to networking inside of the conductor?","commit_id":"c2905dc908e821cc4370de419ad06d30233594eb"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"e9ac70e5e472f823bb93a43c1fd52031a1eccf79","unresolved":false,"context_lines":[{"line_number":499,"context_line":"                      \u0027if they are doing an OpenStack deployment manually.\u0027)),"},{"line_number":500,"context_line":"]"},{"line_number":501,"context_line":""},{"line_number":502,"context_line":"# TODO(clif): Add options for trait based port scheduling here or in its own"},{"line_number":503,"context_line":"# file?"},{"line_number":504,"context_line":""},{"line_number":505,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"2677f8e4_98ebe0ac","line":502,"in_reply_to":"8fc595ab_e32d0560","updated":"2025-11-12 23:07:22.000000000","message":"Acknowledged","commit_id":"c2905dc908e821cc4370de419ad06d30233594eb"}],"requirements.txt":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e4152062d241245b605e0e1ad5c2b3ac12800f49","unresolved":true,"context_lines":[{"line_number":48,"context_line":"PyYAML\u003e\u003d6.0.2 # MIT"},{"line_number":49,"context_line":"cheroot\u003e\u003d10.0.1 # BSD"},{"line_number":50,"context_line":"cotyledon\u003e\u003d2.0.0 # Apache-2.0"},{"line_number":51,"context_line":"lark\u003e\u003d1.2.2 # MIT"}],"source_content_type":"text/plain","patch_set":4,"id":"5e467f53_92f3c525","line":51,"updated":"2025-09-30 19:21:21.000000000","message":"so this would need to be added to global-requirements: https://github.com/openstack/requirements/blob/master/global-requirements.txt","commit_id":"0becb1b6dc1057fec89ac73f8674967eff40a753"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"ae205a7ea3ab3235fc2fe0b4da05a282524022de","unresolved":false,"context_lines":[{"line_number":48,"context_line":"PyYAML\u003e\u003d6.0.2 # MIT"},{"line_number":49,"context_line":"cheroot\u003e\u003d10.0.1 # BSD"},{"line_number":50,"context_line":"cotyledon\u003e\u003d2.0.0 # Apache-2.0"},{"line_number":51,"context_line":"lark\u003e\u003d1.2.2 # MIT"}],"source_content_type":"text/plain","patch_set":4,"id":"87989662_8a7749c6","line":51,"in_reply_to":"5e467f53_92f3c525","updated":"2025-10-20 20:12:16.000000000","message":"Done","commit_id":"0becb1b6dc1057fec89ac73f8674967eff40a753"}]}
