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.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\\" \ 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 - - - diff --git a/src/ServiceControlInstaller.Engine/Instances/ServiceControlAuditInstance.cs b/src/ServiceControlInstaller.Engine/Instances/ServiceControlAuditInstance.cs index 026f946e29..d1027e2481 100644 --- a/src/ServiceControlInstaller.Engine/Instances/ServiceControlAuditInstance.cs +++ b/src/ServiceControlInstaller.Engine/Instances/ServiceControlAuditInstance.cs @@ -88,6 +88,7 @@ public override void Reload() if (string.IsNullOrEmpty(persistenceType)) { + // 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/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 { diff --git a/src/ServiceControlInstaller.Engine/Instances/ServiceControlNewInstance.cs b/src/ServiceControlInstaller.Engine/Instances/ServiceControlNewInstance.cs index d117c41ef4..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,8 +153,5 @@ public static ServiceControlNewInstance Load(string path) return instanceData; } - - // TODO: Change after Raven5 introduced - public const string DefaultPersister = "RavenDB35"; } } \ No newline at end of file diff --git a/src/ServiceControlInstaller.Packaging.UnitTests/AuditDeploymentPackageTests.cs b/src/ServiceControlInstaller.Packaging.UnitTests/AuditDeploymentPackageTests.cs index 0ac150c7c8..3f4c8f141c 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", // Still must exist, as Raven35 persistence.manifest file must be available for SCMU to understand old versions "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..6b70809860 100644 --- a/src/ServiceControlInstaller.Packaging.UnitTests/PrimaryDeploymentPackageTests.cs +++ b/src/ServiceControlInstaller.Packaging.UnitTests/PrimaryDeploymentPackageTests.cs @@ -1,6 +1,5 @@ namespace Tests { - using System.IO; using System.Linq; using NUnit.Framework; @@ -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;