human
Complete the below
def _find_vdis_connected_to_vm(xenapi, connected_vdi_uuids):

    ''''Find VDIs which are connected to VBDs which are connected to VMs.'
    '''
assistant
#Here is Python code to find VDIs which are connected to VBDs which are connected to VMs.
    def _is_null_ref(ref):
        return (ref == 'OpaqueRef:NULL')
    def _add_vdi_and_parents_to_connected(vdi_rec, indent_level):
        indent_level += 1
        vdi_and_parent_uuids = []
        cur_vdi_rec = vdi_rec
        while True:
            cur_vdi_uuid = cur_vdi_rec['uuid']
            print_xen_object('VDI', vdi_rec, indent_level=indent_level)
            connected_vdi_uuids.add(cur_vdi_uuid)
            vdi_and_parent_uuids.append(cur_vdi_uuid)
            try:
                parent_vdi_uuid = vdi_rec['sm_config']['vhd-parent']
            except KeyError:
                parent_vdi_uuid = None
            if (parent_vdi_uuid and (parent_vdi_uuid != cur_vdi_uuid)):
                indent_level += 1
                cur_vdi_ref = call_xenapi(xenapi, 'VDI.get_by_uuid', parent_vdi_uuid)
                try:
                    cur_vdi_rec = call_xenapi(xenapi, 'VDI.get_record', cur_vdi_ref)
                except XenAPI.Failure as e:
                    if (e.details[0] != 'HANDLE_INVALID'):
                        raise
                    break
            else:
                break
    for (vm_ref, vm_rec) in _get_applicable_vm_recs(xenapi):
        indent_level = 0
        print_xen_object('VM', vm_rec, indent_level=indent_level)
        vbd_refs = vm_rec['VBDs']
        for vbd_ref in vbd_refs:
            try:
                vbd_rec = call_xenapi(xenapi, 'VBD.get_record', vbd_ref)
            except XenAPI.Failure as e:
                if (e.details[0] != 'HANDLE_INVALID'):
                    raise
                continue
            indent_level = 1
            print_xen_object('VBD', vbd_rec, indent_level=indent_level)
            vbd_vdi_ref = vbd_rec['VDI']
            if _is_null_ref(vbd_vdi_ref):
                continue
            try:
                vdi_rec = call_xenapi(xenapi, 'VDI.get_record', vbd_vdi_ref)
            except XenAPI.Failure as e:
                if (e.details[0] != 'HANDLE_INVALID'):
                    raise
                continue
           ...