Exemplo n.º 1
0
        /// <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");
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }