viced: Add support for -config and -logfile options
authorMarc Dionne <marc.dionne@your-file-system.com>
Thu, 25 Apr 2013 13:26:46 +0000 (09:26 -0400)
committerJeffrey Altman <jaltman@your-file-system.com>
Sun, 2 Jun 2013 12:40:20 +0000 (05:40 -0700)
Add options to the fileserver to specify alternate locations for
the log file and the config.  This will be useful for testing
purposes.

Change-Id: I3550bd993fe5fd2cd9b90425962c95cb1c7d98ea
Reviewed-on: http://gerrit.openafs.org/9830
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

doc/man-pages/pod8/fragments/dafileserver-synopsis.pod
doc/man-pages/pod8/fragments/fileserver-options.pod
doc/man-pages/pod8/fragments/fileserver-synopsis.pod
src/viced/viced.c

index f1f633c..3a5aa3c 100644 (file)
@@ -56,3 +56,4 @@ B<dafileserver>
     S<<< [B<-unsafe-nosalvage>] >>>
     S<<< [B<-offline-timeout> <I<timeout in seconds>>] >>>
     S<<< [B<-offline-shutdown-timeout> <I<timeout in seconds>>] >>>
+    S<<< [B<-logfile <I<log file>>] >>> S<<< [B<-config <I<configuration path>>] >>>
index a35faa0..d2059ea 100644 (file)
@@ -426,3 +426,18 @@ any other option, whereas others argue that choosing anything besides the
 C<always> option allows for an unacceptable risk of data loss. This may
 depend on your usage patterns, your platform and filesystem, and who you talk
 to about this topic.
+
+=item B<-logfile> <I<log file>>
+
+Sets the file to use for server logging.  If logfile is not specified and
+no other logging options are supplied, this will be F</usr/afs/logs/FileLog>.
+Note that this option is intended for debugging and testing purposes.
+Changing the location of the log file from the command line may result
+in undesirable interactions with tools such as B<bos>.
+
+=item B<-config> <I<configuration directory>>
+
+Set the location of the configuration directory used to configure this
+service.  In a typical configuration this will be F</usr/afs/etc> - this
+option allows the use of alternative configuration locations for testing
+purposes.
index 1dc3188..e6210a5 100644 (file)
@@ -48,3 +48,4 @@ B<fileserver>
     S<<< [B<-offline-timeout> <I<timeout in seconds>>] >>>
     S<<< [B<-offline-shutdown-timeout> <I<timeout in seconds>>] >>>
     S<<< [B<-sync> <I<sync behavior>>] >>>
+    S<<< [B<-logfile <I<log file>>] >>> S<<< [B<-config <I<configuration path>>] >>>
index afffe53..10bd61d 100644 (file)
@@ -93,6 +93,7 @@ static afs_int32 Do_VLRegisterRPC(void);
 
 int eventlog = 0, rxlog = 0;
 FILE *debugFile;
+char *logFile = NULL;
 
 pthread_mutex_t fsync_glock_mutex;
 pthread_cond_t fsync_cond;
@@ -1161,12 +1162,16 @@ ParseArgs(int argc, char *argv[])
     cmd_AddParmAtOffset(opts, OPT_sync, "-sync",
                        CMD_SINGLE, CMD_OPTIONAL, "always | onclose | never");
 
+    /* testing options */
+    cmd_AddParmAtOffset(opts, OPT_logfile, "-logfile", CMD_SINGLE,
+           CMD_OPTIONAL, "location of log file");
+    cmd_AddParmAtOffset(opts, OPT_config, "-config", CMD_SINGLE,
+           CMD_OPTIONAL, "configuration location");
+
     code = cmd_Parse(argc, argv, &opts);
     if (code)
        return -1;
 
-    /* XXX - cmd_OptionAsString(opts, OPT_config, &configDir); */
-
     cmd_OpenConfigFile(AFSDIR_SERVER_CONFIG_FILE_FILEPATH);
     cmd_SetCommandName("fileserver");
 
@@ -1355,7 +1360,6 @@ ParseArgs(int argc, char *argv[])
     }
 
     cmd_OptionAsInt(opts, OPT_debug, &LogLevel);
-    /* XXX - cmd_OptionAsString(opts, OPT_logfile, &logFile); */
     cmd_OptionAsFlag(opts, OPT_mrafslogs, &mrafsStyleLogs);
 
     if (cmd_OptionAsInt(opts, OPT_threads, &lwps) == 0) {
@@ -1423,6 +1427,10 @@ ParseArgs(int argc, char *argv[])
        busy_threshold = 3 * rxpackets / 2;
     }
 
+    cmd_OptionAsString(opts, OPT_logfile, &logFile);
+    cmd_OptionAsString(opts, OPT_config, &FS_configPath);
+
+
     if (auditFileName)
        osi_audit_file(auditFileName);
 
@@ -1849,6 +1857,9 @@ main(int argc, char *argv[])
     /* check for the parameter file */
     CheckParms();
 
+    FS_configPath = strdup(AFSDIR_SERVER_ETC_DIRPATH);
+    logFile = strdup(AFSDIR_SERVER_FILELOG_FILEPATH);
+
     if (ParseArgs(argc, argv)) {
        exit(-1);
     }
@@ -1861,7 +1872,6 @@ main(int argc, char *argv[])
        exit(1);
     }
 #endif
-    FS_configPath = strdup(AFSDIR_SERVER_ETC_DIRPATH);
 
     confDir = afsconf_Open(FS_configPath);
     if (!confDir) {
@@ -1877,7 +1887,7 @@ main(int argc, char *argv[])
 #ifndef AFS_NT40_ENV
     serverLogSyslogTag = "fileserver";
 #endif
-    OpenLog(AFSDIR_SERVER_FILELOG_FILEPATH);
+    OpenLog(logFile);
     SetupLogSignals();
 
     LogCommandLine(argc, argv, "starting", "", "File server", FSLog);