root/branches/cu-security-branch/test/server/showconfig.c @ 8397

Revision 8397, 6.5 KB (checked in by nlmills, 3 years ago)

initial merge with Orange-Branch. much will be broken

Line 
1/*
2 * (C) 2001 Clemson University and The University of Chicago
3 *
4 * See COPYING in top-level directory.
5 */
6
7#include <stdio.h>
8#include <string.h>
9#include "trove.h"
10#include "pvfs2-storage.h"
11#include "server-config.h"
12#include "gossip.h"
13#include "pvfs2-internal.h"
14
15void print_filesystem_configuration(struct filesystem_configuration_s *fs);
16
17int main(int argc, char **argv)
18{
19    PINT_llist *cur = NULL;
20    struct server_configuration_s serverconfig;
21    struct host_alias_s *cur_alias;
22    struct filesystem_configuration_s *cur_fs = NULL;
23    int alias_count = 1;
24
25    if (argc != 3)
26    {
27        printf("Usage: %s <fs.conf> <server-alias>\n",argv[0]);
28        return 1;
29    }
30
31    gossip_enable_stderr();
32
33    memset(&serverconfig,0,sizeof(serverconfig));
34    if (PINT_parse_config(&serverconfig, argv[1], argv[2]))
35    {
36        printf("Failed to parse config files\n");
37        return 1;
38    }
39
40    /* dump all gathered config values */
41    fprintf(stderr,"--- Printing filesystem configuration\n\n");
42
43    fprintf(stderr,"Server ID                : %s\n",
44            serverconfig.host_id);
45    fprintf(stderr,"Data Storage Space            : %s\n",
46            serverconfig.data_path);
47    fprintf(stderr,"Meta Storage Space            : %s\n",
48            serverconfig.meta_path);
49    fprintf(stderr,"FS Config File Name      : %s (%d bytes)\n",
50            serverconfig.fs_config_filename,
51            (int)serverconfig.fs_config_buflen);
52    fprintf(stderr,"Initial Unexp Requests   : %d\n",
53            serverconfig.initial_unexpected_requests);
54    fprintf(stderr,"Configured Log File      : %s\n",
55            serverconfig.logfile);
56    fprintf(stderr,"Configured FlowModules : %s\n",
57            serverconfig.flow_modules);
58    fprintf(stderr,"Configured BMIModules : %s\n",
59            serverconfig.bmi_modules);
60    fprintf(stderr,"Event Logging Mask String: %s\n",
61            serverconfig.event_logging);
62
63    fprintf(stderr,"\n--- Host Aliases (alias => address):\n");
64    cur = serverconfig.host_aliases;
65    while(cur)
66    {
67        cur_alias = PINT_llist_head(cur);
68        if (!cur_alias)
69        {
70            break;
71        }
72
73        fprintf(stderr,"%.2d)  %s => %s\n", alias_count++,
74                cur_alias->host_alias, cur_alias->bmi_address);
75        cur = PINT_llist_next(cur);
76    }
77
78    fprintf(stderr,"\n");
79    cur = serverconfig.file_systems;
80    while(cur)
81    {
82        cur_fs = PINT_llist_head(cur);
83        if (!cur_fs)
84        {
85            break;
86        }
87        print_filesystem_configuration(cur_fs);
88        cur = PINT_llist_next(cur);
89    }
90
91    fprintf(stderr,"\n--- Analyzing filesystem configuration\n\n");
92    if (PINT_config_is_valid_configuration(&serverconfig))
93    {
94        fprintf(stderr,"\nOK: Configuration file is VALID\n");
95    }
96    else
97    {
98        fprintf(stderr,"\nERROR: Configuration file is INVALID\n");
99    }
100
101    PINT_config_release(&serverconfig);
102
103    gossip_disable();
104    return 0;
105}
106
107void print_filesystem_configuration(struct filesystem_configuration_s *fs)
108{
109    PINT_llist *cur = NULL;
110    struct host_handle_mapping_s *cur_h_mapping = NULL;
111
112    if (fs)
113    {
114        fprintf(stderr,"=========== Reporting FS \"%s\" Information "
115                "===========\n",fs->file_system_name);
116        fprintf(stderr,"Collection ID         : %d\n",fs->coll_id);
117        fprintf(stderr,"Root Handle           : %llu\n",
118                llu(fs->root_handle));
119        fprintf(stderr,"Handle Recycle Timeout: %d seconds\n",
120                (int)fs->handle_recycle_timeout_sec.tv_sec);
121        fprintf(stderr,"Trove Sync Meta       : %s\n",
122                ((fs->trove_sync_meta == TROVE_SYNC) ?
123                 "yes" : "no"));
124        fprintf(stderr,"Trove Sync Data       : %s\n",
125                ((fs->trove_sync_data == TROVE_SYNC) ?
126                 "yes" : "no"));
127        fprintf(stderr,"Flow Protocol         : ");
128        switch(fs->flowproto)
129        {
130            case FLOWPROTO_DUMP_OFFSETS:
131                fprintf(stderr,"flowproto_dump_offsets\n");
132                        break;
133            case FLOWPROTO_BMI_CACHE:
134                fprintf(stderr,"flowproto_bmi_cache\n");
135                        break;
136            case FLOWPROTO_MULTIQUEUE:
137                fprintf(stderr,"flowproto_multiqueue\n");
138                        break;
139            default:
140                fprintf(stderr,"Unknown (<== ERROR!)\n");
141                break;
142        }
143
144        fprintf(stderr,"\n  --- Meta Server(s) for %s (%d total):\n",
145                fs->file_system_name,PINT_llist_count(fs->meta_handle_ranges));
146        cur = fs->meta_handle_ranges;
147        while(cur)
148        {
149            cur_h_mapping = PINT_llist_head(cur);
150            if (!cur_h_mapping)
151            {
152                break;
153            }
154            fprintf(stderr,"    %s\n",
155                    cur_h_mapping->alias_mapping->host_alias);
156            cur = PINT_llist_next(cur);
157        }
158
159        fprintf(stderr,"\n  --- Data Server(s) for %s (%d total):\n",
160                fs->file_system_name,PINT_llist_count(fs->data_handle_ranges));
161        cur = fs->data_handle_ranges;
162        while(cur)
163        {
164            cur_h_mapping = PINT_llist_head(cur);
165            if (!cur_h_mapping)
166            {
167                break;
168            }
169            fprintf(stderr,"    %s\n",
170                    cur_h_mapping->alias_mapping->host_alias);
171            cur = PINT_llist_next(cur);
172        }
173
174        fprintf(stderr,"\n  --- Meta Handle Mappings for %s:\n",
175                fs->file_system_name);
176        cur = fs->meta_handle_ranges;
177        while(cur)
178        {
179            cur_h_mapping = PINT_llist_head(cur);
180            if (!cur_h_mapping)
181            {
182                break;
183            }
184            fprintf(stderr,"    %s has handle range %s\n",
185                    cur_h_mapping->alias_mapping->host_alias,
186                    cur_h_mapping->handle_range);
187            cur = PINT_llist_next(cur);
188        }
189
190        fprintf(stderr,"\n  --- Data Handle Mappings for %s:\n",
191                fs->file_system_name);
192        cur = fs->data_handle_ranges;
193        while(cur)
194        {
195            cur_h_mapping = PINT_llist_head(cur);
196            if (!cur_h_mapping)
197            {
198                break;
199            }
200            fprintf(stderr,"    %s has handle range %s\n",
201                    cur_h_mapping->alias_mapping->host_alias,
202                    cur_h_mapping->handle_range);
203            cur = PINT_llist_next(cur);
204        }
205    }
206}
207
208/*
209 * Local variables:
210 *  c-indent-level: 4
211 *  c-basic-offset: 4
212 * End:
213 *
214 * vim: ts=8 sts=4 sw=4 expandtab
215 */
Note: See TracBrowser for help on using the browser.