diff --git a/src/Promitor.Scraper.Host/Validation/Factories/MetricValidatorFactory.cs b/src/Promitor.Scraper.Host/Validation/Factories/MetricValidatorFactory.cs index 7fa7ab346..4b2ed565e 100644 --- a/src/Promitor.Scraper.Host/Validation/Factories/MetricValidatorFactory.cs +++ b/src/Promitor.Scraper.Host/Validation/Factories/MetricValidatorFactory.cs @@ -19,6 +19,8 @@ internal static IMetricValidator GetValidatorFor(ResourceType resourceType) return new StorageQueueMetricValidator(); case ResourceType.ContainerInstance: return new ContainerInstanceMetricValidator(); + case ResourceType.VirtualMachine: + return new VirtualMachineMetricValidator(); } throw new ArgumentOutOfRangeException(nameof(resourceType), $"No validation rules are defined for metric type '{resourceType}'"); diff --git a/src/Promitor.Scraper.Host/Validation/MetricDefinitions/MetricsValidator.cs b/src/Promitor.Scraper.Host/Validation/MetricDefinitions/MetricsValidator.cs index 7f710c563..b2d79812b 100644 --- a/src/Promitor.Scraper.Host/Validation/MetricDefinitions/MetricsValidator.cs +++ b/src/Promitor.Scraper.Host/Validation/MetricDefinitions/MetricsValidator.cs @@ -48,7 +48,7 @@ private IList Validate(MetricDefinition metric) { errorMessages.Add("No metric name is configured"); } - + var metricDefinitionValidationErrors = MetricValidatorFactory .GetValidatorFor(metric.ResourceType) .Validate(metric); diff --git a/src/Promitor.Scraper.Host/Validation/MetricDefinitions/ResourceTypes/VirtualMachineMetricValidator.cs b/src/Promitor.Scraper.Host/Validation/MetricDefinitions/ResourceTypes/VirtualMachineMetricValidator.cs index a5ce52fcb..cfa13a7c1 100644 --- a/src/Promitor.Scraper.Host/Validation/MetricDefinitions/ResourceTypes/VirtualMachineMetricValidator.cs +++ b/src/Promitor.Scraper.Host/Validation/MetricDefinitions/ResourceTypes/VirtualMachineMetricValidator.cs @@ -1,13 +1,15 @@ using System.Collections.Generic; +using GuardNet; using Promitor.Core.Scraping.Configuration.Model.Metrics.ResourceTypes; -using Promitor.Scraper.Host.Validation.MetricDefinitions.Interfaces; namespace Promitor.Scraper.Host.Validation.MetricDefinitions.ResourceTypes { - public class VirtualMachineMetricValidator : IMetricValidator + internal class VirtualMachineMetricValidator : MetricValidator { - public List Validate(VirtualMachineMetricDefinition virtualMachineMetricDefinition) + protected override IEnumerable Validate(VirtualMachineMetricDefinition virtualMachineMetricDefinition) { + Guard.NotNull(virtualMachineMetricDefinition, nameof(virtualMachineMetricDefinition)); + var errorMessages = new List(); if (string.IsNullOrWhiteSpace(virtualMachineMetricDefinition.VirtualMachineName))