+my $get_cluster_table_data = sub {
+
+ my $res = PMG::API2::Cluster->status({});
+ return undef if !scalar(@$res);
+
+ my $data = [];
+
+ foreach my $ni (@$res) {
+ my $state = 'A';
+ $state = 'S' if !$ni->{insync};
+
+ my $loadavg1 = '-';
+ if (my $d = $ni->{loadavg}) {
+ $loadavg1 = sprintf("%.2f", $d->[0]);
+ }
+
+ my $memory = '-';
+ if (my $d = $ni->{memory}) {
+ $memory = sprintf("%.2f%%", $d->{used}*100/$d->{total});
+ }
+
+ my $disk = '-';
+ if (my $d = $ni->{rootfs}) {
+ $disk = sprintf("%.2f%%", $d->{used}*100/$d->{total});
+ }
+
+ push @$data, {
+ hostname => $ni->{name},
+ ip => $ni->{ip},
+ type => $ni->{type},
+ state => $state,
+ loadavg1 => $loadavg1,
+ memory => $memory,
+ disk => $disk,
+ };
+ };
+
+ return $data;
+};