in Configurator/Base/Classes/ExtensionMethods.cs [1067:1117]
public static UpgradeViability ServerSupportsInPlaceUpgrades(this Version newVersion,
Version oldVersion,
ServerMaturity newVersionMaturiy = ServerMaturity.Unknown,
ServerMaturity oldVersionMaturity = ServerMaturity.Unknown)
{
if (newVersion == null)
{
throw new ArgumentNullException(nameof(oldVersion));
}
if (oldVersion == null)
{
throw new ArgumentNullException(nameof(oldVersion));
}
// Assign maturities if they have not been set.
if (oldVersionMaturity == ServerMaturity.Unknown)
{
oldVersionMaturity = Utilities.GetServerMaturity(oldVersion);
}
if (newVersionMaturiy == ServerMaturity.Unknown)
{
newVersionMaturiy = Utilities.GetServerMaturity(newVersion);
}
if (oldVersion > newVersion
|| (oldVersion.Major < 8)
|| (oldVersion == newVersion))
{
return UpgradeViability.Unsupported;
}
else if (
// Within an LTS. E.g 8.4.X LTS to 8.4.Y LTS.
IsWithinSameLts(newVersion, oldVersion, newVersionMaturiy, oldVersionMaturity)
// From an LTS to the next LTS series.
|| IsFromLtsToNextLts(newVersion, oldVersion, newVersionMaturiy, oldVersionMaturity)
// From an LTS to an innovation release before the next LTS series.
|| IsFromLtsToInnovationBeforeNextLts(newVersion, oldVersion, newVersionMaturiy, oldVersionMaturity)
// From an innovation series to the next LTS series.
|| IsFromInnovationToNextLts(newVersion, oldVersion, newVersionMaturiy, oldVersionMaturity)
// From within an innovation series.
|| IsWithinSameInnovationSeries(newVersion, oldVersion, newVersionMaturiy, oldVersionMaturity))
{
return UpgradeViability.Supported;
}
else
{
return UpgradeViability.UnsupportedWithWarning;
}
}