summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-10-16 14:13:45 -0700
committerZac Medico <zmedico@gentoo.org>2011-10-16 14:13:45 -0700
commit5b8fdc7d3e4c64ce79d0218fd101f8292602d10b (patch)
tree8ef92dddf94c3fc01011b0384c82f4b4b4119cf2
parent1272f5c55baa5c6d68d5ab3a1dceef69cc47e69b (diff)
downloadportage-5b8fdc7d3e4c64ce79d0218fd101f8292602d10b.tar.gz
portage-5b8fdc7d3e4c64ce79d0218fd101f8292602d10b.tar.bz2
portage-5b8fdc7d3e4c64ce79d0218fd101f8292602d10b.zip
hashed_path: convert stat OSError to FileNotFound
This makes it consistent with perform_checksum call which also raises FileNotFound instead of OSError.
-rw-r--r--pym/portage/dbapi/porttree.py2
-rw-r--r--pym/portage/eclass_cache.py11
2 files changed, 9 insertions, 4 deletions
diff --git a/pym/portage/dbapi/porttree.py b/pym/portage/dbapi/porttree.py
index 0ade59a19..a0b7d7e1f 100644
--- a/pym/portage/dbapi/porttree.py
+++ b/pym/portage/dbapi/porttree.py
@@ -424,7 +424,7 @@ class portdbapi(dbapi):
# snag mtime since we use it later, and to trigger stat failure
# if it doesn't exist
ebuild_hash.mtime
- except OSError:
+ except FileNotFound:
writemsg(_("!!! aux_get(): ebuild for " \
"'%s' does not exist at:\n") % (cpv,), noiselevel=-1)
writemsg("!!! %s\n" % ebuild_path, noiselevel=-1)
diff --git a/pym/portage/eclass_cache.py b/pym/portage/eclass_cache.py
index adfe69ae9..4a934f16f 100644
--- a/pym/portage/eclass_cache.py
+++ b/pym/portage/eclass_cache.py
@@ -9,7 +9,7 @@ import sys
import operator
from portage.util import normalize_path
import errno
-from portage.exception import PermissionDenied
+from portage.exception import FileNotFound, PermissionDenied
from portage import os
from portage import checksum
@@ -30,7 +30,12 @@ class hashed_path(object):
# the straight c api.
# thus use the defacto python compatibility work around;
# access via index, which guarantees you get the raw long.
- self.mtime = obj = os.stat(self.location)[stat.ST_MTIME]
+ try:
+ self.mtime = obj = os.stat(self.location)[stat.ST_MTIME]
+ except OSError as e:
+ if e.errno in (errno.ENOENT, errno.ESTALE):
+ raise FileNotFound(self.location)
+ raise
return obj
if not attr.islower():
# we don't care to allow .mD5 as an alias for .md5
@@ -113,7 +118,7 @@ class cache(object):
obj.eclass_dir = x
try:
mtime = obj.mtime
- except OSError:
+ except FileNotFound:
continue
ys=y[:-eclass_len]
if x == self._master_eclass_root: