[libvirt] [PATCH] OpenVZ xml refactoring
Evgeniy Sokolov
evg at openvz.org
Mon Jul 28 10:58:27 UTC 2008
> On Fri, Jul 25, 2008 at 04:44:09PM +0400, Evgeniy Sokolov wrote:
>> Patch switch OpenVZ XML format to generic.
>> main changes:
>> - I used generic virDomainNetDef to define network in container.
>> And wrote function to apply virDomainNetDef for container.
>> Method virDomainNetDefParseXML is public now.
>> - tag "container" is changed to "devices"
>> - changed format of tag "filesystem"
>> - added processing "vcpu" tag.
>
>> Index: src/domain_conf.c
>> ===================================================================
>> RCS file: /data/cvs/libvirt/src/domain_conf.c,v
>> retrieving revision 1.5
>> diff -u -p -r1.5 domain_conf.c
>> --- src/domain_conf.c 19 Jul 2008 07:42:34 -0000 1.5
>> +++ src/domain_conf.c 25 Jul 2008 12:40:17 -0000
>> @@ -633,7 +633,7 @@ static void virDomainNetRandomMAC(virDom
>> * @param node XML nodeset to parse for net definition
>> * @return 0 on success, -1 on failure
>> */
>> -static virDomainNetDefPtr
>> +virDomainNetDefPtr
>> virDomainNetDefParseXML(virConnectPtr conn,
>> xmlNodePtr node) {
>> virDomainNetDefPtr def;
>> Index: src/domain_conf.h
>> ===================================================================
>> RCS file: /data/cvs/libvirt/src/domain_conf.h,v
>> retrieving revision 1.1
>> diff -u -p -r1.1 domain_conf.h
>> --- src/domain_conf.h 11 Jul 2008 16:23:36 -0000 1.1
>> +++ src/domain_conf.h 25 Jul 2008 12:40:17 -0000
>> @@ -472,6 +472,9 @@ int virDomainLoadAllConfigs(virConnectPt
>> int virDomainDeleteConfig(virConnectPtr conn,
>> virDomainObjPtr dom);
>>
>> +virDomainNetDefPtr virDomainNetDefParseXML(virConnectPtr conn,
>> + xmlNodePtr node);
>> +
>
> This is not needed - we already export a generic virDOmainDeviceDefParse
> method, which allows parsing of an individual device of any type. That
> said, I don't think you need to use that either..
But to use virDomainDeviceDefParse we need before convert xmlNodePtr to
xml-string, or not?
>
>>
>> struct openvz_vm_def {
>> char name[OPENVZ_NAME_MAX];
>> unsigned char uuid[VIR_UUID_BUFLEN];
>> char profile[OPENVZ_PROFILE_MAX];
>> + unsigned long vcpus;
>> struct openvz_fs_def fs;
>> - struct openvz_net_def net;
>> + virDomainNetDefPtr net;
>> };
>
> Rather than doing this 50/50 port, we should just switch over
> to the virDomainDefPtr/virDomainObjPtr objects entirely and
> do away with openvz_vm and openvz_vm_def objects completely.
>
> This will require the addition of my filesystem patch to the
> generic parser, but that's less effort that maintaining the
> custom parser in openvz code. This will allowing 95% of the
> openvz_conf.c file to go away entirely
Yes, you are right.
It is half of port and intermediate state. But it support generic xml
format.
I propouse to completely switch to generic
virDomainDefPtr/virDomainObjPtr in nearest future.
I will correct defects from Daniel Veillard and send new patch soon.
More information about the libvir-list
mailing list