public Task <RiakResult> SetBucketProperties(string bucket, RiakBucketProperties properties) { if (!IsValidBucketOrKey(bucket)) { return(RiakResult.ErrorTask(ResultCode.InvalidRequest, InvalidBucketErrorMessage, false)); } if (properties.CanUsePbc) { var request = new RpbSetBucketReq { bucket = bucket.ToRiakString(), props = properties.ToMessage() }; return(UseConnection(conn => conn.PbcWriteRead(request, MessageCode.SetBucketResp))); } else { var request = new RiakRestRequest(ToBucketUri(bucket), RiakConstants.Rest.HttpMethod.Put) { Body = properties.ToJsonString().ToRiakString(), ContentType = RiakConstants.ContentTypes.ApplicationJson }; return(UseConnection(conn => conn.RestRequest(request)) .ContinueWith((Task <RiakResult <RiakRestResponse> > finishedTask) => { var result = finishedTask.Result; if (result.IsSuccess && result.Value.StatusCode != HttpStatusCode.NoContent) { return RiakResult.Error(ResultCode.InvalidResponse, "Unexpected Status Code: {0} ({1})".Fmt(result.Value.StatusCode, (int)result.Value.StatusCode), result.NodeOffline); } return result; })); } }
/// <summary> /// Sets the <see cref="CorrugatedIron.Models.RiakBucketProperties"/> properties of a <paramref name="bucket"/>. /// </summary> /// <returns> /// A <see cref="CorrugatedIron.RiakResult"/> detailing the success or failure of the operation. /// </returns> /// <param name='bucket'> /// The Bucket. /// </param> /// <param name='properties'> /// The Properties. /// </param> public RiakResult SetBucketProperties(string bucket, RiakBucketProperties properties) { if (properties.CanUsePbc) { var request = new RpbSetBucketReq { Bucket = bucket.ToRiakString(), Props = properties.ToMessage() }; var result = UseConnection(conn => conn.PbcWriteRead <RpbSetBucketReq, RpbSetBucketResp>(request)); return(result); } else { var request = new RiakRestRequest(ToBucketUri(bucket), RiakConstants.Rest.HttpMethod.Put) { Body = properties.ToJsonString().ToRiakString(), ContentType = RiakConstants.ContentTypes.ApplicationJson }; var result = UseConnection(conn => conn.RestRequest(request)); if (result.IsSuccess && result.Value.StatusCode != HttpStatusCode.NoContent) { return(RiakResult.Error(ResultCode.InvalidResponse, "Unexpected Status Code: {0} ({1})".Fmt(result.Value.StatusCode, (int)result.Value.StatusCode))); } return(result); } }
private async Task SetPbcBucketProperties(string bucket, RiakBucketProperties properties) { if (!IsValidBucketOrKey(bucket)) { throw new RiakException((uint)ResultCode.InvalidRequest, InvalidBucketErrorMessage, false); } var request = new RpbSetBucketReq { bucket = bucket.ToRiakString(), props = properties.ToMessage() }; await _connection.PbcWriteRead(_endPoint, request, MessageCode.SetBucketResp).ConfigureAwait(false); }