diff --git a/PVE/Ceph/Services.pm b/PVE/Ceph/Services.pm index f320b23c..0f3d59b5 100644 --- a/PVE/Ceph/Services.pm +++ b/PVE/Ceph/Services.pm @@ -9,6 +9,24 @@ use PVE::RADOS; use File::Path; +# checks links in /etc/systemd/system/ceph-* to list all services, even +# those not running +sub get_local_services { + my $res = {}; + for my $type (qw(mds mgr mon)) { + $res->{$type} = {}; + my $path = "/etc/systemd/system/ceph-$type.target.wants"; + my $regex = "ceph-$type\@(.*)\.service"; + PVE::Tools::dir_glob_foreach($path, $regex, sub { + my (undef, $id) = @_; + $res->{$type}->{$id} = { + service => 1, + } + }); + } + return $res; +} + sub ceph_service_cmd { my ($action, $service) = @_;