On 1/24/22 12:26, Fabian Ebner wrote:
Am 26.11.21 um 16:02 schrieb Aaron Lauterer:
Ensure that the user provided $secret ends in a newline. Otherwise we
will have Input/output errors from rados_connect.


Reviewed-by: Fabian Ebner <[email protected]>
Tested-by: Fabian Ebner <[email protected]>

Signed-off-by: Aaron Lauterer <[email protected]>
---
  PVE/CephConfig.pm | 1 +
  1 file changed, 1 insertion(+)

diff --git a/PVE/CephConfig.pm b/PVE/CephConfig.pm
index 5c94a04..ac28e76 100644
--- a/PVE/CephConfig.pm
+++ b/PVE/CephConfig.pm
@@ -227,6 +227,7 @@ sub ceph_create_keyfile {
      eval {
          if (defined($secret)) {
          mkdir '/etc/pve/priv/ceph';
+        $secret = "${secret}\n" if $secret !~ m/\n$/;
          PVE::Tools::file_set_contents($ceph_storage_keyring, $secret, 0400);
          } elsif ($type eq 'rbd') {
          mkdir '/etc/pve/priv/ceph';

Just one thing I'm wondering: AFAIU there is no problem for CephFS currently, 
but for consistency/future-proving, we might put a newline there as well when 
the $secret is not user-provided. I.e. below, $cephfs_secret isn't 
newline-terminated:

             } elsif ($type eq 'cephfs') {
                 my $cephfs_secret = $ceph_get_key->($ceph_admin_keyring, 
'admin');
                 mkdir '/etc/pve/priv/ceph';
                 PVE::Tools::file_set_contents($ceph_storage_keyring, 
$cephfs_secret, 0400);
            }

Good idea. I did some initial tests in a user provided (external) storage 
config and adding creating a CephFS in a hyperconverged setup and did not run 
into issues.
I will add that in the v2


_______________________________________________
pve-devel mailing list
[email protected]
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to