summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Plugins/Packages
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-10-16 10:01:09 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-10-16 10:01:09 -0400
commita1c4d6ac73a5240ba308deffe8c2eb706af90ccd (patch)
tree558fa265e2857ca9e1c3922cb591647ed05f7ac5 /src/lib/Bcfg2/Server/Plugins/Packages
parentdd196ce73618390736bd9df9ab41e97996ee7e9b (diff)
downloadbcfg2-a1c4d6ac73a5240ba308deffe8c2eb706af90ccd.tar.gz
bcfg2-a1c4d6ac73a5240ba308deffe8c2eb706af90ccd.tar.bz2
bcfg2-a1c4d6ac73a5240ba308deffe8c2eb706af90ccd.zip
Packages: better error handling for GPG key downloading
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Packages')
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Packages/__init__.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py b/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py
index f0ddaacbe..f1ffb1d67 100644
--- a/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py
+++ b/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py
@@ -440,9 +440,21 @@ class Packages(Bcfg2.Server.Plugin.Plugin,
not os.path.exists(localfile)):
self.logger.info("Packages: Downloading and parsing %s" %
key)
- response = urlopen(key)
- open(localfile, 'w').write(response.read())
- keys.append(key)
+ try:
+ open(localfile, 'w').write(urlopen(key).read())
+ keys.append(key)
+ except HTTPError:
+ err = sys.exc_info()[1]
+ self.logger.error("Packages: Error downloading %s: %s"
+ % (key, err))
+ except IOError:
+ err = sys.exc_info()[1]
+ self.logger.error("Packages: Error writing %s to %s: "
+ "%s" % (key, localfile, err))
+ except:
+ err = sys.exc_info()[1]
+ self.logger.error("Packages: Unknown error fetching "
+ "%s: %s" % (key, err))
for kfile in glob.glob(os.path.join(self.keypath, "*")):
if kfile not in keyfiles: