]> git.proxmox.com Git - librados2-perl.git/commitdiff
allow to specify the userid with rados_create
authorAlwin Antreich <a.antreich@proxmox.com>
Thu, 5 Apr 2018 08:41:36 +0000 (10:41 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Thu, 5 Apr 2018 09:04:32 +0000 (11:04 +0200)
This allows to connect to a cluster with a different user, besides admin

Signed-off-by: Alwin Antreich <a.antreich@proxmox.com>
PVE/RADOS.pm
RADOS.xs

index 2ed92b740a5c6bd80628b50da3aca52ebee36889..d53f655a9646b62fa31d51bc2af67644eea28b22 100644 (file)
@@ -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})) {
index ad3cf96b1f6417a9d67506385c44bd290cdc304b..f3f55162dcbdb1fa2ca612c8915d57a6a7737562 100644 (file)
--- a/RADOS.xs
+++ b/RADOS.xs
 MODULE = PVE::RADOS            PACKAGE = 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(&clu, NULL);
+
+    if (SvOK(user)) {
+       u = SvPV_nolen(user);
+    }
+
+    int ret = rados_create(&clu, u);
 
     if (ret == 0)
         RETVAL = clu;