ceph install: improve ceph install checks during installation

Adding a flag file during the Ceph installation helps to cover the time
span in which the binary is already present but the installation not yet
done.

The most noticeable effect is that the 'Next' button in the GUI will
only become active once the installation is actually finished and not
earlier.

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
This commit is contained in:
Aaron Lauterer 2021-10-04 10:02:25 +02:00 committed by Thomas Lamprecht
parent a040ecafb7
commit 4dd27d5034
2 changed files with 15 additions and 1 deletions

View File

@ -177,7 +177,16 @@ __PACKAGE__->register_method ({
);
print "start installation\n";
# the install flag helps to determine when apt is done installing
my $install_flag_file = '/run/ceph-install-flag';
open(my $install_flag, '>', "${install_flag_file}") or
die "could not open Ceph installation flag - $!\n";
close $install_flag;
if (system(@apt_install, @ceph_packages) != 0) {
unlink $install_flag_file or
warn "Could not remove Ceph installation flag - $!";
die "apt failed during ceph installation ($?)\n";
}
@ -188,6 +197,9 @@ __PACKAGE__->register_method ({
'systemctl', 'try-reload-or-restart', 'pvedaemon.service', 'pveproxy.service'
]);
unlink $install_flag_file or
warn "Could not remove Ceph installation flag - $!";
return undef;
}});

View File

@ -155,7 +155,9 @@ sub check_ceph_installed {
$service = 'ceph_bin' if !defined($service);
if (! -x $ceph_service->{$service}) {
# the flag file is checked as on a new installation, the binary gets
# extracted by dpkg before the installation is finished
if (! -x $ceph_service->{$service} || -f '/run/ceph-install-flag') {
die "binary not installed: $ceph_service->{$service}\n" if !$noerr;
return undef;
}