this returns a hash of existing service links for mds/mgr/mons so that we know which services exists
this is necessary since ceph itself does not save if a service is defined somewhere, only when it runs Signed-off-by: Dominik Csapak <d.csa...@proxmox.com> --- PVE/Ceph/Services.pm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/PVE/Ceph/Services.pm b/PVE/Ceph/Services.pm index 739df266..a0203f9c 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) = @_; -- 2.11.0 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel