)]}'
{"ironic_inspector/common/ironic.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":"5aca73d5d9344a14034dc9608fb410d38a2a761b","unresolved":false,"context_lines":[{"line_number":227,"context_line":"            nodes.update(p.uuid for p in ports)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    if len(nodes) \u003e 1:"},{"line_number":230,"context_line":"        raise utils.Error(_(\u0027MAC addresses %(macs)s correspond to more than \u0027"},{"line_number":231,"context_line":"                            \u0027one node: %(nodes)s\u0027) %"},{"line_number":232,"context_line":"                          {\u0027macs\u0027: \u0027, \u0027.join(macs),"},{"line_number":233,"context_line":"                           \u0027nodes\u0027: \u0027, \u0027.join(nodes)},"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_25f585ed","line":230,"updated":"2019-07-17 10:41:53.000000000","message":"I would feel really sorry for the admin that hits it. I suspect testing teams will hit it shuffling hardware, but ops teams in the wild will likely never hit this.","commit_id":"70e45dcbe06bc7e26c0efbe2157338eda41c17db"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"5aca73d5d9344a14034dc9608fb410d38a2a761b","unresolved":false,"context_lines":[{"line_number":236,"context_line":"        return nodes.pop()"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"def lookup_node_by_bmc_addresses(addresses, introspection_data\u003dNone,"},{"line_number":240,"context_line":"                                 ironic\u003dNone, fail\u003dFalse):"},{"line_number":241,"context_line":"    \"\"\"Find a node by its BMC address.\"\"\""},{"line_number":242,"context_line":"    # FIXME(aarefiev): it\u0027s not effective to fetch all nodes, and may"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_056f29c5","line":239,"updated":"2019-07-17 10:41:53.000000000","message":"I wasn\u0027t sure you would want to head down this path in moving this code which is why I went down the other path. I like this path better! :)","commit_id":"70e45dcbe06bc7e26c0efbe2157338eda41c17db"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"5aca73d5d9344a14034dc9608fb410d38a2a761b","unresolved":false,"context_lines":[{"line_number":276,"context_line":"    if bmc_addresses:"},{"line_number":277,"context_line":"        node2 \u003d lookup_node_by_bmc_addresses(bmc_addresses)"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    if node and node2 and node !\u003d node2:"},{"line_number":280,"context_line":"        raise utils.Error(_(\u0027MAC addresses %(mac)s and BMC addresses %(addr)s \u0027"},{"line_number":281,"context_line":"                            \u0027correspond to different nodes: %(node1)s and \u0027"},{"line_number":282,"context_line":"                            \u0027%(node2)s\u0027) %"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_25a7c50d","line":279,"updated":"2019-07-17 10:41:53.000000000","message":"This is an interesting guard rail. Seems reasonable I think.","commit_id":"70e45dcbe06bc7e26c0efbe2157338eda41c17db"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"0b708f11c88bcb9eff40cd47957a6edc046fdd0c","unresolved":false,"context_lines":[{"line_number":247,"context_line":"    nodes \u003d ironic.node.list(fields\u003d(\u0027uuid\u0027, \u0027driver_info\u0027), limit\u003d0)"},{"line_number":248,"context_line":"    found \u003d set()"},{"line_number":249,"context_line":"    for node in nodes:"},{"line_number":250,"context_line":"        bmc_address, bmc_ipv4, bmc_ipv6 \u003d get_ipmi_address(node)"},{"line_number":251,"context_line":"        for addr in addresses:"},{"line_number":252,"context_line":"            if addr not in (bmc_ipv4, bmc_ipv6):"},{"line_number":253,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_2e58e085","line":250,"updated":"2019-07-19 11:53:28.000000000","message":"maybe one day we should do a db query or a like a memcached memory cache bascked store for like \"key lookup facts\" I\u0027m sure that would greatly help the superlarge deployments.","commit_id":"692d29ba3856a1fa05065ed9d7b1d441910c1a06"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"dcda55bc25010f61973d066a5971239361ddf50e","unresolved":false,"context_lines":[{"line_number":224,"context_line":"                _(\u0027Port %(mac)s already exists, uuid: %(uuid)s\u0027) %"},{"line_number":225,"context_line":"                {\u0027mac\u0027: mac, \u0027uuid\u0027: ports[0].uuid}, data\u003dintrospection_data)"},{"line_number":226,"context_line":"        else:"},{"line_number":227,"context_line":"            nodes.update(p.node_uuid for p in ports)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    if len(nodes) \u003e 1:"},{"line_number":230,"context_line":"        raise utils.Error(_(\u0027MAC addresses %(macs)s correspond to more than \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_fa3b51c5","line":227,"range":{"start_line":227,"start_character":25,"end_line":227,"end_character":51},"updated":"2019-07-22 07:29:22.000000000","message":"ports[0].node_uuid would be fine (like L225), apparently ports is a list with 0 or 1 element.","commit_id":"0c9447d53b092c1b057998d9a159fbe88a3b881e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8efe4fb0c630ceb28155e2cea772f1bccdb5453f","unresolved":false,"context_lines":[{"line_number":224,"context_line":"                _(\u0027Port %(mac)s already exists, uuid: %(uuid)s\u0027) %"},{"line_number":225,"context_line":"                {\u0027mac\u0027: mac, \u0027uuid\u0027: ports[0].uuid}, data\u003dintrospection_data)"},{"line_number":226,"context_line":"        else:"},{"line_number":227,"context_line":"            nodes.update(p.node_uuid for p in ports)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    if len(nodes) \u003e 1:"},{"line_number":230,"context_line":"        raise utils.Error(_(\u0027MAC addresses %(macs)s correspond to more than \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_d4e41e3f","line":227,"range":{"start_line":227,"start_character":25,"end_line":227,"end_character":51},"in_reply_to":"7faddb67_fa3b51c5","updated":"2019-07-22 18:44:02.000000000","message":"++ And I suspect more efficent since the comprhension is some additional steps and address is... I think... a unique field.","commit_id":"0c9447d53b092c1b057998d9a159fbe88a3b881e"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"dcda55bc25010f61973d066a5971239361ddf50e","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        return found.pop()"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"def lookup_node(macs\u003dNone, bmc_addresses\u003dNone, introspection_data\u003dNone,"},{"line_number":273,"context_line":"                ironic\u003dNone):"},{"line_number":274,"context_line":"    \"\"\"Lookup a node in the ironic database.\"\"\""},{"line_number":275,"context_line":"    node \u003d node2 \u003d None"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_daac55f0","line":272,"range":{"start_line":272,"start_character":47,"end_line":272,"end_character":71},"updated":"2019-07-22 07:29:22.000000000","message":"This arg is not passed down to lookup_node_by_macs or bmc_addresses.","commit_id":"0c9447d53b092c1b057998d9a159fbe88a3b881e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8efe4fb0c630ceb28155e2cea772f1bccdb5453f","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        return found.pop()"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"def lookup_node(macs\u003dNone, bmc_addresses\u003dNone, introspection_data\u003dNone,"},{"line_number":273,"context_line":"                ironic\u003dNone):"},{"line_number":274,"context_line":"    \"\"\"Lookup a node in the ironic database.\"\"\""},{"line_number":275,"context_line":"    node \u003d node2 \u003d None"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_742bea2f","line":272,"range":{"start_line":272,"start_character":47,"end_line":272,"end_character":71},"in_reply_to":"7faddb67_daac55f0","updated":"2019-07-22 18:44:02.000000000","message":"Seems like a fair thing to remove in a follow-up.","commit_id":"0c9447d53b092c1b057998d9a159fbe88a3b881e"}],"ironic_inspector/node_cache.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6ef4b8e941cafeaaedfa03f89393d8ca2bee1c51","unresolved":false,"context_lines":[{"line_number":938,"context_line":"    # NOTE(TheJulia): If we\u0027re being called to add a record, we clearly"},{"line_number":939,"context_line":"    # do not manage the boot of the machine and it is reporting in"},{"line_number":940,"context_line":"    # via other means, so always set it to false."},{"line_number":941,"context_line":"    return add_node(uuid, state, manage_boot\u003dFalse, **attributes)"},{"line_number":942,"context_line":""},{"line_number":943,"context_line":""},{"line_number":944,"context_line":"def get_node_list(ironic\u003dNone, marker\u003dNone, limit\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_58cd0d2f","line":941,"range":{"start_line":941,"start_character":0,"end_line":941,"end_character":65},"updated":"2019-07-17 09:17:52.000000000","message":"Using add_node will make the node appear in the introspection listing API, which is not great IMO. At the very least it\u0027s an API change.","commit_id":"43690222c2704a7b3dc034b83cb793337969d05f"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7df9746ced413c443c55ff2fe8c0f187f9e64996","unresolved":false,"context_lines":[{"line_number":938,"context_line":"    # NOTE(TheJulia): If we\u0027re being called to add a record, we clearly"},{"line_number":939,"context_line":"    # do not manage the boot of the machine and it is reporting in"},{"line_number":940,"context_line":"    # via other means, so always set it to false."},{"line_number":941,"context_line":"    return add_node(uuid, state, manage_boot\u003dFalse, **attributes)"},{"line_number":942,"context_line":""},{"line_number":943,"context_line":""},{"line_number":944,"context_line":"def get_node_list(ironic\u003dNone, marker\u003dNone, limit\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_0521699f","line":941,"range":{"start_line":941,"start_character":0,"end_line":941,"end_character":65},"in_reply_to":"7faddb67_58cd0d2f","updated":"2019-07-17 10:29:02.000000000","message":"Hmmm, I hadn\u0027t quite thought of that. Are you thinking scratch lookup and then just let things roll forward without a cache entry?","commit_id":"43690222c2704a7b3dc034b83cb793337969d05f"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"5aca73d5d9344a14034dc9608fb410d38a2a761b","unresolved":false,"context_lines":[{"line_number":944,"context_line":"        raise utils.NotFoundInCacheError(_(\"Existing node was not found\"))"},{"line_number":945,"context_line":""},{"line_number":946,"context_line":"    node \u003d ironic.node.get(node, fields\u003d[\u0027uuid\u0027, \u0027provision_state\u0027])"},{"line_number":947,"context_line":"    if node.provision_state !\u003d \u0027active\u0027:"},{"line_number":948,"context_line":"        raise utils.Error(_(\"Node %(node)s is not active, its provision \""},{"line_number":949,"context_line":"                            \"state is %(state)s\") %"},{"line_number":950,"context_line":"                          {\u0027node\u0027: node.uuid,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_05564907","line":947,"updated":"2019-07-17 10:41:53.000000000","message":"For Metal3, this will require us to get the BMO operator behavior fixed. I think it would be better to consult the list of states where we permit inspection... we\u0027ve got that someplace, and use that.","commit_id":"70e45dcbe06bc7e26c0efbe2157338eda41c17db"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"dcda55bc25010f61973d066a5971239361ddf50e","unresolved":false,"context_lines":[{"line_number":927,"context_line":"        return add_node(node.uuid, istate.States.enrolling, ironic\u003dironic)"},{"line_number":928,"context_line":""},{"line_number":929,"context_line":""},{"line_number":930,"context_line":"def record_node(ironic\u003dNone, bmc_addresses\u003dNone, macs\u003dNone):"},{"line_number":931,"context_line":"    \"\"\"Create a cache record for a known active node."},{"line_number":932,"context_line":""},{"line_number":933,"context_line":"    :param ironic: ironic client instance."}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_3a12490b","line":930,"range":{"start_line":930,"start_character":29,"end_line":930,"end_character":42},"updated":"2019-07-22 07:29:22.000000000","message":"bmc_addresses are IP address with different IP versions here, it would be useful to capture in the doc string, otherwise it could be kind of confusing.","commit_id":"0c9447d53b092c1b057998d9a159fbe88a3b881e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8efe4fb0c630ceb28155e2cea772f1bccdb5453f","unresolved":false,"context_lines":[{"line_number":927,"context_line":"        return add_node(node.uuid, istate.States.enrolling, ironic\u003dironic)"},{"line_number":928,"context_line":""},{"line_number":929,"context_line":""},{"line_number":930,"context_line":"def record_node(ironic\u003dNone, bmc_addresses\u003dNone, macs\u003dNone):"},{"line_number":931,"context_line":"    \"\"\"Create a cache record for a known active node."},{"line_number":932,"context_line":""},{"line_number":933,"context_line":"    :param ironic: ironic client instance."}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_b4a402bb","line":930,"range":{"start_line":930,"start_character":29,"end_line":930,"end_character":42},"in_reply_to":"7faddb67_3a12490b","updated":"2019-07-22 18:44:02.000000000","message":"I think this would be a good follow-up, just not sure what would be best to do it myself.","commit_id":"0c9447d53b092c1b057998d9a159fbe88a3b881e"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"b9d3ecf269d55eb61114802f5254d59a290ef050","unresolved":false,"context_lines":[{"line_number":954,"context_line":"            {\u0027macs\u0027: macs, \u0027addr\u0027: bmc_addresses})"},{"line_number":955,"context_line":""},{"line_number":956,"context_line":"    node \u003d ironic.node.get(node, fields\u003d[\u0027uuid\u0027, \u0027provision_state\u0027])"},{"line_number":957,"context_line":"    # TODO(dtantsur): do we want to allow updates in all states?"},{"line_number":958,"context_line":"    if node.provision_state not in ir_utils.VALID_ACTIVE_STATES:"},{"line_number":959,"context_line":"        raise utils.Error(_(\"Node %(node)s is not active, its provision \""},{"line_number":960,"context_line":"                            \"state is %(state)s\") %"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_a6b6293d","line":957,"range":{"start_line":957,"start_character":0,"end_line":957,"end_character":64},"updated":"2019-07-20 09:00:19.000000000","message":"would be useful for troubleshooting failed states, different scope anyway, and probably not here\nfor now I think this is enough","commit_id":"0c9447d53b092c1b057998d9a159fbe88a3b881e"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"dcda55bc25010f61973d066a5971239361ddf50e","unresolved":false,"context_lines":[{"line_number":962,"context_line":"                           \u0027state\u0027: node.provision_state})"},{"line_number":963,"context_line":""},{"line_number":964,"context_line":"    return add_node(node.uuid, istate.States.waiting,"},{"line_number":965,"context_line":"                    manage_boot\u003dFalse, mac\u003dmacs, bmc_address\u003dbmc_addresses)"},{"line_number":966,"context_line":""},{"line_number":967,"context_line":""},{"line_number":968,"context_line":"def get_node_list(ironic\u003dNone, marker\u003dNone, limit\u003dNone):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_9a46ddc0","line":965,"range":{"start_line":965,"start_character":32,"end_line":965,"end_character":37},"updated":"2019-07-22 07:29:22.000000000","message":"maybe True here, by default manage_boot is True, and it seems False is only an experimental feature.","commit_id":"0c9447d53b092c1b057998d9a159fbe88a3b881e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8efe4fb0c630ceb28155e2cea772f1bccdb5453f","unresolved":false,"context_lines":[{"line_number":962,"context_line":"                           \u0027state\u0027: node.provision_state})"},{"line_number":963,"context_line":""},{"line_number":964,"context_line":"    return add_node(node.uuid, istate.States.waiting,"},{"line_number":965,"context_line":"                    manage_boot\u003dFalse, mac\u003dmacs, bmc_address\u003dbmc_addresses)"},{"line_number":966,"context_line":""},{"line_number":967,"context_line":""},{"line_number":968,"context_line":"def get_node_list(ironic\u003dNone, marker\u003dNone, limit\u003dNone):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_74e0cafb","line":965,"range":{"start_line":965,"start_character":32,"end_line":965,"end_character":37},"in_reply_to":"7faddb67_9a46ddc0","updated":"2019-07-22 18:44:02.000000000","message":"If this is being called though, ironic-inspector is likely not the reason why it was called, it was likely an admin so I think it represents it well to say false. That at least is my opinion.","commit_id":"0c9447d53b092c1b057998d9a159fbe88a3b881e"}],"ironic_inspector/plugins/discovery.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"911eb4b5b25a8ad78efc1ecf88d6ee89c5f1d4ad","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                continue"},{"line_number":56,"context_line":"            msg \u003d (_(\u0027Port %(mac)s already exists, uuid: %(uuid)s\u0027) %"},{"line_number":57,"context_line":"                   {\u0027mac\u0027: mac, \u0027uuid\u0027: ports[0].uuid})"},{"line_number":58,"context_line":"            if CONF.processing.permit_active_introspection:"},{"line_number":59,"context_line":"                node_cache.record_node(ports[0].uuid,"},{"line_number":60,"context_line":"                                       istate.States.waiting,"},{"line_number":61,"context_line":"                                       macs\u003dmacs)"},{"line_number":62,"context_line":"                raise utils.CacheRecordAdded(msg)"},{"line_number":63,"context_line":"            else:"},{"line_number":64,"context_line":"                raise utils.Error(msg, data\u003dintrospection_data)"},{"line_number":65,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_532e4e92","line":62,"range":{"start_line":58,"start_character":0,"end_line":62,"end_character":49},"updated":"2019-07-17 09:30:01.000000000","message":"I don\u0027t think this logic belongs here. It\u0027s handy, but it assumes discovery is enabled.","commit_id":"43690222c2704a7b3dc034b83cb793337969d05f"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7df9746ced413c443c55ff2fe8c0f187f9e64996","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                continue"},{"line_number":56,"context_line":"            msg \u003d (_(\u0027Port %(mac)s already exists, uuid: %(uuid)s\u0027) %"},{"line_number":57,"context_line":"                   {\u0027mac\u0027: mac, \u0027uuid\u0027: ports[0].uuid})"},{"line_number":58,"context_line":"            if CONF.processing.permit_active_introspection:"},{"line_number":59,"context_line":"                node_cache.record_node(ports[0].uuid,"},{"line_number":60,"context_line":"                                       istate.States.waiting,"},{"line_number":61,"context_line":"                                       macs\u003dmacs)"},{"line_number":62,"context_line":"                raise utils.CacheRecordAdded(msg)"},{"line_number":63,"context_line":"            else:"},{"line_number":64,"context_line":"                raise utils.Error(msg, data\u003dintrospection_data)"},{"line_number":65,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_851b1971","line":62,"range":{"start_line":58,"start_character":0,"end_line":62,"end_character":49},"in_reply_to":"7faddb67_532e4e92","updated":"2019-07-17 10:29:02.000000000","message":"True... Totally agree not great.","commit_id":"43690222c2704a7b3dc034b83cb793337969d05f"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"5aca73d5d9344a14034dc9608fb410d38a2a761b","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    macs \u003d utils.get_valid_macs(introspection_data)"},{"line_number":48,"context_line":"    if macs:"},{"line_number":49,"context_line":"        ir_utils.lookup_node_by_macs(macs, introspection_data, ironic\u003dironic,"},{"line_number":50,"context_line":"                                     fail\u003dTrue)"},{"line_number":51,"context_line":"    else:"},{"line_number":52,"context_line":"        LOG.warning(\u0027No suitable interfaces found for discovered node. \u0027"},{"line_number":53,"context_line":"                    \u0027Check that validate_interfaces hook is listed in \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_c5435141","line":50,"updated":"2019-07-17 10:41:53.000000000","message":"I was actually thinking along these lines initially, so ++","commit_id":"70e45dcbe06bc7e26c0efbe2157338eda41c17db"}],"ironic_inspector/process.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6ef4b8e941cafeaaedfa03f89393d8ca2bee1c51","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        return node_cache.find_node("},{"line_number":92,"context_line":"            bmc_address\u003d[address, v6address],"},{"line_number":93,"context_line":"            mac\u003dmac_addresses)"},{"line_number":94,"context_line":"    except utils.NotFoundInCacheError as exc:"},{"line_number":95,"context_line":"        not_found_hook \u003d plugins_base.node_not_found_hook_manager()"},{"line_number":96,"context_line":"        if not_found_hook is None:"},{"line_number":97,"context_line":"            failures.append(_(\u0027Look up error: %s\u0027) % exc)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_f85ab980","line":94,"updated":"2019-07-17 09:17:52.000000000","message":"I think we need to insert code here to do a from-scratch lookup of a node in ironic.","commit_id":"43690222c2704a7b3dc034b83cb793337969d05f"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7df9746ced413c443c55ff2fe8c0f187f9e64996","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        return node_cache.find_node("},{"line_number":92,"context_line":"            bmc_address\u003d[address, v6address],"},{"line_number":93,"context_line":"            mac\u003dmac_addresses)"},{"line_number":94,"context_line":"    except utils.NotFoundInCacheError as exc:"},{"line_number":95,"context_line":"        not_found_hook \u003d plugins_base.node_not_found_hook_manager()"},{"line_number":96,"context_line":"        if not_found_hook is None:"},{"line_number":97,"context_line":"            failures.append(_(\u0027Look up error: %s\u0027) % exc)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_c5159141","line":94,"in_reply_to":"7faddb67_f85ab980","updated":"2019-07-17 10:29:02.000000000","message":"I was kind of thinking the same, and then I saw we do that in discovery and just bomb discovery if we find it :\\","commit_id":"43690222c2704a7b3dc034b83cb793337969d05f"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"5aca73d5d9344a14034dc9608fb410d38a2a761b","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            try:"},{"line_number":91,"context_line":"                return node_cache.record_node("},{"line_number":92,"context_line":"                    bmc_address\u003d[address, v6address],"},{"line_number":93,"context_line":"                    mac\u003dmac_addresses)"},{"line_number":94,"context_line":"            except utils.NotFoundInCacheError:"},{"line_number":95,"context_line":"                # Fall back to discovery"},{"line_number":96,"context_line":"                pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_a5e09527","line":93,"updated":"2019-07-17 10:41:53.000000000","message":"this should be perfect","commit_id":"70e45dcbe06bc7e26c0efbe2157338eda41c17db"}],"ironic_inspector/test/functional.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":"0b708f11c88bcb9eff40cd47957a6edc046fdd0c","unresolved":false,"context_lines":[{"line_number":789,"context_line":""},{"line_number":790,"context_line":"        status \u003d self.call_get_status(self.uuid)"},{"line_number":791,"context_line":"        self.check_status(status, finished\u003dTrue, state\u003distate.States.finished)"},{"line_number":792,"context_line":""},{"line_number":793,"context_line":"    def test_update_known_active_node(self):"},{"line_number":794,"context_line":"        # Start with a normal introspection as a pre-requisite"},{"line_number":795,"context_line":"        self.test_bmc()"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_ae64d04a","line":792,"updated":"2019-07-19 11:53:28.000000000","message":"excellent!","commit_id":"692d29ba3856a1fa05065ed9d7b1d441910c1a06"}]}
