Merge branch 'master' of ssh://git.onelab.eu/git/sfa
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Wed, 18 Jul 2012 15:01:56 +0000 (17:01 +0200)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Wed, 18 Jul 2012 15:01:56 +0000 (17:01 +0200)
config/sfa-config-tty
sfa/client/sfi.py
sfa/util/config.py

index e5a04e4..0b708e2 100755 (executable)
@@ -514,15 +514,10 @@ def main(command,argv,configuration):
 
     # local settings only, will be modified & saved
     config_filename = "%s/sfa_config" % config.config_dir
-    try:
-        cwrite=Config(config_filename)
-    except ConfigParser.MissingSectionHeaderError:
-        # remove legacy config 
-        os.unlink(config_filename)
-        cwrite=Config(config_filename)
-
+    cwrite=Config(config_filename)
     try:
         cread.load(site_config)
+        cwrite.load(default_config)
         cwrite.load(site_config)
     except:
         cwrite = Config()
index 792c404..e29cbe1 100644 (file)
@@ -13,6 +13,7 @@ import datetime
 import codecs
 import pickle
 import json
+import shutil
 from lxml import etree
 from StringIO import StringIO
 from optparse import OptionParser
@@ -528,33 +529,26 @@ class Sfi:
 
         return
     
-    def upgrade_config(self, config_file):
-        """
-        upgrade from shell to ini format
-        """
-        fp, fn = mkstemp(suffix='sfi_config', text=True)
-        try:
-            tmp_config = Config(fn)
-            tmp_config.add_section('sfi')
-            tmp_config.add_section('sface')
-            tmp_config.load(config_file)
-            tmp_config.save(config_file)
-        except:
-            raise
-        finally:
-            os.unlink(fn)
-        
-        
     ####################
     def read_config(self):
         config_file = os.path.join(self.options.sfi_dir,"sfi_config")
+        shell_config_file  = os.path.join(self.options.sfi_dir,"sfi_config.sh")
         try:
             if Config.is_ini(config_file):
                 config = Config (config_file)
             else:
                 # try upgrading from shell config format
-                self.upgrade_config(config_file)
-                config = Config(config_file)
+                fp, fn = mkstemp(suffix='sfi_config', text=True)  
+                config = Config(fn)
+                # we need to preload the sections we want parsed 
+                # from the shell config
+                config.add_section('sfi')
+                config.add_section('sface')
+                config.load(config_file)
+                # back up old config
+                shutil.move(config_file, shell_config_file)
+                # write new config
+                config.save(config_file)
                  
         except:
             self.logger.critical("Failed to read configuration file %s"%config_file)
index 1ac9753..9caa767 100644 (file)
@@ -194,7 +194,7 @@ DO NOT EDIT. This file was automatically generated at
     def output_xml(self, encoding = "utf-8"):
         pass
 
-    def output_variables(self):
+    def output_variables(self, encoding="utf-8"):
         """
         Return list of all variable names.
         """