)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"4624557cb8306604a6268d1dc4a64675a46bb0b5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"bcc8469b_d3942e10","updated":"2023-03-03 18:08:22.000000000","message":"Some thoughts inline.  If anything seems off base, it might just be missing context. There are a couple things I\u0027m not really a fan of but I can also see why you might do them. Some thoughts/suggestions in-line, maybe lets talk next week.","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f8c4b53b60bb12ead7a5e35bd92e7c0db50b4ad0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"e6048769_06c39eeb","updated":"2023-05-30 16:25:16.000000000","message":"recheck","commit_id":"07cd341142e075246c75b3653154e07d3b8977da"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"e1757e4f918d64ac2c513a9a0aa504a2108023e3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"7f00ed59_d5f08c8e","updated":"2023-06-20 14:01:08.000000000","message":"in general lgtm, I\u0027m wondering about the release note .-.\nnot adding +W right now, since Julia might have some thoughts based on the old comments.","commit_id":"0370f5ac97dfb0d467398fd778fa4b83387710e4"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"feb62b689b6122a51e030be2f0b146d90fa677ef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"d99fe167_9b9ab294","updated":"2023-06-15 14:44:29.000000000","message":"lgtm","commit_id":"0370f5ac97dfb0d467398fd778fa4b83387710e4"}],"ironic/api/controllers/v1/ramdisk.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":"4624557cb8306604a6268d1dc4a64675a46bb0b5","unresolved":true,"context_lines":[{"line_number":340,"context_line":"        if api_utils.new_continue_inspection_endpoint():"},{"line_number":341,"context_line":"            # This has to happen before continue_inspection since processing"},{"line_number":342,"context_line":"            # the data may take significant time."},{"line_number":343,"context_line":"            rpc_node \u003d api.request.rpcapi.get_node_with_token("},{"line_number":344,"context_line":"                api.request.context, rpc_node.uuid, topic\u003dtopic)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        api.request.rpcapi.continue_inspection("},{"line_number":347,"context_line":"            api.request.context, rpc_node.uuid, inventory\u003dinventory,"}],"source_content_type":"text/x-python","patch_set":1,"id":"926a1d08_71aec26f","line":344,"range":{"start_line":343,"start_character":0,"end_line":344,"end_character":64},"updated":"2023-03-03 18:08:22.000000000","message":"Getting the token to allow the node to have valid lookup results and be inherently authenticated ? I guess that might work client side... and I guess the code path wise you don\u0027t want to create a token for older inspectors, but maybe the question at some point needs to be, how far back are we going to support.","commit_id":"1bd4e671ee45c1fe1a1cf3dec83359b48e6b7599"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"edb53f355c716da9e054a22fb0bc659ee1361f34","unresolved":true,"context_lines":[{"line_number":340,"context_line":"        if api_utils.new_continue_inspection_endpoint():"},{"line_number":341,"context_line":"            # This has to happen before continue_inspection since processing"},{"line_number":342,"context_line":"            # the data may take significant time."},{"line_number":343,"context_line":"            rpc_node \u003d api.request.rpcapi.get_node_with_token("},{"line_number":344,"context_line":"                api.request.context, rpc_node.uuid, topic\u003dtopic)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        api.request.rpcapi.continue_inspection("},{"line_number":347,"context_line":"            api.request.context, rpc_node.uuid, inventory\u003dinventory,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bbb845ef_d2ab7ac6","line":344,"range":{"start_line":343,"start_character":0,"end_line":344,"end_character":64},"in_reply_to":"926a1d08_71aec26f","updated":"2023-03-08 15:53:18.000000000","message":"Yeah, I want to change IPA to:\n\n if inspection_enabled:\n    lookup_results \u003d do_inspection()\n else:\n    lookup_results \u003d do_normal_lookup()\n    \nWe can drop the compatibility path eventually, but do we need to?","commit_id":"1bd4e671ee45c1fe1a1cf3dec83359b48e6b7599"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"4624557cb8306604a6268d1dc4a64675a46bb0b5","unresolved":true,"context_lines":[{"line_number":28,"context_line":"from ironic.common.i18n import _"},{"line_number":29,"context_line":"from ironic.common import states"},{"line_number":30,"context_line":"from ironic.common import utils"},{"line_number":31,"context_line":"from ironic.drivers.modules.inspector import lookup as inspector_lookup"},{"line_number":32,"context_line":"from ironic import objects"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"482c6d9d_765b2b1e","line":31,"updated":"2023-03-03 18:08:22.000000000","message":"Personally, I\u0027m not really a fan we\u0027ve got object lookup code we\u0027re putting in the inspector module code. Feels like common might be the right place, dunno.","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"edb53f355c716da9e054a22fb0bc659ee1361f34","unresolved":true,"context_lines":[{"line_number":28,"context_line":"from ironic.common.i18n import _"},{"line_number":29,"context_line":"from ironic.common import states"},{"line_number":30,"context_line":"from ironic.common import utils"},{"line_number":31,"context_line":"from ironic.drivers.modules.inspector import lookup as inspector_lookup"},{"line_number":32,"context_line":"from ironic import objects"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"37966b5a_9f1ed0bb","line":31,"in_reply_to":"482c6d9d_765b2b1e","updated":"2023-03-08 15:53:18.000000000","message":"Yeah, I was thinking about the best place... It\u0027s logic specific to inspector, but I\u0027m open to other ideas.","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"4624557cb8306604a6268d1dc4a64675a46bb0b5","unresolved":true,"context_lines":[{"line_number":304,"context_line":"        :raises: NodeNotFound if node with provided UUID or name was not found."},{"line_number":305,"context_line":"        :raises: InvalidUuidOrName if node_ident is not valid name or UUID."},{"line_number":306,"context_line":"        :raises: NoValidHost if RPC topic for node could not be retrieved."},{"line_number":307,"context_line":"        :raises: NotFound if requested API version does not allow this"},{"line_number":308,"context_line":"            endpoint."},{"line_number":309,"context_line":"        \"\"\""},{"line_number":310,"context_line":"        if (not api_utils.allow_continue_inspection_endpoint()"}],"source_content_type":"text/x-python","patch_set":2,"id":"f6d7eb82_f1ca5fb4","line":307,"updated":"2023-03-03 18:08:22.000000000","message":"... I would have thought the wrong api version is an invalid request not a 404.","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"edb53f355c716da9e054a22fb0bc659ee1361f34","unresolved":true,"context_lines":[{"line_number":304,"context_line":"        :raises: NodeNotFound if node with provided UUID or name was not found."},{"line_number":305,"context_line":"        :raises: InvalidUuidOrName if node_ident is not valid name or UUID."},{"line_number":306,"context_line":"        :raises: NoValidHost if RPC topic for node could not be retrieved."},{"line_number":307,"context_line":"        :raises: NotFound if requested API version does not allow this"},{"line_number":308,"context_line":"            endpoint."},{"line_number":309,"context_line":"        \"\"\""},{"line_number":310,"context_line":"        if (not api_utils.allow_continue_inspection_endpoint()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3c48e138_0c310ebd","line":307,"in_reply_to":"f6d7eb82_f1ca5fb4","updated":"2023-03-08 15:53:18.000000000","message":"That\u0027s not what we normally do. For new endpoints, we return 404, for existing - 406 (not acceptable).","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"4624557cb8306604a6268d1dc4a64675a46bb0b5","unresolved":true,"context_lines":[{"line_number":327,"context_line":"                          inventory.get(\u0027bmc_v6address\u0027)))"},{"line_number":328,"context_line":"        )"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        rpc_node \u003d inspector_lookup.lookup_node("},{"line_number":331,"context_line":"            macs, bmc_addresses, node_uuid\u003dnode_uuid,"},{"line_number":332,"context_line":"            context\u003dapi.request.context)"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        try:"},{"line_number":335,"context_line":"            topic \u003d api.request.rpcapi.get_topic_for(rpc_node)"}],"source_content_type":"text/x-python","patch_set":2,"id":"19ec17a9_fd7d92c2","line":332,"range":{"start_line":330,"start_character":0,"end_line":332,"end_character":40},"updated":"2023-03-03 18:08:22.000000000","message":"So this, in itself is doing an object lookup and work to return a result... maybe we just centralize the lookup or add the capability to lookup nodes by mac/bmc address as well in the same code path as other lookups?","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"edb53f355c716da9e054a22fb0bc659ee1361f34","unresolved":true,"context_lines":[{"line_number":327,"context_line":"                          inventory.get(\u0027bmc_v6address\u0027)))"},{"line_number":328,"context_line":"        )"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        rpc_node \u003d inspector_lookup.lookup_node("},{"line_number":331,"context_line":"            macs, bmc_addresses, node_uuid\u003dnode_uuid,"},{"line_number":332,"context_line":"            context\u003dapi.request.context)"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        try:"},{"line_number":335,"context_line":"            topic \u003d api.request.rpcapi.get_topic_for(rpc_node)"}],"source_content_type":"text/x-python","patch_set":2,"id":"90d70803_d2d6ce3c","line":332,"range":{"start_line":330,"start_character":0,"end_line":332,"end_character":40},"in_reply_to":"19ec17a9_fd7d92c2","updated":"2023-03-08 15:53:18.000000000","message":"Well, looking up by the BMC address is going to be quite inefficient. If we stop doing a simple *_address lookup, we\u0027ll also need to do it on the conductor side (to load the driver).","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"4624557cb8306604a6268d1dc4a64675a46bb0b5","unresolved":true,"context_lines":[{"line_number":337,"context_line":"            e.code \u003d http_client.BAD_REQUEST"},{"line_number":338,"context_line":"            raise"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"        if api_utils.new_continue_inspection_endpoint():"},{"line_number":341,"context_line":"            # This has to happen before continue_inspection since processing"},{"line_number":342,"context_line":"            # the data may take significant time."},{"line_number":343,"context_line":"            rpc_node \u003d api.request.rpcapi.get_node_with_token("}],"source_content_type":"text/x-python","patch_set":2,"id":"8c7c91bd_b899cc38","line":340,"updated":"2023-03-03 18:08:22.000000000","message":"it would likely help if we just called this something like \"not_legacy_inspector_client\"  FWIW.","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"edb53f355c716da9e054a22fb0bc659ee1361f34","unresolved":true,"context_lines":[{"line_number":337,"context_line":"            e.code \u003d http_client.BAD_REQUEST"},{"line_number":338,"context_line":"            raise"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"        if api_utils.new_continue_inspection_endpoint():"},{"line_number":341,"context_line":"            # This has to happen before continue_inspection since processing"},{"line_number":342,"context_line":"            # the data may take significant time."},{"line_number":343,"context_line":"            rpc_node \u003d api.request.rpcapi.get_node_with_token("}],"source_content_type":"text/x-python","patch_set":2,"id":"71980dbe_9c3c87c5","line":340,"in_reply_to":"8c7c91bd_b899cc38","updated":"2023-03-08 15:53:18.000000000","message":"It\u0027s not really a legacy client, more of current IPA (unaware of this change). Mmm, legacy_inspection_callback?","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"}],"ironic/api/controllers/v1/utils.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":"4624557cb8306604a6268d1dc4a64675a46bb0b5","unresolved":true,"context_lines":[{"line_number":1987,"context_line":"    can be used as a drop-in replacement for the Inspector\u0027s API."},{"line_number":1988,"context_line":"    \"\"\""},{"line_number":1989,"context_line":"    return (new_continue_inspection_endpoint()"},{"line_number":1990,"context_line":"            or api.request.version.minor \u003d\u003d versions.MINOR_1_INITIAL_VERSION)"}],"source_content_type":"text/x-python","patch_set":2,"id":"2a35ae47_e644d2cb","line":1990,"updated":"2023-03-03 18:08:22.000000000","message":"Since this is an unauthenticated endpoint, and we generally don\u0027t encourage custom policy usage, we likely want to have a knob to turn off the endpoint completely like we have for lookup/heartbeat.","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"edb53f355c716da9e054a22fb0bc659ee1361f34","unresolved":true,"context_lines":[{"line_number":1987,"context_line":"    can be used as a drop-in replacement for the Inspector\u0027s API."},{"line_number":1988,"context_line":"    \"\"\""},{"line_number":1989,"context_line":"    return (new_continue_inspection_endpoint()"},{"line_number":1990,"context_line":"            or api.request.version.minor \u003d\u003d versions.MINOR_1_INITIAL_VERSION)"}],"source_content_type":"text/x-python","patch_set":2,"id":"a4a693fb_a045f8c9","line":1990,"in_reply_to":"2a35ae47_e644d2cb","updated":"2023-03-08 15:53:18.000000000","message":"Ah, I did not know we don\u0027t encourage custom policy usage. I thought to recommend just that.","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"40f4af50390639d78bcb13f722450ca1a9522715","unresolved":true,"context_lines":[{"line_number":1987,"context_line":"    can be used as a drop-in replacement for the Inspector\u0027s API."},{"line_number":1988,"context_line":"    \"\"\""},{"line_number":1989,"context_line":"    return (new_continue_inspection_endpoint()"},{"line_number":1990,"context_line":"            or api.request.version.minor \u003d\u003d versions.MINOR_1_INITIAL_VERSION)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fcea1df_4e29124d","line":1990,"in_reply_to":"a4a693fb_a045f8c9","updated":"2023-03-10 11:49:36.000000000","message":"Hmm, I\u0027ve checked the lookup code, and I don\u0027t see any generic way to disable lookup, only to restrict the node states. This endpoint only works for INSPECTWAIT already.","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"}],"ironic/conductor/manager.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":"4624557cb8306604a6268d1dc4a64675a46bb0b5","unresolved":true,"context_lines":[{"line_number":3696,"context_line":"                                  purpose\u003d\u0027continue inspection\u0027,"},{"line_number":3697,"context_line":"                                  shared\u003dFalse) as task:"},{"line_number":3698,"context_line":"            # TODO(dtantsur): support active state inspection"},{"line_number":3699,"context_line":"            if task.node.state !\u003d states.INSPECTWAIT:"},{"line_number":3700,"context_line":"                raise exception.NotFound()"},{"line_number":3701,"context_line":""},{"line_number":3702,"context_line":"            task.process_event("},{"line_number":3703,"context_line":"                \u0027resume\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"8a275c3f_39906ab3","line":3700,"range":{"start_line":3699,"start_character":12,"end_line":3700,"end_character":42},"updated":"2023-03-03 18:08:22.000000000","message":"I honestly kind of feel like it might be good to do this sort of check in the API code itself, but active state inspection would also change things. I guess I could see it quickly becoming a conductor helper.","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"}],"ironic/drivers/modules/inspector/interface.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":"4624557cb8306604a6268d1dc4a64675a46bb0b5","unresolved":true,"context_lines":[{"line_number":207,"context_line":"                                    _IRONIC_MANAGES_BOOT,"},{"line_number":208,"context_line":"                                    ironic_manages_boot)"},{"line_number":209,"context_line":"        # Temporary hack to make this interface work with the Ironic native"},{"line_number":210,"context_line":"        # /continue-inspection lookup."},{"line_number":211,"context_line":"        lookup.cache_lookup_addresses(task.node)"},{"line_number":212,"context_line":"        task.node.save()"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"d35cc2ff_e148ca36","line":210,"updated":"2023-03-03 18:08:22.000000000","message":"Please note the item that needs to be resolved for it to be removed so we can all be on the same page later on.","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"edb53f355c716da9e054a22fb0bc659ee1361f34","unresolved":true,"context_lines":[{"line_number":207,"context_line":"                                    _IRONIC_MANAGES_BOOT,"},{"line_number":208,"context_line":"                                    ironic_manages_boot)"},{"line_number":209,"context_line":"        # Temporary hack to make this interface work with the Ironic native"},{"line_number":210,"context_line":"        # /continue-inspection lookup."},{"line_number":211,"context_line":"        lookup.cache_lookup_addresses(task.node)"},{"line_number":212,"context_line":"        task.node.save()"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bef83ef5_5e04d37b","line":210,"in_reply_to":"d35cc2ff_e148ca36","updated":"2023-03-08 15:53:18.000000000","message":"It\u0027s going to be removed with this file. Yeah, will clarify.","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"}],"ironic/drivers/modules/inspector/lookup.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":"4624557cb8306604a6268d1dc4a64675a46bb0b5","unresolved":true,"context_lines":[{"line_number":117,"context_line":"    :return: a set with suitable addresses"},{"line_number":118,"context_line":"    \"\"\""},{"line_number":119,"context_line":"    # NOTE(sambetts): IPMI Address is useless to us if bridging is enabled so"},{"line_number":120,"context_line":"    # just ignore it and return None"},{"line_number":121,"context_line":"    if node.driver_info.get(\"ipmi_bridging\", \"no\") !\u003d \"no\":"},{"line_number":122,"context_line":"        return []"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"0f7f1475_63d9e632","line":120,"updated":"2023-03-03 18:08:22.000000000","message":"Just a thought here, For what we end up copying out, we likely just want to be extra careful to check and maybe even do outright cleanup/refactoring.","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"edb53f355c716da9e054a22fb0bc659ee1361f34","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    :return: a set with suitable addresses"},{"line_number":118,"context_line":"    \"\"\""},{"line_number":119,"context_line":"    # NOTE(sambetts): IPMI Address is useless to us if bridging is enabled so"},{"line_number":120,"context_line":"    # just ignore it and return None"},{"line_number":121,"context_line":"    if node.driver_info.get(\"ipmi_bridging\", \"no\") !\u003d \"no\":"},{"line_number":122,"context_line":"        return []"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"053dad16_8c5b5ca5","line":120,"in_reply_to":"0f7f1475_63d9e632","updated":"2023-03-08 15:53:18.000000000","message":"Ack","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"4624557cb8306604a6268d1dc4a64675a46bb0b5","unresolved":true,"context_lines":[{"line_number":156,"context_line":"    \"\"\"Cache lookup addresses for a quick access.\"\"\""},{"line_number":157,"context_line":"    addresses \u003d _get_bmc_addresses(node)"},{"line_number":158,"context_line":"    if addresses:"},{"line_number":159,"context_line":"        node.set_driver_internal_info(\u0027lookup_bmc_addresses\u0027, list(addresses))"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"def clear_lookup_addresses(node):"}],"source_content_type":"text/x-python","patch_set":2,"id":"34737d45_2f42c5b0","line":159,"updated":"2023-03-03 18:08:22.000000000","message":"we might need to check api response santiziation code and make sure we ensure we\u0027re not showing this to average lessee reader sorts.","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"edb53f355c716da9e054a22fb0bc659ee1361f34","unresolved":true,"context_lines":[{"line_number":156,"context_line":"    \"\"\"Cache lookup addresses for a quick access.\"\"\""},{"line_number":157,"context_line":"    addresses \u003d _get_bmc_addresses(node)"},{"line_number":158,"context_line":"    if addresses:"},{"line_number":159,"context_line":"        node.set_driver_internal_info(\u0027lookup_bmc_addresses\u0027, list(addresses))"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"def clear_lookup_addresses(node):"}],"source_content_type":"text/x-python","patch_set":2,"id":"c8e9c624_72ba0596","line":159,"in_reply_to":"34737d45_2f42c5b0","updated":"2023-03-08 15:53:18.000000000","message":"Possible to nobody at all. Agreed.","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"40f4af50390639d78bcb13f722450ca1a9522715","unresolved":true,"context_lines":[{"line_number":156,"context_line":"    \"\"\"Cache lookup addresses for a quick access.\"\"\""},{"line_number":157,"context_line":"    addresses \u003d _get_bmc_addresses(node)"},{"line_number":158,"context_line":"    if addresses:"},{"line_number":159,"context_line":"        node.set_driver_internal_info(\u0027lookup_bmc_addresses\u0027, list(addresses))"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"def clear_lookup_addresses(node):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ee78afb6_4428e205","line":159,"in_reply_to":"c8e9c624_72ba0596","updated":"2023-03-10 11:49:36.000000000","message":"I wonder if we should restrict driver_internal_info to only admins. It\u0027s an internal detail, after all. It exposes things like job names in iDRAC, for example.","commit_id":"a6394357a441e33a0770c6ba0d82e28c6af3f800"}]}
