public static SqlDConfiguration SqlDGo(this Assembly startAssembly, SqlDConfiguration config = null) { var cfg = config ?? Configuration.SqlDConfig.Get(startAssembly); SqlD(cfg, startAssembly); return(cfg); }
public static void Set(Assembly entryAssembly, SqlDConfiguration config, string settingsFile = "appsettings.json") { lock (Synchronise) { var workingDirectory = entryAssembly.GetDirectory(); var settingsFilePath = Path.Combine(workingDirectory, settingsFile); var json = File.ReadAllText(settingsFilePath); var jsonInstance = JObject.Parse(json); jsonInstance["SqlD"] = JObject.Parse(JsonConvert.SerializeObject(config)); json = JsonConvert.SerializeObject(jsonInstance, Formatting.Indented); File.WriteAllText(settingsFilePath, json); } }
public static void SqlDStop(SqlDConfiguration config) { if (config == null) { throw new ArgumentNullException(nameof(config)); } foreach (var childProcess in ChildProcesses) { try { childProcess.Kill(); childProcess.Dispose(); } catch (Exception err) { Log.Out.Error(err.ToString()); } } foreach (var service in config.Services) { try { if (service.Listener != null) { service.DisposeListener(); } } catch (Exception err) { Log.Out.Error(err.ToString()); throw; } } }
private static void SqlD(SqlDConfiguration cfg, Assembly startAssembly) { if (cfg == null) { Log.Out.Warn($"Configuration is null, are you sure this is what you intended?"); return; } if (!cfg.Enabled) { return; } foreach (var registry in cfg.Registries) { Registry.GetOrAdd(registry.ToEndPoint()); } var registryEndPoints = cfg.Registries.Select(x => x.ToEndPoint()).ToList(); var serviceEndPointsThatAreRegistries = cfg.Services.Where(x => registryEndPoints.Contains(x.ToEndPoint())).ToList(); var serviceEndPointsThatAreNotRegistries = cfg.Services.Where(x => !registryEndPoints.Contains(x.ToEndPoint())).ToList(); foreach (var service in serviceEndPointsThatAreRegistries) { try { var client = NewClient(withRetries: false).ConnectedTo(service.ToEndPoint()); if (client.Ping()) { Log.Out.Warn($"Skipping the start of registry service '{service.ToEndPoint()}', already up!"); continue; } if (cfg.ProcessModel.Distributed) { ChildProcesses.Add(Process.Service.Start(startAssembly, service)); EndPointMonitor.WaitUntil(service.ToEndPoint(), EndPointIs.Up); } else { var listener = NewListener().Hosting(startAssembly, service.Name, service.Database, service.Pragma, service.ToEndPoint(), service.ForwardingTo.Select(x => x.ToEndPoint()).ToArray()); service.AddListener(listener); EndPointMonitor.WaitUntil(service.ToEndPoint(), EndPointIs.Up); Registry.Register(listener, string.Join(",", service.Tags)); } } catch (Exception err) { Console.WriteLine(err.ToString()); throw; } } foreach (var service in serviceEndPointsThatAreNotRegistries) { try { var client = NewClient(withRetries: false).ConnectedTo(service.ToEndPoint()); if (client.Ping()) { Log.Out.Warn($"Skipping the start of sql service '{service.ToEndPoint()}', already up!"); continue; } if (cfg.ProcessModel.Distributed) { ChildProcesses.Add(Process.Service.Start(startAssembly, service)); } else { var listener = NewListener().Hosting(startAssembly, service.Name, service.Database, service.Pragma, service.ToEndPoint(), service.ForwardingTo.Select(x => x.ToEndPoint()).ToArray()); service.AddListener(listener); Registry.Register(listener, string.Join(",", service.Tags)); } } catch (Exception err) { Console.WriteLine(err.ToString()); throw; } } }
public void Set(SqlDConfiguration config) { SqlDConfig.Set(typeof(ConfigService).Assembly, config); }
public IdController(EndPoint serverAddress, SqlDConfiguration configuration) { authorityAddress = new EndPoint(configuration.Authority, serverAddress.Port); }
public ServiceViewModel(SqlDConfiguration config, List <RegistryEntryViewModel> registryEntries) { Config = config; RegistryEntries = registryEntries; }
public SurfaceViewModel(SqlDConfiguration config) { Config = config; }
public RegistryController(DbConnection dbConnection, EndPoint serverAddress, SqlDConfiguration configuration) { this.dbConnection = dbConnection; this.dbConnection.CreateTable <RegistryEntry>(); this.authorityAddress = new EndPoint(configuration.Authority, serverAddress.Port); }