From: Thomas Lamprecht Date: Fri, 3 Jul 2020 12:07:36 +0000 (+0200) Subject: api sdn/vnets: cleanups X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=2bd2787a3c5b4cc9a375485585d390dc490f6cb7;p=matthieu%2Fpve-network.git api sdn/vnets: cleanups Signed-off-by: Thomas Lamprecht --- diff --git a/PVE/API2/Network/SDN/Vnets.pm b/PVE/API2/Network/SDN/Vnets.pm index 5d66908..c5860c8 100644 --- a/PVE/API2/Network/SDN/Vnets.pm +++ b/PVE/API2/Network/SDN/Vnets.pm @@ -36,11 +36,12 @@ __PACKAGE__->register_method ({ method => 'GET', description => "SDN vnets index.", permissions => { - description => "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/vnets/'", + description => "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate'" + ." permissions on '/sdn/vnets/'", user => 'all', }, parameters => { - additionalProperties => 0, + additionalProperties => 0, }, returns => { type => 'array', @@ -56,7 +57,6 @@ __PACKAGE__->register_method ({ my $rpcenv = PVE::RPCEnvironment::get(); my $authuser = $rpcenv->get_user(); - my $cfg = PVE::Network::SDN::Vnets::config(); my @sids = PVE::Network::SDN::Vnets::sdn_vnets_ids($cfg); @@ -80,14 +80,13 @@ __PACKAGE__->register_method ({ permissions => { check => ['perm', '/sdn/vnets/{vnet}', ['SDN.Allocate']], }, - parameters => { - additionalProperties => 0, - properties => { - vnet => get_standard_option('pve-sdn-vnet-id', { - completion => \&PVE::Network::SDN::Vnets::complete_sdn_vnets, - }), - }, + additionalProperties => 0, + properties => { + vnet => get_standard_option('pve-sdn-vnet-id', { + completion => \&PVE::Network::SDN::Vnets::complete_sdn_vnets, + }), + }, }, returns => { type => 'object' }, code => sub { @@ -95,7 +94,7 @@ __PACKAGE__->register_method ({ my $cfg = PVE::Network::SDN::Vnets::config(); - return &$api_sdn_vnets_config($cfg, $param->{vnet}); + return $api_sdn_vnets_config->($cfg, $param->{vnet}); }}); __PACKAGE__->register_method ({ @@ -115,37 +114,30 @@ __PACKAGE__->register_method ({ my $type = extract_param($param, 'type'); my $id = extract_param($param, 'vnet'); - # create /etc/pve/sdn directory - PVE::Cluster::check_cfs_quorum(); - mkdir("/etc/pve/sdn"); - - PVE::Network::SDN::lock_sdn_config( - sub { - - my $cfg = PVE::Network::SDN::Vnets::config(); - my $opts = PVE::Network::SDN::VnetPlugin->check_config($id, $param, 1, 1); - - my $scfg = undef; - if ($scfg = PVE::Network::SDN::Vnets::sdn_vnets_config($cfg, $id, 1)) { - die "sdn vnet object ID '$id' already defined\n"; - } + PVE::Cluster::check_cfs_quorum(); + mkdir("/etc/pve/sdn"); - $cfg->{ids}->{$id} = $opts; - - my $zone_cfg = PVE::Network::SDN::Zones::config(); - my $zoneid = $cfg->{ids}->{$id}->{zone}; - my $plugin_config = $zone_cfg->{ids}->{$zoneid}; - my $plugin = PVE::Network::SDN::Zones::Plugin->lookup($plugin_config->{type}); - $plugin->verify_tag($opts->{tag}); + PVE::Network::SDN::lock_sdn_config(sub { + my $cfg = PVE::Network::SDN::Vnets::config(); + my $opts = PVE::Network::SDN::VnetPlugin->check_config($id, $param, 1, 1); - PVE::Network::SDN::VnetPlugin->on_update_hook($id, $cfg); + if (PVE::Network::SDN::Vnets::sdn_vnets_config($cfg, $id, 1)) { + die "sdn vnet object ID '$id' already defined\n"; + } + $cfg->{ids}->{$id} = $opts; - PVE::Network::SDN::Vnets::write_config($cfg); + my $zone_cfg = PVE::Network::SDN::Zones::config(); + my $zoneid = $cfg->{ids}->{$id}->{zone}; + my $plugin_config = $zone_cfg->{ids}->{$zoneid}; + my $plugin = PVE::Network::SDN::Zones::Plugin->lookup($plugin_config->{type}); + $plugin->verify_tag($opts->{tag}); - PVE::Network::SDN::increase_version(); + PVE::Network::SDN::VnetPlugin->on_update_hook($id, $cfg); + PVE::Network::SDN::Vnets::write_config($cfg); + PVE::Network::SDN::increase_version(); - }, "create sdn vnet object failed"); + }, "create sdn vnet object failed"); return undef; }}); @@ -167,9 +159,7 @@ __PACKAGE__->register_method ({ my $id = extract_param($param, 'vnet'); my $digest = extract_param($param, 'digest'); - PVE::Network::SDN::lock_sdn_config( - sub { - + PVE::Network::SDN::lock_sdn_config(sub { my $cfg = PVE::Network::SDN::Vnets::config(); PVE::SectionConfig::assert_if_modified($cfg, $digest); @@ -179,20 +169,20 @@ __PACKAGE__->register_method ({ my $zone_cfg = PVE::Network::SDN::Zones::config(); my $zoneid = $cfg->{ids}->{$id}->{zone}; - my $plugin_config = $zone_cfg->{ids}->{$zoneid}; - my $plugin = PVE::Network::SDN::Zones::Plugin->lookup($plugin_config->{type}); + my $plugin_config = $zone_cfg->{ids}->{$zoneid}; + my $plugin = PVE::Network::SDN::Zones::Plugin->lookup($plugin_config->{type}); $plugin->verify_tag($opts->{tag}); - + PVE::Network::SDN::VnetPlugin->on_update_hook($id, $cfg); PVE::Network::SDN::Vnets::write_config($cfg); - PVE::Network::SDN::increase_version(); - }, "update sdn vnet object failed"); + }, "update sdn vnet object failed"); return undef; - }}); + } +}); __PACKAGE__->register_method ({ name => 'delete', @@ -204,11 +194,11 @@ __PACKAGE__->register_method ({ check => ['perm', '/sdn/vnets', ['SDN.Allocate']], }, parameters => { - additionalProperties => 0, + additionalProperties => 0, properties => { vnet => get_standard_option('pve-sdn-vnet-id', { - completion => \&PVE::Network::SDN::Vnets::complete_sdn_vnets, - }), + completion => \&PVE::Network::SDN::Vnets::complete_sdn_vnets, + }), }, }, returns => { type => 'null' }, @@ -217,26 +207,22 @@ __PACKAGE__->register_method ({ my $id = extract_param($param, 'vnet'); - PVE::Network::SDN::lock_sdn_config( - sub { - - my $cfg = PVE::Network::SDN::Vnets::config(); - - my $scfg = PVE::Network::SDN::Vnets::sdn_vnets_config($cfg, $id); - - my $vnet_cfg = PVE::Network::SDN::Vnets::config(); - - PVE::Network::SDN::VnetPlugin->on_delete_hook($id, $vnet_cfg); + PVE::Network::SDN::lock_sdn_config(sub { + my $cfg = PVE::Network::SDN::Vnets::config(); + my $scfg = PVE::Network::SDN::Vnets::sdn_vnets_config($cfg, $id); # check if exists + my $vnet_cfg = PVE::Network::SDN::Vnets::config(); - delete $cfg->{ids}->{$id}; - PVE::Network::SDN::Vnets::write_config($cfg); + PVE::Network::SDN::VnetPlugin->on_delete_hook($id, $vnet_cfg); - PVE::Network::SDN::increase_version(); + delete $cfg->{ids}->{$id}; + PVE::Network::SDN::Vnets::write_config($cfg); + PVE::Network::SDN::increase_version(); - }, "delete sdn vnet object failed"); + }, "delete sdn vnet object failed"); return undef; - }}); + } +}); 1;