docs: def resolve_parent(self, disk_path, template_store, template_repo):
          """
          Given a virtual disk, checks if it has a backing file, if so check
          if the backing file is in the store, if not download it
          from the provided template_repo.
  
          After verifying that the backing-file is in the store,
          create a symlink to that file and locate it near the layered image.
  
          Args:
              disk_path (str): path to the layered disk
              template_repo (TemplateRepository or None): template repo instance
                  to use
              template_store (TemplateStore or None): template store instance to
                  use
          """
          qemu_info = utils.get_qemu_info(disk_path)
          parent = qemu_info.get('backing-filename')
          if not parent:
              return
  
          if os.path.isfile(parent):
              if os.path.samefile(
                  os.path.realpath(parent),
                  os.path.realpath(os.path.expandvars(disk_path))
              ):
                  raise LagoInitException(
                      dedent(
                          """
                          Disk {} and its backing file are the same file.
                          """.format(disk_path)
                      )
                  )
              # The parent exist and we have the correct pointer
              return
  
          LOGGER.info('Resolving Parent')
          try:
              name, version = os.path.basename(parent).split(':', 1)
          except ValueError:
              raise LagoInitException(
                  dedent(
                      """
                      Backing file resolution of disk {} failed.
                      Backing file {} is not a Lago image.
                      """.format(disk_path, parent)
                  )
              )
  
          _, _, base = self._handle_lago_template(
              '', {'template_name': name,
                   'template_version': version}, template_store, template_repo
          )
  
          # The child has the right pointer to his parent
          base = os.path.expandvars(base)
          if base == parent:
              return
  
          # The child doesn't have the right pointer to his
          # parent, We will fix it with a symlink
          link_name = os.path.join(
              os.path.dirname(disk_path), '{}:{}'.format(name, version)
          )
          link_name = os.path.expandvars(link_name)
  
          self._create_link_to_parent(base, link_name)