]> git.proxmox.com Git - pve-ha-manager.git/commitdiff
sim: hardware: commands: make it possible to add already running service
authorFiona Ebner <f.ebner@proxmox.com>
Fri, 14 Apr 2023 12:38:28 +0000 (14:38 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 6 Jun 2023 17:05:22 +0000 (19:05 +0200)
Will be used in a test for balance on start, where it should make a
difference if the service is running or not.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
src/PVE/HA/Sim/Hardware.pm

index 5b023ef44b47316be07ef76a9583e522bcfc1008..0018208ab239863f8babc69545be156875a23db7 100644 (file)
@@ -171,7 +171,7 @@ sub set_service_state {
 }
 
 sub add_service {
-    my ($self, $sid, $opts) = @_;
+    my ($self, $sid, $opts, $running) = @_;
 
     my $conf = $self->read_service_config();
     die "resource ID '$sid' already defined\n" if $conf->{$sid};
@@ -181,6 +181,10 @@ sub add_service {
 
     $self->write_service_config($conf);
 
+    my $ss = $self->read_service_status($opts->{node});
+    $ss->{$sid} = $running;
+    $self->write_service_status($opts->{node}, $ss);
+
     return $conf;
 }
 
@@ -563,7 +567,7 @@ sub get_cfs_state {
 #   service <sid> <migrate|relocate> <target>
 #   service <sid> stop <timeout>
 #   service <sid> lock/unlock [lockname]
-#   service <sid> add <node> [<request-state=started>]
+#   service <sid> add <node> [<request-state=started>] [<running=0>]
 #   service <sid> delete
 sub sim_hardware_cmd {
     my ($self, $cmdstr, $logid) = @_;
@@ -691,8 +695,11 @@ sub sim_hardware_cmd {
                $self->queue_crm_commands_nolock("$action $sid $param");
 
            } elsif ($action eq 'add') {
-
-               $self->add_service($sid, {state => $params[1] || 'started', node => $param});
+               $self->add_service(
+                   $sid,
+                   {state => $params[1] || 'started', node => $param},
+                   $params[2] || 0,
+               );
 
            } elsif ($action eq 'delete') {