Skip to content

datapath.Attach fails requiring XenDisk #82

@rck

Description

@rck

I'm working on a SR, volume, datapath plugin for API version v5 that integrates LINSTOR/DRBD. Things look promising, I got a SR in xencenter and the functions I can test for the volume/datapath plugin on the CLI look good. This is developed on xenserver 7.6.0.

Unfortunately, if I create a VM in the GUI (and it also then happens on shutdown), I geht this error:

nplug 7a8cfbb7-4271-d563-22f7-5dede0e53843.xvda
Feb  6 14:20:43 xenserver-210 xenopsd-xc: [debug|localhost.localdomain|37 |Parallel:task=251.atoms=2.(VBD.unplug vm=7a8cfbb7-4271-d563-22f7-5dede0e53843)|xenops_server] VBD_D
B.signal 7a8cfbb7-4271-d563-22f7-5dede0e53843.xvda
Feb  6 14:20:43 xenserver-210 xenopsd-xc: [error|localhost.localdomain|37 |Parallel:task=251.atoms=2.(VBD.unplug vm=7a8cfbb7-4271-d563-22f7-5dede0e53843)|task_server] Task 25
3 failed; Xenops_interface.Internal_error("Could not find XenDisk implementation: {\"implementations\":[[\"BlockDevice\",{\"path\":\"/dev/drbd1001\"}]]}")
Feb  6 14:20:43 xenserver-210 xenopsd-xc: [debug|localhost.localdomain|37 ||xenops_server] TASK.signal 253 = ["Failed",["Internal_error","Could not find XenDisk implementatio
n: {\"implementations\":[[\"BlockDevice\",{\"path\":\"/dev/drbd1001\"}]]}"]]

datapath.Attach returns this kind of dictionary:

{"implementations":[["BlockDevice",{"path":"/dev/drbd1001"}]]}

This nicely passes the type checks in /usr/lib/python2.7/site-packages/xapi/storage/api/v5/datapath.py but then fails somewhere down the road. The block device exists and is accessible on the machine. Yeah, I don't want to implement a "XenDisk", DRBD operates on block devices. Is this a bug or did I misunderstand something? "implementations" is a "variant" type, mine is "BlockDevice|. What is wrong with that?

Any hints? Best, rck

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions