From 340624c54b7816e6ed4bff672abbdc33f5ac5966 Mon Sep 17 00:00:00 2001 From: crobibero Date: Fri, 5 Jun 2020 13:23:38 -0600 Subject: Move default repo addition to migration --- .../Routines/AddDefaultPluginRepository.cs | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs (limited to 'Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs') diff --git a/Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs b/Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs new file mode 100644 index 000000000..7514aa82f --- /dev/null +++ b/Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs @@ -0,0 +1,44 @@ +using System; +using MediaBrowser.Controller.Configuration; +using MediaBrowser.Model.Updates; + +namespace Jellyfin.Server.Migrations.Routines +{ + /// + /// Migration to initialize system configuration with the default plugin repository. + /// + public class AddDefaultPluginRepository : IMigrationRoutine + { + private readonly IServerConfigurationManager _serverConfigurationManager; + + private readonly RepositoryInfo _defaultRepositoryInfo = new RepositoryInfo + { + Name = "Jellyfin Stable", + Url = "https://repo.jellyfin.org/releases/plugin/manifest-stable.json", + Id = Guid.Parse("3721cd80-b10f-4b26-aecd-74c0f0defe97"), + Enabled = true + }; + + /// + /// Initializes a new instance of the class. + /// + /// Instance of the interface. + public AddDefaultPluginRepository(IServerConfigurationManager serverConfigurationManager) + { + _serverConfigurationManager = serverConfigurationManager; + } + + /// + public Guid Id => Guid.Parse("EB58EBEE-9514-4B9B-8225-12E1A40020DF"); + + /// + public string Name => "CreateDefaultPluginRepository"; + + /// + public void Perform() + { + _serverConfigurationManager.Configuration.PluginRepositories.Add(_defaultRepositoryInfo); + _serverConfigurationManager.SaveConfiguration(); + } + } +} \ No newline at end of file -- cgit v1.2.3 From d6184dbadd4bb2dc85b28f61d004f334df7b3951 Mon Sep 17 00:00:00 2001 From: dkanada Date: Sat, 6 Jun 2020 18:57:00 +0900 Subject: remove unnecessary property for repository object --- Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs | 3 +-- MediaBrowser.Model/Updates/RepositoryInfo.cs | 6 ------ 2 files changed, 1 insertion(+), 8 deletions(-) (limited to 'Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs') diff --git a/Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs b/Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs index 7514aa82f..b6004adef 100644 --- a/Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs +++ b/Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs @@ -15,7 +15,6 @@ namespace Jellyfin.Server.Migrations.Routines { Name = "Jellyfin Stable", Url = "https://repo.jellyfin.org/releases/plugin/manifest-stable.json", - Id = Guid.Parse("3721cd80-b10f-4b26-aecd-74c0f0defe97"), Enabled = true }; @@ -41,4 +40,4 @@ namespace Jellyfin.Server.Migrations.Routines _serverConfigurationManager.SaveConfiguration(); } } -} \ No newline at end of file +} diff --git a/MediaBrowser.Model/Updates/RepositoryInfo.cs b/MediaBrowser.Model/Updates/RepositoryInfo.cs index c07abc809..b0dc3593a 100644 --- a/MediaBrowser.Model/Updates/RepositoryInfo.cs +++ b/MediaBrowser.Model/Updates/RepositoryInfo.cs @@ -19,12 +19,6 @@ namespace MediaBrowser.Model.Updates /// The URL. public string Url { get; set; } - /// - /// Gets or sets the ID. - /// - /// The ID. - public Guid Id { get; set; } - /// /// Gets or sets the enabled status of the repository. /// -- cgit v1.2.3 From 8ac2f1bb8be29bf9d2285958cb233692765bfe32 Mon Sep 17 00:00:00 2001 From: dkanada Date: Sat, 6 Jun 2020 22:02:30 +0900 Subject: simplify the custom repository feature for now --- Emby.Server.Implementations/Updates/InstallationManager.cs | 5 ----- Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs | 3 +-- MediaBrowser.Model/Updates/RepositoryInfo.cs | 6 ------ 3 files changed, 1 insertion(+), 13 deletions(-) (limited to 'Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs') diff --git a/Emby.Server.Implementations/Updates/InstallationManager.cs b/Emby.Server.Implementations/Updates/InstallationManager.cs index bdd7c31d6..6c02b8fdc 100644 --- a/Emby.Server.Implementations/Updates/InstallationManager.cs +++ b/Emby.Server.Implementations/Updates/InstallationManager.cs @@ -156,11 +156,6 @@ namespace Emby.Server.Implementations.Updates var result = new List(); foreach (RepositoryInfo repository in _config.Configuration.PluginRepositories) { - if (!repository.Enabled) - { - continue; - } - result.AddRange(await GetPackages(repository.Url, cancellationToken).ConfigureAwait(true)); } diff --git a/Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs b/Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs index b6004adef..1461c7c57 100644 --- a/Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs +++ b/Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs @@ -14,8 +14,7 @@ namespace Jellyfin.Server.Migrations.Routines private readonly RepositoryInfo _defaultRepositoryInfo = new RepositoryInfo { Name = "Jellyfin Stable", - Url = "https://repo.jellyfin.org/releases/plugin/manifest-stable.json", - Enabled = true + Url = "https://repo.jellyfin.org/releases/plugin/manifest-stable.json" }; /// diff --git a/MediaBrowser.Model/Updates/RepositoryInfo.cs b/MediaBrowser.Model/Updates/RepositoryInfo.cs index b0dc3593a..a6414fa7b 100644 --- a/MediaBrowser.Model/Updates/RepositoryInfo.cs +++ b/MediaBrowser.Model/Updates/RepositoryInfo.cs @@ -18,11 +18,5 @@ namespace MediaBrowser.Model.Updates /// /// The URL. public string Url { get; set; } - - /// - /// Gets or sets the enabled status of the repository. - /// - /// The enabled status. - public bool Enabled { get; set; } } } -- cgit v1.2.3 From 3d65cbdf0794c71fe488564c782e6ca099db5312 Mon Sep 17 00:00:00 2001 From: dkanada Date: Mon, 22 Jun 2020 21:59:56 +0900 Subject: apply suggestions from code review Co-authored-by: Vasily --- Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs') diff --git a/Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs b/Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs index 1461c7c57..a9d5ad16a 100644 --- a/Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs +++ b/Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs @@ -30,7 +30,7 @@ namespace Jellyfin.Server.Migrations.Routines public Guid Id => Guid.Parse("EB58EBEE-9514-4B9B-8225-12E1A40020DF"); /// - public string Name => "CreateDefaultPluginRepository"; + public string Name => "AddDefaultPluginRepository"; /// public void Perform() -- cgit v1.2.3 From 9343e73b26d51ecbf65f809607ef49b1cdb646da Mon Sep 17 00:00:00 2001 From: crobibero Date: Mon, 20 Jul 2020 07:45:24 -0600 Subject: Allow migration to optionally run on fresh install --- Jellyfin.Server/Migrations/IMigrationRoutine.cs | 5 +++++ Jellyfin.Server/Migrations/MigrationRunner.cs | 3 +-- Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs | 3 +++ Jellyfin.Server/Migrations/Routines/CreateUserLoggingConfigFile.cs | 3 +++ Jellyfin.Server/Migrations/Routines/DisableTranscodingThrottling.cs | 3 +++ Jellyfin.Server/Migrations/Routines/MigrateActivityLogDb.cs | 3 +++ Jellyfin.Server/Migrations/Routines/MigrateUserDb.cs | 3 +++ Jellyfin.Server/Migrations/Routines/RemoveDuplicateExtras.cs | 3 +++ 8 files changed, 24 insertions(+), 2 deletions(-) (limited to 'Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs') diff --git a/Jellyfin.Server/Migrations/IMigrationRoutine.cs b/Jellyfin.Server/Migrations/IMigrationRoutine.cs index 6b5780a26..c1000eede 100644 --- a/Jellyfin.Server/Migrations/IMigrationRoutine.cs +++ b/Jellyfin.Server/Migrations/IMigrationRoutine.cs @@ -17,6 +17,11 @@ namespace Jellyfin.Server.Migrations /// public string Name { get; } + /// + /// Gets a value indicating whether to perform migration on a new install. + /// + public bool PerformOnNewInstall { get; } + /// /// Execute the migration routine. /// diff --git a/Jellyfin.Server/Migrations/MigrationRunner.cs b/Jellyfin.Server/Migrations/MigrationRunner.cs index d633c554d..fe8910c3c 100644 --- a/Jellyfin.Server/Migrations/MigrationRunner.cs +++ b/Jellyfin.Server/Migrations/MigrationRunner.cs @@ -43,9 +43,8 @@ namespace Jellyfin.Server.Migrations // If startup wizard is not finished, this is a fresh install. // Don't run any migrations, just mark all of them as applied. logger.LogInformation("Marking all known migrations as applied because this is a fresh install"); - migrationOptions.Applied.AddRange(migrations.Select(m => (m.Id, m.Name))); + migrationOptions.Applied.AddRange(migrations.Where(m => !m.PerformOnNewInstall).Select(m => (m.Id, m.Name))); host.ServerConfigurationManager.SaveConfiguration(MigrationsListStore.StoreKey, migrationOptions); - return; } var appliedMigrationIds = migrationOptions.Applied.Select(m => m.Id).ToHashSet(); diff --git a/Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs b/Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs index a9d5ad16a..f6d8c9cc0 100644 --- a/Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs +++ b/Jellyfin.Server/Migrations/Routines/AddDefaultPluginRepository.cs @@ -32,6 +32,9 @@ namespace Jellyfin.Server.Migrations.Routines /// public string Name => "AddDefaultPluginRepository"; + /// + public bool PerformOnNewInstall => true; + /// public void Perform() { diff --git a/Jellyfin.Server/Migrations/Routines/CreateUserLoggingConfigFile.cs b/Jellyfin.Server/Migrations/Routines/CreateUserLoggingConfigFile.cs index b15e09290..6821630db 100644 --- a/Jellyfin.Server/Migrations/Routines/CreateUserLoggingConfigFile.cs +++ b/Jellyfin.Server/Migrations/Routines/CreateUserLoggingConfigFile.cs @@ -48,6 +48,9 @@ namespace Jellyfin.Server.Migrations.Routines /// public string Name => "CreateLoggingConfigHeirarchy"; + /// + public bool PerformOnNewInstall => false; + /// public void Perform() { diff --git a/Jellyfin.Server/Migrations/Routines/DisableTranscodingThrottling.cs b/Jellyfin.Server/Migrations/Routines/DisableTranscodingThrottling.cs index c18aa1629..0925a87b5 100644 --- a/Jellyfin.Server/Migrations/Routines/DisableTranscodingThrottling.cs +++ b/Jellyfin.Server/Migrations/Routines/DisableTranscodingThrottling.cs @@ -25,6 +25,9 @@ namespace Jellyfin.Server.Migrations.Routines /// public string Name => "DisableTranscodingThrottling"; + /// + public bool PerformOnNewInstall => false; + /// public void Perform() { diff --git a/Jellyfin.Server/Migrations/Routines/MigrateActivityLogDb.cs b/Jellyfin.Server/Migrations/Routines/MigrateActivityLogDb.cs index fb3466e13..6048160c6 100644 --- a/Jellyfin.Server/Migrations/Routines/MigrateActivityLogDb.cs +++ b/Jellyfin.Server/Migrations/Routines/MigrateActivityLogDb.cs @@ -41,6 +41,9 @@ namespace Jellyfin.Server.Migrations.Routines /// public string Name => "MigrateActivityLogDatabase"; + /// + public bool PerformOnNewInstall => false; + /// public void Perform() { diff --git a/Jellyfin.Server/Migrations/Routines/MigrateUserDb.cs b/Jellyfin.Server/Migrations/Routines/MigrateUserDb.cs index 2be10c708..274e6ab73 100644 --- a/Jellyfin.Server/Migrations/Routines/MigrateUserDb.cs +++ b/Jellyfin.Server/Migrations/Routines/MigrateUserDb.cs @@ -54,6 +54,9 @@ namespace Jellyfin.Server.Migrations.Routines /// public string Name => "MigrateUserDatabase"; + /// + public bool PerformOnNewInstall => false; + /// public void Perform() { diff --git a/Jellyfin.Server/Migrations/Routines/RemoveDuplicateExtras.cs b/Jellyfin.Server/Migrations/Routines/RemoveDuplicateExtras.cs index 2ebef0241..6c26e47e1 100644 --- a/Jellyfin.Server/Migrations/Routines/RemoveDuplicateExtras.cs +++ b/Jellyfin.Server/Migrations/Routines/RemoveDuplicateExtras.cs @@ -29,6 +29,9 @@ namespace Jellyfin.Server.Migrations.Routines /// public string Name => "RemoveDuplicateExtras"; + /// + public bool PerformOnNewInstall => false; + /// public void Perform() { -- cgit v1.2.3