Пример #1
0
static int __parse_sysconf(char *path, NodeSysConfig *s)
{
    if (s == NULL)
        return NODE_CONFIG_RET_ERR_UNKNOWN;

    if (file_not_exist(path))
        return 0;

    struct collection_item *ini_config = NULL;
    struct collection_item *error_set = NULL;

    if (config_from_file(PROGRAM_NAME, path,
                         &ini_config, INI_STOP_ON_ANY, &error_set)){
        logsimple(_("error while reading %s\n"), path);
        return NODE_CONFIG_RET_ERR_CONF;
    }

    if (__parse_oneitem_str("LYCLC_HOST", &s->clc_ip,
                             0, ini_config) ||
        __parse_oneitem_int("LYCLC_PORT", &s->clc_port,
                             ini_config) ||
        __parse_oneitem_int("LYNODE_TAG", &s->node_tag,
                             ini_config) ||
        __parse_oneitem_str("LYNODE_SECRET", &s->node_secret,
                             0, ini_config))
        return NODE_CONFIG_RET_ERR_CONF;

    if (ini_config)
        free_ini_config(ini_config);

    if (error_set)
        free_ini_config_errors(error_set);

    return 0;
}
Пример #2
0
static int __parse_config(CLCConfig * c)
{
    if (c == NULL)
        return CLC_CONFIG_RET_ERR_UNKNOWN;

    if (file_not_exist(c->conf_path))
        return CLC_CONFIG_RET_ERR_NOCONF;

    struct collection_item *ini_config = NULL;
    struct collection_item *error_set = NULL;

    if (config_from_file(PROGRAM_NAME, c->conf_path,
                         &ini_config, INI_STOP_ON_ANY, &error_set)) {
        logsimple(_("error while reading %s\n"), c->conf_path);
        return CLC_CONFIG_RET_ERR_CONF;
    }

    if (__parse_oneitem_str("LYCLC_MCAST_IP", &c->clc_mcast_ip,
                            0, ini_config) ||
        __parse_oneitem_int("LYCLC_MCAST_PORT", &c->clc_mcast_port,
                            ini_config) ||
        __parse_oneitem_str("LYCLC_DATA_DIR", &c->clc_data_dir,
                            0, ini_config) ||
        __parse_oneitem_str("LYCLC_PID_PATH", &c->pid_path,
                            0, ini_config) ||
        __parse_oneitem_int("LYCLC_NODE_CPU_FACTOR", &c->node_cpu_factor,
                            ini_config) ||
        __parse_oneitem_int("LYCLC_NODE_MEM_FACTOR", &c->node_mem_factor,
                            ini_config) ||
        __parse_oneitem_str("LYCLC_VM_NAME_PREFIX", &c->vm_name_prefix,
                            0, ini_config) ||
        __parse_oneitem_int("LYCLC_NODE_STORAGE_LOW", &c->node_storage_low,
                            ini_config) ||
        __parse_oneitem_int("LYCLC_NODE_SELECT", &c->node_select,
                            ini_config) ||
        __parse_oneitem_int("LYCLC_JOB_TIMEOUT_INSTANCE", &c->job_timeout_instance,
                            ini_config) ||
        __parse_oneitem_int("LYCLC_JOB_TIMEOUT_NODE", &c->job_timeout_node,
                            ini_config))
        return CLC_CONFIG_RET_ERR_CONF;

    if ((c->clc_ip == NULL && __parse_oneitem_str("LYCLC_IP", &c->clc_ip, 0, ini_config)) ||
        (c->clc_port == 0 && __parse_oneitem_int("LYCLC_PORT", &c->clc_port, ini_config)) ||
        (c->db_name == NULL && __parse_oneitem_str("LYCLC_DB_NAME", &c->db_name, 0, ini_config)) ||
        (c->db_user == NULL && __parse_oneitem_str("LYCLC_DB_USERNAME", &c->db_user, 0, ini_config)) ||
        (c->db_pass == NULL && __parse_oneitem_str("LYCLC_DB_PASSWORD", &c->db_pass, 0, ini_config)))
        return CLC_CONFIG_RET_ERR_CONF;

    if (c->daemon == UNDEFINED_CFG_INT) {
        if (__parse_oneitem_int("LYCLC_DAEMON", &c->daemon, ini_config))
            return CLC_CONFIG_RET_ERR_CONF;
    }
    if (c->debug == UNDEFINED_CFG_INT) {
        if (__parse_oneitem_int("LYCLC_DEBUG", &c->debug, ini_config))
            return CLC_CONFIG_RET_ERR_CONF;
    }
    if (c->log_path == NULL) {
        if (__parse_oneitem_str
            ("LYCLC_LOG_PATH", &c->log_path, 0, ini_config))
            return CLC_CONFIG_RET_ERR_CONF;
    }
    if (c->web_conf_path == NULL) {
        if (__parse_oneitem_str
            ("LYWEB_CONF_PATH", &c->web_conf_path, 0, ini_config))
            return CLC_CONFIG_RET_ERR_CONF;
    }

    if (ini_config)
        free_ini_config(ini_config);

    if (error_set)
        free_ini_config_errors(error_set);

    return 0;
}
Пример #3
0
static int __parse_config(NodeConfig *c)
{
    if (c == NULL)
        return NODE_CONFIG_RET_ERR_UNKNOWN;

    if (file_not_exist(c->conf_path))
        return NODE_CONFIG_RET_ERR_NOCONF;

    struct collection_item *ini_config = NULL;
    struct collection_item *error_set = NULL;
 
    if (config_from_file(PROGRAM_NAME, c->conf_path,
                             &ini_config, INI_STOP_ON_ANY, &error_set)){
        logsimple(_("error while reading %s\n"), c->conf_path);
        return NODE_CONFIG_RET_ERR_CONF;
    }

    char * driver = NULL;
    char * auto_connect = NULL;
    if (__parse_oneitem_str("LYNODE_SYSCONF_PATH", &c->sysconf_path, 
                             0, ini_config) || 
        __parse_oneitem_str("LYNODE_DRIVER", &driver, 
                             0, ini_config) || 
        __parse_oneitem_str("LYCLC_AUTO_CONNECT", &auto_connect, 
                             0, ini_config) || 
        __parse_oneitem_str("LYCLC_HOST", &c->clc_ip,
                             0, ini_config) || 
        __parse_oneitem_int("LYCLC_PORT", &c->clc_port, 
                             ini_config) || 
        __parse_oneitem_str("LYCLC_MCAST_IP", &c->clc_mcast_ip, 
                             0, ini_config) || 
        __parse_oneitem_int("LYCLC_MCAST_PORT", &c->clc_mcast_port, 
                             ini_config) || 
        __parse_oneitem_str("LYOSM_CONF_PATH", &c->osm_conf_path,
                             0, ini_config) || 
        __parse_oneitem_str("LYOSM_KEY_PATH", &c->osm_key_path,
                             0, ini_config) || 
        __parse_oneitem_str("LYNODE_PID_PATH", &c->pid_path,
                             0, ini_config) || 
        __parse_oneitem_str("LYNODE_VM_TEMPLATE", &c->vm_template_path,
                             0, ini_config) || 
        __parse_oneitem_str("LYNODE_VM_NET_NAT_TEMPLATE", &c->vm_template_net_nat_path,
                             0, ini_config) || 
        __parse_oneitem_str("LYNODE_VM_NET_BRIDGE_TEMPLATE", &c->vm_template_net_br_path,
                             0, ini_config) || 
        __parse_oneitem_str("LYNODE_VM_DISK_TEMPLATE", &c->vm_template_disk_path,
                             0, ini_config) || 
        __parse_oneitem_str("LYNODE_NET_PRIMARY", &c->net_primary,
                             0, ini_config) || 
        __parse_oneitem_str("LYNODE_NET_SERCONDARY", &c->net_secondary,
                             0, ini_config) || 
        __parse_oneitem_str("LYNODE_DATA_DIR", &c->node_data_dir, 
                             0, ini_config))
        return NODE_CONFIG_RET_ERR_CONF;

    /* value conversion */
    if (driver != NULL) {
        if (strcasecmp(driver, "KVM") == 0)
            c->driver = HYPERVISOR_IS_KVM;
        else if (strcasecmp(driver, "XEN") == 0)
            c->driver = HYPERVISOR_IS_XEN;
        else
            c->driver = HYPERVISOR_IS_UNKNOWN;
        free(driver);
    }
    if (auto_connect != NULL) {
        if (strcasecmp(auto_connect, "ALWAYS") == 0)
            c->auto_connect = ALWAYS;
        else if (strcasecmp(auto_connect, "ONCE") == 0)
            c->auto_connect = ONCE;
        else if (strcasecmp(auto_connect, "DISABLE") == 0)
            c->auto_connect = DISABLE;
        else {
            logsimple(_("unrecognized value for LYCLC_AUTO_CONNECT %s\n"), auto_connect);
            return NODE_CONFIG_RET_ERR_CONF;
        }
        free(auto_connect);
    }
    if (c->daemon == UNDEFINED_CFG_INT) {
        if (__parse_oneitem_int("LYNODE_DAEMON", &c->daemon, ini_config))
            return NODE_CONFIG_RET_ERR_CONF;
    }
    if (c->debug == UNDEFINED_CFG_INT) {
        if (__parse_oneitem_int("LYNODE_DEBUG", &c->debug, ini_config))
            return NODE_CONFIG_RET_ERR_CONF;
    }
    if (c->log_path == NULL) {
        if (__parse_oneitem_str("LYNODE_LOG_PATH", &c->log_path, 0, ini_config))
            return NODE_CONFIG_RET_ERR_CONF;
    }

    if (ini_config) 
        free_ini_config(ini_config);
 
    if (error_set)
        free_ini_config_errors(error_set);

    return 0;
}
Пример #4
0
static int __parse_config(CLCConfig * c)
{
    if (c == NULL)
        return CLC_CONFIG_RET_ERR_UNKNOWN;

    if (file_not_exist(c->conf_path))
        return CLC_CONFIG_RET_ERR_NOCONF;

    struct collection_item *ini_config = NULL;
    struct collection_item *error_set = NULL;

    if (config_from_file(PROGRAM_NAME, c->conf_path,
                         &ini_config, INI_STOP_ON_ANY, &error_set)) {
        logsimple(_("error while reading %s\n"), c->conf_path);
        return CLC_CONFIG_RET_ERR_CONF;
    }

    if (__parse_oneitem_str("LYCLC_MCAST_IP", &c->clc_mcast_ip,
                            0, ini_config) ||
        __parse_oneitem_int("LYCLC_MCAST_PORT", &c->clc_mcast_port,
                            ini_config) ||
        __parse_oneitem_str("LYCLC_IP", &c->clc_ip,
                            0, ini_config) ||
        __parse_oneitem_int("LYCLC_PORT", &c->clc_port,
                            ini_config) ||
        __parse_oneitem_str("LYCLC_DATA_DIR", &c->clc_data_dir,
                            0, ini_config) ||
        __parse_oneitem_str("LYCLC_PID_PATH", &c->pid_path,
                            0, ini_config) ||
        __parse_oneitem_int("LYCLC_NODE_CPU_FACTOR", &c->node_cpu_factor,
                            ini_config) ||
        __parse_oneitem_int("LYCLC_NODE_MEM_FACTOR", &c->node_mem_factor,
                            ini_config) ||
        __parse_oneitem_str("LYCLC_DB_NAME", &c->db_name,
                            0, ini_config) ||
        __parse_oneitem_str("LYCLC_DB_USERNAME", &c->db_user,
                            0, ini_config) ||
        __parse_oneitem_str("LYCLC_DB_PASSWORD", &c->db_pass,
                            0, ini_config))
        return CLC_CONFIG_RET_ERR_CONF;

    if (c->daemon == UNDEFINED_CFG_INT) {
        if (__parse_oneitem_int("LYCLC_DAEMON", &c->daemon, ini_config))
            return CLC_CONFIG_RET_ERR_CONF;
    }
    if (c->debug == UNDEFINED_CFG_INT) {
        if (__parse_oneitem_int("LYCLC_DEBUG", &c->debug, ini_config))
            return CLC_CONFIG_RET_ERR_CONF;
    }
    if (c->log_path == NULL) {
        if (__parse_oneitem_str
            ("LYCLC_LOG_PATH", &c->log_path, 0, ini_config))
            return CLC_CONFIG_RET_ERR_CONF;
    }

    if (ini_config)
        free_ini_config(ini_config);

    if (error_set)
        free_ini_config_errors(error_set);

    return 0;
}