[pve-devel] [PATCH v2 librados2-perl 3/3] allow to specify the userid with rados_create

2018-04-05 Thread Alwin Antreich
This allows to connect to a cluster with a different user, besides admin

Signed-off-by: Alwin Antreich 
---
 PVE/RADOS.pm |  4 +++-
 RADOS.xs | 13 ++---
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/PVE/RADOS.pm b/PVE/RADOS.pm
index 2ed92b7..d53f655 100644
--- a/PVE/RADOS.pm
+++ b/PVE/RADOS.pm
@@ -14,6 +14,7 @@ require Exporter;
 
 my $rados_default_timeout = 5;
 my $ceph_default_conf = '/etc/ceph/ceph.conf';
+my $ceph_default_user = 'admin';
 
 
 our @ISA = qw(Exporter);
@@ -162,7 +163,8 @@ sub new {
 
my $conn;
eval {
-   $conn = pve_rados_create() ||
+   my $ceph_user = delete $params{userid} || $ceph_default_user;
+   $conn = pve_rados_create($ceph_user) ||
die "unable to create RADOS object\n";
 
if (defined($params{ceph_conf}) && (!-e $params{ceph_conf})) {
diff --git a/RADOS.xs b/RADOS.xs
index ad3cf96..f3f5516 100644
--- a/RADOS.xs
+++ b/RADOS.xs
@@ -14,12 +14,19 @@
 MODULE = PVE::RADOSPACKAGE = PVE::RADOS
 
 rados_t
-pve_rados_create()
-PROTOTYPE:
+pve_rados_create(user)
+SV *user
+PROTOTYPE: $
 CODE:
 {
+char *u = NULL;
 rados_t clu = NULL;
-int ret = rados_create(, NULL);
+
+if (SvOK(user)) {
+   u = SvPV_nolen(user);
+}
+
+int ret = rados_create(, u);
 
 if (ret == 0)
 RETVAL = clu;
-- 
2.11.0


___
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


[pve-devel] [PATCH v2 librados2-perl 3/3] allow to specify the userid with rados_create

2018-04-04 Thread Alwin Antreich
This allows to connect to a cluster with a different user, besides admin

Signed-off-by: Alwin Antreich 
---
 PVE/RADOS.pm |  4 +++-
 RADOS.xs | 13 ++---
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/PVE/RADOS.pm b/PVE/RADOS.pm
index 2ed92b7..d53f655 100644
--- a/PVE/RADOS.pm
+++ b/PVE/RADOS.pm
@@ -14,6 +14,7 @@ require Exporter;

 my $rados_default_timeout = 5;
 my $ceph_default_conf = '/etc/ceph/ceph.conf';
+my $ceph_default_user = 'admin';


 our @ISA = qw(Exporter);
@@ -162,7 +163,8 @@ sub new {

my $conn;
eval {
-   $conn = pve_rados_create() ||
+   my $ceph_user = delete $params{userid} || $ceph_default_user;
+   $conn = pve_rados_create($ceph_user) ||
die "unable to create RADOS object\n";

if (defined($params{ceph_conf}) && (!-e $params{ceph_conf})) {
diff --git a/RADOS.xs b/RADOS.xs
index ad3cf96..f3f5516 100644
--- a/RADOS.xs
+++ b/RADOS.xs
@@ -14,12 +14,19 @@
 MODULE = PVE::RADOSPACKAGE = PVE::RADOS

 rados_t
-pve_rados_create()
-PROTOTYPE:
+pve_rados_create(user)
+SV *user
+PROTOTYPE: $
 CODE:
 {
+char *u = NULL;
 rados_t clu = NULL;
-int ret = rados_create(, NULL);
+
+if (SvOK(user)) {
+   u = SvPV_nolen(user);
+}
+
+int ret = rados_create(, u);

 if (ret == 0)
 RETVAL = clu;
--
2.11.0


___
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel