<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="">
<br>
</span>That's why I've chosen to work purely with disk target at NBD level. We<br>
have strong rules what characters can occur there. Moreover, it's fairly<br>
easy to derive qemu disk ID from the target. Oh, and we require targets<br>
to be unique throughout the domain. So I think it's the best option for<br>
the extension you're planning.<br></blockquote><div>Bad news is NBD is not enabled for tunnelled migration:<br></div><div>(src/qemu/qemu_migration.c, line 2635).<br></div><div>        /* TODO support NBD for TUNNELLED migration */<br>        if (flags & VIR_MIGRATE_TUNNELLED) {<br>            VIR_WARN("NBD in tunnelled migration is currently not supported");<br>        } else {<br>            cookieFlags |= QEMU_MIGRATION_COOKIE_NBD;<br>            priv->nbdPort = 0;<br>        }<br><br></div><div>So, we will need to implement this first for my code path, since all the migrations started by the Nova a tunnelled.<br><br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<span class=""><br>
</span>Hm.. what about this, introduce just this new function:<br>
<br>
virTypedParamsGetArrayForKey(.., const char *key, ...)<br></blockquote><div><br></div><div>Since we are using libvirt-python in nova I will have to change the way python bindings convert input `dict' to a TypedParams. For this, the `virPyDictToTypedParams' would have to be changed.<br><br></div><div>One cannot pass a multiple values with the same key in Python so `virPyDictToTypedParams' will have to translate dict(migrate_disk=[1,2,3]) into TypedParams {("migrate_disk", 1), ("migrate_disk", 2), ("migrate_disk", 3)}.<br></div><div><br></div><div>Pavel<br></div></div></div></div>