]> git.proxmox.com Git - pve-network.git/blame - PVE/API2/Network/SDN/Zones/Content.pm
d/control: reword package description slightly
[pve-network.git] / PVE / API2 / Network / SDN / Zones / Content.pm
CommitLineData
4140be9e 1package PVE::API2::Network::SDN::Zones::Content;
903e2f5e
AD
2
3use strict;
4use warnings;
5use Data::Dumper;
6
7use PVE::SafeSyslog;
8use PVE::Cluster;
903e2f5e
AD
9use PVE::INotify;
10use PVE::Exception qw(raise_param_exc);
11use PVE::RPCEnvironment;
12use PVE::RESTHandler;
13use PVE::JSONSchema qw(get_standard_option);
14use PVE::Network::SDN;
15
16use base qw(PVE::RESTHandler);
17
18__PACKAGE__->register_method ({
7d35eaf5 19 name => 'index',
903e2f5e
AD
20 path => '',
21 method => 'GET',
3fd3e917 22 description => "List zone content.",
3551b612
AD
23 permissions => {
24 check => ['perm', '/sdn/zones/{zone}', ['SDN.Audit'], any => 1],
25 },
903e2f5e
AD
26 protected => 1,
27 proxyto => 'node',
28 parameters => {
29 additionalProperties => 0,
7d35eaf5 30 properties => {
903e2f5e 31 node => get_standard_option('pve-node'),
4140be9e
AD
32 zone => get_standard_option('pve-sdn-zone-id', {
33 completion => \&PVE::Network::SDN::Zones::complete_sdn_zone,
903e2f5e
AD
34 }),
35 },
36 },
37 returns => {
38 type => 'array',
39 items => {
40 type => "object",
7d35eaf5 41 properties => {
903e2f5e
AD
42 vnet => {
43 description => "Vnet identifier.",
44 type => 'string',
45 },
46 status => {
47 description => "Status.",
48 type => 'string',
49 optional => 1,
50 },
3709a203
AD
51 statusmsg => {
52 description => "Status details",
53 type => 'string',
54 optional => 1,
55 },
903e2f5e
AD
56 },
57 },
58 links => [ { rel => 'child', href => "{vnet}" } ],
59 },
60 code => sub {
61 my ($param) = @_;
62
63 my $rpcenv = PVE::RPCEnvironment::get();
64
65 my $authuser = $rpcenv->get_user();
66
56cdcac9 67 my $zoneid = $param->{zone};
903e2f5e
AD
68
69 my $res = [];
70
56cdcac9 71 my ($zone_status, $vnet_status) = PVE::Network::SDN::status();
903e2f5e
AD
72
73 foreach my $id (keys %{$vnet_status}) {
56cdcac9 74 if ($vnet_status->{$id}->{zone} eq $zoneid) {
903e2f5e
AD
75 my $item->{vnet} = $id;
76 $item->{status} = $vnet_status->{$id}->{'status'};
f84d09f2 77 $item->{statusmsg} = $vnet_status->{$id}->{'statusmsg'};
903e2f5e
AD
78 push @$res,$item;
79 }
80 }
81
7d35eaf5 82 return $res;
903e2f5e
AD
83 }});
84
851;