public ISecretReader CreateSecretReader(IDictionary <string, string> settings) { if (JobConfigurationManager.TryGetArgument(settings, JobArgumentNames.VaultName) == null) { return(new EmptySecretReader()); } var storeName = JobConfigurationManager.TryGetArgument(settings, JobArgumentNames.StoreName); var storeLocation = JobConfigurationManager.TryGetArgument(settings, JobArgumentNames.StoreLocation); var certificate = CertificateUtility.FindCertificateByThumbprint( storeName != null ? (StoreName)Enum.Parse(typeof(StoreName), storeName) : StoreName.My, storeLocation != null ? (StoreLocation)Enum.Parse(typeof(StoreLocation), storeLocation) : StoreLocation.LocalMachine, JobConfigurationManager.GetArgument(settings, JobArgumentNames.CertificateThumbprint), JobConfigurationManager.TryGetBoolArgument(settings, JobArgumentNames.ValidateCertificate, defaultValue: true)); var keyVaultConfiguration = new KeyVaultConfiguration( JobConfigurationManager.GetArgument(settings, JobArgumentNames.VaultName), JobConfigurationManager.GetArgument(settings, JobArgumentNames.ClientId), certificate); var refreshIntervalSec = JobConfigurationManager.TryGetIntArgument(settings, JobArgumentNames.RefreshIntervalSec) ?? CachingSecretReader.DefaultRefreshIntervalSec; return(new CachingSecretReader(new KeyVaultReader(keyVaultConfiguration), refreshIntervalSec)); }
/// <summary> /// Initializes an <see cref="ISqlConnectionFactory"/>, for use by non-validation jobs. /// </summary> /// <returns>ConnectionStringBuilder, used for diagnostics.</returns> public SqlConnectionStringBuilder RegisterDatabase( IServiceContainer serviceContainer, IDictionary <string, string> jobArgsDictionary, string connectionStringArgName, bool testConnection = true) { if (serviceContainer == null) { throw new ArgumentNullException(nameof(serviceContainer)); } if (jobArgsDictionary == null) { throw new ArgumentNullException(nameof(jobArgsDictionary)); } if (string.IsNullOrEmpty(connectionStringArgName)) { throw new ArgumentException("Argument cannot be null or empty.", nameof(connectionStringArgName)); } var secretInjector = (ISecretInjector)serviceContainer.GetService(typeof(ISecretInjector)); var connectionString = JobConfigurationManager.GetArgument(jobArgsDictionary, connectionStringArgName); return(RegisterDatabase(connectionStringArgName, connectionString, testConnection, secretInjector)); }
public override void Init(IServiceContainer serviceContainer, IDictionary <string, string> jobArgsDictionary) { var configurationFilename = JobConfigurationManager.GetArgument(jobArgsDictionary, ConfigurationArgument); var configurationRoot = GetConfigurationRoot(configurationFilename, out var secretInjector); _serviceProvider = GetServiceProvider(configurationRoot, secretInjector); RegisterDatabases(_serviceProvider); }
private static void SetJobTraceListener(JobBase job, bool consoleLogOnly, IDictionary <string, string> argsDictionary) { if (consoleLogOnly) { job.SetJobTraceListener(new JobTraceListener()); } else { var connectionString = JobConfigurationManager.GetArgument(argsDictionary, JobArgumentNames.LogsAzureStorageConnectionString); job.SetJobTraceListener(new AzureBlobJobTraceListener(job.JobName, connectionString)); } }
public SqlExportArguments(IDictionary <string, string> jobArgsDictionary, string defaultContainerName, string defaultName) { var connStrBldr = new SqlConnectionStringBuilder( JobConfigurationManager.GetArgument(jobArgsDictionary, JobArgumentNames.SourceDatabase, EnvironmentVariableKeys.SqlGallery)); ConnectionString = connStrBldr.ToString(); OutputDirectory = JobConfigurationManager.GetArgument(jobArgsDictionary, JobArgumentNames.OutputDirectory); if (string.IsNullOrEmpty(OutputDirectory)) { Destination = CloudStorageAccount.Parse( JobConfigurationManager.GetArgument(jobArgsDictionary, JobArgumentNames.PrimaryDestination, EnvironmentVariableKeys.StoragePrimary)); DestinationContainerName = JobConfigurationManager.TryGetArgument(jobArgsDictionary, JobArgumentNames.DestinationContainerName) ?? defaultContainerName; DestinationContainer = Destination.CreateCloudBlobClient().GetContainerReference(DestinationContainerName); } Name = defaultName; }