]> git.proxmox.com Git - pve-manager.git/commitdiff
implement delete parameter for replicationconfig
authorDominik Csapak <d.csapak@proxmox.com>
Tue, 13 Jun 2017 12:56:00 +0000 (14:56 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Wed, 14 Jun 2017 05:30:05 +0000 (07:30 +0200)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
PVE/API2/ReplicationConfig.pm

index 51edff70a9154fd75344e1d6d417829e2be2f2d3..f552366251d1a3c596406495d818c2e8d2f9c433 100644 (file)
@@ -160,6 +160,7 @@ __PACKAGE__->register_method ({
 
        my $id = extract_param($param, 'id');
        my $digest = extract_param($param, 'digest');
+       my $delete = extract_param($param, 'delete');
 
        my $code = sub {
            my $cfg = PVE::ReplicationConfig->new();
@@ -176,6 +177,19 @@ __PACKAGE__->register_method ({
                $data->{$k} = $opts->{$k};
            }
 
+           if ($delete) {
+               my $options = $plugin->private()->{options}->{$data->{type}};
+               foreach my $k (PVE::Tools::split_list($delete)) {
+                   my $d = $options->{$k} ||
+                       die "no such option '$k'\n";
+                   die "unable to delete required option '$k'\n"
+                       if !$d->{optional};
+                   die "unable to delete fixed option '$k'\n"
+                       if $d->{fixed};
+                   delete $data->{$k};
+               }
+           }
+
            $cfg->write();
        };