public override void ExecuteCmdlet() { ValidatePSResourceGroupDeploymentParameters parameters = new ValidatePSResourceGroupDeploymentParameters() { ResourceGroupName = ResourceGroupName, GalleryTemplateIdentity = GalleryTemplateIdentity, TemplateFile = TemplateUri ?? this.TryResolvePath(TemplateFile), TemplateParameterObject = GetTemplateParameterObject(TemplateParameterObject), TemplateVersion = TemplateVersion, StorageAccountName = StorageAccountName }; WriteObject(ResourcesClient.ValidatePSResourceGroupDeployment(parameters)); }
private BasicDeployment CreateBasicDeployment(ValidatePSResourceGroupDeploymentParameters parameters) { BasicDeployment deployment = new BasicDeployment() { Mode = DeploymentMode.Incremental, TemplateLink = new TemplateLink() { Uri = GetTemplateUri(parameters.TemplateFile, parameters.GalleryTemplateIdentity, parameters.StorageAccountName), ContentVersion = parameters.TemplateVersion }, Parameters = GetDeploymentParameters(parameters.TemplateParameterObject) }; return(deployment); }
public void ValidatesPSResourceGroupDeploymentWithUserTemplate() { ValidatePSResourceGroupDeploymentParameters expectedParameters = new ValidatePSResourceGroupDeploymentParameters() { TemplateFile = templateFile, StorageAccountName = storageAccountName, TemplateVersion = "1.0" }; ValidatePSResourceGroupDeploymentParameters actualParameters = new ValidatePSResourceGroupDeploymentParameters(); List<PSResourceManagerError> expected = new List<PSResourceManagerError>() { new PSResourceManagerError() { Code = "202", Message = "bad input", }, new PSResourceManagerError() { Code = "203", Message = "bad input 2", }, new PSResourceManagerError() { Code = "203", Message = "bad input 3", } }; resourcesClientMock.Setup(f => f.ValidatePSResourceGroupDeployment( It.IsAny<ValidatePSResourceGroupDeploymentParameters>())) .Returns(expected) .Callback((ValidatePSResourceGroupDeploymentParameters p) => { actualParameters = p; }); cmdlet.ResourceGroupName = resourceGroupName; cmdlet.TemplateFile = expectedParameters.TemplateFile; cmdlet.TemplateVersion = expectedParameters.TemplateVersion; cmdlet.ExecuteCmdlet(); Assert.Equal(expectedParameters.GalleryTemplateIdentity, actualParameters.GalleryTemplateIdentity); Assert.Equal(expectedParameters.TemplateFile, actualParameters.TemplateFile); Assert.NotNull(actualParameters.TemplateParameterObject); Assert.Equal(expectedParameters.TemplateVersion, actualParameters.TemplateVersion); Assert.Equal(null, actualParameters.StorageAccountName); commandRuntimeMock.Verify(f => f.WriteObject(expected), Times.Once()); }
public void TestTemplateShowsSuccessMessage() { Uri templateUri = new Uri("http://templateuri.microsoft.com"); BasicDeployment deploymentFromValidate = new BasicDeployment(); ValidatePSResourceGroupDeploymentParameters parameters = new ValidatePSResourceGroupDeploymentParameters() { ResourceGroupName = resourceGroupName, TemplateFile = templateFile, StorageAccountName = storageAccountName, }; resourceGroupMock.Setup(f => f.CheckExistenceAsync(parameters.ResourceGroupName, new CancellationToken())) .Returns(Task.Factory.StartNew(() => new ResourceGroupExistsResult { Exists = true })); storageClientWrapperMock.Setup(f => f.UploadFileToBlob(It.IsAny<BlobUploadParameters>())).Returns(templateUri); deploymentsMock.Setup(f => f.ValidateAsync(resourceGroupName, It.IsAny<string>(), It.IsAny<BasicDeployment>(), new CancellationToken())) .Returns(Task.Factory.StartNew(() => new DeploymentValidateResponse { IsValid = true, Error = new ResourceManagementErrorWithDetails() { Code = "404", Message = "Awesome error message", Details = new List<ResourceManagementError>(new[] { new ResourceManagementError { Code = "SubError", Message = "Sub error message" }}) } })) .Callback((string rg, string dn, BasicDeployment d, CancellationToken c) => { deploymentFromValidate = d; }); IEnumerable<PSResourceManagerError> error = resourcesClient.ValidatePSResourceGroupDeployment(parameters); Assert.Equal(0, error.Count()); progressLoggerMock.Verify(f => f("Template is valid."),Times.Once()); }
private BasicDeployment CreateBasicDeployment(ValidatePSResourceGroupDeploymentParameters parameters) { BasicDeployment deployment = new BasicDeployment() { Mode = DeploymentMode.Incremental, TemplateLink = new TemplateLink() { Uri = GetTemplateUri(parameters.TemplateFile, parameters.GalleryTemplateIdentity, parameters.StorageAccountName), ContentVersion = parameters.TemplateVersion }, Parameters = GetDeploymentParameters(parameters.TemplateParameterObject) }; return deployment; }
/// <summary> /// Validates a given deployment. /// </summary> /// <param name="parameters">The deployment create options</param> /// <returns>True if valid, false otherwise.</returns> public virtual List<PSResourceManagerError> ValidatePSResourceGroupDeployment(ValidatePSResourceGroupDeploymentParameters parameters) { BasicDeployment deployment = CreateBasicDeployment(parameters); List<ResourceManagementError> errors = CheckBasicDeploymentErrors(parameters.ResourceGroupName, Guid.NewGuid().ToString(), deployment); if (errors.Count == 0) { WriteVerbose(Resources.TemplateValid); } return errors.Select(e => e.ToPSResourceManagerError()).ToList(); }
/// <summary> /// Validates a given deployment. /// </summary> /// <param name="parameters">The deployment create options</param> /// <returns>True if valid, false otherwise.</returns> public virtual List <PSResourceManagerError> ValidatePSResourceGroupDeployment(ValidatePSResourceGroupDeploymentParameters parameters) { BasicDeployment deployment = CreateBasicDeployment(parameters); List <ResourceManagementError> errors = CheckBasicDeploymentErrors(parameters.ResourceGroupName, Guid.NewGuid().ToString(), deployment); if (errors.Count == 0) { WriteVerbose(Resources.TemplateValid); } return(errors.Select(e => e.ToPSResourceManagerError()).ToList()); }