Re: Need some help with the RBD Java bindings

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

 



Wido,

How would you feel about creating two RbdSnapInfo objects. The first
would be something like ceph.rbd.RbdSnapInfo and the second would be
ceph.rbd.jna.RbdSnapInfo. The former is what will be exposed through
the API, and the later is used only internally. That should address
the hacky-ness of my snap listing fix: just create a copy of the
SnapInfo into the public struct. it also means we can avoid exposing
users to JNA structures.

On Wed, Aug 21, 2013 at 5:11 AM, Wido den Hollander <wido@xxxxxxxx> wrote:
> On 08/20/2013 11:26 PM, Noah Watkins wrote:
>>
>> Wido,
>>
>> I pushed up a patch to
>>
>>
>> https://github.com/ceph/rados-java/commit/ca16d82bc5b596620609880e429ec9f4eaa4d5ce
>>
>> That includes a fix for this problem. The fix is a bit hacky, but the
>> tests pass now. I included more details about the hack in the code.
>>
>
> I see. Works like a charm for me now. I'll do some further testing with
> CloudStack.
>
> Wido
>
>> On Thu, Aug 15, 2013 at 9:57 AM, Noah Watkins <noah.watkins@xxxxxxxxxxx>
>> wrote:
>>>
>>> On Thu, Aug 15, 2013 at 8:51 AM, Wido den Hollander <wido@xxxxxxxx>
>>> wrote:
>>>>
>>>>
>>>> public List<RbdSnapInfo> snapList() throws RbdException {
>>>>      IntByReference numSnaps = new IntByReference(16);
>>>>      PointerByReference snaps = new PointerByReference();
>>>>      List<RbdSnapInfo> list = new ArrayList<RbdSnapInfo>();
>>>>      RbdSnapInfo snapInfo, snapInfos[];
>>>>
>>>>      while (true) {
>>>>          int r = rbd.rbd_snap_list(this.getPointer(), snaps, numSnaps);
>>>
>>>
>>> I think you need to allocate the memory for `snaps` yourself. Here is
>>> the RBD wrapper for Python which does that:
>>>
>>>    self.snaps = (rbd_snap_info_t * num_snaps.value)()
>>>    ret = self.librbd.rbd_snap_list(image.image, byref(self.snaps),
>>>                         byref(num_snaps))
>>>
>>> - Noah
>>
>> --
>>
>> 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
>>
>
>
> --
> Wido den Hollander
> 42on B.V.
>
> Phone: +31 (0)20 700 9902
> Skype: contact42on
--
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




[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