Added new functionality: checking HIP hosts for TCP connectivity and whether they can be reached via RDP.

This commit is contained in:
2026-05-20 09:32:27 +02:00
parent b8b702bda3
commit 105f5ac7d5
16 changed files with 707 additions and 17 deletions
@@ -41,6 +41,7 @@ namespace BizTalkMonitorConfigGenerator.Configuration
config.GeneratedMonitorConfig.Logging = config.GeneratedMonitorConfig.Logging ?? new LoggingOptions();
config.GeneratedMonitorConfig.EventLog = config.GeneratedMonitorConfig.EventLog ?? new EventLogOptions();
config.GeneratedMonitorConfig.Email = config.GeneratedMonitorConfig.Email ?? new EmailOptions();
config.GeneratedMonitorConfig.HipVirtualMachines = config.GeneratedMonitorConfig.HipVirtualMachines ?? new HipVirtualMachineOptions();
config.GeneratedMonitorConfig.Email.To = RecipientListHelper.SanitizeRecipientList(config.GeneratedMonitorConfig.Email.To);
config.GeneratedMonitorConfig.Email.Cc = RecipientListHelper.SanitizeRecipientList(config.GeneratedMonitorConfig.Email.Cc);
config.GeneratedMonitorConfig.Email.Bcc = RecipientListHelper.SanitizeRecipientList(config.GeneratedMonitorConfig.Email.Bcc);
@@ -213,6 +214,7 @@ namespace BizTalkMonitorConfigGenerator.Configuration
configuration.Logging = configuration.Logging ?? new LoggingOptions();
configuration.EventLog = configuration.EventLog ?? new EventLogOptions();
configuration.Email = configuration.Email ?? new EmailOptions();
configuration.HipVirtualMachines = configuration.HipVirtualMachines ?? new HipVirtualMachineOptions();
configuration.Targets = configuration.Targets ?? new List<TargetOptions>();
if (configuration.Runtime.MaxConcurrency <= 0)
@@ -225,6 +227,24 @@ namespace BizTalkMonitorConfigGenerator.Configuration
throw new InvalidOperationException("GeneratedMonitorConfig.Logging.RetentionDays darf nicht negativ sein.");
}
if (configuration.HipVirtualMachines.Enabled)
{
if (string.IsNullOrWhiteSpace(configuration.HipVirtualMachines.ConfigPath))
{
throw new InvalidOperationException("GeneratedMonitorConfig.HipVirtualMachines.Enabled=true, aber ConfigPath ist leer.");
}
if (configuration.HipVirtualMachines.TimeoutSeconds <= 0)
{
configuration.HipVirtualMachines.TimeoutSeconds = 5;
}
if (configuration.HipVirtualMachines.RdpPort <= 0 || configuration.HipVirtualMachines.RdpPort > 65535)
{
throw new InvalidOperationException("GeneratedMonitorConfig.HipVirtualMachines.RdpPort muss zwischen 1 und 65535 liegen.");
}
}
if (configuration.Email.Enabled)
{
if (string.IsNullOrWhiteSpace(configuration.Email.SmtpHost))
@@ -306,6 +326,16 @@ namespace BizTalkMonitorConfigGenerator.Configuration
CooldownMinutes = configuration.Email.CooldownMinutes,
TimeoutSeconds = configuration.Email.TimeoutSeconds
},
HipVirtualMachines = new HipVirtualMachineOptions
{
Enabled = configuration.HipVirtualMachines.Enabled,
ConfigPath = configuration.HipVirtualMachines.ConfigPath,
ApplicationName = configuration.HipVirtualMachines.ApplicationName,
TimeoutSeconds = configuration.HipVirtualMachines.TimeoutSeconds,
RdpPort = configuration.HipVirtualMachines.RdpPort,
CheckNetwork = configuration.HipVirtualMachines.CheckNetwork,
CheckRdp = configuration.HipVirtualMachines.CheckRdp
},
Targets = new List<TargetOptions>()
};
@@ -94,6 +94,15 @@
"CooldownMinutes": 0,
"TimeoutSeconds": 30
},
"HipVirtualMachines": {
"Enabled": true,
"ConfigPath": "hip-vms.json",
"ApplicationName": "HIP Virtual Machines",
"TimeoutSeconds": 5,
"RdpPort": 3389,
"CheckNetwork": true,
"CheckRdp": true
},
"Targets": []
}
}