[pve-devel] [PATCH v4 pve-storage 07/16] cephconfig: allow writing arbitrary sections
Max Carrara
m.carrara at proxmox.com
Tue Mar 5 16:07:49 CET 2024
This adds support for writing arbitrary sections to 'ceph.conf' while
ensuring that already written sections are not duplicated.
Sections that are associated with the client, for example
'[client.foo]', are written directly after the '[client]' section.
Signed-off-by: Max Carrara <m.carrara at proxmox.com>
---
Changes v1 --> v2:
* Instead of just adding 'client.crash' as a separate section,
also allow writing arbitrary sections
Changes v2 --> v3:
* this patch now only contains the changes actually mentioned in the
commit message; the other changes have been put into separate
patches
Changes v3 --> v4:
* none
src/PVE/CephConfig.pm | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/PVE/CephConfig.pm b/src/PVE/CephConfig.pm
index 80f71b0..32ea544 100644
--- a/src/PVE/CephConfig.pm
+++ b/src/PVE/CephConfig.pm
@@ -87,6 +87,7 @@ my $parse_ceph_file = sub {
sub write_ceph_config {
my ($filename, $cfg) = @_;
+ my $written_sections = {};
my $out = '';
my $cond_write_sec = sub {
@@ -94,16 +95,21 @@ sub write_ceph_config {
foreach my $section (sort keys %$cfg) {
next if $section !~ m/^$re$/;
+ next if exists($written_sections->{$section});
+
$out .= "[$section]\n";
foreach my $key (sort keys %{$cfg->{$section}}) {
$out .= "\t $key = $cfg->{$section}->{$key}\n";
}
$out .= "\n";
+
+ $written_sections->{$section} = 1;
}
};
&$cond_write_sec('global');
&$cond_write_sec('client');
+ &$cond_write_sec('client\..*');
&$cond_write_sec('mds');
&$cond_write_sec('mon');
@@ -115,6 +121,8 @@ sub write_ceph_config {
&$cond_write_sec('osd\..*');
&$cond_write_sec('mgr\..*');
+ &$cond_write_sec('.*');
+
return $out;
}
--
2.39.2
More information about the pve-devel
mailing list