Extend the creation and restore actions with a 'ha-managed' parameter that, if enabled, will also add the CT as a new HA resource. The 'state' parameter for this new resource will match the value of the 'start' parameter used during creation of the CT, such that the resulting state of the resource and CT both match the user's expectation (avoid situation where user creates a CT, does not select 'Start after creation', but the default 'started' state of the resource would start the CT anyway).
Signed-off-by: Michael Köppl <[email protected]> --- src/PVE/API2/LXC.pm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/PVE/API2/LXC.pm b/src/PVE/API2/LXC.pm index 37b9d055..e53b388d 100644 --- a/src/PVE/API2/LXC.pm +++ b/src/PVE/API2/LXC.pm @@ -218,6 +218,12 @@ __PACKAGE__->register_method({ default => 0, description => "Start the CT after its creation finished successfully.", }, + 'ha-managed' => { + optional => 1, + type => 'boolean', + default => 0, + description => "Add the CT as a HA resource after it was created.", + }, }), }, returns => { @@ -236,6 +242,7 @@ __PACKAGE__->register_method({ my $ignore_unpack_errors = extract_param($param, 'ignore-unpack-errors'); my $bwlimit = extract_param($param, 'bwlimit'); my $start_after_create = extract_param($param, 'start'); + my $ha_managed = extract_param($param, 'ha-managed'); my $basecfg_fn = PVE::LXC::Config->config_file($vmid); my $same_container_exists = -f $basecfg_fn; @@ -616,6 +623,15 @@ __PACKAGE__->register_method({ } elsif ($start_after_create) { PVE::API2::LXC::Status->vm_start({ vmid => $vmid, node => $node }); } + + if ($ha_managed) { + print "Add as HA resource\n"; + my $state = $start_after_create ? 'started' : 'stopped'; + eval { + PVE::API2::HA::Resources->create({ sid => "ct:$vmid", state => $state }); + }; + warn $@ if $@; + } }; return $rpcenv->fork_worker($workername, $vmid, $authuser, $realcmd); -- 2.47.3 _______________________________________________ pve-devel mailing list [email protected] https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
