def _walk_vdi_chain(session, vdi_uuid):
 scan_default_sr(session)
 while True:
  vdi_ref = session.call_xenapi('VDI.get_by_uuid', vdi_uuid)
  vdi_rec = session.call_xenapi('VDI.get_record', vdi_ref)
  (yield vdi_rec)
  parent_uuid = _get_vhd_parent_uuid(session, vdi_ref, vdi_rec)
  if (not parent_uuid):
   break
  vdi_uuid = parent_uuid

def _walk_vdi_chain ( session , vdi_uuid ) : scan_default_sr ( session ) while True : vdi_ref = session . call_xenapi ( 'VDI.get_by_uuid' , vdi_uuid ) vdi_rec = session . call_xenapi ( 'VDI.get_record' , vdi_ref ) ( yield vdi_rec ) parent_uuid = _get_vhd_parent_uuid ( session , vdi_ref , vdi_rec ) if ( not parent_uuid ) : break vdi_uuid = parent_uuid
yield vdi_recs for each element in a vdi chain .