code: func (s *v1AlphaAPIServer) getImageInfo(imageID string) (*v1alpha.Image, error) {
  	item, found := s.imgCache.Get(imageID)
  	if found {
  		image := item.(*imageCacheItem).image
  
  		// Check if the image has been removed.
  		if found := s.store.HasFullKey(image.Id); !found {
  			s.imgCache.Remove(imageID)
  			return nil, fmt.Errorf("no such image with ID %q", imageID)
  		}
  		return copyImage(image), nil
  	}
  
  	image, err := s.getImageInfoFromDisk(s.store, imageID)
  	if err != nil {
  		return nil, err
  	}
  
  	s.imgCache.Add(imageID, &imageCacheItem{image})
  
  	return copyImage(image), err
  }
docs: // getImageInfo returns the image info of a given image ID.
  // It will first try to read the image info from cache.
  // - If the image exists in cache:
  //   - If the image exists on disk, then return it directly.
  //   - Otherwise, return nil.
  // - Else, try to return the image from disk.