]> git.proxmox.com Git - pve-network.git/blob - PVE/Network/SDN.pm
2e996e9e5304189bd788195cb9a608b79c6f6154
[pve-network.git] / PVE / Network / SDN.pm
1 package PVE::Network::SDN;
2
3 use strict;
4 use warnings;
5
6 use Data::Dumper;
7 use JSON;
8
9 use PVE::Network::SDN::Zones;
10
11 use PVE::Tools qw(extract_param dir_glob_regex run_command);
12 use PVE::Cluster qw(cfs_read_file cfs_write_file cfs_lock_file);
13
14 # improve me : move status code inside plugins ?
15
16 sub ifquery_check {
17
18 my $cmd = ['ifquery', '-a', '-c', '-o','json'];
19
20 my $result = '';
21 my $reader = sub { $result .= shift };
22
23 eval {
24 run_command($cmd, outfunc => $reader);
25 };
26
27 my $resultjson = decode_json($result);
28 my $interfaces = {};
29
30 foreach my $interface (@$resultjson) {
31 my $name = $interface->{name};
32 $interfaces->{$name} = {
33 status => $interface->{status},
34 config => $interface->{config},
35 config_status => $interface->{config_status},
36 };
37 }
38
39 return $interfaces;
40 }
41
42 sub status {
43
44 my ($zone_status, $vnet_status) = PVE::Network::SDN::Zones::status();
45 return($zone_status, $vnet_status);
46 }
47
48 1;
49