Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 4
0
 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));
     }
 }
Exemplo n.º 5
0
        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;
        }