[pve-devel] [PATCH pve-manager 4/5] api : cluster ressources : add sdn

Alexandre Derumier aderumier at odiso.com
Wed Aug 21 05:22:39 CEST 2019


Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
 PVE/API2/Cluster.pm | 28 ++++++++++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

diff --git a/PVE/API2/Cluster.pm b/PVE/API2/Cluster.pm
index ba9bef27..7249c00a 100644
--- a/PVE/API2/Cluster.pm
+++ b/PVE/API2/Cluster.pm
@@ -190,7 +190,7 @@ __PACKAGE__->register_method({
 	    type => {
 		type => 'string',
 		optional => 1,
-		enum => ['vm', 'storage', 'node'],
+		enum => ['vm', 'storage', 'node', 'sdn'],
 	    },
 	},
     },
@@ -203,7 +203,7 @@ __PACKAGE__->register_method({
 		type => {
 		    description => "Resource type.",
 		    type => 'string',
-		    enum => ['node', 'storage', 'pool', 'qemu', 'lxc', 'openvz'],
+		    enum => ['node', 'storage', 'pool', 'qemu', 'lxc', 'openvz', 'sdn'],
 		},
 		status => {
 		    description => "Resource type dependent status.",
@@ -399,6 +399,30 @@ __PACKAGE__->register_method({
 	    }
 	}
 
+	if($have_sdn) {
+	    if (!$param->{type} || $param->{type} eq 'sdn') {
+
+		my $nodes = PVE::Cluster::get_node_kv("sdn");
+
+		foreach my $node (keys %{$nodes}) {
+		    my $sdns = decode_json($nodes->{$node});
+
+		    foreach my $id (keys %{$sdns}) {
+			my $sdn = $sdns->{$id};
+			#next if !$rpcenv->check($authuser, "/sdn/$id", [ 'SDN.Audit' ], 1);
+			my $entry = {
+			    id => "sdn/$node/$id",
+			    sdn => $id,
+			    node => $node,
+			    type => 'sdn',
+			    status => $sdn->{'status'},
+		        }; 		    
+		    	push @$res, $entry;
+		    }
+	        }
+	    }
+	}
+
 	return $res;
     }});
 
-- 
2.20.1



More information about the pve-devel mailing list