/// <summary> /// Provisions the entry point Couchbase server node. /// </summary> /// <param name="hostname">The hostname.</param> /// <param name="defaultSettings">The default settings.</param> /// <param name="dataRamQuota">The data ram quota.</param> /// <param name="indexRamQuota">The index ram quota.</param> /// <returns></returns> public async Task<CompositeResult> ProvisionEntryPointAsync(string hostname = null, BucketSettings defaultSettings = null, uint dataRamQuota = 544, uint indexRamQuota = 256) { hostname = hostname ?? _cluster.Configuration.Servers.First().Host; defaultSettings = defaultSettings ?? new BucketSettings(); var compositeResults = new CompositeResult(); try { var result = await _clusterManager.InitializeClusterAsync(hostname); compositeResults.Add(result); if (compositeResults.Success) { result = await _clusterManager.RenameNodeAsync(hostname); compositeResults.Add(result); } if (compositeResults.Success) { result = await _clusterManager.ConfigureMemoryAsync(hostname, dataRamQuota, indexRamQuota); compositeResults.Add(result); } if (compositeResults.Success) { result = await _clusterManager.SetupServicesAsync(hostname, defaultSettings.Services); compositeResults.Add(result); } if (compositeResults.Success) { result = await _clusterManager.ConfigureAdminAsync(hostname); compositeResults.Add(result); } if (compositeResults.Success) { result = await _clusterManager.CreateBucketAsync(defaultSettings); compositeResults.Add(result); } } catch (Exception e) { compositeResults.Add(new DefaultResult(false, e.Message, e)); } return compositeResults; }
public async Task CreateAsync(BucketSettings settings, CreateBucketOptions options) { var uri = GetUri(); Logger.LogInformation($"Attempting to create bucket with name {settings.Name} - {uri}"); try { // check if bucket already exists, throw BucketAlreadyExistsException if it does await GetAsync(settings.Name, GetBucketOptions.Default).ConfigureAwait(false); throw new BucketAlreadyExistsException(settings.Name); } catch (BucketNotFoundException) { // expected } try { // create bucket var content = new FormUrlEncodedContent(GetBucketSettingAsFormValues(settings)); var result = await _client.PostAsync(uri, content, options.CancellationToken).ConfigureAwait(false); result.EnsureSuccessStatusCode(); } catch (BucketAlreadyExistsException) { Logger.LogError($"Failed to create bucket with name {settings.Name} because it already exists"); throw; } catch (Exception exception) { Logger.LogError(exception, $"Failed to create bucket with name {settings.Name} - {uri}"); throw; } }
/// <summary> /// Creates a new bucket on the cluster /// </summary> /// <param name="settings">The settings for the bucket.</param> /// <returns></returns> public Task <IResult> CreateBucketAsync(BucketSettings settings) { return(CreateBucketAsync(settings.Name, settings.ProxyPort, settings.RamQuota, settings.BucketType, settings.ReplicaNumber, settings.AuthType, settings.IndexReplicas, settings.FlushEnabled, settings.ParallelDbAndViewCompaction, settings.SaslPassword, settings.ThreadNumber)); }
public static Task CreateAsync(this IBucketManager bucketManager, BucketSettings settings) { return(bucketManager.CreateAsync(settings, CreateBucketOptions.Default)); }
public static Task UpsertAsync(this IBucketManager bucketManager, BucketSettings settings) { return(bucketManager.UpsertAsync(settings, UpsertBucketOptions.Default)); }
/// <summary> /// Creates a new bucket on the cluster /// </summary> /// <param name="settings">The settings for the bucket.</param> /// <returns></returns> public Task<IResult> CreateBucketAsync(BucketSettings settings) { return CreateBucketAsync(settings.Name, settings.RamQuota, settings.BucketType, settings.ReplicaNumber, settings.AuthType, settings.IndexReplicas, settings.FlushEnabled, settings.ParallelDbAndViewCompaction, settings.SaslPassword, settings.ThreadNumber); }
/// <summary> /// Provisions a bucket adding it to a CouchbaseCluster /// </summary> /// <param name="bucketSettings">The bucket settings.</param> /// <param name="hostname">The hostname</param> /// <returns></returns> public Task<IResult> ProvisionBucketAsync(BucketSettings bucketSettings, string hostname = null) { hostname = hostname ?? _cluster.Configuration.Servers.First().Host; return _clusterManager.CreateBucketAsync(bucketSettings); }
private IEnumerable <KeyValuePair <string, string> > GetBucketSettingAsFormValues(BucketSettings settings) { var values = new Dictionary <string, string>(); values.Add("name", settings.Name); values.Add("bucketType", settings.BucketType.GetDescription()); values.Add("ramQuotaMB", settings.RamQuota.ToString()); values.Add("replicaIndex", settings.ReplicaIndexes ? "1" : "0"); values.Add("replicaNumber", settings.ReplicaCount.ToString()); values.Add("flushEnabled", settings.FlushEnabled ? "1" : "0"); values.Add("authType", settings.AuthType.GetDescription()); if (settings.AuthType == AuthType.Sasl) { values.Add("saslPassword", settings.Password); } if (settings.ConflictResolutionType.HasValue) { values.Add("conflictResolutionType", settings.ConflictResolutionType.GetDescription()); } if (settings.EvictionPolicyType.HasValue) { values.Add("evictionPolicy", settings.EvictionPolicyType.GetDescription()); } if (settings.MaxTtl > 0) { values.Add("maxTTL", settings.MaxTtl.ToString()); } if (settings.CompressionMode.HasValue) { values.Add("compressionMode", settings.CompressionMode.GetDescription()); } if (settings.ProxyPort > 0) { values.Add("proxyPort", settings.ProxyPort.ToString()); } return(values); }
/// <summary> /// Provisions the entry point Couchbase server node. /// </summary> /// <param name="hostname">The hostname.</param> /// <param name="defaultSettings">The default settings.</param> /// <param name="dataRamQuota">The data ram quota.</param> /// <param name="indexRamQuota">The index ram quota.</param> /// <returns></returns> public async Task <CompositeResult> ProvisionEntryPointAsync(string hostname = null, BucketSettings defaultSettings = null, uint dataRamQuota = 544, uint indexRamQuota = 256) { hostname = hostname ?? _cluster.Configuration.Servers.First().Host; defaultSettings = defaultSettings ?? new BucketSettings(); var compositeResults = new CompositeResult(); try { var result = await _clusterManager.InitializeClusterAsync(hostname); compositeResults.Add(result); if (compositeResults.Success) { result = await _clusterManager.RenameNodeAsync(hostname); compositeResults.Add(result); } if (compositeResults.Success) { result = await _clusterManager.ConfigureMemoryAsync(hostname, dataRamQuota, indexRamQuota); compositeResults.Add(result); } if (compositeResults.Success) { result = await _clusterManager.SetupServicesAsync(hostname, defaultSettings.Services); compositeResults.Add(result); } if (compositeResults.Success) { result = await _clusterManager.ConfigureAdminAsync(hostname); compositeResults.Add(result); } if (compositeResults.Success) { result = await _clusterManager.CreateBucketAsync(defaultSettings); compositeResults.Add(result); } } catch (Exception e) { compositeResults.Add(new DefaultResult(false, e.Message, e)); } return(compositeResults); }
/// <summary> /// Provisions a bucket adding it to a CouchbaseCluster /// </summary> /// <param name="bucketSettings">The bucket settings.</param> /// <param name="hostname">The hostname</param> /// <returns></returns> public Task <IResult> ProvisionBucketAsync(BucketSettings bucketSettings, string hostname = null) { hostname = hostname ?? _cluster.Configuration.Servers.First().Host; return(_clusterManager.CreateBucketAsync(bucketSettings)); }
private IEnumerable <KeyValuePair <string, string> > GetBucketSettingAsFormValues(BucketSettings settings) { var values = new Dictionary <string, string>(); values.Add("name", settings.Name); values.Add("bucketType", settings.BucketType.GetDescription()); values.Add("ramQuotaMB", settings.RamQuotaMB.ToString()); values.Add("replicaIndex", settings.ReplicaIndexes ? "1" : "0"); values.Add("replicaNumber", settings.NumReplicas.ToString()); values.Add("flushEnabled", settings.FlushEnabled ? "1" : "0"); if (settings.ConflictResolutionType.HasValue) { values.Add("conflictResolutionType", settings.ConflictResolutionType.GetDescription()); } if (settings.EjectionMethod.HasValue) { values.Add("evictionPolicy", settings.EjectionMethod.GetDescription()); } if (settings.MaxTtl > 0) { values.Add("maxTTL", settings.MaxTtl.ToString()); } if (settings.CompressionMode.HasValue) { values.Add("compressionMode", settings.CompressionMode.GetDescription()); } return(values); }