Esempio n. 1
0
        /// <summary>
        /// Creates new deployment
        /// </summary>
        /// <param name="parameters">The create deployment parameters</param>
        public virtual PSResourceGroupDeployment ExecuteDeployment(PSDeploymentCmdletParameters parameters)
        {
            parameters.DeploymentName = GenerateDeploymentName(parameters);
            Deployment deployment = CreateBasicDeployment(parameters, parameters.DeploymentMode, parameters.DeploymentDebugLogLevel);

            TemplateValidationInfo validationInfo = CheckBasicDeploymentErrors(parameters.ResourceGroupName, parameters.DeploymentName, deployment);

            if (validationInfo.Errors.Count != 0)
            {
                foreach (var error in validationInfo.Errors)
                {
                    WriteError(string.Format(ErrorFormat, error.Code, error.Message));
                    if (error.Details != null && error.Details.Count > 0)
                    {
                        foreach (var innerError in error.Details)
                        {
                            DisplayInnerDetailErrorMessage(innerError);
                        }
                    }
                }
                throw new InvalidOperationException(ProjectResources.FailedDeploymentValidation);
            }
            else
            {
                WriteVerbose(ProjectResources.TemplateValid);
            }

            this.BeginDeployment(parameters.ResourceGroupName, parameters.DeploymentName, deployment);

            WriteVerbose(string.Format(ProjectResources.CreatedDeployment, parameters.DeploymentName));
            DeploymentExtended result = ProvisionDeploymentStatus(parameters.ResourceGroupName, parameters.DeploymentName, deployment);

            return(result.ToPSResourceGroupDeployment(parameters.ResourceGroupName));
        }
Esempio n. 2
0
        /// <summary>
        /// Validates a given deployment.
        /// </summary>
        /// <param name="parameters">The deployment create options</param>
        /// <param name="deploymentMode">The deployment mode</param>
        /// <returns>The validation errors if there's any, or empty list otherwise.</returns>
        public virtual List <PSResourceManagerError> ValidateDeployment(PSDeploymentCmdletParameters 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());
        }