public override void Configure(ConfigParams config) { _connectionConfigParams = ConfigParams.FromTuples( "Table", config.GetAsNullableString("table"), "DefaultEndpointsProtocol", config.GetAsNullableString("connection.protocol"), "AccountName", config.GetAsNullableString("credential.access_id"), "AccountKey", config.GetAsNullableString("credential.access_key")); }
public override void Configure(ConfigParams config) { base.Configure(config); _openApiContent = config.GetAsNullableString("openapi_content"); _openApiFile = config.GetAsNullableString("openapi_file"); _openApiResource = config.GetAsNullableString("openapi_resource"); }
public static ComponentConfig FromConfig(ConfigParams config) { var descriptor = Descriptor.FromString(config.GetAsNullableString("descriptor")); var type = TypeDescriptor.FromString(config.GetAsNullableString("type")); if (descriptor == null && type == null) { throw new ConfigException(null, "BAD_CONFIG", "Component configuration must have descriptor or type"); } return(new ComponentConfig(descriptor, type, config)); }
private async Task MsSqlWithSshOpenAsync(string correlationId) { var sshHost = _sshConfigs.GetAsNullableString("host"); var sshUsername = _sshConfigs.GetAsNullableString("username"); var sshPassword = _sshConfigs.GetAsNullableString("password"); var sshKeyFile = _sshConfigs.GetAsNullableString("key_file_path"); var sshKeepAliveInterval = _sshConfigs.GetAsNullableTimeSpan("keep_alive_interval"); var(sshClient, localPort) = ConnectSsh(sshHost, sshUsername, sshPassword, sshKeyFile, databaseServer: _databaseServer, databasePort: _databasePort, sshKeepAliveInterval: sshKeepAliveInterval); _sshClient = sshClient; _sshPort = localPort.ToString(); _config.Set("connection.host", "127.0.0.1"); _config.Set("connection.port", _sshPort); _connectionResolver.Configure(_config); var connectionString = await _connectionResolver.ResolveAsync(correlationId); _logger.Trace(correlationId, "Connecting to sqlserver..."); try { var settings = ComposeSettings(); var connString = connectionString.TrimEnd(';') + ";" + JoinParams(settings); _connection = new SqlConnection(connString); _databaseName = _connection.Database; // Try to connect await _connection.OpenAsync(); _logger.Debug(correlationId, "Connected to sqlserver database {0}", _databaseName); } catch (Exception ex) { _logger.Error(correlationId, ex.ToString()); throw new ConnectionException(correlationId, "CONNECT_FAILED", "Connection to sqlserver failed", ex); } }
/// <summary> /// Configures component by passing configuration parameters. /// </summary> /// <param name="config">configuration parameters to be set.</param> public virtual void Configure(ConfigParams config) { _config = config.SetDefaults(_defaultConfig); _options = _options.Override(_config.GetSection("options")); _databaseServer = _config.GetAsNullableString("connection.host"); _databasePort = _config.GetAsIntegerWithDefault("connection.port", 1433); _sshConfigs = _sshConfigs.Override(_config.GetSection("ssh")); _sshEnabled = _sshConfigs.GetAsBooleanWithDefault("enabled", false); _connectionResolver.Configure(_config); }
/// <summary> /// Composes URI from config parameters. /// The result URI will be in the following form: /// `protocol://username@password@host1:port1,host2:port2,...?param1=abc¶m2=xyz&...` /// </summary> /// <param name="options">configuration parameters</param> /// <param name="defaultProtocol">a default protocol</param> /// <param name="defaultPort">a default port</param> /// <returns>a composed URI</returns> public static string ComposeUri(ConfigParams options, string defaultProtocol, int defaultPort) { StringBuilder builder = new StringBuilder(); var protocol = options.GetAsStringWithDefault("protocol", defaultProtocol); if (protocol != null) { builder.Append(protocol + "://" + builder); } var username = options.GetAsNullableString("username"); if (username != null) { builder.Append(username); var password = options.GetAsNullableString("password"); if (password != null) { builder.Append(":" + password); } builder.Append("@"); } StringBuilder servers = new StringBuilder(); var defaultPortStr = defaultPort > 0 ? defaultPort.ToString() : ""; var hosts = options.GetAsStringWithDefault("host", "???").Split(','); var ports = options.GetAsStringWithDefault("port", defaultPortStr).Split(','); for (int index = 0; index < hosts.Length; index++) { if (servers.Length > 0) { servers.Append(','); } var host = hosts[index]; servers.Append(host); var port = ports.Length > index ? ports[index] : defaultPortStr; port = port != "" ? port : defaultPortStr; if (port != "") { servers.Append(":" + port); } } builder.Append(servers); var parameters = new StringBuilder(); List <string> reservedKeys = new List <string> { "protocol", "host", "port", "username", "password", "servers" }; foreach (var key in options.Keys) { if (reservedKeys.Contains(key)) { continue; } if (parameters.Length > 0) { parameters.Append("&"); } parameters.Append(Uri.EscapeDataString(key)); var value = options.GetAsNullableString(key); if (value != null && value != "") { parameters.Append("=" + Uri.EscapeDataString(value)); } } if (parameters.Length > 0) { builder.Append("?" + parameters); } return(builder.ToString()); }