/// <summary>
        ///     Create a new <see cref="DatabaseServerProvisioner"/>.
        /// </summary>
        /// <param name="logger">
        ///     The provisioner's logger.
        /// </param>
        /// <param name="kubeClient">
        ///     The <see cref="KubeApiClient"/> used to communicate with the Kubernetes API.
        /// </param>
        /// <param name="kubeOptions">
        ///     Application-level Kubernetes settings.
        /// </param>
        /// <param name="kubeResources">
        ///     A factory for Kubernetes resource models.
        /// </param>
        /// <param name="databaseProxyClient">
        ///     The <see cref="DatabaseProxyApiClient"/> used to communicate with the Database Proxy API.
        /// </param>
        public DatabaseServerProvisioner(ILogger <DatabaseServerProvisioner> logger, KubeApiClient kubeClient, DatabaseProxyApiClient databaseProxyClient, IOptions <KubernetesOptions> kubeOptions, KubeResources kubeResources)
            : base(logger)
        {
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            if (kubeClient == null)
            {
                throw new ArgumentNullException(nameof(kubeClient));
            }

            if (databaseProxyClient == null)
            {
                throw new ArgumentNullException(nameof(databaseProxyClient));
            }

            if (kubeOptions == null)
            {
                throw new ArgumentNullException(nameof(kubeOptions));
            }

            if (kubeResources == null)
            {
                throw new ArgumentNullException(nameof(kubeResources));
            }

            KubeClient          = kubeClient;
            DatabaseProxyClient = databaseProxyClient;
            KubeOptions         = kubeOptions.Value;
            KubeResources       = kubeResources;
        }
        /// <summary>
        ///     Create a new <see cref="SqlServerDatabaseProvisioner"/>.
        /// </summary>
        /// <param name="logger">
        ///     The provisioner's logger.
        /// </param>
        /// <param name="databaseProxyClient">
        ///     The <see cref="DatabaseProxyApiClient"/> used to communicate with the Database Proxy API.
        /// </param>
        public SqlServerDatabaseProvisioner(ILogger <DatabaseProvisioner> logger, DatabaseProxyApiClient databaseProxyClient)
            : base(logger)
        {
            if (databaseProxyClient == null)
            {
                throw new ArgumentNullException(nameof(databaseProxyClient));
            }

            DatabaseProxyClient = databaseProxyClient;
        }
Esempio n. 3
0
        /// <summary>
        ///     Create a new <see cref="TenantDatabaseManager"/>.
        /// </summary>
        /// <param name="registeredProvisioners">
        ///     All registered database provisioners.
        /// </param>
        /// <param name="databaseProxyClient">
        ///     The <see cref="DatabaseProxyApiClient"/> used to communicate with the Database Proxy API.
        /// </param>
        public TenantDatabaseManager(IEnumerable <DatabaseProvisioner> registeredProvisioners, DatabaseProxyApiClient databaseProxyClient)
        {
            if (registeredProvisioners == null)
            {
                throw new ArgumentNullException(nameof(registeredProvisioners));
            }

            if (databaseProxyClient == null)
            {
                throw new ArgumentNullException(nameof(databaseProxyClient));
            }

            RegisteredProvisioners = registeredProvisioners;
            DatabaseProxyClient    = databaseProxyClient;
        }