Guard Checkmk service renames during updates
This commit is contained in:
@@ -37,6 +37,13 @@ namespace BizTalkCheckmkPulse.Tests
|
||||
Run("EndpointOutputListsOnlyUnavailableTargets", EndpointOutputListsOnlyUnavailableTargets);
|
||||
Run("EndpointOutputExplainsOnlyRealResolutionGaps", EndpointOutputExplainsOnlyRealResolutionGaps);
|
||||
Run("EndpointProbeBudgetFitsMinuteInterval", EndpointProbeBudgetFitsMinuteInterval);
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
Run("EnvironmentLabelDoesNotRenameServicesByDefault", EnvironmentLabelDoesNotRenameServicesByDefault);
|
||||
Run("DefaultServiceContractIsExact", DefaultServiceContractIsExact);
|
||||
Run("InstallerRejectsUnconfirmedServiceRename", InstallerRejectsUnconfirmedServiceRename);
|
||||
Run("InstallerAllowsConfirmedServiceRename", InstallerAllowsConfirmedServiceRename);
|
||||
>>>>>>> e694e4c (Guard Checkmk service renames during updates)
|
||||
Run("InstallerUpdatePreservesExistingSettings", InstallerUpdatePreservesExistingSettings);
|
||||
Run("SnapshotRoundTripPreservesLines", SnapshotRoundTripPreservesLines);
|
||||
Run("SnapshotRejectsTampering", SnapshotRejectsTampering);
|
||||
@@ -683,6 +690,82 @@ namespace BizTalkCheckmkPulse.Tests
|
||||
Assert(configuredMaximum <= 30000, "configured endpoint worst-case must leave headroom in the minute interval");
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
private static void EnvironmentLabelDoesNotRenameServicesByDefault()
|
||||
{
|
||||
var options = new MonitoringOptions { EnvironmentName = "ACC" };
|
||||
var lines = new CheckmkLocalFormatter(options).FormatSelfTest().ToArray();
|
||||
Assert(lines.Any(x => x.Contains("\"BizTalk Platform\"")), "stable service name without environment missing");
|
||||
Assert(lines.All(x => x.IndexOf("\"BizTalk ACC ", StringComparison.Ordinal) < 0), "environment label must not rename services by default");
|
||||
|
||||
options.IncludeEnvironmentInServiceName = true;
|
||||
lines = new CheckmkLocalFormatter(options).FormatSelfTest().ToArray();
|
||||
Assert(lines.Any(x => x.Contains("\"BizTalk ACC Platform\"")), "explicit environment service-name opt-in missing");
|
||||
}
|
||||
|
||||
private static void DefaultServiceContractIsExact()
|
||||
{
|
||||
var actual = new CheckmkLocalFormatter(new MonitoringOptions())
|
||||
.FormatSelfTest()
|
||||
.Select(ExtractQuotedServiceName)
|
||||
.ToArray();
|
||||
var expected = new[]
|
||||
{
|
||||
"BizTalk Platform",
|
||||
"BizTalk SQL Access",
|
||||
"BizTalk Suspended Instances",
|
||||
"BizTalk Host Instances",
|
||||
"BizTalk Receive Locations",
|
||||
"BizTalk Send Ports",
|
||||
"BizTalk Endpoint Reachability",
|
||||
"BizTalk Orchestrations",
|
||||
"BizTalk Event Log"
|
||||
};
|
||||
AssertEqual(string.Join("|", expected), string.Join("|", actual), "exact default service contract");
|
||||
}
|
||||
|
||||
private static void InstallerRejectsUnconfirmedServiceRename()
|
||||
{
|
||||
try
|
||||
{
|
||||
BizTalkCheckmkPulse.Setup.InstallerEngine.EnsureServiceNameCompatibility(
|
||||
new[] { "BizTalk Platform", "BizTalk Event Log" },
|
||||
new[] { "BizTalk ACC Platform", "BizTalk ACC Event Log" },
|
||||
false);
|
||||
throw new InvalidOperationException("unconfirmed rename was accepted");
|
||||
}
|
||||
catch (InvalidOperationException ex)
|
||||
{
|
||||
Assert(ex.Message.Contains("Sicherheitsstopp"), "rename rejection must explain the safety stop");
|
||||
Assert(ex.Message.Contains("Service Discovery"), "rename rejection must require discovery");
|
||||
}
|
||||
}
|
||||
|
||||
private static void InstallerAllowsConfirmedServiceRename()
|
||||
{
|
||||
var unchanged = BizTalkCheckmkPulse.Setup.InstallerEngine.EnsureServiceNameCompatibility(
|
||||
new[] { "BizTalk Platform", "BizTalk Event Log" },
|
||||
new[] { "BizTalk Event Log", "BizTalk Platform" },
|
||||
false);
|
||||
AssertEqual(string.Empty, unchanged, "service ordering must not be treated as rename");
|
||||
|
||||
var change = BizTalkCheckmkPulse.Setup.InstallerEngine.EnsureServiceNameCompatibility(
|
||||
new[] { "BizTalk ACC Platform" },
|
||||
new[] { "BizTalk Platform" },
|
||||
true);
|
||||
Assert(change.Contains("BizTalk ACC Platform"), "confirmed rename must report removed service");
|
||||
Assert(change.Contains("BizTalk Platform"), "confirmed rename must report new service");
|
||||
}
|
||||
|
||||
private static string ExtractQuotedServiceName(string line)
|
||||
{
|
||||
var start = line.IndexOf('"') + 1;
|
||||
var end = line.IndexOf('"', start);
|
||||
return line.Substring(start, end - start);
|
||||
}
|
||||
|
||||
>>>>>>> e694e4c (Guard Checkmk service renames during updates)
|
||||
private static void InstallerUpdatePreservesExistingSettings()
|
||||
{
|
||||
var directory = Path.Combine(Path.GetTempPath(), "BizTalkCheckmkPulse.InstallerTests." + Guid.NewGuid().ToString("N"));
|
||||
|
||||
Reference in New Issue
Block a user