all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Max Carrara <m.carrara@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: Re: [pve-devel] [PATCH v2 pve-storage 06/11] cephconfig: allow writing arbitrary sections
Date: Tue, 13 Feb 2024 09:46:48 +0100	[thread overview]
Message-ID: <32f97c49-32bc-4269-8e9e-9ca444ed899d@proxmox.com> (raw)
In-Reply-To: <1707742287.xvpasi82m1.astroid@yuna.none>

On 2/12/24 14:33, Fabian Grünbichler wrote:
> On February 5, 2024 6:54 pm, Max Carrara wrote:
>> 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@proxmox.com>
> 
> Reviewed-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
> 
> would have been easier to parse if the style cleanup and actual
> behaviour change would have been split..

Fair point, acknowledged!

> 
> style change:
> 
>> diff --git a/src/PVE/CephConfig.pm b/src/PVE/CephConfig.pm
>> index 6b10d46..34c3107 100644
>> --- a/src/PVE/CephConfig.pm
>> +++ b/src/PVE/CephConfig.pm
>> @@ -65,10 +65,10 @@ sub write_ceph_config {
>>      my $cond_write_sec = sub {
>>  	my $re = shift;
>>  
>> -	foreach my $section (sort keys %$cfg) {
>> +	for my $section (sort keys %$cfg) {
>>  	    next if $section !~ m/^$re$/;
>>  	    $out .= "[$section]\n";
>> -	    foreach my $key (sort keys %{$cfg->{$section}}) {
>> +	    for my $key (sort keys %{$cfg->{$section}}) {
>>  		$out .= "\t $key = $cfg->{$section}->{$key}\n";
>>  	    }
>>  	    $out .= "\n";
> 
> actual change (small nits inline!):
> 
>> diff --git a/src/PVE/CephConfig.pm b/src/PVE/CephConfig.pm
>> index 34c3107..24bc78c 100644
>> --- a/src/PVE/CephConfig.pm
>> +++ b/src/PVE/CephConfig.pm
>> @@ -60,23 +60,30 @@ my $parse_ceph_file = sub {
>>  sub write_ceph_config {
>>      my ($filename, $cfg) = @_;
>>  
>> +    my $written_sections = {};
>>      my $out = '';
>>  
>>      my $cond_write_sec = sub {
>>  	my $re = shift;
>>  
>>  	for my $section (sort keys %$cfg) {
>> -	    next if $section !~ m/^$re$/;
>> +	    if ($section !~ m/^$re$/ || exists($written_sections->{$section})) {
>> +		next;
>> +	    }
> 
> these two could be more clearly written as
> 
> next if $written_sections->{section};
> next if $section !~ m/$re$/;
> 
> since the two checks are not related in any way, other than both having
> the same effect if true (skipping that section). the second line is then
> unchanged, and both the diff and the resulting code is easier to parse
> IMHO.
> 
>> +
>>  	    $out .= "[$section]\n";
>>  	    for my $key (sort keys %{$cfg->{$section}}) {
>> -		$out .= "\t $key = $cfg->{$section}->{$key}\n";
>> +		$out .= "\t$key = $cfg->{$section}->{$key}\n";
> 
> this part here is not mentioned at all, and I might have missed it if I
> hadn't split the diffs ;)

Mea culpa!

Will clean this up in v3 and split the changes accordingly.

> 
>>  	    }
>>  	    $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');
>> @@ -88,6 +95,8 @@ sub write_ceph_config {
>>      &$cond_write_sec('osd\..*');
>>      &$cond_write_sec('mgr\..*');
>>  
>> +    &$cond_write_sec('.*');
>> +
>>      return $out;
>>  }
> 
> 
> _______________________________________________
> pve-devel mailing list
> pve-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel





  reply	other threads:[~2024-02-13  8:46 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-05 17:54 [pve-devel] [PATCH v2 master ceph, quincy-stable 8 ceph, pve-storage, pve-manager 00/11] Fix #4759: Configure Permissions for ceph-crash.service Max Carrara
2024-02-05 17:54 ` [pve-devel] [PATCH v2 master ceph 01/11] debian: add patch to fix ceph crash dir permissions in postinst hook Max Carrara
2024-02-12 13:32   ` Fabian Grünbichler
2024-02-13  8:25     ` Max Carrara
2024-02-05 17:54 ` [pve-devel] [PATCH v2 master ceph 02/11] patches: add patch that reorders clients used by ceph-crash Max Carrara
2024-02-12 13:33   ` Fabian Grünbichler
2024-02-05 17:54 ` [pve-devel] [PATCH v2 quincy-stable-8 ceph 03/11] debian: add patch to fix ceph crash dir permissions in postinst hook Max Carrara
2024-02-12 13:32   ` Fabian Grünbichler
2024-02-05 17:54 ` [pve-devel] [PATCH v2 quincy-stable-8 ceph 04/11] patches: add patch that reorders clients used by ceph-crash Max Carrara
2024-02-12 13:33   ` Fabian Grünbichler
2024-02-05 17:54 ` [pve-devel] [PATCH v2 pve-storage 05/11] cephconfig: align our parser more with Ceph's parser Max Carrara
2024-02-12 13:33   ` Fabian Grünbichler
2024-02-13  8:34     ` Max Carrara
2024-02-05 17:54 ` [pve-devel] [PATCH v2 pve-storage 06/11] cephconfig: allow writing arbitrary sections Max Carrara
2024-02-12 13:33   ` Fabian Grünbichler
2024-02-13  8:46     ` Max Carrara [this message]
2024-02-05 17:54 ` [pve-devel] [PATCH v2 pve-storage 07/11] amend! " Max Carrara
2024-02-12 13:33   ` Fabian Grünbichler
2024-02-13  8:50     ` Max Carrara
2024-02-05 17:54 ` [pve-devel] [PATCH v2 pve-manager 08/11] ceph: fix edge case of wrong files being deleted on purge Max Carrara
2024-02-12 13:33   ` [pve-devel] applied: " Fabian Grünbichler
2024-02-05 17:54 ` [pve-devel] [PATCH v2 pve-manager 09/11] fix #4759: ceph: configure keyring for ceph-crash.service Max Carrara
2024-02-12 13:34   ` Fabian Grünbichler
2024-02-13  9:09     ` Max Carrara
2024-02-14 12:43       ` Max Carrara
2024-02-05 17:54 ` [pve-devel] [PATCH v2 pve-manager 10/11] ceph: create '/etc/pve/ceph' during `pveceph init` Max Carrara
2024-02-05 17:54 ` [pve-devel] [PATCH v2 pve-manager 11/11] fix #4759: debian/postinst: configure ceph-crash.service and its key Max Carrara
2024-02-12 13:34   ` Fabian Grünbichler
2024-02-13  9:25     ` Max Carrara

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=32f97c49-32bc-4269-8e9e-9ca444ed899d@proxmox.com \
    --to=m.carrara@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal