/// <inheritdoc /> protected override async Task <BoolResult> StartupCoreAsync(OperationContext context) { await base.StartupCoreAsync(context).ThrowIfFailure(); if (Constants.TryExtractBuildId(Name, out _buildId) && Guid.TryParse(_buildId, out var buildIdGuid)) { // Generate a fake hash for the build and register a content entry in the location store to represent // machines in the build ring _buildIdHash = new ContentHash(HashType.MD5, buildIdGuid.ToByteArray()); Tracer.Info(context, $"Registering machine with build {_buildId} (build id hash: {_buildIdHash.Value.ToShortString()}"); await ContentLocationStore.RegisterLocalLocationAsync(context, new[] { new ContentHashWithSize(_buildIdHash.Value, _buildId.Length) }, context.Token, UrgencyHint.Nominal).ThrowIfFailure(); } return(BoolResult.Success); }
private async Task <PutResult> RegisterPutAsync(OperationContext context, UrgencyHint urgencyHint, PutResult putResult) { if (putResult.Succeeded) { var updateResult = await ContentLocationStore.RegisterLocalLocationAsync( context, new[] { new ContentHashWithSize(putResult.ContentHash, putResult.ContentSize) }, context.Token, urgencyHint); if (!updateResult.Succeeded) { return(new PutResult(updateResult, putResult.ContentHash)); } } return(putResult); }