public void Handle(ApplicationStartedEvent message) { if (_repo.All().Any()) { return; } var configFile = _appFolderInfo.GetConfigPath(); if (!_diskProvider.FileExists(configFile)) { return; } var xDoc = XDocument.Load(configFile); var config = xDoc.Descendants("Config").Single(); var usernameElement = config.Descendants("Username").FirstOrDefault(); var passwordElement = config.Descendants("Password").FirstOrDefault(); if (usernameElement == null || passwordElement == null) { return; } var username = usernameElement.Value; var password = passwordElement.Value; Add(username, password); }
public void Backup() { _logger.Info("Backing up appdata (database/config)"); var backupFolderAppData = _appFolderInfo.GetUpdateBackUpAppDataFolder(); if (_diskProvider.FolderExists(backupFolderAppData)) { _diskProvider.EmptyFolder(backupFolderAppData); } else { _diskProvider.CreateFolder(backupFolderAppData); } try { _diskTransferService.TransferFile(_appFolderInfo.GetConfigPath(), _appFolderInfo.GetUpdateBackupConfigFile(), TransferMode.Copy); //Backup new db if exists, else try old then fail if (_diskProvider.FileExists(_appFolderInfo.GetDatabase())) { _diskTransferService.TransferFile(_appFolderInfo.GetDatabase(), _appFolderInfo.GetUpdateBackupDatabase(), TransferMode.Copy); } else { _diskTransferService.TransferFile(_appFolderInfo.GetV0Database(), _appFolderInfo.GetV0UpdateBackupDatabase(), TransferMode.Copy); } } catch (Exception e) { _logger.Error(e, "Couldn't create a data backup"); } }
private void BackupConfigFile() { _logger.ProgressDebug("Backing up config.xml"); var configFile = _appFolderInfo.GetConfigPath(); var tempConfigFile = Path.Combine(_backupTempFolder, Path.GetFileName(configFile)); _diskProvider.CopyFile(configFile, tempConfigFile, true); }
private void BackupConfigFile() { _logger.ProgressDebug("Backing up config.xml"); var configFile = _appFolderInfo.GetConfigPath(); var tempConfigFile = Path.Combine(_backupTempFolder, Path.GetFileName(configFile)); _diskTransferService.TransferFile(configFile, tempConfigFile, TransferMode.Copy); }
public void Backup() { _logger.Info("Backing up appdata (database/config)"); var backupFolderAppData = _appFolderInfo.GetUpdateBackUpAppDataFolder(); _diskProvider.CreateFolder(backupFolderAppData); _diskProvider.CopyFile(_appFolderInfo.GetConfigPath(), _appFolderInfo.GetUpdateBackupConfigFile(), true); _diskProvider.CopyFile(_appFolderInfo.GetNzbDroneDatabase(), _appFolderInfo.GetUpdateBackupDatabase(), true); }
public void Restore(string backupFileName) { if (backupFileName.EndsWith(".zip")) { var restoredFile = false; var temporaryPath = Path.Combine(_appFolderInfo.TempFolder, "radarr_backup_restore"); _archiveService.Extract(backupFileName, temporaryPath); foreach (var file in _diskProvider.GetFiles(temporaryPath, SearchOption.TopDirectoryOnly)) { var fileName = Path.GetFileName(file); if (fileName.Equals("Config.xml", StringComparison.InvariantCultureIgnoreCase)) { _diskProvider.MoveFile(file, _appFolderInfo.GetConfigPath(), true); restoredFile = true; } if (fileName.Equals("nzbdrone.db", StringComparison.InvariantCultureIgnoreCase)) { _diskProvider.MoveFile(file, _appFolderInfo.GetDatabaseRestore(), true); restoredFile = true; } if (fileName.Equals("radarr.db", StringComparison.InvariantCultureIgnoreCase)) { _diskProvider.MoveFile(file, _appFolderInfo.GetDatabaseRestore(), true); restoredFile = true; } } if (!restoredFile) { throw new RestoreBackupFailedException(HttpStatusCode.NotFound, "Unable to restore database file from backup"); } _diskProvider.DeleteFolder(temporaryPath, true); return; } _diskProvider.MoveFile(backupFileName, _appFolderInfo.GetDatabaseRestore(), true); }
public ConfigFileProvider(IAppFolderInfo appFolderInfo, ICacheManager cacheManager, IEventAggregator eventAggregator, IDiskProvider diskProvider) { _cache = cacheManager.GetCache <string>(GetType()); _eventAggregator = eventAggregator; _diskProvider = diskProvider; _configFile = appFolderInfo.GetConfigPath(); }
public void Backup() { _logger.Info("Backing up appdata (database/config)"); var backupFolderAppData = _appFolderInfo.GetUpdateBackUpAppDataFolder(); _diskProvider.CreateFolder(backupFolderAppData); try { _diskTransferService.TransferFile(_appFolderInfo.GetConfigPath(), _appFolderInfo.GetUpdateBackupConfigFile(), TransferMode.Copy); _diskTransferService.TransferFile(_appFolderInfo.GetNzbDroneDatabase(), _appFolderInfo.GetUpdateBackupDatabase(), TransferMode.Copy); } catch (Exception e) { _logger.Error(e, "Couldn't create a data backup"); } }
private void MigrateAppDataFolder() { try { var oldDbFile = Path.Combine(_appFolderInfo.AppDataFolder, "nzbdrone.db"); if (_startupContext.Args.ContainsKey(StartupContext.APPDATA)) { if (_diskProvider.FileExists(_appFolderInfo.GetDatabase())) { return; } if (!_diskProvider.FileExists(oldDbFile)) { return; } _diskProvider.MoveFile(oldDbFile, _appFolderInfo.GetDatabase()); CleanupSqLiteRollbackFiles(); RemovePidFile(); } if (_appFolderInfo.LegacyAppDataFolder.IsNullOrWhiteSpace()) { return; } if (_diskProvider.FileExists(_appFolderInfo.GetDatabase()) || _diskProvider.FileExists(_appFolderInfo.GetConfigPath())) { return; } if (!_diskProvider.FolderExists(_appFolderInfo.LegacyAppDataFolder)) { return; } // Delete the bin folder on Windows var binFolder = Path.Combine(_appFolderInfo.LegacyAppDataFolder, "bin"); if (OsInfo.IsWindows && _diskProvider.FolderExists(binFolder)) { _diskProvider.DeleteFolder(binFolder, true); } // Transfer other files and folders (with copy so a backup is maintained) _diskTransferService.TransferFolder(_appFolderInfo.LegacyAppDataFolder, _appFolderInfo.AppDataFolder, TransferMode.Copy); // Rename the DB file if (_diskProvider.FileExists(oldDbFile)) { _diskProvider.MoveFile(oldDbFile, _appFolderInfo.GetDatabase()); } // Remove SQLite rollback files CleanupSqLiteRollbackFiles(); // Remove Old PID file RemovePidFile(); // Delete the old files after everything has been copied _diskProvider.DeleteFolder(_appFolderInfo.LegacyAppDataFolder, true); } catch (Exception ex) { _logger.Debug(ex, ex.Message); throw new SonarrStartupException("Unable to migrate AppData folder from {0} to {1}. Migrate manually", _appFolderInfo.LegacyAppDataFolder, _appFolderInfo.AppDataFolder); } }