Allow callees of update_service_config(...) to provide properties, which
should be deleted from a HA resource config.

This is needed for the migration of HA groups, as the 'group' property
must be removed to completely migrate these to the respective HA
resource configs. Otherwise, these groups would be reported as
non-existant after the HA group config is removed.

Signed-off-by: Daniel Kral <d.k...@proxmox.com>
---
 src/PVE/HA/Env.pm          | 4 ++--
 src/PVE/HA/Env/PVE2.pm     | 4 ++--
 src/PVE/HA/Sim/Env.pm      | 4 ++--
 src/PVE/HA/Sim/Hardware.pm | 8 +++++++-
 4 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/src/PVE/HA/Env.pm b/src/PVE/HA/Env.pm
index 5cee7b30..70e39ad4 100644
--- a/src/PVE/HA/Env.pm
+++ b/src/PVE/HA/Env.pm
@@ -95,9 +95,9 @@ sub read_service_config {
 }
 
 sub update_service_config {
-    my ($self, $sid, $param) = @_;
+    my ($self, $sid, $param, $delete) = @_;
 
-    return $self->{plug}->update_service_config($sid, $param);
+    return $self->{plug}->update_service_config($sid, $param, $delete);
 }
 
 sub parse_sid {
diff --git a/src/PVE/HA/Env/PVE2.pm b/src/PVE/HA/Env/PVE2.pm
index 58fd36e3..854c8942 100644
--- a/src/PVE/HA/Env/PVE2.pm
+++ b/src/PVE/HA/Env/PVE2.pm
@@ -136,9 +136,9 @@ sub read_service_config {
 }
 
 sub update_service_config {
-    my ($self, $sid, $param) = @_;
+    my ($self, $sid, $param, $delete) = @_;
 
-    return PVE::HA::Config::update_resources_config($sid, $param);
+    return PVE::HA::Config::update_resources_config($sid, $param, $delete);
 }
 
 sub parse_sid {
diff --git a/src/PVE/HA/Sim/Env.pm b/src/PVE/HA/Sim/Env.pm
index bb76b7fa..528ea3f8 100644
--- a/src/PVE/HA/Sim/Env.pm
+++ b/src/PVE/HA/Sim/Env.pm
@@ -210,9 +210,9 @@ sub read_service_config {
 }
 
 sub update_service_config {
-    my ($self, $sid, $param) = @_;
+    my ($self, $sid, $param, $delete) = @_;
 
-    return $self->{hardware}->update_service_config($sid, $param);
+    return $self->{hardware}->update_service_config($sid, $param, $delete);
 }
 
 sub parse_sid {
diff --git a/src/PVE/HA/Sim/Hardware.pm b/src/PVE/HA/Sim/Hardware.pm
index 35107446..3a1ebf25 100644
--- a/src/PVE/HA/Sim/Hardware.pm
+++ b/src/PVE/HA/Sim/Hardware.pm
@@ -115,7 +115,7 @@ sub read_service_config {
 }
 
 sub update_service_config {
-    my ($self, $sid, $param) = @_;
+    my ($self, $sid, $param, $delete) = @_;
 
     my $conf = $self->read_service_config();
 
@@ -125,6 +125,12 @@ sub update_service_config {
         $sconf->{$k} = $param->{$k};
     }
 
+    if ($delete) {
+        for my $k (PVE::Tools::split_list($delete)) {
+            delete $sconf->{$k};
+        }
+    }
+
     $self->write_service_config($conf);
 }
 
-- 
2.47.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to