public override void ExecuteCmdlet() { PSValidateResourceGroupDeploymentParameters parameters = new PSValidateResourceGroupDeploymentParameters() { ResourceGroupName = ResourceGroupName, TemplateFile = TemplateUri ?? this.TryResolvePath(TemplateFile), TemplateParameterObject = GetTemplateParameterObject(TemplateParameterObject), ParameterUri = TemplateParameterUri }; WriteObject(ResourceManagerSdkClient.ValidatePSResourceGroupDeployment(parameters, Mode)); }
private Deployment CreateBasicDeployment(PSValidateResourceGroupDeploymentParameters parameters, DeploymentMode deploymentMode, string debugSetting) { Deployment deployment = new Deployment { Properties = new DeploymentProperties { Mode = deploymentMode } }; if (!string.IsNullOrEmpty(debugSetting)) { deployment.Properties.DebugSetting = new DebugSetting { DetailLevel = debugSetting }; } if (Uri.IsWellFormedUriString(parameters.TemplateFile, UriKind.Absolute)) { deployment.Properties.TemplateLink = new TemplateLink { Uri = parameters.TemplateFile }; } else { deployment.Properties.Template = JObject.Parse(FileUtilities.DataStore.ReadFileAsText(parameters.TemplateFile)); } if (Uri.IsWellFormedUriString(parameters.ParameterUri, UriKind.Absolute)) { deployment.Properties.ParametersLink = new ParametersLink { Uri = parameters.ParameterUri }; } else { string templateParams = GetDeploymentParameters(parameters.TemplateParameterObject); deployment.Properties.Parameters = string.IsNullOrEmpty(templateParams) ? null : JObject.Parse(templateParams); } return(deployment); }
public void ValidatesPSResourceGroupDeploymentWithUserTemplate() { PSValidateResourceGroupDeploymentParameters expectedParameters = new PSValidateResourceGroupDeploymentParameters() { TemplateFile = templateFile }; PSValidateResourceGroupDeploymentParameters actualParameters = new PSValidateResourceGroupDeploymentParameters(); 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 <PSValidateResourceGroupDeploymentParameters>(), DeploymentMode.Incremental)) .Returns(expected) .Callback((PSValidateResourceGroupDeploymentParameters p, DeploymentMode m) => { actualParameters = p; m = DeploymentMode.Incremental; }); cmdlet.ResourceGroupName = resourceGroupName; cmdlet.TemplateFile = expectedParameters.TemplateFile; cmdlet.ExecuteCmdlet(); Assert.Equal(expectedParameters.TemplateFile, actualParameters.TemplateFile); Assert.NotNull(actualParameters.TemplateParameterObject); commandRuntimeMock.Verify(f => f.WriteObject(expected), Times.Once()); }
/// <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(PSValidateResourceGroupDeploymentParameters parameters, DeploymentMode deploymentMode) { Deployment deployment = CreateBasicDeployment(parameters, deploymentMode, null); TemplateValidationInfo validationInfo = CheckBasicDeploymentErrors(parameters.ResourceGroupName, Guid.NewGuid().ToString(), deployment); if (validationInfo.Errors.Count == 0) { WriteVerbose(ProjectResources.TemplateValid); } return(validationInfo.Errors.Select(e => e.ToPSResourceManagerError()).ToList()); }