)]}'
{"/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":"ea3104599a94eeaef830e1ca6f9c6f69f0cf9a2d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"efcd4f6f_633f4ae6","updated":"2025-01-17 19:34:04.000000000","message":"This is a user-facing change; we should add a release note.","commit_id":"b66eecd964c2d5b5384b9fea84ef83736bd44f0d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f40a58c01046cbb18f67b6327c890cc7517d8d67","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7e607dfd_633cda71","updated":"2025-01-28 19:41:25.000000000","message":"So, *ideally* this should have unit tests.","commit_id":"1da4b8362d430a859f00ee42b9f7cc6166d8077d"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"2fab60fe0cb30293e7e71dfc25846f226ecfe84c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"19c68fef_353c5746","in_reply_to":"7e607dfd_633cda71","updated":"2025-01-29 20:35:29.000000000","message":"This existing unit test covers regression of this change, I\u0027ll add agent_secret_token_pregenerated to it\n\nhttps://opendev.org/openstack/ironic/src/branch/master/ironic/tests/unit/api/controllers/v1/test_node.py#L851-L858","commit_id":"1da4b8362d430a859f00ee42b9f7cc6166d8077d"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"f4f4da30f972e505d60d62dd0b8f02ad007844e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8d1e2465_80ba4d9a","updated":"2025-02-06 05:01:25.000000000","message":"I believe Julia has some concerns about test coverage. If you can connect with her and we can land this.","commit_id":"083ade489a0fba34d8c01e8911284dc5d6bddde2"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"f0f10da532bc47a63a08955de58d342669f7743c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"eed2ae3a_3577c288","updated":"2025-01-30 02:30:55.000000000","message":"recheck docs timed out","commit_id":"083ade489a0fba34d8c01e8911284dc5d6bddde2"}],"ironic/api/controllers/v1/node.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":"d87b82e51c271ecb442c4e8e88cee5bd015f6c5c","unresolved":true,"context_lines":[{"line_number":1842,"context_line":"        if node[\u0027instance_info\u0027].get(\u0027image_url\u0027):"},{"line_number":1843,"context_line":"            node[\u0027instance_info\u0027][\u0027image_url\u0027] \u003d \"******\""},{"line_number":1844,"context_line":""},{"line_number":1845,"context_line":"    if \u0027driver_internal_info\u0027 in node_keys and not show_driver_secrets:"},{"line_number":1846,"context_line":"        node[\u0027driver_internal_info\u0027] \u003d strutils.mask_dict_password("},{"line_number":1847,"context_line":"            node[\u0027driver_internal_info\u0027], \"******\")"},{"line_number":1848,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"8930f8fe_1d7d7adb","line":1845,"updated":"2025-01-17 22:07:17.000000000","message":"I semi-agree with this, but think a little discussion might be needed.\n\nDoing this is going to make it harder to troubleshoot.\n\nMaybe we RBAC it?!","commit_id":"b66eecd964c2d5b5384b9fea84ef83736bd44f0d"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"49ddeec6b8eabd6b19c80f4877d2bfb13f7a99a0","unresolved":true,"context_lines":[{"line_number":1842,"context_line":"        if node[\u0027instance_info\u0027].get(\u0027image_url\u0027):"},{"line_number":1843,"context_line":"            node[\u0027instance_info\u0027][\u0027image_url\u0027] \u003d \"******\""},{"line_number":1844,"context_line":""},{"line_number":1845,"context_line":"    if \u0027driver_internal_info\u0027 in node_keys and not show_driver_secrets:"},{"line_number":1846,"context_line":"        node[\u0027driver_internal_info\u0027] \u003d strutils.mask_dict_password("},{"line_number":1847,"context_line":"            node[\u0027driver_internal_info\u0027], \"******\")"},{"line_number":1848,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"37be0e16_f39cf232","line":1845,"in_reply_to":"0e05592f_c9825175","updated":"2025-01-27 03:49:32.000000000","message":"I did a search of existing driver_internal_info keys and agent_secret_token_pregenerated currently looks like the only current one which isn\u0027t masked, should be masked, and would be with this change","commit_id":"b66eecd964c2d5b5384b9fea84ef83736bd44f0d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8d3ab018dcea064d59b3801be118f1b3a35b70ff","unresolved":true,"context_lines":[{"line_number":1842,"context_line":"        if node[\u0027instance_info\u0027].get(\u0027image_url\u0027):"},{"line_number":1843,"context_line":"            node[\u0027instance_info\u0027][\u0027image_url\u0027] \u003d \"******\""},{"line_number":1844,"context_line":""},{"line_number":1845,"context_line":"    if \u0027driver_internal_info\u0027 in node_keys and not show_driver_secrets:"},{"line_number":1846,"context_line":"        node[\u0027driver_internal_info\u0027] \u003d strutils.mask_dict_password("},{"line_number":1847,"context_line":"            node[\u0027driver_internal_info\u0027], \"******\")"},{"line_number":1848,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"d59650f7_c1c7c273","line":1845,"in_reply_to":"39d272bc_b38023d7","updated":"2025-01-24 15:32:38.000000000","message":"Well, that is all secrets. I guess I feel like I\u0027m missing a base motivation, because all fields also get walked for any \u0027_secret\u0027 fields as well which is yet again, separate.","commit_id":"b66eecd964c2d5b5384b9fea84ef83736bd44f0d"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"45e738fb01795f48a1b35c9621eb1baf4f0fcfe3","unresolved":true,"context_lines":[{"line_number":1842,"context_line":"        if node[\u0027instance_info\u0027].get(\u0027image_url\u0027):"},{"line_number":1843,"context_line":"            node[\u0027instance_info\u0027][\u0027image_url\u0027] \u003d \"******\""},{"line_number":1844,"context_line":""},{"line_number":1845,"context_line":"    if \u0027driver_internal_info\u0027 in node_keys and not show_driver_secrets:"},{"line_number":1846,"context_line":"        node[\u0027driver_internal_info\u0027] \u003d strutils.mask_dict_password("},{"line_number":1847,"context_line":"            node[\u0027driver_internal_info\u0027], \"******\")"},{"line_number":1848,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"39d272bc_b38023d7","line":1845,"in_reply_to":"8930f8fe_1d7d7adb","updated":"2025-01-23 20:08:30.000000000","message":"show_driver_secrets comes from the show_password policy, so it already is possible to rbac it?","commit_id":"b66eecd964c2d5b5384b9fea84ef83736bd44f0d"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"440fc15644e7089d5880d7c6bb60a743fc8706b9","unresolved":true,"context_lines":[{"line_number":1842,"context_line":"        if node[\u0027instance_info\u0027].get(\u0027image_url\u0027):"},{"line_number":1843,"context_line":"            node[\u0027instance_info\u0027][\u0027image_url\u0027] \u003d \"******\""},{"line_number":1844,"context_line":""},{"line_number":1845,"context_line":"    if \u0027driver_internal_info\u0027 in node_keys and not show_driver_secrets:"},{"line_number":1846,"context_line":"        node[\u0027driver_internal_info\u0027] \u003d strutils.mask_dict_password("},{"line_number":1847,"context_line":"            node[\u0027driver_internal_info\u0027], \"******\")"},{"line_number":1848,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"d6de4242_450a7c52","line":1845,"in_reply_to":"d59650f7_c1c7c273","updated":"2025-01-26 19:25:35.000000000","message":"The graphical console series adds novnc_secret_token and vnc_password so I started by adding the keys to this masking but then realised that actually we should be treating driver_internal_info like instance_info and driver_info and apply the same masking rules","commit_id":"b66eecd964c2d5b5384b9fea84ef83736bd44f0d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"4cec3cc55955d05ae09fdda7b140fd34e4661eba","unresolved":true,"context_lines":[{"line_number":1842,"context_line":"        if node[\u0027instance_info\u0027].get(\u0027image_url\u0027):"},{"line_number":1843,"context_line":"            node[\u0027instance_info\u0027][\u0027image_url\u0027] \u003d \"******\""},{"line_number":1844,"context_line":""},{"line_number":1845,"context_line":"    if \u0027driver_internal_info\u0027 in node_keys and not show_driver_secrets:"},{"line_number":1846,"context_line":"        node[\u0027driver_internal_info\u0027] \u003d strutils.mask_dict_password("},{"line_number":1847,"context_line":"            node[\u0027driver_internal_info\u0027], \"******\")"},{"line_number":1848,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"0e05592f_c9825175","line":1845,"in_reply_to":"d6de4242_450a7c52","updated":"2025-01-26 22:44:01.000000000","message":"Okay, so they *should* still get scrubbed, but yeah. Makes more sense then. I\u0027ll do a proper review when I have time on my monday.","commit_id":"b66eecd964c2d5b5384b9fea84ef83736bd44f0d"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"43f6483dd0f7cda8bb3dc5a93bc88fc6b9b4726c","unresolved":true,"context_lines":[{"line_number":1844,"context_line":""},{"line_number":1845,"context_line":"    if \u0027driver_internal_info\u0027 in node_keys and not show_driver_secrets:"},{"line_number":1846,"context_line":"        node[\u0027driver_internal_info\u0027] \u003d strutils.mask_dict_password("},{"line_number":1847,"context_line":"            node[\u0027driver_internal_info\u0027], \"******\")"},{"line_number":1848,"context_line":""},{"line_number":1849,"context_line":"    if \u0027provision_state\u0027 in node_keys:"},{"line_number":1850,"context_line":"        # Update legacy state data for provision state, but only if"}],"source_content_type":"text/x-python","patch_set":3,"id":"afc7f60d_dac76fe2","line":1847,"updated":"2025-02-06 14:05:54.000000000","message":"strutils has a preset of keys for password fields, some may not covered by oslo.\nMy point is all password should be masked due to security consideration, and it can only be exposed if it can not lead to an security vulnerability, e.g. a public key is accepted.","commit_id":"083ade489a0fba34d8c01e8911284dc5d6bddde2"}]}
