示例#1
0
int main(int argc, char **argv)
{
    int ret = -1;

    /* all parameters read in from fs.conf */
    struct server_configuration_s server_config;
    PINT_llist_p fs_configs;
    char *server_alias;
    
    /* make sure that the buffers we intend to use for reading keys and
     * values is at least large enough to hold the maximum size of xattr keys
     * and values
     */
    if(DEF_KEY_SIZE < PVFS_REQ_LIMIT_KEY_LEN)
    {
        DEF_KEY_SIZE = PVFS_REQ_LIMIT_KEY_LEN;
    }
    if(DEF_DATA_SIZE < PVFS_REQ_LIMIT_VAL_LEN)
    {
        DEF_DATA_SIZE = PVFS_REQ_LIMIT_VAL_LEN;
    }

    if (parse_args(argc, argv, &opts))
    {
	fprintf(stderr,"%s: error: argument parsing failed.\n",
                argv[0]);
	return -1;
    }

    if(opts.alias_set)
    {
        server_alias = opts.alias;
    }
    else
    {
        server_alias = PINT_util_guess_alias();
    }

    ret = PINT_parse_config(&server_config, opts.fs_conf, server_alias);
    if(ret < 0)
    {
        gossip_err("Error: Please check your config files.\n");
        if(!opts.alias_set)
        {
            free(server_alias);
        }
        return -1;
    }

    if(!opts.alias_set)
    {
        free(server_alias);
    }

    if(opts.all_set)
    {
        /* get all the collection ids from the fs config */
        fs_configs = PINT_config_get_filesystems(&server_config);
        
    }
    else
    {
        /* get the collection id from the specified fs name */
        PVFS_fs_id fs_id = PINT_config_get_fs_id_by_fs_name(
            &server_config, opts.fs);
        fs_configs = PINT_llist_new();
        PINT_llist_add_to_head(
            fs_configs, 
            (void *)PINT_config_find_fs_id(&server_config, fs_id));
    }

    ret = PINT_llist_doall_arg(fs_configs, migrate_collection, &server_config);
    if(ret < 0)
    {
        PINT_config_release(&server_config);
        if(!opts.all_set)
        {
            PINT_llist_free(fs_configs, fs_config_dummy_free);
        }

        return(-1);
    }
   
    return 0;
}
示例#2
0
int main(int argc, char **argv)
{
    PINT_llist *cur = NULL;
    struct server_configuration_s serverconfig;
    struct host_alias_s *cur_alias;
    struct filesystem_configuration_s *cur_fs = NULL;
    int alias_count = 1;

    if (argc != 3)
    {
        printf("Usage: %s <fs.conf> <server-alias>\n",argv[0]);
        return 1;
    }

    gossip_enable_stderr();

    memset(&serverconfig,0,sizeof(serverconfig));
    if (PINT_parse_config(&serverconfig, argv[1], argv[2], 1))
    {
        printf("Failed to parse config files\n");
        return 1;
    }

    /* dump all gathered config values */
    fprintf(stderr,"--- Printing filesystem configuration\n\n");

    fprintf(stderr,"Server ID                : %s\n",
            serverconfig.host_id);
    fprintf(stderr,"Data Storage Space            : %s\n",
            serverconfig.data_path);
    fprintf(stderr,"Meta Storage Space            : %s\n",
            serverconfig.meta_path);
    fprintf(stderr,"FS Config File Name      : %s (%d bytes)\n",
            serverconfig.fs_config_filename,
            (int)serverconfig.fs_config_buflen);
    fprintf(stderr,"Initial Unexp Requests   : %d\n",
            serverconfig.initial_unexpected_requests);
    fprintf(stderr,"Configured Log File      : %s\n",
            serverconfig.logfile);
    fprintf(stderr,"Configured FlowModules : %s\n",
            serverconfig.flow_modules);
    fprintf(stderr,"Configured BMIModules : %s\n",
            serverconfig.bmi_modules);
    fprintf(stderr,"Event Logging Mask String: %s\n",
            serverconfig.event_logging);

    fprintf(stderr,"\n--- Host Aliases (alias => address):\n");
    cur = serverconfig.host_aliases;
    while(cur)
    {
        cur_alias = PINT_llist_head(cur);
        if (!cur_alias)
        {
            break;
        }

        fprintf(stderr,"%.2d)  %s => %s\n", alias_count++,
                cur_alias->host_alias, cur_alias->bmi_address);
        cur = PINT_llist_next(cur);
    }

    fprintf(stderr,"\n");
    cur = serverconfig.file_systems;
    while(cur)
    {
        cur_fs = PINT_llist_head(cur);
        if (!cur_fs)
        {
            break;
        }
        print_filesystem_configuration(cur_fs);
        cur = PINT_llist_next(cur);
    }

    fprintf(stderr,"\n--- Analyzing filesystem configuration\n\n");
    if (PINT_config_is_valid_configuration(&serverconfig))
    {
        fprintf(stderr,"\nOK: Configuration file is VALID\n");
    }
    else
    {
        fprintf(stderr,"\nERROR: Configuration file is INVALID\n");
    }

    PINT_config_release(&serverconfig);

    gossip_disable();
    return 0;
}