Am 4/26/19 um 8:21 AM schrieb Dominik Csapak:
> 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

hmm, what about (temporarily) disabled ones? or can we just say that won't
happen with service unit templates.. Else we could possibly also check
/var/lib/ceph/m{ds,gr,on} for old configured but not active (anymore) ones

> +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,

if we could get it in a cheap way it could be great to get it's state too
(running, dead, ...?) or do we get that from ceph for running ones, and the
difference from those and this set can be assumed to be dead?

> +         }
> +     });
> +    }
> +    return $res;
> +}
> +
>  sub ceph_service_cmd {
>      my ($action, $service) = @_;
>  
> 


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to