Since pve-network now includes the fabric status in its top-level status function call (SDN::status), move pvestatd over to use the zone-specific function for generating SDN resources instead. Additionally, the zone_type field has been added in the output of the zone status, so broadcast and return that field as well. Main use-case for now is discerning the type of zones, to decide which panels to show in the SDN browser.
Also, the have_sdn guard can be removed since SDN is pre-installed and therefore the guard is no longer needed. Signed-off-by: Stefan Hanreich <[email protected]> --- PVE/API2/Cluster.pm | 31 +++++++++++++++++++------------ PVE/Service/pvestatd.pm | 16 ++++------------ 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/PVE/API2/Cluster.pm b/PVE/API2/Cluster.pm index eb9ddcc39..4f41a005c 100644 --- a/PVE/API2/Cluster.pm +++ b/PVE/API2/Cluster.pm @@ -469,6 +469,11 @@ __PACKAGE__->register_method({ enum => ["fabric", "zone"], optional => 1, }, + 'zone-type' => { + description => "The type of an SDN zone (for type 'sdn').", + type => "string", + optional => 1, + }, protocol => { description => "The protocol of a fabric (for type 'network', network-type 'fabric').", @@ -638,18 +643,20 @@ __PACKAGE__->register_method({ my $sdns = decode_json($nodes->{$node}); - for my $id (sort keys %{$sdns}) { - next if !$rpcenv->check($authuser, "/sdn/zones/$id", ['SDN.Audit'], 1); - my $sdn = $sdns->{$id}; - my $entry = { - id => "sdn/$node/$id", - sdn => $id, - node => $node, - type => 'sdn', - status => $sdn->{'status'}, - }; - push @$res, $entry; - } + for my $id (sort keys %{$sdns}) { + next if !$rpcenv->check($authuser, "/sdn/zones/$id", ['SDN.Audit'], 1); + my $sdn = $sdns->{$id}; + my $entry = { + id => "sdn/$node/$id", + sdn => $id, + node => $node, + type => 'sdn', + status => $sdn->{'status'}, + }; + + $entry->{'zone-type'} = $sdn->{'zone-type'} if defined($sdn->{'zone-type'}); + + push @$res, $entry; } } } diff --git a/PVE/Service/pvestatd.pm b/PVE/Service/pvestatd.pm index 572eb7eb5..98d421f48 100755 --- a/PVE/Service/pvestatd.pm +++ b/PVE/Service/pvestatd.pm @@ -15,6 +15,7 @@ use PVE::CpuSet; use Filesys::Df; use PVE::INotify; use PVE::Network; +use PVE::Network::SDN::Zones; use PVE::RS::SDN::Fabrics; use PVE::NodeConfig; use PVE::Cluster qw(cfs_read_file); @@ -38,12 +39,6 @@ use PVE::Status::Plugin; use base qw(PVE::Daemon); -my $have_sdn; -eval { - require PVE::Network::SDN; - $have_sdn = 1; -}; - my $opt_debug; my $restart_request; @@ -767,13 +762,10 @@ sub update_ceph_metadata { } sub update_sdn_status { + my ($zone_status, $vnet_status) = PVE::Network::SDN::Zones::status(); - if ($have_sdn) { - my ($transport_status, $vnet_status) = PVE::Network::SDN::status(); - - my $status = $transport_status ? encode_json($transport_status) : undef; - PVE::Cluster::broadcast_node_kv("sdn", $status); - } + my $status = $zone_status ? encode_json($zone_status) : undef; + PVE::Cluster::broadcast_node_kv("sdn", $status); } sub update_network_status { -- 2.47.3 _______________________________________________ pve-devel mailing list [email protected] https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
