Re: Fwd: perl binding for rados ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Here is the package, just tested against 0.38. There are perl
subroutines at the top of RADOS.pm, which call the native C functions
below. Inline::C handles the conversion of datatypes, you should be
able to look at what's already done for the most part to fill out the
rest of the routines.

As far as known issues, the cluster_stat throws a failed assertion
with a brand new cluster, if I comment out the stat lines in my test
script, run the script once, and then uncomment everything is fine
from then on. Have not troubleshot it at all, it might be on the C
side with rados_cluster_stat or perhaps it's returning something
unexpected.

./common/Mutex.h: In function 'void Mutex::Lock(bool)', in thread '7fc0e2c2a720'
./common/Mutex.h: 110: FAILED assert(r == 0)
 ceph version 0.38 (commit:b600ec2ac7c0f2e508720f8e8bb87c3db15509b9)
 1: (()+0x8c0a3) [0x7fc0e08000a3]
 2: (librados::RadosClient::get_fs_stats(ceph_statfs&)+0x7f) [0x7fc0e080eb1f]
 3: (rados_cluster_stat()+0x10) [0x7fc0e080ecb0]
 4: (cluster_stat_c()+0x10) [0x7fc0e0bb6e80]
 5: (XS_Ceph__RADOS_cluster_stat_c()+0x135) [0x7fc0e0bb72b5]
 6: (Perl_pp_entersub()+0x585) [0x7fc0e2774265]
 7: (Perl_runops_standard()+0x20) [0x7fc0e276bcd0]
 8: (perl_run()+0x35e) [0x7fc0e27175fe]
 9: (main()+0xec) [0x400ccc]
 10: (__libc_start_main()+0xff) [0x7fc0e1cabeff]
 11: perl() [0x400af9]


 Also in general some extra validation,etc is a good idea, I was just
writing things and seeing if they worked. testrados2.pl does the
following:

connects to monitor
stats cluster
creates a pool
lists pools
opens a pool
gets the pool id
gets the pool auid
sets the pool auid
closes the pool
deletes the pool
disconnects

I hope this is useful to someone so they don't have to start from
scratch. What follows is the test procedure I performed this morning.

mlsorensen@mlsorensen-pc:~/Downloads$ tar xzf Ceph-RADOS-0.01.tar.gz

mlsorensen@mlsorensen-pc:~/Downloads$ cd Ceph-RADOS-0.01/

mlsorensen@mlsorensen-pc:~/Downloads/Ceph-RADOS-0.01$ perl Makefile.PL
Writing Makefile for Ceph::RADOS

mlsorensen@mlsorensen-pc:~/Downloads/Ceph-RADOS-0.01$ make
Skip blib/lib/Ceph/types (unchanged)
Skip blib/lib/Ceph/RADOS.pm (unchanged)
Skip blib/lib/Ceph/RADOS.pm (unchanged)
Manifying blib/man3/Ceph::RADOS.3pm

mlsorensen@mlsorensen-pc:~/Downloads/Ceph-RADOS-0.01$ sudo make install
Files found in blib/arch: installing files in blib/lib into
architecture dependent library tree
Installing /usr/local/lib/perl/5.10.1/auto/Ceph/RADOS/RADOS.so
Installing /usr/local/lib/perl/5.10.1/Ceph/RADOS.pm
Installing /usr/local/lib/perl/5.10.1/Ceph/types
Installing /usr/local/man/man3/Ceph::RADOS.3pm
Appending installation info to /usr/local/lib/perl/5.10.1/perllocal.pod

### build/install ceph 0.38 on my local box, start up mon,mds,osd ###

mlsorensen@mlsorensen-pc:~/Downloads/Ceph-RADOS-0.01$ perl testrados2.pl
connected
Kbytes: 175779840
Kbytes used: 151856
Kbytes avail: 171382160
Objects: 39
create pool this_test_pool success
pool:(0)  data
pool:(1)  metadata
pool:(2)  rbd
pool:(4)  this_test_pool
open pool success
pool id: 4
pool auid: -1
new pool auid: 232323
delete pool this_test_pool success


On Tue, Nov 15, 2011 at 11:41 PM, Lalit Kumar Bhasin <lkb@xxxxxxx> wrote:
> On Wednesday 16 November 2011 11:22 AM, Marcus Sorensen wrote:
>>
>> Yeah, let me tar up the module I have along with the test scripts I
>> was using, I hope it will be useful to you.
>
> Thanks Marcus
>>
>> On Tue, Nov 15, 2011 at 10:48 PM, Lalit Kumar Bhasin<lkb@xxxxxxx>  wrote:
>>>
>>> Marcus, It would be nice if you can share your code with me. It would
>>> ease
>>> my task as I was planning to write a xs interface for librados.
>>> Unless you have other ideas, I would publish it to cpan once done.
>>>
>>> /Lalit
>>>
>>>
>>>
>>>
>>> On Wednesday 16 November 2011 02:40 AM, Gregory Farnum wrote:
>>>>
>>>> Forwarding to list.
>>>> ---------- Forwarded message ----------
>>>> From: Marcus Sorensen<shadowsor@xxxxxxxxx>
>>>> Date: Tue, Nov 15, 2011 at 1:05 PM
>>>> Subject: Re: perl binding for rados ?
>>>> To: Gregory Farnum<gregory.farnum@xxxxxxxxxxxxx>
>>>>
>>>>
>>>> Admittedly they kind of dropped off my radar after it didn't seem to
>>>> Garner much interest. I do however have some code that seems to work
>>>> for connecting, listing pools and devices, basic adding and removing.
>>>> I dont have all of the functions wrapped but at this point I feel like
>>>> it's mainly just a matter of copying what's already there to fill in
>>>> the rest. It uses inline::c . I would be happy to tar up what I have
>>>> and make it available if someone wants to build on ot
>>>>
>>>> On Nov 15, 2011 12:38 PM, "Gregory Farnum"<gregory.farnum@xxxxxxxxxxxxx>
>>>>  wrote:
>>>>>
>>>>> On Tue, Nov 15, 2011 at 12:34 AM, Lalit Kumar Bhasin<lkb@xxxxxxx>
>>>>>  wrote:
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> Is there any perl bindings available for rados, or be available in
>>>>>> near
>>>>>> furture? I can't find it on cpan. As of now, only way I can see is to
>>>>>> use
>>>>>> librados through perl-XS interface.
>>>>>>
>>>>>> /Lalit
>>>>>
>>>>> All I can give you is a past discussion thread:
>>>>> http://comments.gmane.org/gmane.comp.file-systems.ceph.devel/3792
>>>>>
>>>>> Marcus, did you get anywhere with these?
>>>>> -Greg
>>>>
>>>> --
>>>> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>
>
>

Attachment: Ceph-RADOS-0.01.tar.gz
Description: GNU Zip compressed data


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux