From c4ac6aa6957fe7ea712b250af03d04f797d2b3d2 Mon Sep 17 00:00:00 2001 From: Ramon Smits Date: Tue, 3 Oct 2023 12:58:33 +0200 Subject: [PATCH 1/4] =?UTF-8?q?=F0=9F=94=A8=20Remove=20confusion=20about?= =?UTF-8?q?=20`ServerUrl`=20by=20removing=20`DatabaseMaintenanceUrl`=20and?= =?UTF-8?q?=20documenting=20settings=20property?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SharedEmbeddedServer.cs | 2 +- .../RavenDBPersisterSettings.cs | 18 ++++++++++++------ .../RavenDbPersistenceConfiguration.cs | 4 ++-- .../SharedEmbeddedServer.cs | 2 +- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/ServiceControl.AcceptanceTests.RavenDB5/SharedEmbeddedServer.cs b/src/ServiceControl.AcceptanceTests.RavenDB5/SharedEmbeddedServer.cs index b4f7881774..0cc061f7d5 100644 --- a/src/ServiceControl.AcceptanceTests.RavenDB5/SharedEmbeddedServer.cs +++ b/src/ServiceControl.AcceptanceTests.RavenDB5/SharedEmbeddedServer.cs @@ -20,7 +20,7 @@ public static async Task GetInstance(CancellationToken cancell DatabasePath = dbPath, LogPath = Path.Combine(basePath, "Logs"), LogsMode = "Operations", - ServerUrl = $"http://localhost:{PortUtility.FindAvailablePort(33334)}" + DatabasePort = PortUtility.FindAvailablePort(RavenDBPersisterSettings.DatabasePortDefault) }; var instance = EmbeddedDatabase.Start(settings); diff --git a/src/ServiceControl.Persistence.RavenDb5/RavenDBPersisterSettings.cs b/src/ServiceControl.Persistence.RavenDb5/RavenDBPersisterSettings.cs index 5f4e33a76c..1f78650f35 100644 --- a/src/ServiceControl.Persistence.RavenDb5/RavenDBPersisterSettings.cs +++ b/src/ServiceControl.Persistence.RavenDb5/RavenDBPersisterSettings.cs @@ -4,9 +4,8 @@ class RavenDBPersisterSettings : PersistenceSettings { - public string HostName { get; set; } = "localhost"; - public int DatabaseMaintenancePort { get; set; } = DatabaseMaintenancePortDefault; - public string DatabaseMaintenanceUrl => $"http://{HostName}:{DatabaseMaintenancePort}"; + public string HostName { get; set; } = HostNameDefault; // TODO: (Ramon) I think thus must be 🔥 I don't think we should ever allow remote access by using a value different than `localhost` as Raven Studio might then be always be accessible! + public int DatabasePort { get; set; } = DatabasePortDefault; public int ExpirationProcessTimerInSeconds { get; set; } = ExpirationProcessTimerInSecondsDefault; public int MinimumStorageLeftRequiredForIngestion { get; set; } = CheckMinimumStorageRequiredForIngestion.MinimumStorageLeftRequiredForIngestionDefault; public int DataSpaceRemainingThreshold { get; set; } = CheckFreeDiskSpace.DataSpaceRemainingThresholdDefault; @@ -15,8 +14,14 @@ class RavenDBPersisterSettings : PersistenceSettings public TimeSpan? AuditRetentionPeriod { get; set; } public int ExternalIntegrationsDispatchingBatchSize { get; set; } = 100; - //TODO: these are newly added settings, we should remove any duplication - public string ServerUrl { get; set; } // TODO: This name is SUPER confusing + /// + /// Computed connection string to access embedded RavenDB API and RavenDB Studio + /// + public string ServerUrl => $"http://{HostName}:{DatabasePort}"; + + /// + /// User provided external RavenDB instance connection string + /// public string ConnectionString { get; set; } public bool UseEmbeddedServer => string.IsNullOrWhiteSpace(ConnectionString); public string LogPath { get; set; } @@ -24,7 +29,8 @@ class RavenDBPersisterSettings : PersistenceSettings public string DatabaseName { get; set; } = DatabaseNameDefault; public const string DatabaseNameDefault = "primary"; - public const int DatabaseMaintenancePortDefault = 33334; + public const int DatabasePortDefault = 33334; public const int ExpirationProcessTimerInSecondsDefault = 600; public const string LogsModeDefault = "Information"; + public const string HostNameDefault = "localhost"; } \ No newline at end of file diff --git a/src/ServiceControl.Persistence.RavenDb5/RavenDbPersistenceConfiguration.cs b/src/ServiceControl.Persistence.RavenDb5/RavenDbPersistenceConfiguration.cs index 9e414f9299..586af81f6d 100644 --- a/src/ServiceControl.Persistence.RavenDb5/RavenDbPersistenceConfiguration.cs +++ b/src/ServiceControl.Persistence.RavenDb5/RavenDbPersistenceConfiguration.cs @@ -45,8 +45,8 @@ T GetSetting(string key, T defaultValue) ConnectionString = GetSetting(RavenBootstrapper.ConnectionStringKey, default), DatabaseName = GetSetting(RavenBootstrapper.DatabaseNameKey, RavenDBPersisterSettings.DatabaseNameDefault), DatabasePath = GetSetting(RavenBootstrapper.DatabasePathKey, default), - HostName = GetSetting(RavenBootstrapper.HostNameKey, "localhost"), - DatabaseMaintenancePort = GetSetting(RavenBootstrapper.DatabaseMaintenancePortKey, RavenDBPersisterSettings.DatabaseMaintenancePortDefault), + HostName = GetSetting(RavenBootstrapper.HostNameKey, RavenDBPersisterSettings.HostNameDefault), + DatabasePort = GetSetting(RavenBootstrapper.DatabaseMaintenancePortKey, RavenDBPersisterSettings.DatabasePortDefault), ExpirationProcessTimerInSeconds = GetSetting(RavenBootstrapper.ExpirationProcessTimerInSecondsKey, 600), MinimumStorageLeftRequiredForIngestion = GetSetting(RavenBootstrapper.MinimumStorageLeftRequiredForIngestionKey, CheckMinimumStorageRequiredForIngestion.MinimumStorageLeftRequiredForIngestionDefault), DataSpaceRemainingThreshold = GetSetting(DataSpaceRemainingThresholdKey, CheckFreeDiskSpace.DataSpaceRemainingThresholdDefault), diff --git a/src/ServiceControl.Persistence.Tests.RavenDb5/SharedEmbeddedServer.cs b/src/ServiceControl.Persistence.Tests.RavenDb5/SharedEmbeddedServer.cs index c8850164ff..7870f99d26 100644 --- a/src/ServiceControl.Persistence.Tests.RavenDb5/SharedEmbeddedServer.cs +++ b/src/ServiceControl.Persistence.Tests.RavenDb5/SharedEmbeddedServer.cs @@ -19,7 +19,7 @@ public static async Task GetInstance(CancellationToken cancell DatabasePath = dbPath, LogPath = Path.Combine(basePath, "Logs"), LogsMode = "Operations", - ServerUrl = $"http://localhost:{PortUtility.FindAvailablePort(33334)}" + DatabasePort = PortUtility.FindAvailablePort(RavenDBPersisterSettings.DatabasePortDefault) }; var instance = EmbeddedDatabase.Start(settings); From 5bcb5f28f9af4479cd26ee1659ca7be9a81779e3 Mon Sep 17 00:00:00 2001 From: Ramon Smits Date: Wed, 4 Oct 2023 11:20:07 +0200 Subject: [PATCH 2/4] =?UTF-8?q?=F0=9F=A9=B9=20Burned=20HostName=20from=20R?= =?UTF-8?q?avenDBPersisterSettings,=20primary=20RavenDB5=20instance=20foll?= =?UTF-8?q?ows=20same=20behavior=20as=20audit=20instance=20to=20only=20use?= =?UTF-8?q?=20localhost=20for=20embedded=20instance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RavenDBPersisterSettings.cs | 4 +--- .../RavenDbPersistenceConfiguration.cs | 1 - 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/ServiceControl.Persistence.RavenDb5/RavenDBPersisterSettings.cs b/src/ServiceControl.Persistence.RavenDb5/RavenDBPersisterSettings.cs index 1f78650f35..5892106ead 100644 --- a/src/ServiceControl.Persistence.RavenDb5/RavenDBPersisterSettings.cs +++ b/src/ServiceControl.Persistence.RavenDb5/RavenDBPersisterSettings.cs @@ -4,7 +4,6 @@ class RavenDBPersisterSettings : PersistenceSettings { - public string HostName { get; set; } = HostNameDefault; // TODO: (Ramon) I think thus must be 🔥 I don't think we should ever allow remote access by using a value different than `localhost` as Raven Studio might then be always be accessible! public int DatabasePort { get; set; } = DatabasePortDefault; public int ExpirationProcessTimerInSeconds { get; set; } = ExpirationProcessTimerInSecondsDefault; public int MinimumStorageLeftRequiredForIngestion { get; set; } = CheckMinimumStorageRequiredForIngestion.MinimumStorageLeftRequiredForIngestionDefault; @@ -17,7 +16,7 @@ class RavenDBPersisterSettings : PersistenceSettings /// /// Computed connection string to access embedded RavenDB API and RavenDB Studio /// - public string ServerUrl => $"http://{HostName}:{DatabasePort}"; + public string ServerUrl => $"http://localhost:{DatabasePort}"; /// /// User provided external RavenDB instance connection string @@ -32,5 +31,4 @@ class RavenDBPersisterSettings : PersistenceSettings public const int DatabasePortDefault = 33334; public const int ExpirationProcessTimerInSecondsDefault = 600; public const string LogsModeDefault = "Information"; - public const string HostNameDefault = "localhost"; } \ No newline at end of file diff --git a/src/ServiceControl.Persistence.RavenDb5/RavenDbPersistenceConfiguration.cs b/src/ServiceControl.Persistence.RavenDb5/RavenDbPersistenceConfiguration.cs index 586af81f6d..b5415e993d 100644 --- a/src/ServiceControl.Persistence.RavenDb5/RavenDbPersistenceConfiguration.cs +++ b/src/ServiceControl.Persistence.RavenDb5/RavenDbPersistenceConfiguration.cs @@ -45,7 +45,6 @@ T GetSetting(string key, T defaultValue) ConnectionString = GetSetting(RavenBootstrapper.ConnectionStringKey, default), DatabaseName = GetSetting(RavenBootstrapper.DatabaseNameKey, RavenDBPersisterSettings.DatabaseNameDefault), DatabasePath = GetSetting(RavenBootstrapper.DatabasePathKey, default), - HostName = GetSetting(RavenBootstrapper.HostNameKey, RavenDBPersisterSettings.HostNameDefault), DatabasePort = GetSetting(RavenBootstrapper.DatabaseMaintenancePortKey, RavenDBPersisterSettings.DatabasePortDefault), ExpirationProcessTimerInSeconds = GetSetting(RavenBootstrapper.ExpirationProcessTimerInSecondsKey, 600), MinimumStorageLeftRequiredForIngestion = GetSetting(RavenBootstrapper.MinimumStorageLeftRequiredForIngestionKey, CheckMinimumStorageRequiredForIngestion.MinimumStorageLeftRequiredForIngestionDefault), From e281b82dd01bf8495eeff94f91409df6e16bc3d6 Mon Sep 17 00:00:00 2001 From: Ramon Smits Date: Wed, 4 Oct 2023 11:23:43 +0200 Subject: [PATCH 3/4] Changed RavenDB default log mode from Information to Operations to align with audit instance --- .../RavenDBPersisterSettings.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ServiceControl.Persistence.RavenDb5/RavenDBPersisterSettings.cs b/src/ServiceControl.Persistence.RavenDb5/RavenDBPersisterSettings.cs index 5892106ead..92426b4916 100644 --- a/src/ServiceControl.Persistence.RavenDb5/RavenDBPersisterSettings.cs +++ b/src/ServiceControl.Persistence.RavenDb5/RavenDBPersisterSettings.cs @@ -30,5 +30,5 @@ class RavenDBPersisterSettings : PersistenceSettings public const string DatabaseNameDefault = "primary"; public const int DatabasePortDefault = 33334; public const int ExpirationProcessTimerInSecondsDefault = 600; - public const string LogsModeDefault = "Information"; + public const string LogsModeDefault = "Operations"; } \ No newline at end of file From 242c18dac67cdc25cf430dacba389c89cdc7c372 Mon Sep 17 00:00:00 2001 From: David Boike Date: Wed, 4 Oct 2023 12:33:35 -0500 Subject: [PATCH 4/4] Align MultiInstance --- .../SharedEmbeddedServer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ServiceControl.MultiInstance.AcceptanceTests/SharedEmbeddedServer.cs b/src/ServiceControl.MultiInstance.AcceptanceTests/SharedEmbeddedServer.cs index 463ecf894a..2746f6a3df 100644 --- a/src/ServiceControl.MultiInstance.AcceptanceTests/SharedEmbeddedServer.cs +++ b/src/ServiceControl.MultiInstance.AcceptanceTests/SharedEmbeddedServer.cs @@ -20,7 +20,7 @@ public static async Task GetInstance(CancellationToken cancell DatabasePath = dbPath, LogPath = Path.Combine(basePath, "Logs"), LogsMode = "Operations", - ServerUrl = $"http://localhost:{PortUtility.FindAvailablePort(33334)}" + DatabasePort = PortUtility.FindAvailablePort(RavenDBPersisterSettings.DatabasePortDefault) }; var instance = EmbeddedDatabase.Start(settings);