[pve-devel] [PATCH pve-ha-manager 5/8] sim : hardware: add read stats
Alexandre Derumier
aderumier at odiso.com
Wed Apr 27 17:33:48 CEST 2022
---
src/PVE/HA/Sim/Hardware.pm | 150 +++++++++++++++++++++++++++++++++++++
1 file changed, 150 insertions(+)
diff --git a/src/PVE/HA/Sim/Hardware.pm b/src/PVE/HA/Sim/Hardware.pm
index 96a4064..3c3622b 100644
--- a/src/PVE/HA/Sim/Hardware.pm
+++ b/src/PVE/HA/Sim/Hardware.pm
@@ -110,6 +110,46 @@ 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_vm_config {
+ my ($self) = @_;
+
+ my $filename = "$self->{statusdir}/vm_config";
+ 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 read_node_config {
+ my ($self) = @_;
+
+ my $filename = "$self->{statusdir}/node_config";
+ my $conf = PVE::HA::Tools::read_json_from_file($filename);
+ return $conf;
+}
+
+sub read_storecfg {
+ my ($self) = @_;
+
+ my $filename = "$self->{statusdir}/storecfg";
+ my $conf = PVE::HA::Tools::read_json_from_file($filename);
+ return $conf;
+}
+
sub update_service_config {
my ($self, $sid, $param) = @_;
@@ -133,6 +173,51 @@ sub write_service_config {
return PVE::HA::Tools::write_json_to_file($filename, $conf);
}
+sub write_vm_config {
+ my ($self, $conf) = @_;
+
+ $self->{vm_config} = $conf;
+
+ my $filename = "$self->{statusdir}/vm_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_config {
+ my ($self, $conf) = @_;
+
+ $self->{node_config} = $conf;
+
+ my $filename = "$self->{statusdir}/node_config";
+ 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 write_storecfg {
+ my ($self, $conf) = @_;
+
+ $self->{storecfg} = $conf;
+
+ my $filename = "$self->{statusdir}/storecfg";
+ return PVE::HA::Tools::write_json_to_file($filename, $conf);
+}
+
sub read_fence_config {
my ($self) = @_;
@@ -384,6 +469,66 @@ 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, cpu_pressure => 0 },
+ '102' => { cpu => 0, maxcpu => 0, mem => 0, maxmem => 0, cpu_pressure => 0 },
+ '103' => { cpu => 0, maxcpu => 0, mem => 0, maxmem => 0, cpu_pressure => 0 },
+ '104' => { cpu => 0, maxcpu => 0, mem => 0, maxmem => 0, cpu_pressure => 0 },
+ '105' => { cpu => 0, maxcpu => 0, mem => 0, maxmem => 0, cpu_pressure => 0 },
+ '106' => { cpu => 0, maxcpu => 0, mem => 0, maxmem => 0, cpu_pressure => 0 },
+ };
+ $self->write_service_stats($conf);
+ }
+
+ if (-f "$testdir/vm_config") {
+ copy("$testdir/vm_config", "$statusdir/vm_config");
+ } else {
+ my $conf = {
+ '101' => { ostype => 'l26', storage => 'local' },
+ '102' => { ostype => 'l26', storage => 'local' },
+ '103' => { ostype => 'l26', storage => 'local' },
+ '104' => { ostype => 'l26', storage => 'local' },
+ '105' => { ostype => 'l26', storage => 'local' },
+ '106' => { ostype => 'l26', storage => 'local' },
+ };
+ $self->write_vm_config($conf);
+ }
+
+ if (-f "$testdir/node_config") {
+ copy("$testdir/node_config", "$statusdir/node_config");
+ } else {
+ my $conf = {
+ 'node1' => { cpumodel => '' },
+ 'node2' => { cpumodel => '' },
+ 'node3' => { cpumodel => '' },
+ };
+ $self->write_node_config($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, ksm => 0, cpu_pressure => 0 },
+ 'node2' => { cpu => 0, maxcpu => 0, mem => 0, maxmem => 0, ksm => 0, cpu_pressure => 0 },
+ 'node3' => { cpu => 0, maxcpu => 0, mem => 0, maxmem => 0, ksm => 0, cpu_pressure => 0 },
+ };
+ $self->write_node_stats($conf);
+ }
+
+ if (-f "$testdir/storecfg") {
+ copy("$testdir/storecfg", "$statusdir/storecfg");
+ } else {
+ my $conf = {
+ 'local' => { nodes => { node1 => 1, node2 => 1, node3 => 1 } },
+ 'local-lvm' => { nodes => { node1 => 1, node2 => 1, node3 => 1 } },
+ };
+ $self->write_storecfg($conf);
+ }
+
if (-f "$testdir/hardware_status") {
copy("$testdir/hardware_status", "$statusdir/hardware_status") ||
die "Copy failed: $!\n";
@@ -417,6 +562,11 @@ sub new {
}
$self->{service_config} = $self->read_service_config();
+ $self->{vm_config} = $self->read_vm_config();
+ $self->{service_stats} = $self->read_service_stats();
+ $self->{node_stats} = $self->read_node_stats();
+ $self->{node_config} = $self->read_node_config();
+ $self->{storecfg} = $self->read_storecfg();
return $self;
}
--
2.30.2
More information about the pve-devel
mailing list