]> git.proxmox.com Git - pve-manager.git/commitdiff
followup code cleanup
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 4 Jun 2019 14:42:23 +0000 (16:42 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 4 Jun 2019 14:42:37 +0000 (16:42 +0200)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
PVE/Ceph/Services.pm

index 0448c7d1298d81dc6c42ce73f1b62da8e88eab0d..205ba09059fc2eb6aa5236561b062509f1c414f5 100644 (file)
@@ -78,13 +78,13 @@ sub get_services_info {
     my $services = get_cluster_service($type);
 
     foreach my $host (sort keys %$services) {
-       foreach  my $id (sort keys %{$services->{$host}}) {
-           $result->{$id} = $services->{$host}->{$id};
-           $result->{$id}->{host} = $host;
-           $result->{$id}->{name} = $id;
-           $result->{$id}->{state} = 'unknown';
-           if ($result->{$id}->{service}) {
-               $result->{$id}->{state} = 'stopped';
+       foreach my $id (sort keys %{$services->{$host}}) {
+           my $service = $result->{$id} = $services->{$host}->{$id};
+           $service->{host} = $host;
+           $service->{name} = $id;
+           $service->{state} = 'unknown';
+           if ($service->{service}) {
+               $service->{state} = 'stopped';
            }
        }
     }
@@ -97,11 +97,12 @@ sub get_services_info {
        my $d = $cfg->{$section};
        if ($section =~ m/^$type\.(\S+)$/) {
            my $id = $1;
+           my $service = $result->{$id};
            my $addr = $d->{"$type addr"} // $d->{"${type}_addr"} // $d->{host};
-           $result->{$id}->{name} //= $id;
-           $result->{$id}->{addr} //= $addr;
-           $result->{$id}->{state} //= 'unknown';
-           $result->{$id}->{host} //= $d->{host};
+           $service->{name} //= $id;
+           $service->{addr} //= $addr;
+           $service->{state} //= 'unknown';
+           $service->{host} //= $d->{host};
        }
     }
 
@@ -109,11 +110,12 @@ sub get_services_info {
        $rados = PVE::RADOS->new();
     }
     my $metadata = $rados->mon_command({ prefix => "$type metadata" });
-    foreach my $service (@$metadata) {
-       $result->{$service->{name}}->{ceph_version_short} = $service->{ceph_version_short};
-       $result->{$service->{name}}->{ceph_version} = $service->{ceph_version};
-       $result->{$service->{name}}->{host} //= $service->{hostname};
-       $result->{$service->{name}}->{addr} //= $service->{addr};
+    foreach my $info (@$metadata) {
+       my $service = $result->{$info->{name}};
+       $service->{ceph_version_short} = $info->{ceph_version_short};
+       $service->{ceph_version} = $info->{ceph_version};
+       $service->{host} //= $info->{hostname};
+       $service->{addr} //= $info->{addr};
     }
 
     return $result;