[pve-devel] [PATCH librados2-perl] Split method pve_rados_connect

Thomas Lamprecht t.lamprecht at proxmox.com
Tue Apr 3 10:25:53 CEST 2018


Am 03/30/2018 um 12:25 PM schrieb Alwin Antreich:
> To be able to connect through librados2 without a config file, the
> method pve_rados_connect is split up into pve_rados_connect and
> pve_rados_conf_read_file.
>
> Signed-off-by: Alwin Antreich <a.antreich at proxmox.com>
> ---
>   PVE/RADOS.pm |  9 ++++++++-
>   RADOS.xs     | 26 +++++++++++++++++++++-----
>   2 files changed, 29 insertions(+), 6 deletions(-)
>
> diff --git a/PVE/RADOS.pm b/PVE/RADOS.pm
> index aa6a102..ad1c2db 100644
> --- a/PVE/RADOS.pm
> +++ b/PVE/RADOS.pm
> @@ -1,6 +1,6 @@
>   package PVE::RADOS;
>   
> -use 5.014002;
> +use 5.014002; # FIXME: update version??
>   use strict;
>   use warnings;
>   use Carp;
> @@ -13,6 +13,7 @@ use PVE::RPCEnvironment;
>   require Exporter;
>   
>   my $rados_default_timeout = 5;
> +my $ceph_default_conf = '/etc/ceph/ceph.conf';
>   
>   
>   our @ISA = qw(Exporter);
> @@ -164,6 +165,12 @@ sub new {
>   	    $conn = pve_rados_create() ||
>   		die "unable to create RADOS object\n";
>   
> +	    my $ceph_conf = delete $params{ceph_conf} || $ceph_default_conf;
> +
> +	    if (-e $ceph_conf) {
> +		pve_rados_conf_read_file($conn, $ceph_conf);
> +	    }
> +
>   	    pve_rados_conf_set($conn, 'client_mount_timeout', $timeout);
>   
>   	    foreach my $k (keys %params) {
> diff --git a/RADOS.xs b/RADOS.xs
> index a9f6bc3..ad3cf96 100644
> --- a/RADOS.xs
> +++ b/RADOS.xs
> @@ -47,19 +47,35 @@ CODE:

This whole hunk does not apply here...
A quick look gave me one whitespace problem (see below), but that alone 
did not fix it for me...
Are you sure you sent all commits between this and origin/master ?

git log origin/master..


>   }
>   
>   void
> -pve_rados_connect(cluster)
> +pve_rados_conf_read_file(cluster, path)
>   rados_t cluster
> -PROTOTYPE: $
> +SV *path
> +PROTOTYPE: $$
>   CODE:
>   {
> -    DPRINTF("pve_rados_connect\n");
> +    char *p = NULL;
>   
> -    int res = rados_conf_read_file(cluster, NULL);
> +    if (SvOK(path)) {
> +	p = SvPV_nolen(path);
> +    }
> +
> +    DPRINTF("pve_rados_conf_read_file %s\n", p);
> +
> +    int res = rados_conf_read_file(cluster, p);
>       if (res < 0) {
>           die("rados_conf_read_file failed - %s\n", strerror(-res));
>       }
> +}
> +
> +void
> +pve_rados_connect(cluster)
> +rados_t cluster
> +PROTOTYPE: $
> +CODE:
> +{
> +    DPRINTF("pve_rados_connect\n");
>   

The empty line above contains a trailing whitespace in origin/master, 
which your patch does not contain.

> -    res = rados_connect(cluster);
> +    int res = rados_connect(cluster);
>       if (res < 0) {
>           die("rados_connect failed - %s\n", strerror(-res));
>       }





More information about the pve-devel mailing list