Subversion Repositories oidplus

Compare Revisions

Regard whitespace Rev 1353 → Rev 1354

/trunk/dev/backup_wip.phps
56,7 → 56,7
 
// ================ Backup ================
 
/*public*/ function oidplus_backup_db(string $backup_file, bool $export_objects=true, bool $export_ra=true, bool $export_config=false, bool $export_log=false): void {
/*public*/ function oidplus_backup_db(string $backup_file, bool $export_objects=true, bool $export_ra=true, bool $export_config=false, bool $export_log=false, bool $export_pki=false): void {
$num_rows = [
"objects" => $export_objects ? 0 : "n/a",
"asn1id" => $export_objects ? 0 : "n/a",
65,7 → 65,8
"config" => $export_config ? 0 : "n/a",
"log" => $export_log ? 0 : "n/a",
"log_object" => $export_log ? 0 : "n/a",
"log_user" => $export_log ? 0 : "n/a"
"log_user" => $export_log ? 0 : "n/a",
"pki" => $export_pki ? 0 : "n/a"
];
 
if (BACKUP_RECOVERY_SPECIAL_TEST) {
222,6 → 223,16
}
}
 
// Backup public/private key
$pki = [];
if ($export_pki) {
$num_rows["pki"]++;
$pki = [
"private_key" => OIDplus::getSystemPrivateKey(),
"public_key" => OIDplus::getSystemPublicKey()
];
}
 
// Put everything together
$json = [
"oidplus_backup" => [
233,7 → 244,8
"objects" => $objects,
"ra" => $ra,
"config" => $config,
"log" => $log
"log" => $log,
"pki" => $pki
];
 
 
261,7 → 273,7
 
// ================ Recovery ================
 
/*public*/ function oidplus_restore_db(string $backup_file, bool $import_objects=true, bool $import_ra=true, bool $import_config=false, bool $import_log=false): void {
/*public*/ function oidplus_restore_db(string $backup_file, bool $import_objects=true, bool $import_ra=true, bool $import_config=false, bool $import_log=false, bool $import_pki=false): void {
$num_rows = [
"objects" => $import_objects ? 0 : "n/a",
"asn1id" => $import_objects ? 0 : "n/a",
270,7 → 282,8
"config" => $import_config ? 0 : "n/a",
"log" => $import_log ? 0 : "n/a",
"log_object" => $import_log ? 0 : "n/a",
"log_user" => $import_log ? 0 : "n/a"
"log_user" => $import_log ? 0 : "n/a",
"pki" => $import_pki ? 0 : "n/a"
];
 
$cont = @file_get_contents($backup_file);
424,6 → 437,19
}
}
 
// Restore public/private key
if ($import_pki) {
$privkey = $json["pki"]["private_key"] ?? null;
$pubkey = $json["pki"]["public_key"] ?? null;
if ($privkey && $pubkey) {
$num_rows["pki"]++;
// Note: The private key is not encrypted. It will be re-encrypted in OIDplus::getPkiStatus()
OIDplus::db()->query("update ###config set value = ? where name = 'oidplus_private_key'", [$privkey]);
OIDplus::db()->query("update ###config set value = ? where name = 'oidplus_public_key'", [$pubkey]);
OIDplus::config()->clearCache();
}
}
 
// Done!
 
OIDplus::logger()->log("V2:[WARN]A", "EXECUTED OBJECT AND RA DATABASE BACKUP RECOVERY: ".oidplus_num_rows_list($num_rows));
446,8 → 472,8
 
if (!is_dir(OIDplus::localpath().'/userdata/backups/')) @mkdir(OIDplus::localpath().'/userdata/backups/');
$backup_file = OIDplus::localpath().'/userdata/backups/oidplus-'.date('Y-m-d-H-i-s').'.bak.json';
oidplus_backup_db($backup_file, true, true, true, true);
oidplus_restore_db($backup_file, true, true, true, true);
oidplus_backup_db($backup_file, true, true, true, true, true);
oidplus_restore_db($backup_file, true, true, true, true, true);