in ftl/python/layer_builder.py [0:0]
def BuildLayer(self):
cached_img = None
if self._cache:
with ftl_util.Timing('checking_cached_pipfile_pkg_layer'):
key = self.GetCacheKey()
cached_img = self._cache.Get(key)
self._log_cache_result(False if cached_img is None else True)
if cached_img:
self.SetImage(cached_img)
else:
self._pip_download_wheels(' '.join(self._pkg_descriptor))
whls = self._resolve_whls()
if len(whls) != 1:
raise Exception("expected one whl for one installed pkg")
pkg_dir = self._whl_to_fslayer(whls[0])
blob, u_blob = ftl_util.zip_dir_to_layer_sha(pkg_dir, "")
overrides = ftl_util.generate_overrides(False)
self._img = tar_to_dockerimage.FromFSImage([blob], [u_blob],
overrides)
if self._cache:
with ftl_util.Timing('uploading_pipfile_pkg_layer'):
self._cache.Set(self.GetCacheKey(), self.GetImage())