Will be used to allow adding services to the simulator on runtime in a future patch.
Signed-off-by: Thomas Lamprecht <t.lampre...@proxmox.com> --- src/PVE/HA/Sim/RTHardware.pm | 90 ++++++++++++++++++++++++-------------------- 1 file changed, 50 insertions(+), 40 deletions(-) diff --git a/src/PVE/HA/Sim/RTHardware.pm b/src/PVE/HA/Sim/RTHardware.pm index d086fcb..6a614a3 100644 --- a/src/PVE/HA/Sim/RTHardware.pm +++ b/src/PVE/HA/Sim/RTHardware.pm @@ -456,6 +456,55 @@ sub delete_service_from_gui { } } +sub new_service_gui_entry { + my ($self, $sid, $row) = @_; + + my $d = $self->{service_config}->{$sid}; + + my $sgrid = $self->{service_grid}; + + $sgrid->insert_row($row); + + my $w = Gtk3::Label->new($sid); + $sgrid->attach($w, 0, $row, 1, 1); + + $w = Gtk3::ComboBoxText->new(); + $sgrid->attach($w, 1, $row, 1, 1); + + my $count = 0; + foreach my $state (qw(started stopped disabled)) { + $w->append_text($state); + $w->set_active($count) if $d->{state} eq $state; + $count++; + } + $self->{service_gui}->{$sid}->{request_state_cb} = $w; + $w->signal_connect(changed => sub { + $self->set_service_state($sid); + }); + + $w = Gtk3::Button->new('Migrate'); + $sgrid->attach($w, 2, $row, 1, 1); + $w->signal_connect(clicked => sub { + $self->show_migrate_dialog($sid); + }); + + $w = Gtk3::Label->new($d->{node}); + $sgrid->attach($w, 3, $row, 1, 1); + $self->{service_gui}->{$sid}->{node_label} = $w; + + $w = Gtk3::Label->new('-'); + $w->set_alignment (0, 0.5); + $sgrid->attach($w, 4, $row, 1, 1); + $self->{service_gui}->{$sid}->{status_label} = $w; + + $w = Gtk3::Button->new_from_icon_name('edit-delete', 1); + $sgrid->attach($w, 5, $row, 1, 1); + $w->signal_connect(clicked => sub { + $self->show_service_delete_dialog($sid); + }); + $sgrid->show_all(); +} + sub create_service_control { my ($self) = @_; @@ -481,46 +530,7 @@ sub create_service_control { my @nodes = keys %{$self->{nodes}}; foreach my $sid (sort keys %{$self->{service_config}}) { - my $d = $self->{service_config}->{$sid}; - - $w = Gtk3::Label->new($sid); - $sgrid->attach($w, 0, $row, 1, 1); - - $w = Gtk3::ComboBoxText->new(); - $sgrid->attach($w, 1, $row, 1, 1); - my $count = 0; - foreach my $state (qw(started stopped disabled)) { - $w->append_text($state); - $w->set_active($count) if $d->{state} eq $state; - $count++; - } - $self->{service_gui}->{$sid}->{request_state_cb} = $w; - $w->signal_connect(changed => sub { - $self->set_service_state($sid); - }); - - - $w = Gtk3::Button->new('Migrate'); - $sgrid->attach($w, 2, $row, 1, 1); - $w->signal_connect(clicked => sub { - $self->show_migrate_dialog($sid); - }); - - $w = Gtk3::Label->new($d->{node}); - $sgrid->attach($w, 3, $row, 1, 1); - $self->{service_gui}->{$sid}->{node_label} = $w; - - $w = Gtk3::Label->new('-'); - $w->set_alignment (0, 0.5); - $sgrid->attach($w, 4, $row, 1, 1); - $self->{service_gui}->{$sid}->{status_label} = $w; - - $w = Gtk3::Button->new_from_icon_name('edit-delete', 1); - $sgrid->attach($w, 5, $row, 1, 1); - $w->signal_connect(clicked => sub { - $self->show_service_delete_dialog($sid); - }); - + $self->new_service_gui_entry($sid, $row); $row++; } -- 2.1.4 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel