Compare commits

..

4 Commits

Author SHA1 Message Date
1c93be6e8a * Tue Feb 25 2025 Brian Read <brianr@koozali.org> 11.0.0-58.sme
- re-organise open db placement [SME: 12695]
- Re-arrange parameters to tar to avoid warning message in logs [SME: 12943]
2025-02-26 11:57:22 +00:00
ce96f72726 Finally - re-arrange tar params to avoid warning in logs 2025-02-25 12:25:46 +00:00
0fd7137edd sort out open db placements in routes and re-arrange tar params to avoid warning in logs 2025-02-25 12:22:52 +00:00
d179b06f69 Sort out opendb placement and re-arrange tar parameters to avoid warning in logs 2025-02-25 12:14:12 +00:00
3 changed files with 58 additions and 29 deletions

View File

@@ -32,10 +32,10 @@ use esmith::util;
use esmith::lockfile;
use esmith::BlockDevices;
use constant DEBUG => $ENV{MOJO_SMANAGER_DEBUG} || 0;
our $cdb = esmith::ConfigDB->open || die "Couldn't open config db";
our $adb = esmith::AccountsDB->open || die "Couldn't open accounts db";
our $rdb = esmith::ConfigDB->open('/etc/e-smith/restore')
|| die "Couldn't open restore db";
#our $cdb = esmith::ConfigDB->open || die "Couldn't open config db"; #remove as cached gives problems
#our $adb = esmith::AccountsDB->open || die "Couldn't open accounts db";
#our $rdb = esmith::ConfigDB->open('/etc/e-smith/restore') || die "Couldn't open restore db";
my ($cdb,$adb,$rdb);
my $es_backup = new esmith::Backup or die "Couldn't create Backup object\n";
my @directories = $es_backup->restore_list;
@directories = grep { -e "/$_" } @directories;
@@ -52,6 +52,9 @@ sub main {
my $c = shift;
$c->app->log->info($c->log_req);
my %bac_datas = ();
$cdb = esmith::ConfigDB->open || die "Couldn't open config db";
$adb = esmith::AccountsDB->open || die "Couldn't open accounts db";
$rdb = esmith::ConfigDB->open('/etc/e-smith/restore');
my $title = $c->l('bac_BACKUP_TITLE');
my $notif;
$bac_datas{'function'} = 'desktop_backup';
@@ -108,6 +111,9 @@ sub do_display {
my $rt = $c->current_route;
my ($res, $result) = '';
my $function = $c->param('Function');
$cdb = esmith::ConfigDB->open || die "Couldn't open config db";
$adb = esmith::AccountsDB->open || die "Couldn't open accounts db";
$rdb = esmith::ConfigDB->open('/etc/e-smith/restore');
if ($function =~ /^(\S+)$/) {
$function = $1;
@@ -129,7 +135,11 @@ sub do_display {
$c->stash(compressionlevel => $CompressionLevel, exclude => \@exclude, directories => \@directories);
# streaming download in template
return $c->render("/backdown");
$c->render(template=>"backdown");
#sleep(30);
# Redirect to the front page
#$c->redirect_to('/backup');
return ""
} ## end if ($function eq 'desktop_backup')
if ($function eq 'tape_configure') {
@@ -265,6 +275,9 @@ sub do_update {
my $c = shift;
$c->app->log->info($c->log_req);
my $rt = $c->current_route;
$cdb = esmith::ConfigDB->open || die "Couldn't open config db";
$adb = esmith::AccountsDB->open || die "Couldn't open accounts db";
$rdb = esmith::ConfigDB->open('/etc/e-smith/restore');
my $function = $c->param('Function');
DEBUG && warn("do_update $function");
my %bac_datas = ();
@@ -2011,4 +2024,4 @@ sub vmount {
return (qx(/bin/mount -t nfs -o nolock,timeo=30,retrans=1,retry=0 "$host:/$share" $mountdir 2>&1));
}
} ## end sub vmount
1;
1;

View File

@@ -16,30 +16,41 @@
}
my $clvl = $c->stash('compressionlevel');
my $cmd = "/bin/tar --directory / --create @{$c->stash('directories')} --file=-"
. "@{$c->stash('exclude')} | /usr/bin/gzip $clvl ";
my $cmd = "/bin/tar --create --file=- --directory / @{$c->stash('exclude')} "
. "@{$c->stash('directories')} | /usr/bin/gzip $clvl ";
my $success = open my $fh, '-|', $cmd;
unless ($success) { return "Error dowload command."; };
# Write chunk
$c->res->headers->content_type('application/x-tar');
$c->res->headers->content_disposition(qq/attachment; filename="smeserver.tgz"/);
my $cb;
$cb = sub {
my $c = shift;
my $size = 500 * 1024;
my $length = sysread($fh, my $buffer, $size);
unless ($length) {
close $fh;
undef $cb;
$c->finish;
return;
}
$c->write_chunk($buffer, $cb);
};
$c->$cb;
#unless ($success) { return "Error download command."; };
if ($success) {
# Try with download plugin - seems to fail to complete download and also
# name of file deposited is not as required.
#my $output = do { local $/; <$fh> };
#close $fh;
#$c->render_file(
#data => $output,
#filename => 'output.txt',
#content_type => 'text/plain'
#);
# So organise it ourselves.
$c->res->headers->content_type('application/x-tar');
$c->res->headers->content_disposition(qq/attachment; filename="smeserver.tgz"/);
my $cb;
$cb = sub {
my $c = shift;
my $size = 500 * 1024;
my $length = sysread($fh, my $buffer, $size);
unless ($length) {
close $fh;
undef $cb;
$c->finish;
return;
}
$c->write_chunk($buffer, $cb);
};
$c->$cb;
} else {
$c->render(text => "Failed to execute command: $!", status => 500);
}
# Remove the dumped tables.
$status = system("/sbin/e-smith/signal-event", "post-backup", "desktop");
@@ -53,3 +64,4 @@
$backup_rec->set_prop('Result', "0");
%>
1;

View File

@@ -2,7 +2,7 @@ Summary: Sme server navigation module : manager 2
%define name smeserver-manager
Name: %{name}
%define version 11.0.0
%define release 57
%define release 58
Version: %{version}
Release: %{release}%{?dist}
License: GPL
@@ -143,6 +143,10 @@ true
%defattr(-,root,root)
%changelog
* Tue Feb 25 2025 Brian Read <brianr@koozali.org> 11.0.0-58.sme
- re-organise open db placement [SME: 12695]
- Re-arrange parameters to tar to avoid warning message in logs [SME: 12943]
* Fri Feb 21 2025 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-57.sme
- upgrade validate_password sub to use esmith::util [SME: 12937]
and deduplicate code