public static void TryMakeDefaultConfig(string directory, string file) { if (!Directory.Exists(directory)) { try { Directory.CreateDirectory(directory); } catch (Exception e) { throw new Exception(String.Format("Could not make directory {0} although it doesnt exists {1}", directory, e.Message)); } } string configfile = String.Format("{0}\\{1}", directory, file); var influxconfig = new InfluxCollectConfig(); if (!File.Exists(configfile)) { try { influxconfig.WriteToFile(configfile); } catch (Exception e) { throw new Exception(String.Format("Could not write default config file {0} error {1}", configfile, e.Message)); } } }
public static InfluxCollectConfig ReadFromFile(string file) { var ser = new DataContractJsonSerializer(typeof(InfluxCollectConfig)); Stream stream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read); InfluxCollectConfig config = (InfluxCollectConfig)ser.ReadObject(stream); stream.Close(); return(config); }
static void MakeDefConfig() { string directory = InfluxCollectConfig.GetDefaultPath(); string filename = InfluxCollectConfig.GetDefaultConfigFileName(); string configfile = String.Format("{0}\\{1}", directory, filename); //if there is no config, just make one from scratch try { InfluxCollectConfig.TryMakeDefaultConfig(directory, filename); } catch (Exception e) { System.Console.WriteLine("Got error " + e.Message); } }
protected override void OnStart(string[] args) { if (!EventLog.SourceExists(sSource)) { EventLog.CreateEventSource(sSource, sLog); } WriteEntryInLog(String.Format("Starting by reading config")); string directory = InfluxCollectConfig.GetDefaultPath(); string filename = InfluxCollectConfig.GetDefaultConfigFileName(); string configfile = String.Format("{0}\\{1}", directory, filename); //if there is no config, just make one from scratch try { InfluxCollectConfig.TryMakeDefaultConfig(directory, filename); } catch (Exception e) { WriteEntryInLog(e.Message); } this.influxconfig = new InfluxCollectConfig(); if (File.Exists(configfile)) { try { this.influxconfig = InfluxCollectConfig.ReadFromFile(configfile); } catch (Exception e) { WriteEntryInLog(String.Format("Could not read config file {0} error {1}", configfile, e.Message)); } } try { psinstance = PowerShell.Create(); psinstance.AddScript("if ( (Get-PSSnapin -Name VeeamPSSnapIn -ErrorAction SilentlyContinue) -eq $null ) { Add-PSSnapin VeeamPSSnapIn;}"); psinstance.Invoke(); if (psinstance.Streams.Error.Count > 0) { throw new Exception("Error loading ps : " + psinstance.Streams.Error[0].ToString()); } else { psinstance.Streams.ClearStreams(); } thread = new Thread(WorkThread); thread.Name = "Main Thread"; thread.IsBackground = true; thread.Start(); } catch (Exception e) { runningLock.EnterWriteLock(); this.state = ServiceState.ForceStop; runningLock.ExitWriteLock(); WriteEntryInLog(String.Format("Error on preloading, make sure you are running on a backup server {0}", e.Message)); this.Stop(); } }