On 25.01.2016 13:45, Pavel Hrdina wrote: > On Wed, Jan 13, 2016 at 05:39:10PM +0100, Michal Privoznik wrote: >> https://bugzilla.redhat.com/show_bug.cgi?id=1250331 >> >> It all works like this. The change-media command dumps domain >> XML, finds the corresponding cdrom device we want to change media >> in and returns it in the xmlNodePtr form. This way we don't have >> to bother with keeping all the subelements or attributes that we >> don't care about in the XML that is fed back to libvirt for the >> update API. >> >> Now, the problem is we try to be clever here and detect if disk >> already has a source (indicated by <source/> subelement). >> However, bare fact that the element is there does not mean disk >> has source. The element has some attributes and only if @file or >> @dev is within them disk has source. Any other attribute is >> meaningless for our purpose now. Make our clever check better. > > That's not true, what about disk type='dir|volume|network'? Those could be also > used as cdrom or floppy. The patch looks good, but extend it to detect all > possible disk types. > Well, the code doesn't know how to deal with those types anyway. For all types you've pointed out we will change the disk type to file. So in the end from a type='dir|volume|network' disk we will create type='file'. I see no point in producing the following XML then: <disk type='file' device='cdrom'> <source file='example.host.com'/> ... </disk> But that's a bigger bug to fix. Meanwhile I think we can use my (incomplete?) fix. Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list