Example #1
0
def create_config(display):
    """ Create the configuration file """
    display.newpage("Configuration File setup (DB)")

    confpath = getvalidpath(display,
                            "Enter path to configuration files",
                            Config.autodetectconfpath())

    defaults = default_settings(confpath)

    display.newpage()
    display.print_text("""XDMoD datawarehouse access credentials.

There are two options to specify the XDMoD datawarehouse access credentials.
Either specify the path to the XDMoD install or specify the hostname, username,
password of the database directly.
""")

    doxdmod = display.prompt("Do you wish to specify the XDMoD install directory", ["y", "n"], defaults['usexdmodconfig'])

    mycnf = None

    outconfig = {}

    if doxdmod == "y":
        outconfig = getxdmodsettings(display, defaults)
    else:
        outconfig, mycnf = getdirectsettings(display, defaults)

    archivedir = display.prompt_string("  Temporary directory to use for job archive processing", defaults['archiveoutdir'])

    outconfig["summary"] = {"archive_out_dir": archivedir,
                            "subdir_out_format": "%r/%j"}

    display.newpage("Configuration File setup (Resources)")
    display.print_text("Autodetecting resources based on configuration file settings")

    outconfig["resources"] = {}
    try:
        config = generatetempconfig(outconfig, mycnf)
        dbconn = getdbconnection(config.getsection("datawarehouse"))
        dbcur = dbconn.cursor()
        dbcur.execute("SELECT id as resource_id, code as resource FROM modw.resourcefact")
        for resource in dbcur:
            resconf = configure_resource(display, resource[0], resource[1], defaults)
            outconfig['resources'][resource[1]] = resconf

        writeconfig(display, confpath, outconfig, mycnf)
    except Exception as exc:
        display.print_warning("An error occurred while detecting resources.\n{0}".format(exc))
        display.hitanykey("Press ENTER to continue.")
Example #2
0
def promptconfig(display):
    """ prompt user for configuration path """
    config = None
    while config == None:
        confpath = display.prompt_string("Enter path to configuration files", Config.autodetectconfpath())
        try:
            config = Config(confpath)
            config.getsection('datawarehouse')
            config.getsection('outputdatabase')
        except Exception as e:
            errmsg = """
Error unable to read valid configuration file in directory
{0}
Please enter a valid config path (or ctrl-c to exit this program)
"""
            display.newpage()
            display.print_text(errmsg.format(confpath))
            config = None

    return config