summaryrefslogtreecommitdiffstats
path: root/bitbake/lib
diff options
context:
space:
mode:
authorChris Larson <chris_larson@mentor.com>2011-04-04 09:36:10 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-05-06 15:49:17 +0100
commit7fc020aa15d918b215575576d91160afae7f4d70 (patch)
treeed9b029c8b2dfd355396de9183517e852333612b /bitbake/lib
parentfc801b907361cfdb7e329eefac7a0c991e86c736 (diff)
downloadast2050-yocto-poky-7fc020aa15d918b215575576d91160afae7f4d70.zip
ast2050-yocto-poky-7fc020aa15d918b215575576d91160afae7f4d70.tar.gz
persist_data: raise KeyError on missing elements
(Bitbake rev: a4f62433845c29f98c6a9746d5d2847bf9506ea5) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib')
-rw-r--r--bitbake/lib/bb/fetch/__init__.py15
-rw-r--r--bitbake/lib/bb/fetch/git.py18
-rw-r--r--bitbake/lib/bb/fetch2/__init__.py15
-rw-r--r--bitbake/lib/bb/persist_data.py3
4 files changed, 27 insertions, 24 deletions
diff --git a/bitbake/lib/bb/fetch/__init__.py b/bitbake/lib/bb/fetch/__init__.py
index 684e83d..95f0d9d 100644
--- a/bitbake/lib/bb/fetch/__init__.py
+++ b/bitbake/lib/bb/fetch/__init__.py
@@ -759,12 +759,11 @@ class Fetch(object):
pd = bb.persist_data.persist(d)
revs = pd['BB_URI_HEADREVS']
key = self.generate_revision_key(url, ud, d)
- rev = revs[key]
- if rev != None:
- return str(rev)
-
- revs[key] = rev = self._latest_revision(url, ud, d)
- return rev
+ try:
+ return revs[key]
+ except KeyError:
+ revs[key] = rev = self._latest_revision(url, ud, d)
+ return rev
def sortable_revision(self, url, ud, d):
"""
@@ -778,13 +777,13 @@ class Fetch(object):
key = self.generate_revision_key(url, ud, d)
latest_rev = self._build_revision(url, ud, d)
- last_rev = localcounts[key + '_rev']
+ last_rev = localcounts.get(key + '_rev')
uselocalcount = bb.data.getVar("BB_LOCALCOUNT_OVERRIDE", d, True) or False
count = None
if uselocalcount:
count = Fetch.localcount_internal_helper(ud, d)
if count is None:
- count = localcounts[key + '_count']
+ count = localcounts.get(key + '_count')
if last_rev == latest_rev:
return str(count + "+" + latest_rev)
diff --git a/bitbake/lib/bb/fetch/git.py b/bitbake/lib/bb/fetch/git.py
index 6b565e3..35908ca 100644
--- a/bitbake/lib/bb/fetch/git.py
+++ b/bitbake/lib/bb/fetch/git.py
@@ -246,18 +246,20 @@ class Git(Fetch):
revs = persisted['BB_URI_HEADREVS']
key = self.generate_revision_key(url, ud, d, branch=True)
- rev = revs[key]
- if rev is None:
+
+ try:
+ return revs[key]
+ except KeyError:
# Compatibility with old key format, no branch included
oldkey = self.generate_revision_key(url, ud, d, branch=False)
- rev = revs[oldkey]
- if rev is not None:
- del revs[oldkey]
- else:
+ try:
+ rev = revs[oldkey]
+ except KeyError:
rev = self._latest_revision(url, ud, d)
+ else:
+ del revs[oldkey]
revs[key] = rev
-
- return str(rev)
+ return rev
def sortable_revision(self, url, ud, d):
"""
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index ca0197e..a31e26b 100644
--- a/bitbake/lib/bb/fetch2/__init__.py
+++ b/bitbake/lib/bb/fetch2/__init__.py
@@ -806,12 +806,11 @@ class FetchMethod(object):
pd = persist_data.persist(d)
revs = pd['BB_URI_HEADREVS']
key = self.generate_revision_key(url, ud, d, name)
- rev = revs[key]
- if rev != None:
- return str(rev)
-
- revs[key] = rev = self._latest_revision(url, ud, d, name)
- return rev
+ try:
+ return revs[key]
+ except KeyError:
+ revs[key] = rev = self._latest_revision(url, ud, d, name)
+ return rev
def sortable_revision(self, url, ud, d, name):
"""
@@ -825,13 +824,13 @@ class FetchMethod(object):
key = self.generate_revision_key(url, ud, d, name)
latest_rev = self._build_revision(url, ud, d, name)
- last_rev = localcounts[key + '_rev']
+ last_rev = localcounts.get(key + '_rev')
uselocalcount = bb.data.getVar("BB_LOCALCOUNT_OVERRIDE", d, True) or False
count = None
if uselocalcount:
count = FetchMethod.localcount_internal_helper(ud, d, name)
if count is None:
- count = localcounts[key + '_count'] or "0"
+ count = localcounts.get(key + '_count') or "0"
if last_rev == latest_rev:
return str(count + "+" + latest_rev)
diff --git a/bitbake/lib/bb/persist_data.py b/bitbake/lib/bb/persist_data.py
index f51a42e..eae64cf 100644
--- a/bitbake/lib/bb/persist_data.py
+++ b/bitbake/lib/bb/persist_data.py
@@ -69,8 +69,11 @@ class SQLTable(collections.MutableMapping):
self.table, [key])
for row in data:
return row[1]
+ raise KeyError(key)
def __delitem__(self, key):
+ if key not in self:
+ raise KeyError(key)
self._execute("DELETE from %s where key=?;" % self.table, [key])
def __setitem__(self, key, value):
OpenPOWER on IntegriCloud