/// <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; }
/// <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; }