On Mon, Aug 25, 2014 at 11:33:53AM +0100, Richard W.M. Jones wrote:
> On Mon, Aug 25, 2014 at 12:39:24PM +0300, Shahar Havivi wrote:
> > Hi,
> >
> > I need to parse xml (vmware ovf) which have a namespace.
> > Attached the ovf file.
>
> Yes, libxml2 should be able to handle any aspect of XML.
>
> Probably it's best to use XPath expressions, see for example
> src/input_libvirt.ml.
s{src}{v2v}
>
> If you need new libxml2 APIs to be added to src/xml-c.c then you can
s{src}{v2v}
> have a go yourself or ask Pino to write any you need.
>
> Rich.
>
> > Thanks,
> > Shahar.
>
> > <?xml version="1.0" encoding="UTF-8"?>
> > <!--Generated by VMware ESX Server, User: root, UTC time:
> > 2014-08-12T13:33:20.142834Z-->
> > <Envelope vmw:buildId="build-1623387"
> > xmlns="http://schemas.dmtf.org/ovf/envelope/1"
> > xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common"
> > xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"
> > xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData"
> > xmlns:vmw="http://www.vmware.com/schema/ovf"
> > xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData"
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> > <References>
> > <File ovf:href="First-disk1.vmdk" ovf:id="file1" ovf:size="349405696" />
> > </References>
> > <DiskSection>
> > <Info>Virtual disk information</Info>
> > <Disk ovf:capacity="32" ovf:capacityAllocationUnits="byte * 2^30"
> > ovf:diskId="vmdisk1" ovf:fileRef="file1"
> > ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized"
> > ovf:populatedSize="1008926720" />
> > </DiskSection>
> > <NetworkSection>
> > <Info>The list of logical networks</Info>
> > <Network ovf:name="VM Network">
> > <Description>The VM Network network</Description>
> > </Network>
> > </NetworkSection>
> > <VirtualSystem ovf:id="First">
> > <Info>A virtual machine</Info>
> > <Name>First</Name>
> > <OperatingSystemSection ovf:id="74" vmw:osType="windows7_64Guest">
> > <Info>The kind of installed guest operating system</Info>
> > </OperatingSystemSection>
> > <VirtualHardwareSection>
> > <Info>Virtual hardware requirements</Info>
> > <System>
> > <vssd:ElementName>Virtual Hardware Family</vssd:ElementName>
> > <vssd:InstanceID>0</vssd:InstanceID>
> > <vssd:VirtualSystemIdentifier>First</vssd:VirtualSystemIdentifier>
> > <vssd:VirtualSystemType>vmx-08</vssd:VirtualSystemType>
> > </System>
> > <Item>
> > <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>
> > <rasd:Description>Number of Virtual CPUs</rasd:Description>
> > <rasd:ElementName>1 virtual CPU(s)</rasd:ElementName>
> > <rasd:InstanceID>1</rasd:InstanceID>
> > <rasd:ResourceType>3</rasd:ResourceType>
> > <rasd:VirtualQuantity>1</rasd:VirtualQuantity>
> > </Item>
> > <Item>
> > <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>
> > <rasd:Description>Memory Size</rasd:Description>
> > <rasd:ElementName>2048MB of memory</rasd:ElementName>
> > <rasd:InstanceID>2</rasd:InstanceID>
> > <rasd:ResourceType>4</rasd:ResourceType>
> > <rasd:VirtualQuantity>2048</rasd:VirtualQuantity>
> > </Item>
> > <Item>
> > <rasd:Address>0</rasd:Address>
> > <rasd:Description>SCSI Controller</rasd:Description>
> > <rasd:ElementName>SCSI Controller 0</rasd:ElementName>
> > <rasd:InstanceID>3</rasd:InstanceID>
> > <rasd:ResourceSubType>lsilogicsas</rasd:ResourceSubType>
> > <rasd:ResourceType>6</rasd:ResourceType>
> > <vmw:Config ovf:required="false" vmw:key="slotInfo.pciSlotNumber"
> > vmw:value="160" />
> > </Item>
> > <Item>
> > <rasd:Address>1</rasd:Address>
> > <rasd:Description>IDE Controller</rasd:Description>
> > <rasd:ElementName>VirtualIDEController 1</rasd:ElementName>
> > <rasd:InstanceID>4</rasd:InstanceID>
> > <rasd:ResourceType>5</rasd:ResourceType>
> > </Item>
> > <Item>
> > <rasd:Address>0</rasd:Address>
> > <rasd:Description>IDE Controller</rasd:Description>
> > <rasd:ElementName>VirtualIDEController 0</rasd:ElementName>
> > <rasd:InstanceID>5</rasd:InstanceID>
> > <rasd:ResourceType>5</rasd:ResourceType>
> > </Item>
> > <Item ovf:required="false">
> > <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
> > <rasd:ElementName>VirtualVideoCard</rasd:ElementName>
> > <rasd:InstanceID>6</rasd:InstanceID>
> > <rasd:ResourceType>24</rasd:ResourceType>
> > <vmw:Config ovf:required="false" vmw:key="enable3DSupport"
> > vmw:value="false" />
> > <vmw:Config ovf:required="false" vmw:key="enableMPTSupport"
> > vmw:value="false" />
> > <vmw:Config ovf:required="false" vmw:key="use3dRenderer"
> > vmw:value="automatic" />
> > <vmw:Config ovf:required="false" vmw:key="useAutoDetect"
> > vmw:value="false" />
> > <vmw:Config ovf:required="false" vmw:key="videoRamSizeInKB"
> > vmw:value="8192" />
> > </Item>
> > <Item ovf:required="false">
> > <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
> > <rasd:ElementName>VirtualVMCIDevice</rasd:ElementName>
> > <rasd:InstanceID>7</rasd:InstanceID>
> > <rasd:ResourceSubType>vmware.vmci</rasd:ResourceSubType>
> > <rasd:ResourceType>1</rasd:ResourceType>
> > <vmw:Config ovf:required="false"
> > vmw:key="allowUnrestrictedCommunication" vmw:value="false" />
> > <vmw:Config ovf:required="false" vmw:key="slotInfo.pciSlotNumber"
> > vmw:value="33" />
> > </Item>
> > <Item ovf:required="false">
> > <rasd:AddressOnParent>0</rasd:AddressOnParent>
> > <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
> > <rasd:ElementName>CD-ROM 1</rasd:ElementName>
> > <rasd:InstanceID>8</rasd:InstanceID>
> > <rasd:Parent>4</rasd:Parent>
> > <rasd:ResourceSubType>vmware.cdrom.iso</rasd:ResourceSubType>
> > <rasd:ResourceType>15</rasd:ResourceType>
> > </Item>
> > <Item>
> > <rasd:AddressOnParent>0</rasd:AddressOnParent>
> > <rasd:ElementName>Hard Disk 1</rasd:ElementName>
> > <rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource>
> > <rasd:InstanceID>9</rasd:InstanceID>
> > <rasd:Parent>3</rasd:Parent>
> > <rasd:ResourceType>17</rasd:ResourceType>
> > <vmw:Config ovf:required="false" vmw:key="backing.writeThrough"
> > vmw:value="false" />
> > </Item>
> > <Item ovf:required="false">
> > <rasd:AddressOnParent>0</rasd:AddressOnParent>
> > <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
> > <rasd:Description>Floppy Drive</rasd:Description>
> > <rasd:ElementName>Floppy 1</rasd:ElementName>
> > <rasd:InstanceID>10</rasd:InstanceID>
> >
> > <rasd:ResourceSubType>vmware.floppy.remotedevice</rasd:ResourceSubType>
> > <rasd:ResourceType>14</rasd:ResourceType>
> > </Item>
> > <Item>
> > <rasd:AddressOnParent>7</rasd:AddressOnParent>
> > <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
> > <rasd:Connection>VM Network</rasd:Connection>
> > <rasd:Description>E1000 ethernet adapter on "VM
> > Network"</rasd:Description>
> > <rasd:ElementName>Ethernet 1</rasd:ElementName>
> > <rasd:InstanceID>11</rasd:InstanceID>
> > <rasd:ResourceSubType>E1000</rasd:ResourceSubType>
> > <rasd:ResourceType>10</rasd:ResourceType>
> > <vmw:Config ovf:required="false" vmw:key="slotInfo.pciSlotNumber"
> > vmw:value="32" />
> > <vmw:Config ovf:required="false" vmw:key="wakeOnLanEnabled"
> > vmw:value="true" />
> > </Item>
> > <vmw:Config ovf:required="false" vmw:key="cpuHotAddEnabled"
> > vmw:value="false" />
> > <vmw:Config ovf:required="false" vmw:key="cpuHotRemoveEnabled"
> > vmw:value="false" />
> > <vmw:Config ovf:required="false" vmw:key="firmware" vmw:value="bios"
> > />
> > <vmw:Config ovf:required="false" vmw:key="virtualICH7MPresent"
> > vmw:value="false" />
> > <vmw:Config ovf:required="false" vmw:key="virtualSMCPresent"
> > vmw:value="false" />
> > <vmw:Config ovf:required="false" vmw:key="memoryHotAddEnabled"
> > vmw:value="false" />
> > <vmw:Config ovf:required="false" vmw:key="nestedHVEnabled"
> > vmw:value="false" />
> > <vmw:Config ovf:required="false" vmw:key="powerOpInfo.powerOffType"
> > vmw:value="soft" />
> > <vmw:Config ovf:required="false" vmw:key="powerOpInfo.resetType"
> > vmw:value="soft" />
> > <vmw:Config ovf:required="false" vmw:key="powerOpInfo.standbyAction"
> > vmw:value="checkpoint" />
> > <vmw:Config ovf:required="false" vmw:key="powerOpInfo.suspendType"
> > vmw:value="hard" />
> > <vmw:Config ovf:required="false" vmw:key="tools.afterPowerOn"
> > vmw:value="true" />
> > <vmw:Config ovf:required="false" vmw:key="tools.afterResume"
> > vmw:value="true" />
> > <vmw:Config ovf:required="false" vmw:key="tools.beforeGuestShutdown"
> > vmw:value="true" />
> > <vmw:Config ovf:required="false" vmw:key="tools.beforeGuestStandby"
> > vmw:value="true" />
> > <vmw:Config ovf:required="false" vmw:key="tools.syncTimeWithHost"
> > vmw:value="false" />
> > <vmw:Config ovf:required="false" vmw:key="tools.toolsUpgradePolicy"
> > vmw:value="manual" />
> > </VirtualHardwareSection>
> > </VirtualSystem>
> > </Envelope>
>
>
> --
> Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
> Read my programming and virtualization blog: http://rwmj.wordpress.com
> libguestfs lets you edit virtual machines. Supports shell scripting,
> bindings from many languages. http://libguestfs.org
>
> _______________________________________________
> Libguestfs mailing list
> [email protected]
> https://www.redhat.com/mailman/listinfo/libguestfs
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/
_______________________________________________
Libguestfs mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libguestfs