home *** CD-ROM | disk | FTP | other *** search
/ ftp.parl.clemson.edu / 2015-02-07.ftp.parl.clemson.edu.tar / ftp.parl.clemson.edu / pub / pvfs2 / orangefs-2.8.3-20110323.tar.gz / orangefs-2.8.3-20110323.tar / orangefs / test / server / showconfig.c < prev   
C/C++ Source or Header  |  2009-09-02  |  7KB  |  216 lines

  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.  
  15. void print_filesystem_configuration(struct filesystem_configuration_s *fs);
  16.  
  17. int 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.  
  107. void 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.  */
  216.