This commit is contained in:
@@ -91,7 +91,6 @@ namespace fs = std::filesystem;
|
||||
|
||||
namespace dropshell {
|
||||
|
||||
static const std::string magic_string = "-_-";
|
||||
|
||||
service_runner::service_runner(const std::string& server_name, const std::string& service_name) :
|
||||
mServerEnv(server_name), mServer(server_name), mService(service_name), mValid(false)
|
||||
@@ -298,7 +297,7 @@ bool service_runner::restore(std::string backup_file, bool silent)
|
||||
}
|
||||
|
||||
// split the backup filename into parts based on the magic string
|
||||
std::vector<std::string> parts = dropshell::split(backup_file, magic_string);
|
||||
std::vector<std::string> parts = dropshell::split(backup_file, "-_-");
|
||||
if (parts.size() != 4) {
|
||||
std::cerr << "Error: Backup file format is incompatible, - in one of the names?" << std::endl;
|
||||
return false;
|
||||
@@ -383,12 +382,6 @@ bool service_runner::restore(std::string backup_file, bool silent)
|
||||
}
|
||||
|
||||
|
||||
bool name_breaks_backups(std::string name)
|
||||
{
|
||||
// if name contains -_-, return true
|
||||
return name.find("-_-") != std::string::npos;
|
||||
}
|
||||
|
||||
// backup the service over ssh, using the credentials from server.env (via server_env.hpp)
|
||||
// 1. run backup.sh on the server
|
||||
// 2. create a backup file with format server-service-datetime.tgz
|
||||
@@ -452,17 +445,18 @@ bool service_runner::backup(bool silent) {
|
||||
std::stringstream datetime;
|
||||
datetime << std::put_time(std::localtime(&time), "%Y-%m-%d_%H-%M-%S");
|
||||
|
||||
if (name_breaks_backups(mServer)) {std::cerr << "Error: Server name contains invalid character sequence ( -_- ) that would break backup naming scheme" << std::endl; return 1;}
|
||||
if (name_breaks_backups(mService)) {std::cerr << "Error: Service name contains invalid character sequence ( -_- ) that would break backup naming scheme" << std::endl; return 1;}
|
||||
if (name_breaks_backups(service_info.template_name)) {std::cerr << "Error: Service template name contains invalid character sequence ( -_- ) that would break backup naming scheme" << std::endl; return 1;}
|
||||
|
||||
// Construct backup filename
|
||||
std::string backup_filename = mServer + magic_string + service_info.template_name + magic_string + mService + magic_string + datetime.str() + ".tgz";
|
||||
shared_commands::cBackupFileName backup_filename_construction(mServer, mService, service_info.template_name);
|
||||
if (!backup_filename_construction.is_valid()) {
|
||||
std::cerr << "Invalid backup filename" << std::endl;
|
||||
return false;
|
||||
}
|
||||
std::string backup_filename = backup_filename_construction.get_filename();
|
||||
std::string remote_backup_file_path = remote_backups_dir + "/" + backup_filename;
|
||||
std::string local_backup_file_path = (std::filesystem::path(local_backups_dir) / backup_filename).string();
|
||||
|
||||
// assert that the backup filename is valid - -_- appears exactly 3 times in local_backup_file_path.
|
||||
ASSERT(3 == count_substring(magic_string, local_backup_file_path), "Invalid backup filename");
|
||||
ASSERT(3 == count_substring("-_-", local_backup_file_path), "Invalid backup filename");
|
||||
|
||||
{ // Run backup script
|
||||
shared_commands::cRemoteTempFolder remote_temp_folder(mServerEnv);
|
||||
@@ -501,7 +495,7 @@ std::string service_runner::get_latest_backup_file(const std::string& server, co
|
||||
}
|
||||
|
||||
// Build the expected prefix for backup files
|
||||
std::string prefix = server + magic_string + info.template_name + magic_string + service + magic_string;
|
||||
std::string prefix = server + "-_-" + info.template_name + "-_-" + service + "-_-";
|
||||
std::string latest_file;
|
||||
std::string latest_datetime;
|
||||
|
||||
|
Reference in New Issue
Block a user