public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: "Fabian Grünbichler" <f.gruenbichler@proxmox.com>
To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Subject: Re: [pve-devel] [PATCH v2 pve-storage 06/11] cephconfig: allow writing arbitrary sections
Date: Mon, 12 Feb 2024 14:33:37 +0100	[thread overview]
Message-ID: <1707742287.xvpasi82m1.astroid@yuna.none> (raw)
In-Reply-To: <20240205175419.1271680-7-m.carrara@proxmox.com>

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..

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 ;)

>  	    }
>  	    $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;
>  }




  reply	other threads:[~2024-02-12 13:34 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 [this message]
2024-02-13  8:46     ` Max Carrara
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=1707742287.xvpasi82m1.astroid@yuna.none \
    --to=f.gruenbichler@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal