From fb4b3e4a642b3c83090d7d38959c95c061cd0e92 Mon Sep 17 00:00:00 2001 From: Alexandre Derumier Date: Wed, 3 Apr 2019 00:19:10 +0200 Subject: [PATCH] move transport plugins to Network/Transport/ --- PVE/API2/Network/Transport.pm | 32 +++++++++---------- PVE/Network/Makefile | 6 ++-- PVE/Network/Transport.pm | 12 +++---- PVE/Network/Transport/Makefile | 9 ++++++ PVE/Network/{ => Transport}/Plugin.pm | 2 +- PVE/Network/{ => Transport}/VlanPlugin.pm | 10 +++--- .../{ => Transport}/VxlanMulticastPlugin.pm | 10 +++--- PVE/Network/Vnet/Makefile | 2 +- 8 files changed, 46 insertions(+), 37 deletions(-) create mode 100644 PVE/Network/Transport/Makefile rename PVE/Network/{ => Transport}/Plugin.pm (98%) rename PVE/Network/{ => Transport}/VlanPlugin.pm (87%) rename PVE/Network/{ => Transport}/VxlanMulticastPlugin.pm (85%) diff --git a/PVE/API2/Network/Transport.pm b/PVE/API2/Network/Transport.pm index bddae40..0e1610f 100644 --- a/PVE/API2/Network/Transport.pm +++ b/PVE/API2/Network/Transport.pm @@ -7,9 +7,9 @@ use PVE::SafeSyslog; use PVE::Tools qw(extract_param); use PVE::Cluster qw(cfs_read_file cfs_write_file); use PVE::Network::Transport; -use PVE::Network::Plugin; -use PVE::Network::VlanPlugin; -use PVE::Network::VxlanMulticastPlugin; +use PVE::Network::Transport::Plugin; +use PVE::Network::Transport::VlanPlugin; +use PVE::Network::Transport::VxlanMulticastPlugin; use Storable qw(dclone); use PVE::JSONSchema qw(get_standard_option); use PVE::RPCEnvironment; @@ -18,7 +18,7 @@ use PVE::RESTHandler; use base qw(PVE::RESTHandler); -my $transport_type_enum = PVE::Network::Plugin->lookup_types(); +my $transport_type_enum = PVE::Network::Transport::Plugin->lookup_types(); my $api_transport_config = sub { my ($cfg, $transportid) = @_; @@ -36,7 +36,7 @@ __PACKAGE__->register_method ({ method => 'GET', description => "Transport index.", permissions => { - description => "Only list entries where you have 'NetworkTransport.Audit' or 'NetworkTransport.Allocate' permissions on '/networktransports/'", + description => "Only list entries where you have 'NetworkTransport.Audit' or 'NetworkTransport.Allocate' permissions on '/cluster/network/transport/'", user => 'all', }, parameters => { @@ -71,7 +71,7 @@ __PACKAGE__->register_method ({ my $res = []; foreach my $transportid (@sids) { # my $privs = [ 'NetworkTransport.Audit', 'NetworkTransport.Allocate' ]; -# next if !$rpcenv->check_any($authuser, "/network/transports/$transportid", $privs, 1); +# next if !$rpcenv->check_any($authuser, "/cluster/network/transport/$transportid", $privs, 1); my $scfg = &$api_transport_config($cfg, $transportid); next if $param->{type} && $param->{type} ne $scfg->{type}; @@ -87,7 +87,7 @@ __PACKAGE__->register_method ({ method => 'GET', description => "Read transport configuration.", # permissions => { -# check => ['perm', '/network/transports/{transport}', ['NetworkTransport.Allocate']], +# check => ['perm', '/cluster/network/transport/{transport}', ['NetworkTransport.Allocate']], # }, parameters => { @@ -112,9 +112,9 @@ __PACKAGE__->register_method ({ method => 'POST', description => "Create a new network transport.", # permissions => { -# check => ['perm', '/network/transports', ['NetworkTransport.Allocate']], +# check => ['perm', '/cluster/network/transport', ['NetworkTransport.Allocate']], # }, - parameters => PVE::Network::Plugin->createSchema(), + parameters => PVE::Network::Transport::Plugin->createSchema(), returns => { type => 'null' }, code => sub { my ($param) = @_; @@ -122,7 +122,7 @@ __PACKAGE__->register_method ({ my $type = extract_param($param, 'type'); my $transportid = extract_param($param, 'transport'); - my $plugin = PVE::Network::Plugin->lookup($type); + my $plugin = PVE::Network::Transport::Plugin->lookup($type); my $opts = $plugin->check_config($transportid, $param, 1, 1); PVE::Network::Transport::lock_transport_config( @@ -153,9 +153,9 @@ __PACKAGE__->register_method ({ method => 'PUT', description => "Update network transport configuration.", # permissions => { -# check => ['perm', '/network/transports', ['NetworkTransport.Allocate']], +# check => ['perm', '/cluster/network/transport', ['NetworkTransport.Allocate']], # }, - parameters => PVE::Network::Plugin->updateSchema(), + parameters => PVE::Network::Transport::Plugin->updateSchema(), returns => { type => 'null' }, code => sub { my ($param) = @_; @@ -172,7 +172,7 @@ __PACKAGE__->register_method ({ my $scfg = PVE::Network::Transport::transport_config($cfg, $transportid); - my $plugin = PVE::Network::Plugin->lookup($scfg->{type}); + my $plugin = PVE::Network::Transport::Plugin->lookup($scfg->{type}); my $opts = $plugin->check_config($transportid, $param, 0, 1); foreach my $k (%$opts) { @@ -191,11 +191,11 @@ __PACKAGE__->register_method ({ __PACKAGE__->register_method ({ name => 'delete', protected => 1, - path => '{transport}', # /network/transports/{transport} + path => '{transport}', # /cluster/network/transport/{transport} method => 'DELETE', description => "Delete network transport configuration.", # permissions => { -# check => ['perm', '/network/transports', ['NetworkTransport.Allocate']], +# check => ['perm', '/cluster/network/transport', ['NetworkTransport.Allocate']], # }, parameters => { additionalProperties => 0, @@ -218,7 +218,7 @@ __PACKAGE__->register_method ({ my $scfg = PVE::Network::Transport::transport_config($cfg, $transportid); -# my $plugin = PVE::Network::Plugin->lookup($scfg->{type}); +# my $plugin = PVE::Network::Transport::Plugin->lookup($scfg->{type}); # $plugin->on_delete_hook($transportid, $scfg); delete $cfg->{ids}->{$transportid}; diff --git a/PVE/Network/Makefile b/PVE/Network/Makefile index dd74a2a..66eeec8 100644 --- a/PVE/Network/Makefile +++ b/PVE/Network/Makefile @@ -1,4 +1,4 @@ -SOURCES=Plugin.pm VlanPlugin.pm Vnet.pm VxlanMulticastPlugin.pm +SOURCES=Vnet.pm Transport.pm PERL5DIR=${DESTDIR}/usr/share/perl5 @@ -6,5 +6,5 @@ PERL5DIR=${DESTDIR}/usr/share/perl5 .PHONY: install install: for i in ${SOURCES}; do install -D -m 0644 $$i ${PERL5DIR}/PVE/Network/$$i; done - make -C Vnet install - + make -C Vnet install + make -C Transport install diff --git a/PVE/Network/Transport.pm b/PVE/Network/Transport.pm index 1b8a2ca..72cb0b5 100644 --- a/PVE/Network/Transport.pm +++ b/PVE/Network/Transport.pm @@ -4,13 +4,13 @@ use strict; use warnings; use Data::Dumper; use PVE::Cluster qw(cfs_read_file cfs_write_file cfs_lock_file); -use PVE::Network::Plugin; -use PVE::Network::VlanPlugin; -use PVE::Network::VxlanMulticastPlugin; +use PVE::Network::Transport::Plugin; +use PVE::Network::Transport::VlanPlugin; +use PVE::Network::Transport::VxlanMulticastPlugin; -PVE::Network::VlanPlugin->register(); -PVE::Network::VxlanMulticastPlugin->register(); -PVE::Network::Plugin->init(); +PVE::Network::Transport::VlanPlugin->register(); +PVE::Network::Transport::VxlanMulticastPlugin->register(); +PVE::Network::Transport::Plugin->init(); sub transport_config { diff --git a/PVE/Network/Transport/Makefile b/PVE/Network/Transport/Makefile new file mode 100644 index 0000000..938e87b --- /dev/null +++ b/PVE/Network/Transport/Makefile @@ -0,0 +1,9 @@ +SOURCES=Plugin.pm VlanPlugin.pm VxlanMulticastPlugin.pm + + +PERL5DIR=${DESTDIR}/usr/share/perl5 + +.PHONY: install +install: + for i in ${SOURCES}; do install -D -m 0644 $$i ${PERL5DIR}/PVE/Network/Transport/$$i; done + diff --git a/PVE/Network/Plugin.pm b/PVE/Network/Transport/Plugin.pm similarity index 98% rename from PVE/Network/Plugin.pm rename to PVE/Network/Transport/Plugin.pm index 36cd2ed..dcebbcf 100644 --- a/PVE/Network/Plugin.pm +++ b/PVE/Network/Transport/Plugin.pm @@ -1,4 +1,4 @@ -package PVE::Network::Plugin; +package PVE::Network::Transport::Plugin; use strict; use warnings; diff --git a/PVE/Network/VlanPlugin.pm b/PVE/Network/Transport/VlanPlugin.pm similarity index 87% rename from PVE/Network/VlanPlugin.pm rename to PVE/Network/Transport/VlanPlugin.pm index 7d64549..8ee8bdc 100644 --- a/PVE/Network/VlanPlugin.pm +++ b/PVE/Network/Transport/VlanPlugin.pm @@ -1,10 +1,10 @@ -package PVE::Network::VlanPlugin; +package PVE::Network::Transport::VlanPlugin; use strict; use warnings; -use PVE::Network::Plugin; +use PVE::Network::Transport::Plugin; -use base('PVE::Network::Plugin'); +use base('PVE::Network::Transport::Plugin'); sub type { return 'vlan'; @@ -14,7 +14,7 @@ PVE::JSONSchema::register_format('pve-network-vlanrange', \&pve_verify_network_v sub pve_verify_network_vlanrange { my ($vlanstr) = @_; - PVE::Network::Plugin::parse_tag_number_or_range($vlanstr, '4096'); + PVE::Network::Transport::Plugin::parse_tag_number_or_range($vlanstr, '4096'); return $vlanstr; } @@ -70,7 +70,7 @@ sub generate_network_config { die "uplink $uplink is not defined" if !$uplinks->{$uplink}; eval { - PVE::Network::Plugin::parse_tag_number_or_range($vlanallowed, '4096', $tag) if $vlanallowed; + PVE::Network::Transport::Plugin::parse_tag_number_or_range($vlanallowed, '4096', $tag) if $vlanallowed; }; if($@) { die "vlan $tag is not allowed in transport $zoneid"; diff --git a/PVE/Network/VxlanMulticastPlugin.pm b/PVE/Network/Transport/VxlanMulticastPlugin.pm similarity index 85% rename from PVE/Network/VxlanMulticastPlugin.pm rename to PVE/Network/Transport/VxlanMulticastPlugin.pm index 3aa6e35..c6fa29d 100644 --- a/PVE/Network/VxlanMulticastPlugin.pm +++ b/PVE/Network/Transport/VxlanMulticastPlugin.pm @@ -1,16 +1,16 @@ -package PVE::Network::VxlanMulticastPlugin; +package PVE::Network::Transport::VxlanMulticastPlugin; use strict; use warnings; -use PVE::Network::Plugin; +use PVE::Network::Transport::Plugin; -use base('PVE::Network::Plugin'); +use base('PVE::Network::Transport::Plugin'); PVE::JSONSchema::register_format('pve-network-vxlanrange', \&pve_verify_network_vxlanrange); sub pve_verify_network_vxlanrange { my ($vxlanstr) = @_; - PVE::Network::Plugin::parse_tag_number_or_range($vxlanstr, '16777216'); + PVE::Network::Transport::Plugin::parse_tag_number_or_range($vxlanstr, '16777216'); return $vxlanstr; } @@ -57,7 +57,7 @@ sub generate_network_config { my $iface = $uplinks->{$uplink}; eval { - PVE::Network::Plugin::parse_tag_number_or_range($vxlanallowed, '16777216', $tag) if $vxlanallowed; + PVE::Network::Transport::Plugin::parse_tag_number_or_range($vxlanallowed, '16777216', $tag) if $vxlanallowed; }; if($@) { die "vlan $tag is not allowed in transport $zoneid"; diff --git a/PVE/Network/Vnet/Makefile b/PVE/Network/Vnet/Makefile index bac1a8c..8d4a818 100644 --- a/PVE/Network/Vnet/Makefile +++ b/PVE/Network/Vnet/Makefile @@ -1,4 +1,4 @@ -SOURCES=Plugin.pm VlanPlugin.pm +SOURCES=Plugin.pm PERL5DIR=${DESTDIR}/usr/share/perl5 -- 2.39.2