[libvirt] Is there an API for clone?

黄亮 lancerhuang at 163.com
Sun Nov 14 15:44:50 UTC 2010


Hi Alex,

Thanks for your flow chart. But I'm stuck in getting Storage Pool here.
I try to get StoragePoolPtr by using something like

 int num = virConnectNumOfStoragePools( conn );

it truns out num = 0;

I think I missed something and missunderstand the Storage Pool & Storage Volume. So I refer to the http://libvirt.org/archstorage.html and http://libvirt.org/guide/html/ , but guide book about storage is in status "TBD".  So, is there some tutorial or guideline I can follow to get the Storage Ptr and then get the XML description and finally clone one?

Thank you

Regards


2010-11-14 



Lancer 



发件人: ajia 
发送时间: 2010-11-12  10:40:27 
收件人: 黄亮 
抄送: libvir-list 
主题: Re: [libvirt] Is there an API for clone? 
 
On 11/12/2010 02:07 AM, 黄亮 wrote: 
Hi Alex

Thank you for your reply.
I just wanna make sure I'm not misunderstanding, virStorageVolGetXMLDesc & virStorageVolCreateXMLFrom together can do the clone process, am I right?
In fact, libvirt will call a group of APIs to complete vol-clone operation, you can track the whole calling process, it  looks like this:
                                              virsh vol-clone <vol-key> <newname>
                                                                           |
                                                                          V
                                                             virConnectOpenAuth
                                                                           |
                                                                          V
                                                        virStorageVolLookupByKey
                                                                           |
                                                                          V
                                                       virStoragePoolLookupByVolume  ('default' is default pool)
                                                                           |
                                                                          V
                                                       virStorageVolGetXMLDesc
                                                                           |
                                                                          V
                                                     virStorageVolCreateXMLFrom
                                                                           |
                                                                          V
                                                           virStorageVolGetName (twice)
                                                                           |
                                                                          V
                                                              virStorageVolFree    (twice) 
                                                                           |
                                                                          V
                                                             virStoragePoolFree
                                                                           |
                                                                          V
                                                               virConnectClose
                                                    
                                                                                                   
  Alex


Regards


2010-11-12 



Lancer 



发件人: Alex Jia 
发送时间: 2010-11-10  13:28:21 
收件人: 黄亮 
抄送: libvir-list 
主题: Re: [libvirt] Is there an API for clone? 
Hi lancer,
As Osier said, libvirt hasn't a independent API for cloning an
existing guest, instead of using virStorageVolGetXMLDesc API to 
get a guest volume xml description and then calling  
virStorageVolCreateXMLFrom API to clone a new volume.
For python-virtinst component, you may use virt-clone to implement
this, for libvirt component, you may directly use python binding
API or virsh tool 'vol-clone' to implement it.
I hope it's helpful for you.
- Alex
----- Original Message -----
From: "黄亮" <lancerhuang at 163.com>
To: "libvir-list" <libvir-list at redhat.com>
Sent: Wednesday, November 10, 2010 9:30:28 AM GMT +08:00 Beijing / Chongqing / Hong Kong / Urumqi
Subject: [libvirt] Is there an API for clone?
Hi, guys 
I know there is a command "virt-clone", but I couldn't find the equivalent API here : http://libvirt.org/html/libvirt-libvirt.html 
So, is there an API to clone an existing VM or not? 
Thank you! 
Regards 
2010-11-10 
Lancer 
--
libvir-list mailing list
libvir-list at redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
__________ Information from ESET Smart Security, version of virus signature database 5605 (20101109) __________
The message was checked by ESET Smart Security.
http://www.eset.com



__________ Information from ESET Smart Security, version of virus signature database 5612 (20101111) __________

The message was checked by ESET Smart Security.

http://www.eset.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20101114/22334ce0/attachment-0001.htm>


More information about the libvir-list mailing list