Don't assume cache_dir is set in conf during uninstall
authorRob Crittenden <rcritten@redhat.com>
Wed, 21 Oct 2015 15:30:47 +0000 (11:30 -0400)
committerPatrick Uiterwijk <puiterwijk@redhat.com>
Wed, 21 Oct 2015 18:50:36 +0000 (20:50 +0200)
The code was unconditionally retrieving a value from
ipsilon.conf and replacing strings in it. This would fail
if the config file didn't exist, there was no global section
or if cache_dir wasn't there.

https://fedorahosted.org/ipsilon/ticket/186

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
ipsilon/install/ipsilon-server-install

index bf086f9..7837527 100755 (executable)
@@ -243,9 +243,14 @@ def uninstall(plugins, args):
                               'ipsilon-%s.conf' % args['instance'])
     data_dir = os.path.join(DATADIR, args['instance'])
 
-    tconf = ConfigParser.SafeConfigParser()
-    tconf.read(os.path.join(instance_conf, 'ipsilon.conf'))
-    cache_dir = tconf.get('global', 'cache_dir').replace('"', '')
+    try:
+        tconf = ConfigParser.SafeConfigParser()
+        tconf.read(os.path.join(instance_conf, 'ipsilon.conf'))
+        cache_dir = tconf.get('global', 'cache_dir')
+    except (ConfigParser.NoOptionError, ConfigParser.NoSectionError):
+        cache_dir = None
+    else:
+        cache_dir = cache_dir.replace('"', '')
 
     if not os.path.exists(instance_conf):
         raise Exception('Could not find instance %s configuration'