From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id F0EF5844A9 for ; Mon, 13 Dec 2021 08:43:28 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id E610213E4F for ; Mon, 13 Dec 2021 08:43:28 +0100 (CET) Received: from bastionodiso.odiso.net (bastionodiso.odiso.net [IPv6:2a0a:1580:2000::2d]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id BEB2613E27 for ; Mon, 13 Dec 2021 08:43:24 +0100 (CET) Received: from kvmformation3.odiso.net (formationkvm3.odiso.net [10.3.94.12]) by bastionodiso.odiso.net (Postfix) with ESMTP id 613893C980; Mon, 13 Dec 2021 08:43:17 +0100 (CET) Received: by kvmformation3.odiso.net (Postfix, from userid 0) id 4E99C153A8B; Mon, 13 Dec 2021 08:43:17 +0100 (CET) From: Alexandre Derumier To: pve-devel@lists.proxmox.com Date: Mon, 13 Dec 2021 08:43:15 +0100 Message-Id: <20211213074316.2565139-3-aderumier@odiso.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211213074316.2565139-1-aderumier@odiso.com> References: <20211213074316.2565139-1-aderumier@odiso.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.023 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% HEADER_FROM_DIFFERENT_DOMAINS 0.249 From and EnvelopeFrom 2nd level mail domains are different KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_LAZY_DOMAIN_SECURITY 1 Sending domain does not have any anti-forgery methods NO_DNS_FOR_FROM 0.001 Envelope sender has no MX or A DNS records SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_NONE 0.001 SPF: sender does not publish an SPF Record Subject: [pve-devel] [PATCH pve-ha-manager 2/3] tests: add support for ressources X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Dec 2021 07:43:29 -0000 --- src/PVE/HA/Sim/Hardware.pm | 61 ++++++++++++++++++++++++++++++++++++++ src/PVE/HA/Sim/TestEnv.pm | 33 +++++++++++++-------- 2 files changed, 82 insertions(+), 12 deletions(-) diff --git a/src/PVE/HA/Sim/Hardware.pm b/src/PVE/HA/Sim/Hardware.pm index ba731e5..396e8bd 100644 --- a/src/PVE/HA/Sim/Hardware.pm +++ b/src/PVE/HA/Sim/Hardware.pm @@ -109,6 +109,22 @@ sub read_service_config { return $conf; } +sub read_service_stats { + my ($self) = @_; + + my $filename = "$self->{statusdir}/service_stats"; + my $conf = PVE::HA::Tools::read_json_from_file($filename); + return $conf; +} + +sub read_node_stats { + my ($self) = @_; + + my $filename = "$self->{statusdir}/node_stats"; + my $conf = PVE::HA::Tools::read_json_from_file($filename); + return $conf; +} + sub update_service_config { my ($self, $sid, $param) = @_; @@ -132,6 +148,24 @@ sub write_service_config { return PVE::HA::Tools::write_json_to_file($filename, $conf); } +sub write_service_stats { + my ($self, $conf) = @_; + + $self->{service_stats} = $conf; + + my $filename = "$self->{statusdir}/service_stats"; + return PVE::HA::Tools::write_json_to_file($filename, $conf); +} + +sub write_node_stats { + my ($self, $conf) = @_; + + $self->{node_stats} = $conf; + + my $filename = "$self->{statusdir}/node_stats"; + return PVE::HA::Tools::write_json_to_file($filename, $conf); +} + sub read_fence_config { my ($self) = @_; @@ -382,6 +416,31 @@ sub new { $self->write_service_config($conf); } + if (-f "$testdir/service_stats") { + copy("$testdir/service_stats", "$statusdir/service_stats"); + } else { + my $conf = { + '101' => { cpu => 0, maxcpu => 0, mem => 0, maxmem => 0 }, + '102' => { cpu => 0, maxcpu => 0, mem => 0, maxmem => 0 }, + '103' => { cpu => 0, maxcpu => 0, mem => 0, maxmem => 0 }, + '104' => { cpu => 0, maxcpu => 0, mem => 0, maxmem => 0 }, + '105' => { cpu => 0, maxcpu => 0, mem => 0, maxmem => 0 }, + '106' => { cpu => 0, maxcpu => 0, mem => 0, maxmem => 0 }, + }; + $self->write_service_stats($conf); + } + + if (-f "$testdir/node_stats") { + copy("$testdir/node_stats", "$statusdir/node_stats"); + } else { + my $conf = { + 'node1' => { cpu => 0, maxcpu => 0, mem => 0, maxmem => 0 }, + 'node2' => { cpu => 0, maxcpu => 0, mem => 0, maxmem => 0 }, + 'node3' => { cpu => 0, maxcpu => 0, mem => 0, maxmem => 0 }, + }; + $self->write_node_stats($conf); + } + if (-f "$testdir/hardware_status") { copy("$testdir/hardware_status", "$statusdir/hardware_status") || die "Copy failed: $!\n"; @@ -415,6 +474,8 @@ sub new { } $self->{service_config} = $self->read_service_config(); + $self->{service_stats} = $self->read_service_stats(); + $self->{node_stats} = $self->read_node_stats(); return $self; } diff --git a/src/PVE/HA/Sim/TestEnv.pm b/src/PVE/HA/Sim/TestEnv.pm index 08f27c7..d5e85ad 100644 --- a/src/PVE/HA/Sim/TestEnv.pm +++ b/src/PVE/HA/Sim/TestEnv.pm @@ -121,11 +121,8 @@ sub get_max_workers { sub get_node_rrd_stats { my ($self, $node) = @_; - my $stats = {}; - $stats->{cpu} = 0; - $stats->{maxcpu} = 0; - $stats->{mem} = 0; - $stats->{maxmem} = 0; + my $nodestats = $self->{hardware}->{node_stats}; + my $stats = $nodestats->{$node}; return $stats; } @@ -133,16 +130,28 @@ sub get_node_rrd_stats { sub get_vm_rrd_stats { my ($self, $vmid, $percentile) = @_; - my $stats = {}; + my $vmstats = $self->{hardware}->{service_stats}; + my $stats = $vmstats->{$vmid}; - $stats->{cpu} = 0; - $stats->{mem} = 0; - $stats->{maxmem} = 0; - $stats->{maxcpu} = 0; - $stats->{cpu} = $stats->{cpu} * 100; - $stats->{totalcpu} = $stats->{cpu} * $stats->{maxcpu}; + $stats->{cpu} = $stats->{cpu} || 0; + $stats->{mem} = $stats->{mem} || 0; + $stats->{maxmem} = $stats->{maxmem} || 0; + $stats->{maxcpu} = $stats->{maxcpu} || 0; + $stats->{totalcpu} = $stats->{cpu} * $stats->{maxcpu} * 100; return $stats; } +sub read_vm_config { + my ($self, $vmid) = @_; + + die "not yet implemented"; +} + +sub read_ct_config { + my ($self, $vmid) = @_; + + die "not yet implemented"; +} + 1; -- 2.30.2