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.carr...@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 src/PVE/CephConfig.pm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/PVE/CephConfig.pm b/src/PVE/CephConfig.pm index 2c4a086..e78209e 100644 --- a/src/PVE/CephConfig.pm +++ b/src/PVE/CephConfig.pm @@ -79,6 +79,7 @@ my $parse_ceph_file = sub { sub write_ceph_config { my ($filename, $cfg) = @_; + my $written_sections = {}; my $out = ''; my $cond_write_sec = sub { @@ -86,16 +87,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'); @@ -107,6 +113,8 @@ sub write_ceph_config { &$cond_write_sec('osd\..*'); &$cond_write_sec('mgr\..*'); + &$cond_write_sec('.*'); + return $out; } -- 2.39.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel