在 2012-10-08一的 21:54 -0600,Eric Blake写道: > On 10/08/2012 08:33 PM, li guang wrote: > > 在 2012-10-08一的 20:05 -0600,Eric Blake写道: > >> On 10/08/2012 07:51 PM, liguang wrote: > >>> this hook aimed at migration only, it supposed > >>> to be used as a helper of migrate --copy-storage-* > >>> features to remove the unreasonable limitation > >>> of pre-exist disk images at migration target. > >>> someone can add more functions to hook files. > >> > >> NACK. Instead of writing a hook that runs outside of libvirt and has to > >> be installed to be of use, we should instead fix libvirt to do the file > >> creation itself. That is, you should be patching > >> src/qemu/qemu_migration.c to detect when copy-storage-* has been passed, > > > > really? sorry, I don't know any implicit libvirt development rules, > > but, as I see, there are none hooks used by libvirt until now, why > > don't we use them instead of just design and obsolete? > > The problem with doing this as a python hook instead of directly in the > libvirt code is that you still got the sVirt SELinux labeling wrong. > Really, the file MUST be created by the libvirt C code, as that is the > code that knows what SELinux label to apply to the new file. > Furthermore, hooks are reserved for the user. We should not be making > libvirt rely on the installation of hooks for correct operation of the > normal case. > > > can't hooks be installed just like other libvirt files? > > then, create files by python or c have difference? > > Hooks are limited in what they can do - they are documented as being > unable to call back in to other libvirt calls. They are also less > efficient - why spawn a python process, when we already have all the > information to create the file in C code? > > Ultimately, I'd like to see this wart of --copy-storage fixed, but fixed > properly in the C code and not by adding a hook file. > OK, I see, thanks a lot! -- liguang lig.fnst@xxxxxxxxxxxxxx FNST linux kernel team -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list