public ConfigurationSettings InitializeDatacenter(string id, ConfigurationSettings settings) { var configSet = GetConfigSet(id); var env = environmentTasks.GetEnvironment(configSet.Id + "-" + settings.Environment); env.CreateDataCenterKeyProperties(this.Repository, settings); Repository.SaveChanges(); var subPar = env.EnsureDataCentersKey(Repository, settings); subPar.AddNewDataCenter(Repository, settings); env.ConfigSet.GetUris(Repository, settings); return settings; }
public ConfigurationSettings PublishDatacenter(string id, ConfigurationSettings settings) { //var configSet = GetConfigSet(id); var env = environmentTasks.GetEnvironment(id + "-" + settings.Environment); if (settings.DatabaseKeyName.ContainsCharacters()) { var database = environmentTasks.GetEnvironmentParameter(env.Id + "-" + settings.DatabaseKeyName); database.SetValue(settings.DatabaseAccessKey); environmentTasks.UpdateEnvironmentParameter(database); } if (settings.ReplicationBusKeyName.ContainsCharacters()) { var replicationBus = environmentTasks.GetEnvironmentParameter(env.Id + "-" + settings.ReplicationBusKeyName); replicationBus.SetValue(settings.ReplicationBusAccessKey); environmentTasks.UpdateEnvironmentParameter(replicationBus); } if (settings.ServiceBusKeyName.ContainsCharacters()) { var database = environmentTasks.GetEnvironmentParameter(env.Id + "-" + settings.ServiceBusKeyName); database.SetValue(settings.ServiceBusAccessKey); environmentTasks.UpdateEnvironmentParameter(database); } Repository.SaveChanges(); return settings; }
public static void GetUris(this IConfigSet configSet, ConfigurationContext context, ConfigurationSettings settings) { settings.ReplicationBusUri = string.Format( configSet.ServiceHosts.Single(s => s.Name == settings.DataCenterServiceHostName) .GetRawConfigData(settings.Environment) .GetConfigParameter(settings.ReplicationUriBusKeyName), settings.DataCenterName, "<KEY>"); settings.ServiceBusUri = string.Format( configSet.ServiceHosts.Single(s => s.Name == settings.DataCenterServiceHostName) .GetRawConfigData(settings.Environment) .GetConfigParameter(settings.ServiceBusUriKeyName), settings.DataCenterName, "<KEY>"); settings.DatabaseUri = string.Format( configSet.ServiceHosts.Single(s => s.Name == settings.DataCenterServiceHostName) .GetRawConfigData(settings.Environment) .GetConfigParameter(settings.DatabaseUriKeyName), settings.DataCenterName, "<KEY>"); }
public static void CreateDataCenterKeyProperties(this IEnvironment env, ConfigurationContext context, ConfigurationSettings settings) { if (settings.ReplicationBusKeyName.ContainsCharacters()) { if (env.EnvironmentParameters.All(s => s.Name != settings.ReplicationBusKeyName)) { env.CreateParameters(context, settings.ReplicationBusKeyName, true); context.SaveChanges(); } } if (settings.ServiceBusKeyName.ContainsCharacters()) { if (env.EnvironmentParameters.All(s => s.Name != settings.ServiceBusKeyName)) { env.CreateParameters(context, settings.ServiceBusKeyName, true); context.SaveChanges(); } } if (settings.DatabaseKeyName.ContainsCharacters()) { if (env.EnvironmentParameters.All(s => s.Name != settings.DatabaseKeyName)) { env.CreateParameters(context, settings.DatabaseKeyName, true); context.SaveChanges(); } } EnsureUriFormat(settings.ReplicationBusNamespaceFormat, settings.ReplicationUriBusKeyName, settings, env.ConfigSet, context); EnsureUriFormat(settings.DatabaseUriFormat, settings.DatabaseUriKeyName, settings, env.ConfigSet, context); EnsureUriFormat(settings.ServiceBusNamespaceFormat, settings.ServiceBusUriKeyName, settings, env.ConfigSet, context); }
public static void AddNewDataCenter(this ISubstitutionParameter envParam, ConfigurationContext context, ConfigurationSettings settings) { List <string> datacenters = new List <string>(); if (envParam.IsNull()) { throw new InvalidDataException("new parameter not found???"); } datacenters = envParam.ItemValue.ContainsCharacters()?envParam.ItemValue.Split('|').ToList():new List <string>(); if (!datacenters.Contains(settings.DataCenterName)) { datacenters.Add(settings.DataCenterName); } envParam.ItemValue = string.Join("|", datacenters); context.SaveChanges(); settings.DataCenterList = datacenters; Logging.DebugMessage("Added new datacenter {0}", string.Join("|", datacenters)); }
public static ISubstitutionParameter EnsureDataCentersKey(this IEnvironment env, ConfigurationContext context, ConfigurationSettings settings) { var serviceHost = env.ConfigSet.ServiceHosts.SingleOrDefault(sh => sh.Name == settings.DataCenterServiceHostName); var datacentersKey = serviceHost.Parameters.SingleOrDefault(shp => string.Equals(shp.Name, "datacenters", StringComparison.OrdinalIgnoreCase)); if (datacentersKey.IsNull()) { datacentersKey = serviceHost.CreateParameter(context, "datacenters", false, true); datacentersKey.ItemValue = "{0}"; if (datacentersKey.IsEnvironmental) { foreach (var environment in serviceHost.ConfigSet.Environments) { environment.CreateSubstitutionParameters(context, serviceHost.Name + "_" + datacentersKey.Name); } } } var envParam = env.SubstitutionParameters.SingleOrDefault(p => p.Name == GetDataCentersEnvironmentKey(datacentersKey)); if (envParam.IsNull()) { envParam = env.CreateSubstitutionParameters(context, GetDataCentersEnvironmentKey(datacentersKey)); } Logging.DebugMessage("created datacenter keys for {0} in {1}", settings.DataCenterServiceHostName, settings.Environment); return(envParam); }
private static void EnsureUriFormat(string format, string propertyName, ConfigurationSettings settings, IConfigSet configSet, ConfigurationContext context) { var hostSettings = configSet.ServiceHosts.Single(s => String.Equals(s.Name, settings.DataCenterServiceHostName, StringComparison.OrdinalIgnoreCase)); var param = hostSettings.Parameters.SingleOrDefault(p => string.Equals(p.Name, propertyName, StringComparison.OrdinalIgnoreCase)); if (param.IsNull()) { param=hostSettings.CreateParameter(context, propertyName, false, true); param.ItemValue = "{0}"; if (param.IsEnvironmental) { foreach (var environment in hostSettings.ConfigSet.Environments) { environment.CreateSubstitutionParameters(context, hostSettings.Name + "_" + param.Name); } } } var env = configSet.Environments.Single(e => e.Name == settings.Environment); var subPar = env.SubstitutionParameters.SingleOrDefault(sp => sp.Name == hostSettings.Name + "_" + propertyName); if (subPar.IsNull()) { subPar = env.CreateSubstitutionParameters(context, hostSettings.Name + "_" + propertyName); } subPar.ItemValue = format; context.SaveChanges(); }
public static void CreateDataCenterKeyProperties(this IEnvironment env, ConfigurationContext context, ConfigurationSettings settings) { if (settings.ReplicationBusKeyName.ContainsCharacters()) { if(env.EnvironmentParameters.All(s => s.Name != settings.ReplicationBusKeyName)) { env.CreateParameters(context, settings.ReplicationBusKeyName, true); context.SaveChanges(); } } if (settings.ServiceBusKeyName.ContainsCharacters()) { if (env.EnvironmentParameters.All(s => s.Name != settings.ServiceBusKeyName)) { env.CreateParameters(context, settings.ServiceBusKeyName, true); context.SaveChanges(); } } if (settings.DatabaseKeyName.ContainsCharacters()) { if (env.EnvironmentParameters.All(s => s.Name != settings.DatabaseKeyName)) { env.CreateParameters(context, settings.DatabaseKeyName, true); context.SaveChanges(); } } EnsureUriFormat(settings.ReplicationBusNamespaceFormat, settings.ReplicationUriBusKeyName, settings, env.ConfigSet,context); EnsureUriFormat(settings.DatabaseUriFormat, settings.DatabaseUriKeyName, settings, env.ConfigSet, context); EnsureUriFormat(settings.ServiceBusNamespaceFormat, settings.ServiceBusUriKeyName, settings, env.ConfigSet, context); }
public static void GetUris(this IConfigSet configSet, ConfigurationContext context, ConfigurationSettings settings) { settings.ReplicationBusUri = string.Format( configSet.ServiceHosts.Single(s => s.Name == settings.DataCenterServiceHostName) .GetRawConfigData(settings.Environment) .GetConfigParameter(settings.ReplicationUriBusKeyName), settings.DataCenterName, "<KEY>"); settings.ServiceBusUri = string.Format( configSet.ServiceHosts.Single(s => s.Name == settings.DataCenterServiceHostName) .GetRawConfigData(settings.Environment) .GetConfigParameter(settings.ServiceBusUriKeyName), settings.DataCenterName,"<KEY>"); settings.DatabaseUri = string.Format( configSet.ServiceHosts.Single(s => s.Name == settings.DataCenterServiceHostName) .GetRawConfigData(settings.Environment) .GetConfigParameter(settings.DatabaseUriKeyName), settings.DataCenterName, "<KEY>"); }
public static ISubstitutionParameter EnsureDataCentersKey(this IEnvironment env, ConfigurationContext context, ConfigurationSettings settings) { var serviceHost = env.ConfigSet.ServiceHosts.SingleOrDefault(sh => sh.Name == settings.DataCenterServiceHostName); var datacentersKey = serviceHost.Parameters.SingleOrDefault(shp => string.Equals(shp.Name, "datacenters", StringComparison.OrdinalIgnoreCase)); if (datacentersKey.IsNull()) { datacentersKey = serviceHost.CreateParameter(context, "datacenters", false, true); datacentersKey.ItemValue = "{0}"; if (datacentersKey.IsEnvironmental) { foreach (var environment in serviceHost.ConfigSet.Environments) { environment.CreateSubstitutionParameters(context, serviceHost.Name + "_" + datacentersKey.Name); } } } var envParam = env.SubstitutionParameters.SingleOrDefault(p => p.Name == GetDataCentersEnvironmentKey(datacentersKey)); if (envParam.IsNull()) envParam = env.CreateSubstitutionParameters(context,GetDataCentersEnvironmentKey(datacentersKey)); Logging.DebugMessage("created datacenter keys for {0} in {1}",settings.DataCenterServiceHostName,settings.Environment); return envParam; }
public static void AddNewDataCenter(this ISubstitutionParameter envParam, ConfigurationContext context, ConfigurationSettings settings) { List<string> datacenters = new List<string>(); if (envParam.IsNull()) { throw new InvalidDataException("new parameter not found???"); } datacenters = envParam.ItemValue.ContainsCharacters()?envParam.ItemValue.Split('|').ToList():new List<string>(); if(!datacenters.Contains(settings.DataCenterName)) datacenters.Add(settings.DataCenterName); envParam.ItemValue = string.Join("|", datacenters); context.SaveChanges(); settings.DataCenterList = datacenters; Logging.DebugMessage("Added new datacenter {0}", string.Join("|", datacenters)); }