/// <summary> /// Constructor for the renderer accepting all parameters necessary for its operation /// </summary> public RebuildSiteModelComputeFuncExecutor(RebuildSiteModelRequestArgument arg) { Response = new RebuildSiteModelRequestResponse(arg.ProjectID) { RebuildResult = RebuildSiteModelResult.OK }; _rebuildSiteModelRequestArgument = arg; if (arg != null) { _siteModel = DIContext.Obtain <ISiteModels>().GetSiteModelRaw(arg.ProjectID); } if (_siteModel == null) { Response.RebuildResult = RebuildSiteModelResult.UnableToLocateSiteModel; return; } _siteModel.SetStorageRepresentationToSupply(StorageMutability.Mutable); // Rebuilding is only supported in the context of the mutable grid for coordination if (_siteModel.PrimaryStorageProxy.Mutability != StorageMutability.Mutable || _siteModel.PrimaryStorageProxy.ImmutableProxy == null) { throw new TRexException("Rebulding is only supported in the context of the mutable grid for coordination"); } }
public async void FailWithNonExistentSiteModel() { AddPrimaryApplicationGridRouting(); var projectUid = Guid.NewGuid(); var request = new RebuildSiteModelRequest(); var arg = new RebuildSiteModelRequestArgument { DeletionSelectivity = DeleteSiteModelSelectivity.TagFileDerivedData, OriginS3TransferProxy = TransferProxyType.TAGFiles, ProjectID = projectUid }; var result = await request.ExecuteAsync(arg); result.Should().NotBeNull(); result.RebuildResult.Should().Be(RebuildSiteModelResult.UnableToLocateSiteModel); }
public async void FailWithPreexistingRebuild() { AddPrimaryApplicationGridRouting(); var siteModel = DITAGFileAndSubGridRequestsWithIgniteFixture.NewEmptyModel(); siteModel.SaveMetadataToPersistentStore(siteModel.PrimaryStorageProxy, true); // Install an active builder into the manager to cause the failure. DIContext.Obtain <ISiteModelRebuilderManager>().AddRebuilder(new SiteModelRebuilder(siteModel.ID, false, TransferProxyType.TAGFiles)); var request = new RebuildSiteModelRequest(); var arg = new RebuildSiteModelRequestArgument { DeletionSelectivity = DeleteSiteModelSelectivity.TagFileDerivedData, OriginS3TransferProxy = TransferProxyType.TAGFiles, ProjectID = siteModel.ID }; var result = await request.ExecuteAsync(arg); result.Should().NotBeNull(); result.RebuildResult.Should().Be(RebuildSiteModelResult.Pending); }