)]}'
{"/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":"c528b47b132f5c9fc5612658452b37fa21e4b844","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ea148f8b_8b557d34","updated":"2024-11-07 23:20:11.000000000","message":"This needs a release note before it can merge. Otherwise it seems OK to me -- I\u0027m a little nervous about how this\u0027ll behave on older hardware but have no way to validate that one way or another.","commit_id":"51eaa4efe17ce9631927a6a89dc99f85c5b3a3fe"},{"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":"5e89ff80537d2d8e8c44667fdf4ec8d119971c69","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"d25547a5_42b56015","updated":"2024-11-08 22:55:45.000000000","message":"-1 for release note issue","commit_id":"56fcb7ec7afd11a4eebc4fb3d8e4a6fe74ebd259"},{"author":{"_account_id":37011,"name":"Maximilian Brandt","display_name":"Maximilian Brandt","email":"maximilian.brandt@cloudandheat.com","username":"Schmexs"},"change_message_id":"522c13e22e8b1b318dd8aa20aa6e27a94f299a62","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"d81bdc0b_8c73167e","in_reply_to":"d25547a5_42b56015","updated":"2024-11-09 15:00:24.000000000","message":"Done","commit_id":"56fcb7ec7afd11a4eebc4fb3d8e4a6fe74ebd259"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"04b2d0aa67aa3ef0702536e77ba6f35402804c74","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"8299a8bf_7744c51e","updated":"2024-11-18 22:34:54.000000000","message":"LGTM... doing some reading/checking w/r/t v6","commit_id":"0cd792497f236fb0a2f2ed0c15ce38751b459713"}],"ironic_python_agent/hardware.py":[{"author":{"_account_id":33742,"name":"Jonas Schäfer","email":"jonas.schaefer@cloudandheat.com","username":"jssfr"},"change_message_id":"ea4d0b6208590204be91f44bb59456ce65e688ce","unresolved":true,"context_lines":[{"line_number":2478,"context_line":"                        try:"},{"line_number":2479,"context_line":"                            ipv6_list \u003d out.strip().split(\"\\n\")"},{"line_number":2480,"context_line":"                            valid_ipv6_found \u003d any("},{"line_number":2481,"context_line":"                                ipv6 !\u003d \"::/255\""},{"line_number":2482,"context_line":"                                for ipv6 in ipv6_list"},{"line_number":2483,"context_line":"                            )"},{"line_number":2484,"context_line":"                            if valid_ipv6_found:"}],"source_content_type":"text/x-python","patch_set":4,"id":"cdf5d9ec_d0979470","line":2481,"updated":"2024-11-08 08:19:27.000000000","message":"/255, really? If so, I\u0027d appreciate a comment that it\u0027s truly what you mean.","commit_id":"c5753d77c31d8d2e83e55fc155878964fee8f1ce"},{"author":{"_account_id":33742,"name":"Jonas Schäfer","email":"jonas.schaefer@cloudandheat.com","username":"jssfr"},"change_message_id":"c3809f8c8851d52dfdd9985bffcdc5699025d9be","unresolved":false,"context_lines":[{"line_number":2478,"context_line":"                        try:"},{"line_number":2479,"context_line":"                            ipv6_list \u003d out.strip().split(\"\\n\")"},{"line_number":2480,"context_line":"                            valid_ipv6_found \u003d any("},{"line_number":2481,"context_line":"                                ipv6 !\u003d \"::/255\""},{"line_number":2482,"context_line":"                                for ipv6 in ipv6_list"},{"line_number":2483,"context_line":"                            )"},{"line_number":2484,"context_line":"                            if valid_ipv6_found:"}],"source_content_type":"text/x-python","patch_set":4,"id":"4081e2da_3a0db8b4","line":2481,"in_reply_to":"cdf5d9ec_d0979470","updated":"2024-11-08 09:38:28.000000000","message":"Done","commit_id":"c5753d77c31d8d2e83e55fc155878964fee8f1ce"},{"author":{"_account_id":37011,"name":"Maximilian Brandt","display_name":"Maximilian Brandt","email":"maximilian.brandt@cloudandheat.com","username":"Schmexs"},"change_message_id":"522c13e22e8b1b318dd8aa20aa6e27a94f299a62","unresolved":false,"context_lines":[{"line_number":2478,"context_line":"                        try:"},{"line_number":2479,"context_line":"                            ipv6_list \u003d out.strip().split(\"\\n\")"},{"line_number":2480,"context_line":"                            valid_ipv6_found \u003d any("},{"line_number":2481,"context_line":"                                ipv6 !\u003d \"::/255\""},{"line_number":2482,"context_line":"                                for ipv6 in ipv6_list"},{"line_number":2483,"context_line":"                            )"},{"line_number":2484,"context_line":"                            if valid_ipv6_found:"}],"source_content_type":"text/x-python","patch_set":4,"id":"b80a77a6_54c30e89","line":2481,"in_reply_to":"cdf5d9ec_d0979470","updated":"2024-11-09 15:00:24.000000000","message":"Yes, ipmitool returns a ::/255 for unconfigured interfaces. Sure I can write a comment","commit_id":"c5753d77c31d8d2e83e55fc155878964fee8f1ce"},{"author":{"_account_id":33742,"name":"Jonas Schäfer","email":"jonas.schaefer@cloudandheat.com","username":"jssfr"},"change_message_id":"ea4d0b6208590204be91f44bb59456ce65e688ce","unresolved":true,"context_lines":[{"line_number":2481,"context_line":"                                ipv6 !\u003d \"::/255\""},{"line_number":2482,"context_line":"                                for ipv6 in ipv6_list"},{"line_number":2483,"context_line":"                            )"},{"line_number":2484,"context_line":"                            if valid_ipv6_found:"},{"line_number":2485,"context_line":"                                break"},{"line_number":2486,"context_line":"                        except ValueError:"},{"line_number":2487,"context_line":"                            LOG.warning(\u0027Invalid ipmitool output %(output)s\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"970e628d_ef96ae74","line":2484,"updated":"2024-11-08 08:19:27.000000000","message":"I would suggest to also exclude fe80 IP addresses, because those will at least be cumbersome to use (as you need to know over which interface to talk to an fe80 address).\n\nI don\u0027t know if our BMCs have/show these, but excluding them seems sensible to me nontheless.","commit_id":"c5753d77c31d8d2e83e55fc155878964fee8f1ce"},{"author":{"_account_id":33742,"name":"Jonas Schäfer","email":"jonas.schaefer@cloudandheat.com","username":"jssfr"},"change_message_id":"c3809f8c8851d52dfdd9985bffcdc5699025d9be","unresolved":false,"context_lines":[{"line_number":2481,"context_line":"                                ipv6 !\u003d \"::/255\""},{"line_number":2482,"context_line":"                                for ipv6 in ipv6_list"},{"line_number":2483,"context_line":"                            )"},{"line_number":2484,"context_line":"                            if valid_ipv6_found:"},{"line_number":2485,"context_line":"                                break"},{"line_number":2486,"context_line":"                        except ValueError:"},{"line_number":2487,"context_line":"                            LOG.warning(\u0027Invalid ipmitool output %(output)s\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"f4846275_940a7b7d","line":2484,"in_reply_to":"0fbf3766_9d93a1fb","updated":"2024-11-08 09:38:28.000000000","message":"Done","commit_id":"c5753d77c31d8d2e83e55fc155878964fee8f1ce"},{"author":{"_account_id":37011,"name":"Maximilian Brandt","display_name":"Maximilian Brandt","email":"maximilian.brandt@cloudandheat.com","username":"Schmexs"},"change_message_id":"522c13e22e8b1b318dd8aa20aa6e27a94f299a62","unresolved":false,"context_lines":[{"line_number":2481,"context_line":"                                ipv6 !\u003d \"::/255\""},{"line_number":2482,"context_line":"                                for ipv6 in ipv6_list"},{"line_number":2483,"context_line":"                            )"},{"line_number":2484,"context_line":"                            if valid_ipv6_found:"},{"line_number":2485,"context_line":"                                break"},{"line_number":2486,"context_line":"                        except ValueError:"},{"line_number":2487,"context_line":"                            LOG.warning(\u0027Invalid ipmitool output %(output)s\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"b69a4933_dbf32afc","line":2484,"in_reply_to":"0fbf3766_9d93a1fb","updated":"2024-11-09 15:00:24.000000000","message":"You are right, we do not prefer link-local addresses","commit_id":"c5753d77c31d8d2e83e55fc155878964fee8f1ce"},{"author":{"_account_id":33742,"name":"Jonas Schäfer","email":"jonas.schaefer@cloudandheat.com","username":"jssfr"},"change_message_id":"2118b1802b30d327b9252e68acc68ba475f22547","unresolved":true,"context_lines":[{"line_number":2481,"context_line":"                                ipv6 !\u003d \"::/255\""},{"line_number":2482,"context_line":"                                for ipv6 in ipv6_list"},{"line_number":2483,"context_line":"                            )"},{"line_number":2484,"context_line":"                            if valid_ipv6_found:"},{"line_number":2485,"context_line":"                                break"},{"line_number":2486,"context_line":"                        except ValueError:"},{"line_number":2487,"context_line":"                            LOG.warning(\u0027Invalid ipmitool output %(output)s\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"0fbf3766_9d93a1fb","line":2484,"in_reply_to":"970e628d_ef96ae74","updated":"2024-11-08 08:21:04.000000000","message":"I had a brain fart there, since we\u0027re not reading the IP, but the MAC in the end. Still, I would exclude fe80 addresses, because those might also appear on completely unconfigured interfaces and thus may give us the wrong MAC address if no IPv4 is configured and IPv6 is configured on only one out of multiple interfaces.","commit_id":"c5753d77c31d8d2e83e55fc155878964fee8f1ce"},{"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":"1c76f7dc32a35c33e00cb34bf98802d8f7fdfe42","unresolved":true,"context_lines":[{"line_number":2481,"context_line":"                        # and ignore \"::/255\", which indicates unconfigured"},{"line_number":2482,"context_line":"                        # addresses returned by ipmitool."},{"line_number":2483,"context_line":"                        valid_ipv6_found \u003d any("},{"line_number":2484,"context_line":"                            ipv6 !\u003d \"::/255\""},{"line_number":2485,"context_line":"                            and not ipv6.startswith(\"fe80\")"},{"line_number":2486,"context_line":"                            for ipv6 in ipv6_list"},{"line_number":2487,"context_line":"                        )"}],"source_content_type":"text/x-python","patch_set":7,"id":"be1383c8_e8ffcf66","line":2484,"updated":"2024-11-08 22:55:29.000000000","message":"This really is weird to see -- /255 for *v6* which is 64 bit is really weird (this is just commentary on how weird ipmi is, not your patch :D)","commit_id":"56fcb7ec7afd11a4eebc4fb3d8e4a6fe74ebd259"},{"author":{"_account_id":37011,"name":"Maximilian Brandt","display_name":"Maximilian Brandt","email":"maximilian.brandt@cloudandheat.com","username":"Schmexs"},"change_message_id":"e6a131d1223703ead723208011dd253b73406c1a","unresolved":false,"context_lines":[{"line_number":2481,"context_line":"                        # and ignore \"::/255\", which indicates unconfigured"},{"line_number":2482,"context_line":"                        # addresses returned by ipmitool."},{"line_number":2483,"context_line":"                        valid_ipv6_found \u003d any("},{"line_number":2484,"context_line":"                            ipv6 !\u003d \"::/255\""},{"line_number":2485,"context_line":"                            and not ipv6.startswith(\"fe80\")"},{"line_number":2486,"context_line":"                            for ipv6 in ipv6_list"},{"line_number":2487,"context_line":"                        )"}],"source_content_type":"text/x-python","patch_set":7,"id":"a09daa8a_b0c48c25","line":2484,"in_reply_to":"b3e88011_fe0f472c","updated":"2024-11-21 16:53:23.000000000","message":"You\u0027re right, I looked at the code again and realized where the 255 (0xFF) comes from. I have changed it.","commit_id":"56fcb7ec7afd11a4eebc4fb3d8e4a6fe74ebd259"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"04b2d0aa67aa3ef0702536e77ba6f35402804c74","unresolved":true,"context_lines":[{"line_number":2481,"context_line":"                        # and ignore \"::/255\", which indicates unconfigured"},{"line_number":2482,"context_line":"                        # addresses returned by ipmitool."},{"line_number":2483,"context_line":"                        valid_ipv6_found \u003d any("},{"line_number":2484,"context_line":"                            ipv6 !\u003d \"::/255\""},{"line_number":2485,"context_line":"                            and not ipv6.startswith(\"fe80\")"},{"line_number":2486,"context_line":"                            for ipv6 in ipv6_list"},{"line_number":2487,"context_line":"                        )"}],"source_content_type":"text/x-python","patch_set":7,"id":"b3e88011_fe0f472c","line":2484,"in_reply_to":"be1383c8_e8ffcf66","updated":"2024-11-18 22:34:54.000000000","message":"This seems really weird to me, I sort of feel like I need to be that person with a \"citation needed\" sign.\n\nSo I looked at the source. I think it is a bug in ipmitool, or at least the modeling. The thing to do is something like \"not ipv6.startswith(\u0027::\u0027)\"","commit_id":"56fcb7ec7afd11a4eebc4fb3d8e4a6fe74ebd259"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"def58811191c16515824d0175fba9408c746254d","unresolved":true,"context_lines":[{"line_number":2466,"context_line":"                if ip \u003d\u003d \"0.0.0.0\":"},{"line_number":2467,"context_line":"                    # Check if we have IPv6 address configured"},{"line_number":2468,"context_line":"                    out, e \u003d il_utils.execute("},{"line_number":2469,"context_line":"                        \"ipmitool lan6 print {} | awk \u0027/^IPv6\""},{"line_number":2470,"context_line":"                        \" (Dynamic|Static) Address [0-9]+:/\""},{"line_number":2471,"context_line":"                        \" {{in_section\u003d1; next}} /^IPv6 / {{in_section\u003d0}}\""},{"line_number":2472,"context_line":"                        \" in_section \u0026\u0026 /Address:/ {{print $2}}\u0027\"."}],"source_content_type":"text/x-python","patch_set":8,"id":"07a42da9_a24fe817","line":2469,"updated":"2024-11-09 14:10:29.000000000","message":"we expect to always have ipmitool available?","commit_id":"0cd792497f236fb0a2f2ed0c15ce38751b459713"},{"author":{"_account_id":37011,"name":"Maximilian Brandt","display_name":"Maximilian Brandt","email":"maximilian.brandt@cloudandheat.com","username":"Schmexs"},"change_message_id":"522c13e22e8b1b318dd8aa20aa6e27a94f299a62","unresolved":true,"context_lines":[{"line_number":2466,"context_line":"                if ip \u003d\u003d \"0.0.0.0\":"},{"line_number":2467,"context_line":"                    # Check if we have IPv6 address configured"},{"line_number":2468,"context_line":"                    out, e \u003d il_utils.execute("},{"line_number":2469,"context_line":"                        \"ipmitool lan6 print {} | awk \u0027/^IPv6\""},{"line_number":2470,"context_line":"                        \" (Dynamic|Static) Address [0-9]+:/\""},{"line_number":2471,"context_line":"                        \" {{in_section\u003d1; next}} /^IPv6 / {{in_section\u003d0}}\""},{"line_number":2472,"context_line":"                        \" in_section \u0026\u0026 /Address:/ {{print $2}}\u0027\"."}],"source_content_type":"text/x-python","patch_set":8,"id":"400abad7_ac4f34ca","line":2469,"in_reply_to":"07a42da9_a24fe817","updated":"2024-11-09 15:00:24.000000000","message":"Yes, we already do that in the same function anyway.","commit_id":"0cd792497f236fb0a2f2ed0c15ce38751b459713"},{"author":{"_account_id":37011,"name":"Maximilian Brandt","display_name":"Maximilian Brandt","email":"maximilian.brandt@cloudandheat.com","username":"Schmexs"},"change_message_id":"1f705c4e74daba72fcc8c977252e514174eca63b","unresolved":false,"context_lines":[{"line_number":2466,"context_line":"                if ip \u003d\u003d \"0.0.0.0\":"},{"line_number":2467,"context_line":"                    # Check if we have IPv6 address configured"},{"line_number":2468,"context_line":"                    out, e \u003d il_utils.execute("},{"line_number":2469,"context_line":"                        \"ipmitool lan6 print {} | awk \u0027/^IPv6\""},{"line_number":2470,"context_line":"                        \" (Dynamic|Static) Address [0-9]+:/\""},{"line_number":2471,"context_line":"                        \" {{in_section\u003d1; next}} /^IPv6 / {{in_section\u003d0}}\""},{"line_number":2472,"context_line":"                        \" in_section \u0026\u0026 /Address:/ {{print $2}}\u0027\"."}],"source_content_type":"text/x-python","patch_set":8,"id":"b1e35f1c_d17f9660","line":2469,"in_reply_to":"400abad7_ac4f34ca","updated":"2024-11-09 18:44:03.000000000","message":"Done","commit_id":"0cd792497f236fb0a2f2ed0c15ce38751b459713"}],"releasenotes/notes/ipv6-bmc-mac-6133fb30c0d4cc5e.yaml":[{"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":"1c76f7dc32a35c33e00cb34bf98802d8f7fdfe42","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The MAC addresses can be inventoried duringintrospection, "},{"line_number":5,"context_line":"    even if the BMC has an IPV6 address only."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"299aea14_0fa71d86","line":4,"updated":"2024-11-08 22:55:29.000000000","message":"please correct the spacing here. And may I suggest a subtle rewording?\n\n\"Adds support for detecting MAC addresses for interfaces with only a v6 address.\" or similar. Either way at a minimum please add the needed space :D","commit_id":"56fcb7ec7afd11a4eebc4fb3d8e4a6fe74ebd259"},{"author":{"_account_id":37011,"name":"Maximilian Brandt","display_name":"Maximilian Brandt","email":"maximilian.brandt@cloudandheat.com","username":"Schmexs"},"change_message_id":"522c13e22e8b1b318dd8aa20aa6e27a94f299a62","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The MAC addresses can be inventoried duringintrospection, "},{"line_number":5,"context_line":"    even if the BMC has an IPV6 address only."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"7c2f53a4_7187c70f","line":4,"in_reply_to":"299aea14_0fa71d86","updated":"2024-11-09 15:00:24.000000000","message":"Ah Sure, thank you :)","commit_id":"56fcb7ec7afd11a4eebc4fb3d8e4a6fe74ebd259"}]}
