From 78cef2a22ad2a3e8c3bc0c0c228fa32cf517c256 Mon Sep 17 00:00:00 2001
From: Mohamed Larabi <mohamed.larabi@inria.fr>
Date: Fri, 31 Aug 2012 16:10:58 +0200
Subject: [PATCH] Flavour oriented configuration

---
 config/default_config.xml | 16 ++++++++++++++++
 config/sfa-config-tty     | 21 ++++++++++++++++++---
 2 files changed, 34 insertions(+), 3 deletions(-)

diff --git a/config/default_config.xml b/config/default_config.xml
index 6d807129..6aa3df90 100644
--- a/config/default_config.xml
+++ b/config/default_config.xml
@@ -327,6 +327,22 @@ Thierry Parmentelat
       </variablelist>
     </category>
 
+    <!-- ======================================== -->
+    <category id="sfa_nitos">
+      <name></name>
+      <description>The settings that tell this SFA instance how to interact with the NITOS testbed.</description>
+
+      <variablelist>
+        <variable id="url" type="string">
+          <name>XMLRPC URL</name>
+          <value>http://195.251.17.239:8080/RPC2</value>
+          <description>URL for the NITOS Scheduler xmlrpc API</description>
+        </variable>
+      </variablelist>
+    </category>
+
+    <!-- ======================================== -->
+
   </variables>
 
   <comps>
diff --git a/config/sfa-config-tty b/config/sfa-config-tty
index 0b708e2d..fe3aab34 100755
--- a/config/sfa-config-tty
+++ b/config/sfa-config-tty
@@ -29,11 +29,14 @@ usual_variables = [
     "SFA_AGGREGATE_HOST",
     "SFA_SM_HOST",
     "SFA_DB_HOST",
-    "SFA_PLC_URL",
-    "SFA_PLC_USER",
-    "SFA_PLC_PASSWORD",
     ]
 
+flavour_xml_section_hash = { \
+    'pl':'sfa_plc',
+    'openstack':'sfa_nova',
+    'fd':'sfa_federica',
+    'nitos':'sfa_nitos'
+    }
 configuration={ \
     'name':'sfa',
     'service':"sfa",
@@ -401,11 +404,23 @@ def mainloop (cdef, cread, cwrite, default_config, site_config, consolidated_con
                    (service,service))
         elif command in "uU":
             global usual_variables
+            global flavour_xml_section_hash
             try:
                 for varname in usual_variables:
                     (category,variable) = cdef.locate_varname(varname)
                     if not (category is None and variable is None):
                         prompt_variable(cdef, cread, cwrite, category, variable, False)
+                
+                # set the driver variable according to the already set flavour 
+                generic_flavour = cwrite.items('sfa')[0][1]
+                for section in cdef.sections():
+                     if generic_flavour in flavour_xml_section_hash and flavour_xml_section_hash[generic_flavour] == section:
+                         for item in cdef.items(section):
+                              category = section
+                              variable = item[0]
+                              prompt_variable(cdef, cread, cwrite, category, variable, False)
+                         break
+
             except Exception, inst:
                 if (str(inst) != 'BailOut'):
                     raise
-- 
2.47.0