[mapguide-commits] r10150 - branches/4.0/MgDev/Server/RepositoryAdmin/app/Commands
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Thu Jun 12 05:58:59 PDT 2025
Author: jng
Date: 2025-06-12 05:58:58 -0700 (Thu, 12 Jun 2025)
New Revision: 10150
Modified:
branches/4.0/MgDev/Server/RepositoryAdmin/app/Commands/App.cs
branches/4.0/MgDev/Server/RepositoryAdmin/app/Commands/RestoreCommand.cs
Log:
#2879: Initial implementation of hot backup and restore
Modified: branches/4.0/MgDev/Server/RepositoryAdmin/app/Commands/App.cs
===================================================================
--- branches/4.0/MgDev/Server/RepositoryAdmin/app/Commands/App.cs 2025-06-12 12:00:32 UTC (rev 10149)
+++ branches/4.0/MgDev/Server/RepositoryAdmin/app/Commands/App.cs 2025-06-12 12:58:58 UTC (rev 10150)
@@ -14,6 +14,42 @@
public void Stderr(string msg) => stderr.WriteLine(msg);
+ private void PerformRecovery(string homeDir)
+ {
+ var proc = new Process
+ {
+ StartInfo = new ProcessStartInfo
+ {
+ FileName = dbRecover.FullName,
+ Arguments = $"-cv -h \"{homeDir}\"",
+ UseShellExecute = false,
+ RedirectStandardOutput = true,
+ CreateNoWindow = true,
+ WorkingDirectory = dbRecover.DirectoryName
+ }
+ };
+ proc.Start();
+ proc.WaitForExit();
+ }
+
+ private void CleanUpLogFiles(string homeDir)
+ {
+ var proc = new Process
+ {
+ StartInfo = new ProcessStartInfo
+ {
+ FileName = dbArchive.FullName,
+ Arguments = $"-dv -h \"{homeDir}\"",
+ UseShellExecute = false,
+ RedirectStandardOutput = true,
+ CreateNoWindow = true,
+ WorkingDirectory = dbArchive.DirectoryName
+ }
+ };
+ proc.Start();
+ proc.WaitForExit();
+ }
+
private IEnumerable<string> GetDatabaseFiles(string homeDir)
{
var proc = new Process
@@ -116,17 +152,6 @@
}
}
- internal int BackupOfflineRepositories()
- {
- stdout.WriteLine(Strings.IDS_PROGRESS_BACKING_UP_OFFLINE_REPOSITORY);
-
- var outDir = cmd.OutputPath.CreateSubdirectory("LastColdBackup");
- TransferDatabaseFiles(outDir);
- TransferLogFiles(outDir);
-
- return 0;
- }
-
private void TransferFile(DirectoryInfo outDir, FileInfo file, bool move = false, bool overwrite = true)
{
var dest = Path.Combine(outDir.FullName, file.Name);
@@ -151,8 +176,46 @@
}
+ internal int BackupOfflineRepositories()
+ {
+ stdout.WriteLine(Strings.IDS_PROGRESS_BACKING_UP_OFFLINE_REPOSITORY);
+
+ // TODO: timestamp subdirectory computation
+ var outDir = cmd.OutputPath.CreateSubdirectory("LastColdBackup");
+ TransferDatabaseFiles(outDir);
+ TransferLogFiles(outDir);
+
+ return 0;
+ }
+
internal int BackupOnlineRepositories()
{
+ stdout.WriteLine(Strings.IDS_PROGRESS_BACKING_UP_ONLINE_REPOSITORY);
+
+ bool fullSnapshot = true;
+ // TODO: fullSnapshot flag determination logic
+
+ var outDir = cmd.OutputPath.CreateSubdirectory("LastHotBackup");
+ if (fullSnapshot)
+ {
+ TransferDatabaseFiles(outDir);
+ }
+ TransferLogFiles(outDir);
+
return 0;
}
+
+ internal int RestoreRepositories()
+ {
+ stdout.WriteLine(Strings.IDS_PROGRESS_RESTORING_BACKUP_REPOSITORY);
+
+ // TODO: tempBackupDir determination
+
+ TransferDatabaseFiles(cmd.OutputPath);
+ TransferLogFiles(cmd.OutputPath);
+ PerformRecovery(cmd.OutputPath.FullName);
+ CleanUpLogFiles(cmd.OutputPath.FullName);
+
+ return 0;
+ }
}
Modified: branches/4.0/MgDev/Server/RepositoryAdmin/app/Commands/RestoreCommand.cs
===================================================================
--- branches/4.0/MgDev/Server/RepositoryAdmin/app/Commands/RestoreCommand.cs 2025-06-12 12:00:32 UTC (rev 10149)
+++ branches/4.0/MgDev/Server/RepositoryAdmin/app/Commands/RestoreCommand.cs 2025-06-12 12:58:58 UTC (rev 10150)
@@ -24,9 +24,9 @@
return 1;
}
- app.Stdout($"Input path: {InputPath}");
- app.Stdout($"Output path: {OutputPath}");
+ //app.Stdout($"Input path: {InputPath}");
+ //app.Stdout($"Output path: {OutputPath}");
- return 0;
+ return app.RestoreRepositories();
}
}
More information about the mapguide-commits
mailing list