This commit is contained in:
2020-05-19 21:16:47 +00:00
parent 7b963c60c3
commit 2b61791f2a
2 changed files with 33 additions and 19 deletions

View File

@@ -56,9 +56,9 @@ namespace AyaNova.Biz
//this is valid:
//C:\data\code\PostgreSQLPortable_12.0\App\PgSQL\bin\pg_dump --dbname=postgresql://postgres:raven@127.0.0.1:5432/AyaNova -Fc > huge_new.backup
//"AYANOVA_DB_CONNECTION": "Server=localhost;Username=postgres;Password=raven;Database=AyaNova;",
Npgsql.NpgsqlConnectionStringBuilder PostgresConnectionString=new Npgsql.NpgsqlConnectionStringBuilder(ServerBootConfig.AYANOVA_DB_CONNECTION);
var DBNameParameter=$"--dbname=postgresql://{PostgresConnectionString.Username}:{PostgresConnectionString.Password}@{PostgresConnectionString.Host}:{PostgresConnectionString.Port}/{PostgresConnectionString.Database}";
Npgsql.NpgsqlConnectionStringBuilder PostgresConnectionString = new Npgsql.NpgsqlConnectionStringBuilder(ServerBootConfig.AYANOVA_DB_CONNECTION);
var DBNameParameter = $"--dbname=postgresql://{PostgresConnectionString.Username}:{PostgresConnectionString.Password}@{PostgresConnectionString.Host}:{PostgresConnectionString.Port}/{PostgresConnectionString.Database}";
var DataBackupFile = $"db-{FileUtil.GetSafeDateFileName()}.backup";//presentation issue so don't use UTC for this one
DataBackupFile = FileUtil.GetFullPathForUtilityFile(DataBackupFile);
@@ -67,7 +67,7 @@ namespace AyaNova.Biz
if (!string.IsNullOrWhiteSpace(ServerBootConfig.AYANOVA_BACKUP_PG_DUMP_PATH))
BackupUtilityCommand = Path.Combine(ServerBootConfig.AYANOVA_BACKUP_PG_DUMP_PATH, BackupUtilityCommand);
var Arguments=$"{BackupUtilityCommand} {DBNameParameter} -Fc > {DataBackupFile}";
var Arguments = $"{BackupUtilityCommand} {DBNameParameter} -Fc > {DataBackupFile}";
@@ -75,7 +75,7 @@ namespace AyaNova.Biz
log.LogInformation($"CALLING BACKUP COMMAND: {BackupUtilityCommand} {Arguments}");
//RUN THE BACKUP
var Result= RunProgram.Run(BackupUtilityCommand,Arguments);
var Result = RunProgram.Run(BackupUtilityCommand, Arguments, log);
log.LogInformation($"BACKUP RESULT: {Result}");
@@ -107,7 +107,7 @@ namespace AyaNova.Biz
{
apiServerState.ResumePriorState();
BackupIsRunning = false;
log.LogInformation("BACKUP STUB: COMPLETELY FINISHED BACKING UP");
log.LogInformation("BACKUP STUB: COMPLETELY FINISHED BACKING UP");
}
}

View File

@@ -1,6 +1,7 @@
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using Microsoft.Extensions.Logging;
namespace AyaNova.Util
{
@@ -8,25 +9,38 @@ namespace AyaNova.Util
{
public static string Run(string cmd, string arguments)
public static string Run(string cmd, string arguments, ILogger log = null)
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
try
{
return RunWindows(cmd, arguments);
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
return RunOSX(cmd, arguments);
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
return RunWindows(cmd, arguments);
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
return RunOSX(cmd, arguments);
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
return RunLinuxBash(cmd, arguments);
}
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
catch (Exception ex)
{
return RunLinuxBash(cmd, arguments);
}
else
{
throw new PlatformNotSupportedException();
if (log != null)
{
log.LogError(ex, $"RunProgram error running command:{cmd} {arguments}");
}
throw ex;
}
throw new PlatformNotSupportedException();
}