When adding an RBD storage to Proxmox this patch checks if the
/etc/pve/priv/ceph dir exists, if not it will create it.
The the client.admin keyring will be copied to it with the
correct name of the storage (storeid.keyring)

When deleting an RBD storage the keyring file will be removed.

Signed-off-by: Caspar Smit <caspars...@supernas.eu>
---
 PVE/API2/Storage/Config.pm | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/PVE/API2/Storage/Config.pm b/PVE/API2/Storage/Config.pm
index 4668af6..e707efb 100755
--- a/PVE/API2/Storage/Config.pm
+++ b/PVE/API2/Storage/Config.pm
@@ -3,6 +3,7 @@ package PVE::API2::Storage::Config;
 use strict;
 use warnings;
 
+use File::Copy qw(copy);
 use PVE::SafeSyslog;
 use PVE::Tools qw(extract_param);
 use PVE::Cluster qw(cfs_read_file cfs_write_file);
@@ -174,6 +175,15 @@ __PACKAGE__->register_method ({
            
            }, "create storage failed");
 
+       if ($type eq 'rbd') {
+           if (!-d "/etc/pve/priv/ceph") {
+               mkdir "/etc/pve/priv/ceph";
+           }
+           if (-e "/etc/pve/priv/ceph.client.admin.keyring") {
+               copy "/etc/pve/priv/ceph.client.admin.keyring", 
"/etc/pve/priv/ceph/$storeid.keyring";
+           }
+       }
+
        return undef;
     }});
 
@@ -259,6 +269,8 @@ __PACKAGE__->register_method ({
 
        PVE::AccessControl::remove_storage_access($storeid);
 
+       unlink "/etc/pve/priv/ceph/$storeid.keyring";
+
        return undef;
     }});
 
-- 
2.1.4

_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to