private void BuildConnectionWithAgent(XNodeConfiguration nodeConfig) { string serviceUrl = CheckAndFixServiceUrl(nodeConfig.ServiceUrl); string location = $"{serviceUrl}/realtime/v2/storage"; _connection = new HubConnectionBuilder() .AddJsonProtocol(opts => { opts.PayloadSerializerOptions.Converters.Add(new JsonStringEnumConverter()); }) .WithUrl($"{serviceUrl}/realtime/v2/storage", option => { var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); if (env == "Development") { option.HttpMessageHandlerFactory = (message) => { if (message is HttpClientHandler httpClientHandler) { httpClientHandler.ServerCertificateCustomValidationCallback += (sender, certificate, chain, sslPolicyErrors) => { return(true); } } ; return(message); }; } else { option.HttpMessageHandlerFactory = (message) => { if (message is HttpClientHandler httpClientHandler) { httpClientHandler.ClientCertificateOptions = ClientCertificateOption.Manual; httpClientHandler.SslProtocols = SslProtocols.Tls12; var certLocation = Path.Combine(SystemLocations.GetConfigCertificateDirectory(), nodeConfig.CertificateFile); httpClientHandler.ClientCertificates.Add(new X509Certificate2(certLocation, nodeConfig.CertificatePassword)); } return(message); }; } option.Headers["x-andyx-storage-name"] = dataStorageConfig.Name; option.Headers["x-andyx-storage-username"] = nodeConfig.Username; option.Headers["x-andyx-storage-password"] = nodeConfig.Password; option.Headers["x-andyx-storage-status"] = dataStorageConfig.Status.ToString(); option.Headers["x-andyx-storage-agent-id"] = agentId; option.Headers["x-andyx-storage-agent-max"] = agentConfiguration.MaxNumber.ToString(); option.Headers["x-andyx-storage-agent-min"] = agentConfiguration.MinNumber.ToString(); option.Headers["x-andyx-storage-agent-loadbalanced"] = agentConfiguration.LoadBalanced.ToString(); }) .WithAutomaticReconnect() .Build(); }
public void CreateConfigDirectories() { Directory.CreateDirectory(SystemLocations.GetDataDirectory()); Directory.CreateDirectory(SystemLocations.GetConfigNodesDirectory()); Directory.CreateDirectory(SystemLocations.GetConfigGeoReplicationDirectory()); Directory.CreateDirectory(SystemLocations.GetConfigCredentialsDirectory()); Directory.CreateDirectory(SystemLocations.GetConfigCertificateDirectory()); Directory.CreateDirectory(SystemLocations.GetStorageDirectory()); Directory.CreateDirectory(SystemLocations.GetTenantRootDirectory()); }
private void DoFileConfiguration() { if (Directory.Exists(SystemLocations.GetConfigDirectory()) && Directory.Exists(SystemLocations.GetStorageDirectory())) { return; } _logger.LogInformation("Importing Configuration"); _logger.LogWarning($"If configuration process failes make sure that user have access to write in this location {SystemLocations.GetRootDirectory()}"); _systemIOService.CreateConfigDirectories(); }
public static bool WriteCredentialsConfigurationFromFile(CredentialsConfiguration credentialsConfiguration) { if (File.Exists(SystemLocations.GetCredentialsConfigFile())) { File.Delete(SystemLocations.GetCredentialsConfigFile()); } try { File.WriteAllText(SystemLocations.GetCredentialsConfigFile(), credentialsConfiguration.ToJsonAndEncrypt()); return(true); } catch (System.Exception) { return(false); } }
public static bool WriteXNodesConfigurationFromFile(List <XNodeConfiguration> xNodes) { if (File.Exists(SystemLocations.GetNodesConfigFile())) { File.Delete(SystemLocations.GetNodesConfigFile()); } try { File.WriteAllText(SystemLocations.GetNodesConfigFile(), xNodes.ToJsonAndEncrypt()); return(true); } catch (System.Exception) { return(false); } }
private void UpdateDataStorageConfiguration() { DataStorageConfiguration newConfig = dataStorage; if (File.Exists(SystemLocations.GetStorageCredentialsConfigFile())) { var actualConfig = SystemConfigurationReader.ReadStorageConfigurationFromFile(); if (newConfig.Name != actualConfig.Name || newConfig.Status != actualConfig.Status) { SystemConfigurationWriter.WriteStorageConfigurationFromFile(newConfig); } } else { SystemConfigurationWriter.WriteStorageConfigurationFromFile(newConfig); } }
private void UpdateCredentials() { CredentialsConfiguration newConfig = credentials; if (File.Exists(SystemLocations.GetCredentialsConfigFile())) { var actualConfig = SystemConfigurationReader.ReadCredentialsConfigurationFromFile(); if (newConfig.Username != actualConfig.Username || newConfig.Password != actualConfig.Password) { SystemConfigurationWriter.WriteCredentialsConfigurationFromFile(newConfig); } } else { SystemConfigurationWriter.WriteCredentialsConfigurationFromFile(newConfig); } }
public static List <Consumer> ReadAllConsumers() { List <Consumer> consumersResult = new List <Consumer>(); if (Directory.Exists(SystemLocations.GetTenantRootDirectory()) != true) { return(consumersResult); } string[] tenants = Directory.GetDirectories(SystemLocations.GetTenantRootDirectory()); foreach (var tenantLocation in tenants) { // go on every product string tenant = Path.GetFileName(tenantLocation); string[] products = Directory.GetDirectories(TenantLocations.GetProductRootDirectory(tenant)); foreach (var productLocation in products) { string product = Path.GetFileName(productLocation); if (product == "logs") { continue; } string[] components = Directory.GetDirectories(TenantLocations.GetComponentRootDirectory(tenant, product)); foreach (var componentLocation in components) { string component = Path.GetFileName(componentLocation); string[] topics = Directory.GetDirectories(TenantLocations.GetTopicRootDirectory(tenant, product, component)); foreach (var topicLocation in topics) { string topic = Path.GetFileName(topicLocation); string[] consumers = Directory.GetDirectories(TenantLocations.GetConsumerRootDirectory(tenant, product, component, topic)); foreach (var consumerLocation in consumers) { string consumer = Path.GetFileName(consumerLocation); consumersResult.Add(ReadConsumerConfigFile(tenant, product, component, topic, consumer)); } } } } } return(consumersResult); }
private void UpdateXNodesConfiguration() { List <XNodeConfiguration> xNodes = nodes; if (File.Exists(SystemLocations.GetNodesConfigFile())) { xNodes = SystemConfigurationReader.ReadXNodesConfigurationFromFile(); foreach (var node in nodes) { var nodeExists = xNodes.Exists(x => x.ServiceUrl == node.ServiceUrl); if (nodeExists != true) { xNodes.Add(node); } } } SystemConfigurationWriter.WriteXNodesConfigurationFromFile(xNodes); }
public static CredentialsConfiguration ReadCredentialsConfigurationFromFile() { return(File.ReadAllText(SystemLocations.GetCredentialsConfigFile()).JsonToObjectAndDecrypt <CredentialsConfiguration>()); }
public static List <XNodeConfiguration> ReadXNodesConfigurationFromFile() { return(File.ReadAllText(SystemLocations.GetNodesConfigFile()).JsonToObjectAndDecrypt <List <XNodeConfiguration> >()); }