X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=config%2Fsfa-config-tty;h=4de43ee2dcd27ebf197fb35fd939ba6833e15a32;hb=4a2337e7f70cef81a8de37829aa63fc941c4b96e;hp=0e97d4604ad4294f7d5d2e3c6cd0a652f18e6a4a;hpb=afe8da7a02c0650f0f6be8ab16b2494652d69d0d;p=sfa.git diff --git a/config/sfa-config-tty b/config/sfa-config-tty index 0e97d460..4de43ee2 100755 --- a/config/sfa-config-tty +++ b/config/sfa-config-tty @@ -1,4 +1,4 @@ -#!/bin/env python +#!/usr/bin/env python import os import sys @@ -9,6 +9,8 @@ import types import readline from StringIO import StringIO from optparse import OptionParser + +from sfa.util.version import version_tag from sfa.util.config import Config def validator(validated_variables): @@ -27,11 +29,15 @@ 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', + 'dummy':'sfa_dummy', + } configuration={ \ 'name':'sfa', 'service':"sfa", @@ -44,10 +50,6 @@ configuration={ \ # GLOBAL VARIABLES # -release_id = "$Id$" -release_rev = "$Revision$" -release_url = "$URL$" - g_configuration=None usual_variables=None config_dir=None @@ -258,6 +260,7 @@ def prompt_variable (cdef, cread, cwrite, category, variable, else: if cdef.validate_type(variable_type, answer): cwrite.set(category_id, variable_id, answer) + return else: print "Not a valid value" @@ -402,11 +405,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 @@ -462,7 +477,7 @@ def check_dir (config_file): #################### def optParserSetup(configuration): - parser = OptionParser(usage=usage(), version="%prog " + release_rev + release_url ) + parser = OptionParser(usage=usage(), version="%prog " + version_tag ) parser.set_defaults(config_dir=configuration['config_dir'], service=configuration['service'], usual_variables=configuration['usual_variables']) @@ -515,15 +530,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()