Exemple #1
0
        public TerraformValidator(ICloudTemplateHandlerFactory cloudTemplateHandlerFactory)
        {
            this.cloudTemplateHandlerFactory = cloudTemplateHandlerFactory;

            When(a => (a.ActionType == TerraformActionTypes.Apply || a.ActionType == TerraformActionTypes.Destroy) && !IsTemplateFromPackage(a.Properties),
                 () =>
            {
                RuleFor(a => a.Properties)
                .MustHaveProperty(TerraformSpecialVariables.Action.Terraform.Template,
                                  "Please provide the Terraform template.");
                RuleFor(a => a.Properties)
                .Must(a => !ValidationVariables(a).Any())
                .WithMessage(a =>
                             $"The variable(s) could not be parsed: {string.Join(", ", ValidationVariables(a.Properties))}.");
            });

            RuleFor(a => a.Packages)
            .Must(packages => packages.Any(p => p.IsPrimaryPackage && !string.IsNullOrWhiteSpace(p.PackageId) && !string.IsNullOrWhiteSpace(p.FeedIdOrName?.Value)))
            .WithMessage("Please provide the Terraform template package.")
            .When(a => (a.ActionType == TerraformActionTypes.Apply || a.ActionType == TerraformActionTypes.Destroy) && IsTemplateFromPackage(a.Properties));

            AddAzureAccountRules(this);
            AddAwsAccountRules(this);
        }
Exemple #2
0
 public TerraformPlanDestroyActionHandler(ICloudTemplateHandlerFactory cloudTemplateHandlerFactory)
     : base(cloudTemplateHandlerFactory)
 {
 }
 public TerraformApplyActionHandler(ICloudTemplateHandlerFactory cloudTemplateHandlerFactory)
     : base(cloudTemplateHandlerFactory)
 {
 }
Exemple #4
0
 public TerraformActionHandler(ICloudTemplateHandlerFactory cloudTemplateHandlerFactory)
 {
     this.cloudTemplateHandlerFactory = cloudTemplateHandlerFactory;
 }
Exemple #5
0
 public TerraformDeploymentActionValidation(ICloudTemplateHandlerFactory cloudTemplateHandlerFactory)
 {
     this.cloudTemplateHandlerFactory = cloudTemplateHandlerFactory;
 }