From a0f88b9791d4085ac3418bd15a5bf0e485b5c92b Mon Sep 17 00:00:00 2001 From: Ramon Smits Date: Tue, 10 Oct 2023 17:19:40 +0200 Subject: [PATCH 1/6] Docker default storage engine to RavenDB5 --- .../servicecontrol.transport-windows.dockerfile-template | 4 ++-- ...servicecontrol.transport.audit-windows.dockerfile-template | 4 ++-- ...cecontrol.transport.audit.init-windows.dockerfile-template | 4 ++-- .../servicecontrol.transport.init-windows.dockerfile-template | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/ServiceControl.DockerImages/servicecontrol.transport-windows.dockerfile-template b/src/ServiceControl.DockerImages/servicecontrol.transport-windows.dockerfile-template index 5242f87010..9859160067 100644 --- a/src/ServiceControl.DockerImages/servicecontrol.transport-windows.dockerfile-template +++ b/src/ServiceControl.DockerImages/servicecontrol.transport-windows.dockerfile-template @@ -4,12 +4,12 @@ WORKDIR /servicecontrol ARG TRANSPORT -ADD /Particular.ServiceControl/ServiceControl /Transports/${TRANSPORT} /Particular.ServiceControl/Persisters/RavenDB35 ./ +ADD /Particular.ServiceControl/ServiceControl /Transports/${TRANSPORT} /Particular.ServiceControl/Persisters/RavenDB5 ./ ARG TRANSPORT_CUSTOMIZATION_TYPE ENV "ServiceControl/TransportType"="${TRANSPORT_CUSTOMIZATION_TYPE}" \ - "ServiceControl/PersistenceType"="ServiceControl.Persistence.RavenDb.RavenDbPersistenceConfiguration, ServiceControl.Persistence.RavenDb" \ + "ServiceControl/PersistenceType"="ServiceControl.Persistence.RavenDb.RavenDbPersistenceConfiguration, ServiceControl.Persistence.RavenDb5" \ "ServiceControl/Hostname"="*" \ "ServiceControl/DBPath"="C:\\Data\\DB\\" \ "ServiceControl/LogPath"="C:\\Data\\Logs\\" \ diff --git a/src/ServiceControl.DockerImages/servicecontrol.transport.audit-windows.dockerfile-template b/src/ServiceControl.DockerImages/servicecontrol.transport.audit-windows.dockerfile-template index babee93dc5..cb2f47e724 100644 --- a/src/ServiceControl.DockerImages/servicecontrol.transport.audit-windows.dockerfile-template +++ b/src/ServiceControl.DockerImages/servicecontrol.transport.audit-windows.dockerfile-template @@ -4,12 +4,12 @@ WORKDIR /servicecontrol.audit ARG TRANSPORT -ADD /Particular.ServiceControl.Audit/ServiceControl.Audit /Transports/${TRANSPORT} /Particular.ServiceControl.Audit/Persisters/RavenDB35 ./ +ADD /Particular.ServiceControl.Audit/ServiceControl.Audit /Transports/${TRANSPORT} /Particular.ServiceControl.Audit/Persisters/RavenDB5 ./ ARG TRANSPORT_CUSTOMIZATION_TYPE ENV "ServiceControl.Audit/TransportType"="${TRANSPORT_CUSTOMIZATION_TYPE}" \ - "ServiceControl.Audit/PersistenceType"="ServiceControl.Audit.Persistence.RavenDb.RavenDbPersistenceConfiguration, ServiceControl.Audit.Persistence.RavenDb" \ + "ServiceControl.Audit/PersistenceType"="ServiceControl.Audit.Persistence.RavenDb.RavenDbPersistenceConfiguration, ServiceControl.Audit.Persistence.RavenDb5" \ "ServiceControl.Audit/Hostname"="*" \ "ServiceControl.Audit/DBPath"="C:\\Data\\DB\\" \ "ServiceControl.Audit/LogPath"="C:\\Data\\Logs\\" \ diff --git a/src/ServiceControl.DockerImages/servicecontrol.transport.audit.init-windows.dockerfile-template b/src/ServiceControl.DockerImages/servicecontrol.transport.audit.init-windows.dockerfile-template index 4efb6e71aa..3ebc5850fb 100644 --- a/src/ServiceControl.DockerImages/servicecontrol.transport.audit.init-windows.dockerfile-template +++ b/src/ServiceControl.DockerImages/servicecontrol.transport.audit.init-windows.dockerfile-template @@ -4,12 +4,12 @@ WORKDIR /servicecontrol.audit ARG TRANSPORT -ADD /Particular.ServiceControl.Audit/ServiceControl.Audit /Transports/${TRANSPORT} /Particular.ServiceControl.Audit/Persisters/RavenDB35 ./ +ADD /Particular.ServiceControl.Audit/ServiceControl.Audit /Transports/${TRANSPORT} /Particular.ServiceControl.Audit/Persisters/RavenDB5 ./ ARG TRANSPORT_CUSTOMIZATION_TYPE ENV "ServiceControl.Audit/TransportType"="${TRANSPORT_CUSTOMIZATION_TYPE}" \ - "ServiceControl.Audit/PersistenceType"="ServiceControl.Audit.Persistence.RavenDb.RavenDbPersistenceConfiguration, ServiceControl.Audit.Persistence.RavenDb" \ + "ServiceControl.Audit/PersistenceType"="ServiceControl.Audit.Persistence.RavenDb.RavenDbPersistenceConfiguration, ServiceControl.Audit.Persistence.RavenDb5" \ "ServiceControl.Audit/Hostname"="*" \ "ServiceControl.Audit/DBPath"="C:\\Data\\DB\\" \ "ServiceControl.Audit/LogPath"="C:\\Data\\Logs\\" \ diff --git a/src/ServiceControl.DockerImages/servicecontrol.transport.init-windows.dockerfile-template b/src/ServiceControl.DockerImages/servicecontrol.transport.init-windows.dockerfile-template index 2f7efcd976..0fb03a4ef0 100644 --- a/src/ServiceControl.DockerImages/servicecontrol.transport.init-windows.dockerfile-template +++ b/src/ServiceControl.DockerImages/servicecontrol.transport.init-windows.dockerfile-template @@ -4,12 +4,12 @@ WORKDIR /servicecontrol ARG TRANSPORT -ADD /Particular.ServiceControl/ServiceControl /Transports/${TRANSPORT} /Particular.ServiceControl/Persisters/RavenDB35 ./ +ADD /Particular.ServiceControl/ServiceControl /Transports/${TRANSPORT} /Particular.ServiceControl/Persisters/RavenDB5 ./ ARG TRANSPORT_CUSTOMIZATION_TYPE ENV "ServiceControl/TransportType"="${TRANSPORT_CUSTOMIZATION_TYPE}" \ - "ServiceControl/PersistenceType"="ServiceControl.Persistence.RavenDb.RavenDbPersistenceConfiguration, ServiceControl.Persistence.RavenDb" \ + "ServiceControl/PersistenceType"="ServiceControl.Persistence.RavenDb.RavenDbPersistenceConfiguration, ServiceControl.Persistence.RavenDb5" \ "ServiceControl/Hostname"="*" \ "ServiceControl/DBPath"="C:\\Data\\DB\\" \ "ServiceControl/LogPath"="C:\\Data\\Logs\\" \ From dfc1dc7e064cd0cf755e64da76271517f2ffff83 Mon Sep 17 00:00:00 2001 From: Ramon Smits Date: Tue, 10 Oct 2023 17:19:56 +0200 Subject: [PATCH 2/6] Remove obsolete settings --- src/ServiceControl.Audit/App.config | 3 --- src/ServiceControl/App.config | 3 --- 2 files changed, 6 deletions(-) diff --git a/src/ServiceControl.Audit/App.config b/src/ServiceControl.Audit/App.config index 5d596184ef..435f41a343 100644 --- a/src/ServiceControl.Audit/App.config +++ b/src/ServiceControl.Audit/App.config @@ -27,9 +27,6 @@ These settings are only here so that we can debug ServiceControl while developin - - - diff --git a/src/ServiceControl/App.config b/src/ServiceControl/App.config index 3305284eca..7022771ace 100644 --- a/src/ServiceControl/App.config +++ b/src/ServiceControl/App.config @@ -33,9 +33,6 @@ These settings are only here so that we can debug ServiceControl while developin - - - From 6a495274e330d08ae49272c682236d6815da8db2 Mon Sep 17 00:00:00 2001 From: Ramon Smits Date: Tue, 10 Oct 2023 17:20:41 +0200 Subject: [PATCH 3/6] Make ravendb5 the new default --- .../Instances/ServiceControlAuditInstance.cs | 2 +- .../Instances/ServiceControlNewInstance.cs | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/ServiceControlInstaller.Engine/Instances/ServiceControlAuditInstance.cs b/src/ServiceControlInstaller.Engine/Instances/ServiceControlAuditInstance.cs index 026f946e29..4cd255ca58 100644 --- a/src/ServiceControlInstaller.Engine/Instances/ServiceControlAuditInstance.cs +++ b/src/ServiceControlInstaller.Engine/Instances/ServiceControlAuditInstance.cs @@ -88,7 +88,7 @@ public override void Reload() if (string.IsNullOrEmpty(persistenceType)) { - PersistenceManifest = manifests.Single(m => m.Name == "RavenDB35"); + PersistenceManifest = manifests.Single(m => m.Name == "RavenDB5"); } else { diff --git a/src/ServiceControlInstaller.Engine/Instances/ServiceControlNewInstance.cs b/src/ServiceControlInstaller.Engine/Instances/ServiceControlNewInstance.cs index d117c41ef4..f03b49d34d 100644 --- a/src/ServiceControlInstaller.Engine/Instances/ServiceControlNewInstance.cs +++ b/src/ServiceControlInstaller.Engine/Instances/ServiceControlNewInstance.cs @@ -153,7 +153,6 @@ public static ServiceControlNewInstance Load(string path) return instanceData; } - // TODO: Change after Raven5 introduced - public const string DefaultPersister = "RavenDB35"; + public const string DefaultPersister = "RavenDB5"; } } \ No newline at end of file From 1dafcc8d012481a91fde575c8b6707358c39a412 Mon Sep 17 00:00:00 2001 From: Ramon Smits Date: Tue, 10 Oct 2023 17:25:01 +0200 Subject: [PATCH 4/6] Added TODO:'s to remove RavenDB35 references as these longer exists for deployment tests --- .../AuditDeploymentPackageTests.cs | 7 ++++--- .../PrimaryDeploymentPackageTests.cs | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/ServiceControlInstaller.Packaging.UnitTests/AuditDeploymentPackageTests.cs b/src/ServiceControlInstaller.Packaging.UnitTests/AuditDeploymentPackageTests.cs index 0ac150c7c8..d7c9c2ae0b 100644 --- a/src/ServiceControlInstaller.Packaging.UnitTests/AuditDeploymentPackageTests.cs +++ b/src/ServiceControlInstaller.Packaging.UnitTests/AuditDeploymentPackageTests.cs @@ -14,10 +14,11 @@ public AuditDeploymentPackageTests() [Test] public void Should_package_storages_individually() { - var expectedPersisters = new string[] { - "RavenDB35", + var expectedPersisters = new[] { + //"RavenDB35", TODO: Remove? "RavenDB5", - "InMemory"}; + "InMemory" + }; var persisters = deploymentPackage.DeploymentUnits.Where(u => u.Category == "Persisters"); diff --git a/src/ServiceControlInstaller.Packaging.UnitTests/PrimaryDeploymentPackageTests.cs b/src/ServiceControlInstaller.Packaging.UnitTests/PrimaryDeploymentPackageTests.cs index 89fc21e73f..1fd38cbb57 100644 --- a/src/ServiceControlInstaller.Packaging.UnitTests/PrimaryDeploymentPackageTests.cs +++ b/src/ServiceControlInstaller.Packaging.UnitTests/PrimaryDeploymentPackageTests.cs @@ -5,7 +5,7 @@ namespace Tests using NUnit.Framework; [TestFixture] - public class PrimaryDeploymentPackageTests + public class PrimaryDeploymentPackageTests // TODO: Remove? { public PrimaryDeploymentPackageTests() { From 87498ea02ff6b4e406e54bb4de9475b16be8e9e5 Mon Sep 17 00:00:00 2001 From: David Boike Date: Tue, 10 Oct 2023 12:41:13 -0500 Subject: [PATCH 5/6] Revert/fix packaging test details --- .../Instances/ServiceControlAuditInstance.cs | 3 ++- .../ServiceControlAuditNewInstance.cs | 5 ++--- .../Instances/ServiceControlNewInstance.cs | 5 ++--- .../AuditDeploymentPackageTests.cs | 2 +- .../PrimaryDeploymentPackageTests.cs | 21 ++++++++++++++----- 5 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/ServiceControlInstaller.Engine/Instances/ServiceControlAuditInstance.cs b/src/ServiceControlInstaller.Engine/Instances/ServiceControlAuditInstance.cs index 4cd255ca58..d1027e2481 100644 --- a/src/ServiceControlInstaller.Engine/Instances/ServiceControlAuditInstance.cs +++ b/src/ServiceControlInstaller.Engine/Instances/ServiceControlAuditInstance.cs @@ -88,7 +88,8 @@ public override void Reload() if (string.IsNullOrEmpty(persistenceType)) { - PersistenceManifest = manifests.Single(m => m.Name == "RavenDB5"); + // Must always remain RavenDB35 so that SCMU understands that an instance with no configured value is an old Raven 3.5 instance + PersistenceManifest = manifests.Single(m => m.Name == "RavenDB35"); } else { diff --git a/src/ServiceControlInstaller.Engine/Instances/ServiceControlAuditNewInstance.cs b/src/ServiceControlInstaller.Engine/Instances/ServiceControlAuditNewInstance.cs index 5671205b98..8bb092a5a9 100644 --- a/src/ServiceControlInstaller.Engine/Instances/ServiceControlAuditNewInstance.cs +++ b/src/ServiceControlInstaller.Engine/Instances/ServiceControlAuditNewInstance.cs @@ -21,7 +21,8 @@ public static ServiceControlAuditNewInstance CreateWithDefaultPersistence() public static ServiceControlAuditNewInstance CreateWithDefaultPersistence(string deploymentCachePath) { - return CreateWithPersistence(deploymentCachePath, DefaultPersister); + const string persisterToUseForBrandNewInstances = "RavenDB5"; + return CreateWithPersistence(deploymentCachePath, persisterToUseForBrandNewInstances); } public static ServiceControlAuditNewInstance CreateWithPersistence(string deploymentCachePath, string persistence) @@ -98,7 +99,5 @@ public override void CopyFiles(string zipFilePath) FileUtils.UnzipToSubdirectory(zipFilePath, InstallPath, $@"Persisters\{PersistenceManifest.Name}"); } - - const string DefaultPersister = "RavenDB5"; } } \ No newline at end of file diff --git a/src/ServiceControlInstaller.Engine/Instances/ServiceControlNewInstance.cs b/src/ServiceControlInstaller.Engine/Instances/ServiceControlNewInstance.cs index f03b49d34d..f8f9d11acc 100644 --- a/src/ServiceControlInstaller.Engine/Instances/ServiceControlNewInstance.cs +++ b/src/ServiceControlInstaller.Engine/Instances/ServiceControlNewInstance.cs @@ -22,7 +22,8 @@ public static ServiceControlNewInstance CreateWithDefaultPersistence() public static ServiceControlNewInstance CreateWithDefaultPersistence(string deploymentCachePath) { - return CreateWithPersistence(deploymentCachePath, DefaultPersister); + const string persisterUsedForBrandNewInstances = "RavenDB5"; + return CreateWithPersistence(deploymentCachePath, persisterUsedForBrandNewInstances); } public static ServiceControlNewInstance CreateWithPersistence(string deploymentCachePath, string persistence) @@ -152,7 +153,5 @@ public static ServiceControlNewInstance Load(string path) return instanceData; } - - public const string DefaultPersister = "RavenDB5"; } } \ No newline at end of file diff --git a/src/ServiceControlInstaller.Packaging.UnitTests/AuditDeploymentPackageTests.cs b/src/ServiceControlInstaller.Packaging.UnitTests/AuditDeploymentPackageTests.cs index d7c9c2ae0b..3f4c8f141c 100644 --- a/src/ServiceControlInstaller.Packaging.UnitTests/AuditDeploymentPackageTests.cs +++ b/src/ServiceControlInstaller.Packaging.UnitTests/AuditDeploymentPackageTests.cs @@ -15,7 +15,7 @@ public AuditDeploymentPackageTests() public void Should_package_storages_individually() { var expectedPersisters = new[] { - //"RavenDB35", TODO: Remove? + "RavenDB35", // Still must exist, as Raven35 persistence.manifest file must be available for SCMU to understand old versions "RavenDB5", "InMemory" }; diff --git a/src/ServiceControlInstaller.Packaging.UnitTests/PrimaryDeploymentPackageTests.cs b/src/ServiceControlInstaller.Packaging.UnitTests/PrimaryDeploymentPackageTests.cs index 1fd38cbb57..6b70809860 100644 --- a/src/ServiceControlInstaller.Packaging.UnitTests/PrimaryDeploymentPackageTests.cs +++ b/src/ServiceControlInstaller.Packaging.UnitTests/PrimaryDeploymentPackageTests.cs @@ -1,11 +1,10 @@ namespace Tests { - using System.IO; using System.Linq; using NUnit.Framework; [TestFixture] - public class PrimaryDeploymentPackageTests // TODO: Remove? + public class PrimaryDeploymentPackageTests { public PrimaryDeploymentPackageTests() { @@ -13,10 +12,22 @@ public PrimaryDeploymentPackageTests() } [Test] - public void Should_bundle_ravendb35_persister() + public void Should_package_storages_individually() { - var persistenceAssemblyPath = Path.Combine(deploymentPackage.Directory.FullName, "Persisters", "RavenDB35", "ServiceControl.Persistence.RavenDb.dll"); - FileAssert.Exists(persistenceAssemblyPath, "RavenDB 3.5 persister should be bundled"); + var expectedPersisters = new[] { + "RavenDB35", // Still must exist, as Raven35 persistence.manifest file must be available for SCMU to understand old versions + "RavenDB5" + }; + + var persisters = deploymentPackage.DeploymentUnits.Where(u => u.Category == "Persisters"); + + CollectionAssert.AreEquivalent(expectedPersisters, persisters.Select(d => d.Name), $"Expected persisters folder to contain {string.Join(",", expectedPersisters)}"); + + foreach (var persister in persisters) + { + Assert.IsFalse(persister.Files.Any(f => f.Name.EndsWith(".config")), $"{persister.Name} contains a config file"); + Assert.IsTrue(persister.Files.Any(f => f.Name == "persistence.manifest"), $"{persister.Name} doesn't contain a persistence.manifest file"); + } } readonly DeploymentPackage deploymentPackage; From 61763aa0e949fde6823280d5b003d4853df29b60 Mon Sep 17 00:00:00 2001 From: David Boike Date: Tue, 10 Oct 2023 13:22:23 -0500 Subject: [PATCH 6/6] Fix, align with Audit --- .../Instances/ServiceControlInstance.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ServiceControlInstaller.Engine/Instances/ServiceControlInstance.cs b/src/ServiceControlInstaller.Engine/Instances/ServiceControlInstance.cs index 9697a9cb7b..07b7ddf035 100644 --- a/src/ServiceControlInstaller.Engine/Instances/ServiceControlInstance.cs +++ b/src/ServiceControlInstaller.Engine/Instances/ServiceControlInstance.cs @@ -127,7 +127,8 @@ public override void Reload() if (string.IsNullOrEmpty(persistenceType)) { - PersistenceManifest = manifests.Single(m => m.Name == ServiceControlNewInstance.DefaultPersister); + // Must always remain RavenDB35 so that SCMU understands that an instance with no configured value is an old Raven 3.5 instance + PersistenceManifest = manifests.Single(m => m.Name == "RavenDB35"); } else {