[pve-devel] [PATCH ha-manager 2/9] sim: add UI to set resource stats for new guests
Maximiliano Sandoval
m.sandoval at proxmox.com
Tue Oct 14 11:47:20 CEST 2025
Adds a dialog which allow setting the maxmemory and maxcpu of an
existing HA service.
Signed-off-by: Maximiliano Sandoval <m.sandoval at proxmox.com>
---
src/PVE/HA/Sim/RTHardware.pm | 43 +++++++++++++++++++++++++++++++++++-
1 file changed, 42 insertions(+), 1 deletion(-)
diff --git a/src/PVE/HA/Sim/RTHardware.pm b/src/PVE/HA/Sim/RTHardware.pm
index 0dfe0b2..28c756e 100644
--- a/src/PVE/HA/Sim/RTHardware.pm
+++ b/src/PVE/HA/Sim/RTHardware.pm
@@ -24,6 +24,9 @@ use PVE::HA::LRM;
use PVE::HA::Sim::RTEnv;
use base qw(PVE::HA::Sim::Hardware);
+my $DEFAULT_MAXMEM = 4096;
+my $DEFAULT_MAXCPU = 4;
+
sub new {
my ($this, $testdir) = @_;
@@ -434,8 +437,41 @@ sub show_service_add_dialog {
$node_cb->set_active(0);
$grid->attach($node_cb, 2, 1, 1, 1);
+ my $cpu_label = Gtk3::Label->new('CPU Count');
+ $cpu_label->set_hexpand(1);
+ $cpu_label->set_xalign(0);
+
+ my $cpu_count_spin = Gtk3::SpinButton->new_with_range(1.0, 1024, 1.0);
+ $cpu_count_spin->set_value($DEFAULT_MAXCPU);
+
+ my $cpu_box = Gtk3::Box->new('horizontal', 6);
+ $cpu_box->add($cpu_label);
+ $cpu_box->add($cpu_count_spin);
+
+ my $memory_label = Gtk3::Label->new('Memory (MiB)');
+ $memory_label->set_hexpand(1);
+ $memory_label->set_xalign(0);
+
+ # There is an arbitrary limit of 10 TiB
+ my $memory_spin = Gtk3::SpinButton->new_with_range(1.0, 10485760.0, 1.0);
+ $memory_spin->set_value($DEFAULT_MAXMEM);
+
+ my $memory_box = Gtk3::Box->new('horizontal', 6);
+ $memory_box->add($memory_label);
+ $memory_box->add($memory_spin);
+
+ my $vbox = Gtk3::Box->new('vertical', 6);
+ $vbox->set_margin_start(6);
+ $vbox->set_margin_end(6);
+ $vbox->set_margin_top(6);
+ $vbox->set_margin_bottom(6);
+ $vbox->add($grid);
+ $vbox->add($cpu_box);
+ $vbox->add($memory_box);
+ $vbox->show_all();
+
my $contarea = $dialog->get_content_area();
- $contarea->add($grid);
+ $contarea->add($vbox);
$dialog->show_all();
my $res = $dialog->run();
@@ -443,6 +479,11 @@ sub show_service_add_dialog {
if (defined($res) && $res eq 'ok') {
my $sid = "$service_type:$service_id";
$self->sim_hardware_cmd("service $sid add $service_node", 'command');
+
+ my $maxcpu = $cpu_count_spin->get_value();
+ my $maxmemory = $memory_spin->get_value();
+ $self->sim_hardware_cmd("service $sid set-static-stats $maxcpu $maxmemory", 'command');
+
$self->add_service_to_gui($sid);
}
--
2.47.3
More information about the pve-devel
mailing list