<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def wait_for_node_discovery(discoverd_client, auth_token, discoverd_url, node_uuids, loops=220, sleep=10):
 """Check the status of Node discovery in Ironic discoverd Gets the status and waits for them to complete. :param discoverd_client: Ironic Discoverd client :type discoverd_client: ironic_discoverd.client :param auth_token: Authorisation token used by discoverd client :type auth_token: string :param discoverd_url: URL used by the discoverd client :type discoverd_url: string :param node_uuids: List of Node UUID's to wait for discovery :type node_uuids: [string, ] :param loops: How many times to loop :type loops: int :param sleep: How long to sleep between loops :type sleep: int """


    log = logging.getLogger(__name__ + ".wait_for_node_discovery")
    node_uuids = node_uuids[:]

    for _ in range(0, loops):

        for node_uuid in node_uuids:

            status = discoverd_client.get_status(
                node_uuid,
                base_url=discoverd_url,
                auth_token=auth_token)

            if status['finished']:
                log.debug("Discover finished for node {0} (Error: {1})".format(
                    node_uuid, status['error']))
                node_uuids.remove(node_uuid)
                yield node_uuid, status

        if not len(node_uuids):
            raise StopIteration
        time.sleep(sleep)

    if len(node_uuids):
        log.error("Discovery didn't finish for nodes {0}".format(
            ','.join(node_uuids)))