/// <summary> /// Puts the lease on the given blob in a broken state due to a break period of zero. /// </summary> /// <param name="blob">The blob with the lease.</param> /// <returns>The lease ID of the broken lease.</returns> internal static string SetInstantBrokenState(CloudBlob blob) { string leaseId = SetLeasedState(blob, null /* infinite lease */); blob.BreakLease(TimeSpan.Zero); return leaseId; }
/// <summary> /// Puts the lease on the given blob in a breaking state for 60 seconds. /// </summary> /// <param name="blob">The blob with the lease.</param> /// <returns>The lease ID of the current (but breaking) lease.</returns> internal static string SetBreakingState(CloudBlob blob) { string leaseId = SetLeasedState(blob, null /* infinite lease */); blob.BreakLease(TimeSpan.FromSeconds(60)); return leaseId; }
/// <summary> /// Puts the lease on the given blob in a broken state due to the break period expiring. /// </summary> /// <param name="blob">The blob with the lease.</param> /// <returns>The lease ID of the broken lease.</returns> internal static string SetTimeBrokenState(CloudBlob blob) { string leaseId = SetLeasedState(blob, null /* infinite lease */); blob.BreakLease(TimeSpan.FromSeconds(1)); Thread.Sleep(TimeSpan.FromSeconds(2)); return leaseId; }
/// <summary> /// Puts the lease on the given blob in an available state. /// </summary> /// <param name="blob">The blob with the lease.</param> internal static void SetAvailableState(CloudBlob blob) { bool shouldBreakFirst = false; try { blob.DeleteIfExists(); } catch (StorageException exception) { if (exception.RequestInformation.ExtendedErrorInformation.ErrorCode == BlobErrorCodeStrings.LeaseIdMissing) { shouldBreakFirst = true; } else { throw; } } if (shouldBreakFirst) { blob.BreakLease(TimeSpan.Zero); blob.Delete(); } CreateBlob(blob); }