public GetBucketFileAccessModeResponse GetBucketFileAccessMode(GetBucketFileAccessModeRequest request) { IAsyncResult asyncResult; asyncResult = invokeGetBucketFileAccessMode(request, null, null, true); return(EndGetBucketFileAccessMode(asyncResult)); }
//[TestMethod] public void TestSetBucketFileAccessMode() { var setBucketRequest = new SetBucketFileAccessModeRequest() { BucketName = this.bucketName, AccessMode = FileAccessMode.ReadOnly, Duration = (long)TimeSpan.FromSeconds(300).TotalSeconds, HostList = new[] { "10.6.143.99", "10.6.143.100" }, // client IPs Uid = "501" }; using (var setBucketResponse = client.SetBucketFileAccessMode(setBucketRequest)) { Assert.IsTrue( setBucketRequest.AccessMode == setBucketResponse.AccessMode || GetBucketFileAccessModeRequest.TransitionsToState((FileAccessMode)setBucketRequest.AccessMode, setBucketResponse.AccessMode), "wrong access mode"); Assert.IsTrue(setBucketRequest.Duration - setBucketResponse.Duration <= TimeSpan.FromSeconds(60).TotalSeconds, "wrong duration"); Assert.IsTrue(setBucketRequest.HostList.SequenceEqual(setBucketResponse.HostList), "wrong host list"); Assert.AreEqual(setBucketRequest.Uid, setBucketResponse.Uid, "wrong Uid"); } if (!WaitForTransition(FileAccessMode.ReadOnly, TimeSpan.FromMinutes(5))) { Assert.Inconclusive("file access transition timed out"); } var getAccessRequest = new GetFileAccessRequest() { BucketName = this.bucketName }; using (var getAccessResponse = client.GetFileAccess(getAccessRequest)) { Assert.IsTrue(getAccessResponse.MountPoints != null && getAccessResponse.MountPoints.Count >= 1, "missing mount points"); Assert.IsTrue(getAccessResponse.Objects != null && getAccessResponse.Objects.Count == 1, "missing objects"); } var setAccessMode2Request = new SetBucketFileAccessModeRequest() { BucketName = this.bucketName, AccessMode = FileAccessMode.Disabled }; using (var getAccessMode2Response = client.SetBucketFileAccessMode(setAccessMode2Request)) { } if (!WaitForTransition(FileAccessMode.Disabled, TimeSpan.FromMinutes(5))) { Assert.Inconclusive("file access transition timed out"); } }
private void ConvertGetBucketFileAccessMode(GetBucketFileAccessModeRequest request) { var parameters = request.parameters; WebHeaderCollection webHeaders = request.Headers; parameters[S3QueryParameter.Verb] = S3Constants.GetVerb; parameters[S3QueryParameter.Action] = "GetBucketFileAccessMode"; parameters[S3QueryParameter.Query] = parameters[S3QueryParameter.QueryToSign] = "?" + ViPRConstants.ACCESS_MODE_PARAMETER; request.RequestDestinationBucket = request.BucketName; }
public void TestGetBucketFileAccessMode() { var request = new GetBucketFileAccessModeRequest() { BucketName = this.bucketName }; using (var response = client.GetBucketFileAccessMode(request)) { Debug.WriteLine("AccessMode: " + response.AccessMode); Assert.AreEqual(FileAccessMode.Disabled, response.AccessMode); } }
IAsyncResult invokeGetBucketFileAccessMode(GetBucketFileAccessModeRequest request, AsyncCallback callback, object state, bool synchronized) { if (request == null) { throw new ArgumentNullException(S3Constants.RequestParam, "The GetBucketFileAccessModeRequest is null!"); } if (string.IsNullOrEmpty(request.BucketName)) { throw new ArgumentNullException(S3Constants.RequestParam, "The bucket name parameter must be specified when querying access mode"); } ConvertGetBucketFileAccessMode(request); S3AsyncResult asyncResult = new S3AsyncResult(request, state, callback, synchronized); invoke <GetBucketFileAccessModeResponse>(asyncResult); return(asyncResult); }
private bool WaitForTransition(FileAccessMode targetMode, TimeSpan timeout) { DateTime timeoutTime = DateTime.Now + timeout; if (GetBucketFileAccessModeRequest.IsTransitionState(targetMode)) { throw new ArgumentException("Invalid target mode: " + targetMode); } this.TestContext.WriteLine( "Waiting for file access mode transition. Bucket:{0}, Target: {1}", this.bucketName, targetMode); while (true) { var request = new GetBucketFileAccessModeRequest() { BucketName = this.bucketName }; using (var response = client.GetBucketFileAccessMode(request)) { if (response.AccessMode == targetMode) { this.TestContext.WriteLine( "Successful transition. Target: {0}", targetMode); return(true); } if (DateTime.Now > timeoutTime) { this.TestContext.WriteLine( "Timeout occurred waiting for transition. Current: {0}, Target: {1}", response.AccessMode, targetMode); return(false); } } System.Threading.Thread.Sleep(TimeSpan.FromSeconds(5)); } }
public IAsyncResult BeginGetBucketFileAccessMode(GetBucketFileAccessModeRequest request, AsyncCallback callback, object state) { return(invokeGetBucketFileAccessMode(request, callback, state, false)); }