ovf.go 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. // Copyright 2019 Yunion
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. package esxi
  15. var ovfTemplate = `<?xml version="1.0" encoding="UTF-8"?>
  16. <Envelope xmlns="http://schemas.dmtf.org/ovf/envelope/1"
  17. xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"
  18. xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common"
  19. xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData"
  20. xmlns:vmw="http://www.vmware.com/schema/ovf"
  21. xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData"
  22. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  23. <References>
  24. <File ovf:href="{{ .Name }}" ovf:id="file1" ovf:size="{{ .Size }}"/>
  25. </References>
  26. <DiskSection>
  27. <Info>Virtual disk information</Info>
  28. <Disk ovf:capacity="{{ .Capacity }}" ovf:capacityAllocationUnits="byte" ovf:diskId="vmdisk1" ovf:fileRef="file1" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" ovf:populatedSize="0"/>
  29. </DiskSection>
  30. <VirtualSystem ovf:id="{{ .ImportName }}">
  31. <Info>A virtual machine</Info>
  32. <Name>{{ .ImportName }}</Name>
  33. <OperatingSystemSection ovf:id="100" vmw:osType="other26xLinux64Guest">
  34. <Info>The kind of installed guest operating system</Info>
  35. </OperatingSystemSection>
  36. <VirtualHardwareSection>
  37. <Info>Virtual hardware requirements</Info>
  38. <System>
  39. <vssd:ElementName>Virtual Hardware Family</vssd:ElementName>
  40. <vssd:InstanceID>0</vssd:InstanceID>
  41. <vssd:VirtualSystemIdentifier>{{ .ImportName }}</vssd:VirtualSystemIdentifier>
  42. <vssd:VirtualSystemType>vmx-07</vssd:VirtualSystemType>
  43. </System>
  44. <Item>
  45. <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>
  46. <rasd:Description>Number of Virtual CPUs</rasd:Description>
  47. <rasd:ElementName>1 virtual CPU(s)</rasd:ElementName>
  48. <rasd:InstanceID>1</rasd:InstanceID>
  49. <rasd:ResourceType>3</rasd:ResourceType>
  50. <rasd:VirtualQuantity>1</rasd:VirtualQuantity>
  51. </Item>
  52. <Item>
  53. <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>
  54. <rasd:Description>Memory Size</rasd:Description>
  55. <rasd:ElementName>1024MB of memory</rasd:ElementName>
  56. <rasd:InstanceID>2</rasd:InstanceID>
  57. <rasd:ResourceType>4</rasd:ResourceType>
  58. <rasd:VirtualQuantity>1024</rasd:VirtualQuantity>
  59. </Item>
  60. <Item>
  61. <rasd:Address>0</rasd:Address>
  62. <rasd:Description>SCSI Controller</rasd:Description>
  63. <rasd:ElementName>SCSI Controller 0</rasd:ElementName>
  64. <rasd:InstanceID>3</rasd:InstanceID>
  65. <rasd:ResourceSubType>VirtualSCSI</rasd:ResourceSubType>
  66. <rasd:ResourceType>6</rasd:ResourceType>
  67. </Item>
  68. <Item>
  69. <rasd:AddressOnParent>0</rasd:AddressOnParent>
  70. <rasd:ElementName>Hard Disk 1</rasd:ElementName>
  71. <rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource>
  72. <rasd:InstanceID>9</rasd:InstanceID>
  73. <rasd:Parent>3</rasd:Parent>
  74. <rasd:ResourceType>17</rasd:ResourceType>
  75. <vmw:Config ovf:required="false" vmw:key="backing.writeThrough" vmw:value="false"/>
  76. </Item>
  77. </VirtualHardwareSection>
  78. </VirtualSystem>
  79. </Envelope>`