ESX add esxDomainDefineXML()

A given domain XML gets converted to a VMX config, uploaded to the host
and registered as new virtual machine.

* src/esx/esx_driver.c: refactor datastore related path parsing into
  esxUtil_ParseDatastoreRelatedPath()
* src/esx/esx_util.[ch]: add esxUtil_ParseDatastoreRelatedPath()
* src/esx/esx_vi.[ch]: add esxVI_Context_UploadFile(), add datastores to
  the traversal in esxVI_BuildFullTraversalSpecList(), add
  esxVI_LookupDatastoreByName()
* src/esx/esx_vi_methods.[ch]: add esxVI_RegisterVM_Task()
* src/esx/esx_vi_types.c: make some error message more verbose
* src/esx/esx_vmx.[ch]: add esxVMX_AbsolutePathToDatastoreRelatedPath()
  to convert a path into a datastore related path, add esxVMX_ParseFileName()
  to convert from VMX path format to domain XML path format, extend the other
  parsing function to be datastore aware, add esxVMX_FormatFileName() to
  convert from domain XML path format to VMX path format, fix VMX ethernet
  entry formating
* tests/esxutilstest.c: add test for esxUtil_ParseDatastoreRelatedPath()
* tests/vmx2xmldata/*: update domain XML files to use datastore related paths
* tests/xml2vmxdata/*: update domain XML files to use datastore related paths,
  update VMX files to use absolute paths
This commit is contained in:
Matthias Bolte
2009-09-23 14:52:36 +02:00
committed by Daniel Veillard
parent c3aa1f8bdb
commit 49faa15e4f
67 changed files with 1186 additions and 233 deletions

View File

@@ -7,4 +7,4 @@ memsize = "4"
numvcpus = "1"
ide0:0.present = "true"
ide0:0.deviceType = "cdrom-image"
ide0:0.fileName = "cdrom.iso"
ide0:0.fileName = "/vmfs/volumes/testing/isos/cdrom.iso"

View File

@@ -7,7 +7,7 @@
</os>
<devices>
<disk type='file' device='cdrom'>
<source file='cdrom.iso'/>
<source file='[testing] isos/cdrom.iso'/>
<target dev='hda' bus='ide'/>
</disk>
</devices>

View File

@@ -8,4 +8,4 @@ numvcpus = "1"
scsi0.present = "true"
scsi0:0.present = "true"
scsi0:0.deviceType = "cdrom-image"
scsi0:0.fileName = "cdrom.iso"
scsi0:0.fileName = "/vmfs/volumes/testing/isos/cdrom.iso"

View File

@@ -7,7 +7,7 @@
</os>
<devices>
<disk type='file' device='cdrom'>
<source file='cdrom.iso'/>
<source file='[testing] isos/cdrom.iso'/>
<target dev='sda' bus='scsi'/>
</disk>
</devices>

View File

@@ -9,9 +9,9 @@ scsi0.present = "true"
scsi0.virtualDev = "lsilogic"
scsi0:0.present = "true"
scsi0:0.deviceType = "scsi-hardDisk"
scsi0:0.fileName = "Fedora11.vmdk"
scsi0:0.fileName = "/vmfs/volumes/498076b2-02796c1a-ef5b-000ae484a6a3/Fedora11/Fedora11.vmdk"
ethernet0.present = "true"
ethernet0.networkName = "VM Network"
ethernet0.connectionType = "bridged"
ethernet0.addressType = "static"
ethernet0.address = "00:50:56:91:48:C7"
ethernet0.addressType = "generated"
ethernet0.generatedAddress = "00:50:56:91:48:C7"

View File

@@ -14,7 +14,7 @@
<devices>
<disk type='file' device='disk'>
<driver name='lsilogic'/>
<source file='Fedora11.vmdk'/>
<source file='[498076b2-02796c1a-ef5b-000ae484a6a3] Fedora11/Fedora11.vmdk'/>
<target dev='sda' bus='scsi'/>
</disk>
<interface type='bridge'>

View File

@@ -13,11 +13,11 @@ scsi1.present = "true"
scsi1.virtualDev = "buslogic"
scsi0:0.present = "true"
scsi0:0.deviceType = "scsi-hardDisk"
scsi0:0.fileName = "Debian1.vmdk"
scsi0:0.fileName = "/vmfs/volumes/498076b2-02796c1a-ef5b-000ae484a6a3/virtDebian1/Debian1.vmdk"
scsi0:0.writeThrough = "true"
scsi1:0.present = "true"
scsi1:0.deviceType = "cdrom-image"
scsi1:0.fileName = "Debian1-cdrom.iso"
scsi1:0.fileName = "/vmfs/volumes/498076b2-02796c1a-ef5b-000ae484a6a3/virtDebian1/Debian1-cdrom.iso"
ide0:0.present = "true"
ide0:0.deviceType = "cdrom-image"
ide0:0.fileName = "/vmimages/tools-isoimages/linux.iso"
@@ -26,7 +26,7 @@ ide0:1.deviceType = "atapi-cdrom"
ide0:1.fileName = "/dev/scd0"
ide1:1.present = "true"
ide1:1.deviceType = "ata-hardDisk"
ide1:1.fileName = "Debian1-IDE.vmdk"
ide1:1.fileName = "/vmfs/volumes/498076b2-02796c1a-ef5b-000ae484a6a3/virtDebian1/Debian1-IDE.vmdk"
floppy0.present = "true"
floppy0.fileType = "device"
floppy0.fileName = "/dev/fd0"

View File

@@ -14,12 +14,12 @@
<devices>
<disk type='file' device='disk'>
<driver name='lsilogic' cache='writethrough'/>
<source file='Debian1.vmdk'/>
<source file='[498076b2-02796c1a-ef5b-000ae484a6a3] virtDebian1/Debian1.vmdk'/>
<target dev='sda' bus='scsi'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='buslogic'/>
<source file='Debian1-cdrom.iso'/>
<source file='[498076b2-02796c1a-ef5b-000ae484a6a3] virtDebian1/Debian1-cdrom.iso'/>
<target dev='sdp' bus='scsi'/>
</disk>
<disk type='file' device='cdrom'>
@@ -31,7 +31,7 @@
<target dev='hdb' bus='ide'/>
</disk>
<disk type='file' device='disk'>
<source file='Debian1-IDE.vmdk'/>
<source file='[498076b2-02796c1a-ef5b-000ae484a6a3] virtDebian1/Debian1-IDE.vmdk'/>
<target dev='hdd' bus='ide'/>
</disk>
<disk type='block' device='floppy'>

View File

@@ -10,7 +10,7 @@ scsi0.present = "true"
scsi0.virtualDev = "lsilogic"
scsi0:0.present = "true"
scsi0:0.deviceType = "scsi-hardDisk"
scsi0:0.fileName = "Debian2.vmdk"
scsi0:0.fileName = "/vmfs/volumes/498076b2-02796c1a-ef5b-000ae484a6a3/Debian2/Debian2.vmdk"
ide0:0.present = "true"
ide0:0.deviceType = "cdrom-image"
ide0:0.fileName = "/vmfs/volumes/498076b2-02796c1a-ef5b-000ae484a6a3/Isos/debian-testing-amd64-netinst.iso"

View File

@@ -14,15 +14,15 @@
<devices>
<disk type='file' device='disk'>
<driver name='lsilogic'/>
<source file='Debian2.vmdk'/>
<source file='[498076b2-02796c1a-ef5b-000ae484a6a3] Debian2/Debian2.vmdk'/>
<target dev='sda' bus='scsi'/>
</disk>
<disk type='file' device='cdrom'>
<source file='/vmfs/volumes/498076b2-02796c1a-ef5b-000ae484a6a3/Isos/debian-testing-amd64-netinst.iso'/>
<source file='[498076b2-02796c1a-ef5b-000ae484a6a3] Isos/debian-testing-amd64-netinst.iso'/>
<target dev='hda' bus='ide'/>
</disk>
<disk type='file' device='floppy'>
<source file='/vmfs/volumes/498076b2-02796c1a-ef5b-000ae484a6a3/Debian2/dummy.flp'/>
<source file='[498076b2-02796c1a-ef5b-000ae484a6a3] Debian2/dummy.flp'/>
<target dev='fdb' bus='fdc'/>
</disk>
<interface type='bridge'>

View File

@@ -9,17 +9,17 @@ scsi0.present = "true"
scsi0.virtualDev = "lsilogic"
scsi0:0.present = "true"
scsi0:0.deviceType = "scsi-hardDisk"
scsi0:0.fileName = "virtMonServ1.vmdk"
scsi0:0.fileName = "/vmfs/volumes/498076b2-02796c1a-ef5b-000ae484a6a3/virtMonServ1/virtMonServ1.vmdk"
ethernet0.present = "true"
ethernet0.networkName = "VM Network"
ethernet0.connectionType = "bridged"
ethernet0.addressType = "static"
ethernet0.address = "00:50:56:91:66:D4"
ethernet0.addressType = "generated"
ethernet0.generatedAddress = "00:50:56:91:66:D4"
ethernet1.present = "true"
ethernet1.networkName = "VM Switch 2"
ethernet1.connectionType = "bridged"
ethernet1.addressType = "static"
ethernet1.address = "00:50:56:91:0C:51"
ethernet1.addressType = "generated"
ethernet1.generatedAddress = "00:50:56:91:0C:51"
serial0.present = "true"
serial0.fileType = "file"
serial0.fileName = "/vmfs/volumes/498076b2-02796c1a-ef5b-000ae484a6a3/virtMonServ1/serial1.file"

View File

@@ -14,7 +14,7 @@
<devices>
<disk type='file' device='disk'>
<driver name='lsilogic'/>
<source file='virtMonServ1.vmdk'/>
<source file='[498076b2-02796c1a-ef5b-000ae484a6a3] virtMonServ1/virtMonServ1.vmdk'/>
<target dev='sda' bus='scsi'/>
</disk>
<interface type='bridge'>
@@ -26,15 +26,15 @@
<source bridge='VM Switch 2'/>
</interface>
<serial type='file'>
<source path='/vmfs/volumes/498076b2-02796c1a-ef5b-000ae484a6a3/virtMonServ1/serial1.file'/>
<source path='[498076b2-02796c1a-ef5b-000ae484a6a3] virtMonServ1/serial1.file'/>
<target port='0'/>
</serial>
<parallel type='file'>
<source path='/vmfs/volumes/498076b2-02796c1a-ef5b-000ae484a6a3/virtMonServ1/parallel1.file'/>
<source path='[498076b2-02796c1a-ef5b-000ae484a6a3] virtMonServ1/parallel1.file'/>
<target port='0'/>
</parallel>
<console type='file'>
<source path='/vmfs/volumes/498076b2-02796c1a-ef5b-000ae484a6a3/virtMonServ1/serial1.file'/>
<source path='[498076b2-02796c1a-ef5b-000ae484a6a3] virtMonServ1/serial1.file'/>
<target port='0'/>
</console>
</devices>

View File

@@ -8,5 +8,5 @@ numvcpus = "1"
ethernet0.present = "true"
ethernet0.networkName = "VM Network"
ethernet0.connectionType = "bridged"
ethernet0.addressType = "static"
ethernet0.address = "00:50:56:11:22:33"
ethernet0.addressType = "generated"
ethernet0.generatedAddress = "00:50:56:11:22:33"

View File

@@ -9,5 +9,5 @@ ethernet0.present = "true"
ethernet0.networkName = "VM Network"
ethernet0.connectionType = "custom"
ethernet0.vnet = "vmnet7"
ethernet0.addressType = "static"
ethernet0.address = "00:50:56:11:22:33"
ethernet0.addressType = "generated"
ethernet0.generatedAddress = "00:50:56:11:22:33"

View File

@@ -9,5 +9,5 @@ ethernet0.present = "true"
ethernet0.virtualDev = "e1000"
ethernet0.networkName = "VM Network"
ethernet0.connectionType = "bridged"
ethernet0.addressType = "static"
ethernet0.address = "00:50:56:11:22:33"
ethernet0.addressType = "generated"
ethernet0.generatedAddress = "00:50:56:11:22:33"

View File

@@ -7,4 +7,4 @@ memsize = "4"
numvcpus = "1"
floppy0.present = "true"
floppy0.fileType = "file"
floppy0.fileName = "floppy.flp"
floppy0.fileName = "/vmfs/volumes/testing/floppy.flp"

View File

@@ -7,7 +7,7 @@
</os>
<devices>
<disk type='file' device='floppy'>
<source file='floppy.flp'/>
<source file='[testing] floppy.flp'/>
<target dev='fda' bus='fdc'/>
</disk>
</devices>

View File

@@ -7,7 +7,7 @@ memsize = "32"
numvcpus = "1"
ide0:0.present = "true"
ide0:0.deviceType = "ata-hardDisk"
ide0:0.fileName = "Debian-System1-0-cl2.vmdk"
ide0:0.fileName = "/vmfs/volumes/storage/Server1/Debian-System1-0-cl2.vmdk"
ethernet0.present = "true"
ethernet0.networkName = "net1"
ethernet0.connectionType = "custom"

View File

@@ -13,7 +13,7 @@
<on_crash>destroy</on_crash>
<devices>
<disk type='file' device='disk'>
<source file='Debian-System1-0-cl2.vmdk'/>
<source file='[storage] Server1/Debian-System1-0-cl2.vmdk'/>
<target dev='hda' bus='ide'/>
</disk>
<interface type='bridge'>

View File

@@ -7,7 +7,7 @@ memsize = "32"
numvcpus = "1"
ide0:0.present = "true"
ide0:0.deviceType = "ata-hardDisk"
ide0:0.fileName = "Debian-System1-0-cl3.vmdk"
ide0:0.fileName = "/vmfs/volumes/storage/Server2/Debian-System1-0-cl3.vmdk"
ethernet0.present = "true"
ethernet0.networkName = "net1"
ethernet0.connectionType = "custom"

View File

@@ -13,7 +13,7 @@
<on_crash>destroy</on_crash>
<devices>
<disk type='file' device='disk'>
<source file='Debian-System1-0-cl3.vmdk'/>
<source file='[storage] Server2/Debian-System1-0-cl3.vmdk'/>
<target dev='hda' bus='ide'/>
</disk>
<interface type='bridge'>

View File

@@ -7,7 +7,7 @@ memsize = "32"
numvcpus = "1"
ide0:0.present = "true"
ide0:0.deviceType = "ata-hardDisk"
ide0:0.fileName = "Debian-System1-0-cl1.vmdk"
ide0:0.fileName = "/vmfs/volumes/storage/Router/Debian-System1-0-cl1.vmdk"
ethernet0.present = "true"
ethernet0.networkName = "net1"
ethernet0.connectionType = "custom"

View File

@@ -13,7 +13,7 @@
<on_crash>destroy</on_crash>
<devices>
<disk type='file' device='disk'>
<source file='Debian-System1-0-cl1.vmdk'/>
<source file='[storage] Router/Debian-System1-0-cl1.vmdk'/>
<target dev='hda' bus='ide'/>
</disk>
<interface type='bridge'>

View File

@@ -7,7 +7,7 @@ memsize = "264"
numvcpus = "1"
ide0:0.present = "true"
ide0:0.deviceType = "ata-hardDisk"
ide0:0.fileName = "Debian-System1-0-cl2.vmdk"
ide0:0.fileName = "/vmfs/volumes/storage/Client/Debian-System1-0-cl2.vmdk"
ethernet0.present = "true"
ethernet0.networkName = "net2"
ethernet0.connectionType = "custom"

View File

@@ -13,7 +13,7 @@
<on_crash>destroy</on_crash>
<devices>
<disk type='file' device='disk'>
<source file='Debian-System1-0-cl2.vmdk'/>
<source file='[storage] Client/Debian-System1-0-cl2.vmdk'/>
<target dev='hda' bus='ide'/>
</disk>
<interface type='bridge'>

View File

@@ -7,4 +7,4 @@ memsize = "4"
numvcpus = "1"
ide0:0.present = "true"
ide0:0.deviceType = "ata-hardDisk"
ide0:0.fileName = "harddisk.vmdk"
ide0:0.fileName = "/vmfs/volumes/datastore/directory/harddisk.vmdk"

View File

@@ -7,7 +7,7 @@
</os>
<devices>
<disk type='file' device='disk'>
<source file='harddisk.vmdk'/>
<source file='[datastore] directory/harddisk.vmdk'/>
<target dev='hda' bus='ide'/>
</disk>
</devices>

View File

@@ -8,4 +8,4 @@ numvcpus = "1"
scsi0.present = "true"
scsi0:0.present = "true"
scsi0:0.deviceType = "scsi-hardDisk"
scsi0:0.fileName = "harddisk.vmdk"
scsi0:0.fileName = "/vmfs/volumes/datastore/directory/harddisk.vmdk"

View File

@@ -7,7 +7,7 @@
</os>
<devices>
<disk type='file' device='disk'>
<source file='harddisk.vmdk'/>
<source file='[datastore] directory/harddisk.vmdk'/>
<target dev='sda' bus='scsi'/>
</disk>
</devices>

View File

@@ -7,4 +7,4 @@ memsize = "4"
numvcpus = "1"
parallel0.present = "true"
parallel0.fileType = "file"
parallel0.fileName = "parallel0.file"
parallel0.fileName = "/vmfs/volumes/datastore/directory/parallel0.file"

View File

@@ -7,7 +7,7 @@
</os>
<devices>
<parallel type='file'>
<source path='parallel0.file'/>
<source path='[datastore] directory/parallel0.file'/>
<target port='0'/>
</parallel>
</devices>

View File

@@ -9,4 +9,4 @@ scsi0.present = "true"
scsi0.virtualDev = "buslogic"
scsi0:0.present = "true"
scsi0:0.deviceType = "scsi-hardDisk"
scsi0:0.fileName = "harddisk.vmdk"
scsi0:0.fileName = "/vmfs/volumes/datastore/directory/harddisk.vmdk"

View File

@@ -8,7 +8,7 @@
<devices>
<disk type='file' device='disk'>
<driver name='buslogic'/>
<source file='harddisk.vmdk'/>
<source file='[datastore] directory/harddisk.vmdk'/>
<target dev='sda' bus='scsi'/>
</disk>
</devices>

View File

@@ -9,5 +9,5 @@ scsi0.present = "true"
scsi0.virtualDev = "buslogic"
scsi0:0.present = "true"
scsi0:0.deviceType = "scsi-hardDisk"
scsi0:0.fileName = "harddisk.vmdk"
scsi0:0.fileName = "/vmfs/volumes/datastore/directory/harddisk.vmdk"
scsi0:0.writeThrough = "true"

View File

@@ -8,7 +8,7 @@
<devices>
<disk type='file' device='disk'>
<driver name='buslogic' cache='writethrough'/>
<source file='harddisk.vmdk'/>
<source file='[datastore] directory/harddisk.vmdk'/>
<target dev='sda' bus='scsi'/>
</disk>
</devices>

View File

@@ -7,5 +7,5 @@ memsize = "4"
numvcpus = "1"
serial0.present = "true"
serial0.fileType = "file"
serial0.fileName = "serial0.file"
serial0.fileName = "/vmfs/volumes/datastore/directory/serial0.file"
serial0.yieldOnMsrRead = "true"

View File

@@ -7,7 +7,7 @@
</os>
<devices>
<serial type='file'>
<source path='serial0.file'/>
<source path='[datastore] directory/serial0.file'/>
<target port='0'/>
</serial>
</devices>