public DocumentServiceLeaseCheckpointerCore( DocumentServiceLeaseUpdater leaseUpdater, RequestOptionsFactory requestOptionsFactory) { this.leaseUpdater = leaseUpdater; this.requestOptionsFactory = requestOptionsFactory; }
public static async Task <DocumentServiceLeaseStoreManager> InitializeAsync( ContainerInternal leaseContainer, string leaseContainerPrefix, string instanceName) { ContainerResponse cosmosContainerResponse = await leaseContainer.ReadContainerAsync().ConfigureAwait(false); ContainerProperties containerProperties = cosmosContainerResponse.Resource; bool isPartitioned = containerProperties.PartitionKey != null && containerProperties.PartitionKey.Paths != null && containerProperties.PartitionKey.Paths.Count > 0; bool isMigratedFixed = containerProperties.PartitionKey?.IsSystemKey == true; if (isPartitioned && !isMigratedFixed && (containerProperties.PartitionKey.Paths.Count != 1 || containerProperties.PartitionKey.Paths[0] != "/id")) { throw new ArgumentException("The lease collection, if partitioned, must have partition key equal to id."); } RequestOptionsFactory requestOptionsFactory = isPartitioned && !isMigratedFixed ? (RequestOptionsFactory) new PartitionedByIdCollectionRequestOptionsFactory() : (RequestOptionsFactory) new SinglePartitionRequestOptionsFactory(); DocumentServiceLeaseStoreManagerBuilder leaseStoreManagerBuilder = new DocumentServiceLeaseStoreManagerBuilder() .WithLeasePrefix(leaseContainerPrefix) .WithLeaseContainer(leaseContainer) .WithRequestOptionsFactory(requestOptionsFactory) .WithHostName(instanceName); return(await leaseStoreManagerBuilder.BuildAsync().ConfigureAwait(false)); }
public DocumentServiceLeaseStoreManagerCosmos( DocumentServiceLeaseStoreManagerSettings settings, CosmosContainer leaseContainer, RequestOptionsFactory requestOptionsFactory) : this(settings, leaseContainer, requestOptionsFactory, new DocumentServiceLeaseUpdaterCosmos(leaseContainer)) { }
public DocumentServiceLeaseStoreManagerCosmos( DocumentServiceLeaseStoreManagerOptions options, ContainerInternal monitoredContainer, ContainerInternal leaseContainer, RequestOptionsFactory requestOptionsFactory) : this(options, monitoredContainer, leaseContainer, requestOptionsFactory, new DocumentServiceLeaseUpdaterCosmos(leaseContainer)) { }
public DocumentServiceLeaseStoreCosmos( Container container, string containerNamePrefix, RequestOptionsFactory requestOptionsFactory) { this.container = container; this.containerNamePrefix = containerNamePrefix; this.requestOptionsFactory = requestOptionsFactory; }
/// <summary> /// Initializes a new instance of the <see cref="DocumentServiceLeaseStoreManagerCosmos"/> class. /// </summary> /// <remarks> /// Internal only for testing purposes, otherwise would be private. /// </remarks> internal DocumentServiceLeaseStoreManagerCosmos( DocumentServiceLeaseStoreManagerOptions options, ContainerInternal monitoredContainer, ContainerInternal leaseContainer, RequestOptionsFactory requestOptionsFactory, DocumentServiceLeaseUpdater leaseUpdater) // For testing purposes only. { if (options == null) { throw new ArgumentNullException(nameof(options)); } if (options.ContainerNamePrefix == null) { throw new ArgumentNullException(nameof(options.ContainerNamePrefix)); } if (string.IsNullOrEmpty(options.HostName)) { throw new ArgumentNullException(nameof(options.HostName)); } if (monitoredContainer == null) { throw new ArgumentNullException(nameof(monitoredContainer)); } if (leaseContainer == null) { throw new ArgumentNullException(nameof(leaseContainer)); } if (requestOptionsFactory == null) { throw new ArgumentException(nameof(requestOptionsFactory)); } if (leaseUpdater == null) { throw new ArgumentException(nameof(leaseUpdater)); } this.leaseStore = new DocumentServiceLeaseStoreCosmos( leaseContainer, options.ContainerNamePrefix, requestOptionsFactory); this.leaseManager = new DocumentServiceLeaseManagerCosmos( monitoredContainer, leaseContainer, leaseUpdater, options, requestOptionsFactory); this.leaseCheckpointer = new DocumentServiceLeaseCheckpointerCore( leaseUpdater, requestOptionsFactory); this.leaseContainer = new DocumentServiceLeaseContainerCosmos( leaseContainer, options); }
public DocumentServiceLeaseStoreManagerBuilder WithRequestOptionsFactory(RequestOptionsFactory requestOptionsFactory) { if (requestOptionsFactory == null) { throw new ArgumentNullException(nameof(requestOptionsFactory)); } this.requestOptionsFactory = requestOptionsFactory; return(this); }
public DocumentServiceLeaseManagerCosmos( Container leaseContainer, DocumentServiceLeaseUpdater leaseUpdater, DocumentServiceLeaseStoreManagerOptions options, RequestOptionsFactory requestOptionsFactory) { this.leaseContainer = leaseContainer; this.leaseUpdater = leaseUpdater; this.options = options; this.requestOptionsFactory = requestOptionsFactory; }
public DocumentServiceLeaseManagerCosmos( CosmosContainer leaseContainer, DocumentServiceLeaseUpdater leaseUpdater, DocumentServiceLeaseStoreManagerSettings settings, RequestOptionsFactory requestOptionsFactory) { this.leaseContainer = leaseContainer; this.leaseUpdater = leaseUpdater; this.settings = settings; this.requestOptionsFactory = requestOptionsFactory; }
public DocumentServiceLeaseManagerCosmos( ContainerInternal monitoredContainer, ContainerInternal leaseContainer, DocumentServiceLeaseUpdater leaseUpdater, DocumentServiceLeaseStoreManagerOptions options, RequestOptionsFactory requestOptionsFactory) { this.monitoredContainer = monitoredContainer; this.leaseContainer = leaseContainer; this.leaseUpdater = leaseUpdater; this.options = options; this.requestOptionsFactory = requestOptionsFactory; this.lazyContainerRid = new AsyncLazy <TryCatch <string> >(valueFactory: (trace, innerCancellationToken) => this.TryInitializeContainerRIdAsync(innerCancellationToken)); }
private DocumentServiceLeaseStoreManagerBuilder WithRequestOptionsFactory(RequestOptionsFactory requestOptionsFactory) { this.requestOptionsFactory = requestOptionsFactory ?? throw new ArgumentNullException(nameof(requestOptionsFactory)); return(this); }