[pve-devel] [PATCH storage] Automatically create/delete CEPH keyring when adding/deleting RBD Storage
Dietmar Maurer
dietmar at proxmox.com
Wed Jan 11 16:28:58 CET 2017
> 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)
The /etc/pve/priv/ceph.client.admin.keyring is correct for a
local ceph installation, but always wrong for external servers.
Or do I miss something?
>
> When deleting an RBD storage the keyring file will be removed.
>
> Signed-off-by: Caspar Smit <casparsmit at 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 at pve.proxmox.com
> http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
More information about the pve-devel
mailing list