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); }
public TerraformPlanDestroyActionHandler(ICloudTemplateHandlerFactory cloudTemplateHandlerFactory) : base(cloudTemplateHandlerFactory) { }
public TerraformApplyActionHandler(ICloudTemplateHandlerFactory cloudTemplateHandlerFactory) : base(cloudTemplateHandlerFactory) { }
public TerraformActionHandler(ICloudTemplateHandlerFactory cloudTemplateHandlerFactory) { this.cloudTemplateHandlerFactory = cloudTemplateHandlerFactory; }
public TerraformDeploymentActionValidation(ICloudTemplateHandlerFactory cloudTemplateHandlerFactory) { this.cloudTemplateHandlerFactory = cloudTemplateHandlerFactory; }