From 01cf7dbe58da11adfdbbe8e0b76ea89f9ed0ce1a Mon Sep 17 00:00:00 2001
From: Guido Trotter <ultrotter@google.com>
Date: Fri, 17 Jul 2009 14:52:31 +0200
Subject: [PATCH] SimpleConfigReader: Handle errors when loading

Handling both IOErrors and ValueErrors (thrown by the simplejson loader)

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
---
 lib/ssconf.py | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/lib/ssconf.py b/lib/ssconf.py
index 8ee84c112..74874f6c5 100644
--- a/lib/ssconf.py
+++ b/lib/ssconf.py
@@ -52,8 +52,14 @@ class SimpleConfigReader(object):
 
     """
     self._file_name = file_name
-    self._config_data = serializer.Load(utils.ReadFile(file_name))
-    # TODO: Error handling
+    try:
+      self._config_data = serializer.Load(utils.ReadFile(file_name))
+    except IOError, err:
+      raise errors.ConfigurationError("Cannot read config file %s: %s" %
+                                      (file_name, err))
+    except ValueError, err:
+      raise errors.ConfigurationError("Cannot load config file %s: %s" %
+                                      (file_name, err))
 
   def GetClusterName(self):
     return self._config_data["cluster"]["cluster_name"]
-- 
GitLab