]> git.proxmox.com Git - pmg-api.git/blobdiff - PMG/API2/Services.pm
pmgmirror: add dummy for pmgmirror service
[pmg-api.git] / PMG / API2 / Services.pm
index 24af63bb7247a2228d4d7574105bd08d1f7875f6..d947942b12dce9ff14b6712b6ba759964efc21c4 100644 (file)
@@ -8,7 +8,7 @@ use PVE::SafeSyslog;
 use PVE::INotify;
 use PVE::Exception qw(raise_param_exc);
 use PVE::RESTHandler;
-use PVE::RESTEnvironment;
+use PMG::RESTEnvironment;
 use PVE::JSONSchema qw(get_standard_option);
 
 use PMG::Utils;
@@ -16,32 +16,23 @@ use PMG::Utils;
 use base qw(PVE::RESTHandler);
 
 my $service_name_list = [
+    'clamav-daemon',
+    'clamav-freshclam',
     'pmgproxy',
     'pmgdaemon',
-    'sshd',
-    'syslog',
-    'cron',
+    'pmgpolicy',
+    'pmg-smtp-filter',
+    'pmgtunnel',
+    'pmgmirror',
+    'ssh',
+    'rsyslog',
     'postfix',
+    'postgres',
     'systemd-timesyncd',
+    'pmg-hourly',
+    'pmg-daily',
     ];
 
-my $get_full_service_state = sub {
-    my ($service) = @_;
-
-    my $res;
-
-    my $parser = sub {
-       my $line = shift;
-       if ($line =~ m/^([^=\s]+)=(.*)$/) {
-           $res->{$1} = $2;
-       }
-    };
-
-    PVE::Tools::run_command(['systemctl', 'show', $service], outfunc => $parser);
-
-    return $res;
-};
-
 my $static_service_list;
 
 sub get_service_list {
@@ -51,7 +42,7 @@ sub get_service_list {
     my $list = {};
     foreach my $name (@$service_name_list) {
        my $ss;
-       eval { $ss = &$get_full_service_state($name); };
+       eval { $ss = PMG::Utils::get_full_service_state($name); };
        warn $@ if $@;
        next if !$ss;
        next if !defined($ss->{Description});
@@ -74,14 +65,18 @@ my $service_state = sub {
     my ($service) = @_;
 
     my $ss;
-    eval { $ss = &$get_full_service_state($service); };
+    eval { $ss = PMG::Utils::get_full_service_state($service); };
     if (my $err = $@) {
        return 'unknown';
     }
 
-    return $ss->{SubState} if $ss->{SubState};
+    my $state = $ss->{SubState} // 'unknown';
+
+    $state = $ss->{Result}
+    if $state eq 'dead' && $ss->{Type} && $ss->{Type} eq 'oneshot' &&
+       $ss->{Result};
 
-    return 'unknown';
+    return $state;
 };
 
 __PACKAGE__->register_method ({
@@ -117,7 +112,7 @@ __PACKAGE__->register_method ({
                service => $id,
                name => $service_list->{$id}->{name},
                desc => $service_list->{$id}->{desc},
-               state => &$service_state($id),
+               state => $service_state->($id),
            };
        }
 
@@ -212,7 +207,7 @@ __PACKAGE__->register_method ({
     code => sub {
        my ($param) = @_;
 
-       my $restenv = PVE::RESTEnvironment::get();
+       my $restenv = PMG::RESTEnvironment->get();
 
        my $user = $restenv->get_user();
 
@@ -248,7 +243,7 @@ __PACKAGE__->register_method ({
     code => sub {
        my ($param) = @_;
 
-       my $restenv = PVE::RESTEnvironment::get();
+       my $restenv = PMG::RESTEnvironment->get();
 
        my $user = $restenv->get_user();
 
@@ -284,7 +279,7 @@ __PACKAGE__->register_method ({
     code => sub {
        my ($param) = @_;
 
-       my $restenv = PVE::RESTEnvironment::get();
+       my $restenv = PMG::RESTEnvironment->get();
 
        my $user = $restenv->get_user();
 
@@ -320,7 +315,7 @@ __PACKAGE__->register_method ({
     code => sub {
        my ($param) = @_;
 
-       my $restenv = PVE::RESTEnvironment::get();
+       my $restenv = PMG::RESTEnvironment->get();
 
        my $user = $restenv->get_user();