From bc9e5709ea29f50767c48f5c49c2435f5d140d7a Mon Sep 17 00:00:00 2001 From: Alexandre Derumier Date: Mon, 3 Jun 2019 17:57:39 +0200 Subject: [PATCH] add test statuscheck.pl could be reuse later in pvestatd to broadcast status. --- test/statuscheck.pl | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 test/statuscheck.pl diff --git a/test/statuscheck.pl b/test/statuscheck.pl new file mode 100644 index 0000000..0a8a712 --- /dev/null +++ b/test/statuscheck.pl @@ -0,0 +1,44 @@ +use strict; +use warnings; +use File::Copy; +use PVE::Cluster qw(cfs_read_file); + +use PVE::Network::Network; +use Data::Dumper; +use PVE::Network::Network::Plugin; +use PVE::Network::Network::VnetPlugin; +use PVE::Network::Network::VlanPlugin; +use PVE::Network::Network::VxlanMulticastPlugin; + + +my $status = PVE::Network::Network::status(); + +my $network_cfg = PVE::Cluster::cfs_read_file('networks.cfg'); +my $vnet_cfg = undef; +my $transport_cfg = undef; + +my $vnet_status = {}; +my $transport_status = {}; + +foreach my $id (keys %{$network_cfg->{ids}}) { + if ($network_cfg->{ids}->{$id}->{type} eq 'vnet') { + my $transportzone = $network_cfg->{ids}->{$id}->{transportzone}; + $transport_status->{$transportzone}->{status} = 1 if !defined($transport_status->{$transportzone}->{status}); + + if ($status->{$id}->{status} && $status->{$id}->{status} eq 'pass') { + $vnet_status->{$id}->{status} = 1; + my $bridgeport = $status->{$id}->{config}->{'bridge-ports'}; + + if ($status->{$bridgeport}->{status} && $status->{$bridgeport}->{status} ne 'pass') { + $vnet_status->{$id}->{status} = 0; + $transport_status->{$transportzone}->{status} = 0; + } + } else { + $vnet_status->{$id}->{status} = 0; + $transport_status->{$transportzone}->{status} = 0; + } + } +} + +print Dumper($vnet_status); +print Dumper($transport_status); -- 2.39.2