public void Validate(HiveDefinition hiveDefinition) { Covenant.Requires <ArgumentNullException>(hiveDefinition != null); if (!System.Version.TryParse(Version, out var version)) { throw new HiveDefinitionException($"Invalid version [{nameof(ConsulOptions)}.{nameof(Version)}={Version}]."); } if (version < minVersion) { throw new HiveDefinitionException($"Minumim acceptable [{nameof(ConsulOptions)}.{nameof(Version)}={minVersion}]."); } if (string.IsNullOrEmpty(EncryptionKey)) { EncryptionKey = Convert.ToBase64String(NeonHelper.RandBytes(16)); } if (DnsTTL < 0) { throw new HiveDefinitionException($"[{nameof(ConsulOptions)}.{nameof(DnsTTL)}={DnsTTL}] is not valid."); } if (DnsMaxStale < 0) { throw new HiveDefinitionException($"[{nameof(ConsulOptions)}.{nameof(DnsMaxStale)}={DnsMaxStale}] is not valid."); } HiveDefinition.VerifyEncryptionKey(EncryptionKey); }