On Thu,  8 Oct 2015 20:23:05 -0400
Mike Frysinger <[email protected]> wrote:

> When we write the hash, we do so by using:
>       snapshot_cache_path + / + catalyst-hash
> 
> But when we read it, we do so by:
>       snapshot_cache_path + catalyst-hash
> 
> If the path lacks a trailing /, then we never read the correct hash
> file.  The current helper returns -1 on missing file errors which is
> compared against the existing hash.  In essence, we always trigger a
> cache miss.
> 
> Clean up the code to properly create the path and use that var in both
> places to prevent future breakage.
> ---
> v2
>       - do it better like an all star
> 
>  catalyst/base/stagebase.py | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py
> index f81c51b..7d069fa 100644
> --- a/catalyst/base/stagebase.py
> +++ b/catalyst/base/stagebase.py
> @@ -815,9 +815,9 @@ class StageBase(TargetBase, ClearBase, GenBase):
>               print self.settings["chroot_path"]
>               print "unpack(), target_portdir = " + target_portdir
>               if "snapcache" in self.settings["options"]:
> -                     snapshot_cache_hash=\
> -
> read_from_clst(self.settings["snapshot_cache_path"]+\
> -                             "catalyst-hash")
> +                     snapshot_cache_hash_path = pjoin(
> +
> self.settings['snapshot_cache_path'], 'catalyst-hash')
> +                     snapshot_cache_hash =
> read_from_clst(snapshot_cache_hash_path) unpack_info['mode'] =
> self.decompressor.determine_mode( unpack_info['source'])
>  
> @@ -862,8 +862,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
>                               print unpack_errmsg %(unpack_info)
>  
>                       if "snapcache" in self.settings["options"]:
> -
> myf=open(self.settings["snapshot_cache_path"] +
> -                                     "/" + "catalyst-hash","w")
> +                             myf = open(snapshot_cache_hash_path,
> 'w') myf.write(self.settings["snapshot_path_hash"])
>                               myf.close()
>                       else:

looks good.  There shouldn't be too many like this left now.  I did as
many as I could when changing the related code.  But I know there was
still more.

-- 
Brian Dolbec <dolsen>


Reply via email to