Version: v0.9.0 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Mar 19, 2016 License: Apache-2.0, Apache-2.0 Imports: 4 Imported by: 0



Package ovf provides functionality to unmarshal and inspect the structure of an OVF file. It is not a complete implementation of the specification and is intended to be used to import virtual infrastructure into vSphere.

For a complete specification of the OVF standard, refer to: https://www.dmtf.org/sites/default/files/standards/documents/DSP0243_2.1.0.pdf



This section is empty.


This section is empty.


This section is empty.


type AnnotationSection

type AnnotationSection struct {

	Annotation string `xml:"Annotation"`

type CIMResourceAllocationSettingData

type CIMResourceAllocationSettingData struct {
	ElementName string `xml:"ElementName"`
	InstanceID  string `xml:"InstanceID"`

	ResourceType      *uint16 `xml:"ResourceType"`
	OtherResourceType *string `xml:"OtherResourceType"`
	ResourceSubType   *string `xml:"ResourceSubType"`

	AddressOnParent       *string  `xml:"AddressOnParent"`
	Address               *string  `xml:"Address"`
	AllocationUnits       *string  `xml:"AllocationUnits"`
	AutomaticAllocation   *bool    `xml:"AutomaticAllocation"`
	AutomaticDeallocation *bool    `xml:"AutomaticDeallocation"`
	Caption               *string  `xml:"Caption"`
	Connection            []string `xml:"Connection"`
	ConsumerVisibility    *uint16  `xml:"ConsumerVisibility"`
	Description           *string  `xml:"Description"`
	HostResource          []string `xml:"HostResource"`
	Limit                 *uint64  `xml:"Limit"`
	MappingBehavior       *uint    `xml:"MappingBehavior"`
	Parent                *string  `xml:"Parent"`
	PoolID                *string  `xml:"PoolID"`
	Reservation           *uint64  `xml:"Reservation"`
	VirtualQuantity       *uint    `xml:"VirtualQuantity"`
	VirtualQuantityUnits  *string  `xml:"VirtualQuantityUnits"`
	Weight                *uint    `xml:"Weight"`

type CIMVirtualSystemSettingData

type CIMVirtualSystemSettingData struct {
	ElementName string `xml:"ElementName"`
	InstanceID  string `xml:"InstanceID"`

	AutomaticRecoveryAction              *uint8   `xml:"AutomaticRecoveryAction"`
	AutomaticShutdownAction              *uint8   `xml:"AutomaticShutdownAction"`
	AutomaticStartupAction               *uint8   `xml:"AutomaticStartupAction"`
	AutomaticStartupActionDelay          *string  `xml:"AutomaticStartupActionDelay>Interval"`
	AutomaticStartupActionSequenceNumber *uint16  `xml:"AutomaticStartupActionSequenceNumber"`
	Caption                              *string  `xml:"Caption"`
	ConfigurationDataRoot                *string  `xml:"ConfigurationDataRoot"`
	ConfigurationFile                    *string  `xml:"ConfigurationFile"`
	ConfigurationID                      *string  `xml:"ConfigurationID"`
	CreationTime                         *string  `xml:"CreationTime"`
	Description                          *string  `xml:"Description"`
	LogDataRoot                          *string  `xml:"LogDataRoot"`
	Notes                                []string `xml:"Notes"`
	RecoveryFile                         *string  `xml:"RecoveryFile"`
	SnapshotDataRoot                     *string  `xml:"SnapshotDataRoot"`
	SuspendDataRoot                      *string  `xml:"SuspendDataRoot"`
	SwapFileDataRoot                     *string  `xml:"SwapFileDataRoot"`
	VirtualSystemIdentifier              *string  `xml:"VirtualSystemIdentifier"`
	VirtualSystemType                    *string  `xml:"VirtualSystemType"`

type Content

type Content struct {
	ID   string  `xml:"id,attr"`
	Info string  `xml:"Info"`
	Name *string `xml:"Name"`

type DeploymentOptionConfiguration

type DeploymentOptionConfiguration struct {
	ID      string `xml:"id,attr"`
	Default *bool  `xml:"default,attr"`

	Label       string `xml:"Label"`
	Description string `xml:"Description"`

type DeploymentOptionSection

type DeploymentOptionSection struct {

	Configuration []DeploymentOptionConfiguration `xml:"Configuration"`

type DiskSection

type DiskSection struct {

	Disks []VirtualDiskDesc `xml:"Disk"`

type Env

type Env struct {
	XMLName xml.Name `xml:"http://schemas.dmtf.org/ovf/environment/1 Environment"`
	ID      string   `xml:"id,attr"`
	EsxID   string   `xml:"http://www.vmware.com/schema/ovfenv esxId,attr"`

	Platform *PlatformSection `xml:"PlatformSection"`
	Property *PropertySection `xml:"PropertySection"`

func (Env) Marshal

func (e Env) Marshal() (string, error)

Marshal marshals Env to xml by using xml.Marshal.

func (Env) MarshalManual

func (e Env) MarshalManual() string

MarshalManual manually marshals Env to xml suitable for a vApp guest. It exists to overcome the lack of expressiveness in Go's XML namespaces.

type EnvProperty

type EnvProperty struct {
	Key   string `xml:"key,attr"`
	Value string `xml:"value,attr"`

type Envelope

type Envelope struct {
	References []File `xml:"References>File"`

	// Package level meta-data
	Annotation         *AnnotationSection         `xml:"AnnotationSection"`
	Product            *ProductSection            `xml:"ProductSection"`
	Network            *NetworkSection            `xml:"NetworkSection"`
	Disk               *DiskSection               `xml:"DiskSection"`
	OperatingSystem    *OperatingSystemSection    `xml:"OperatingSystemSection"`
	Eula               *EulaSection               `xml:"EulaSection"`
	VirtualHardware    *VirtualHardwareSection    `xml:"VirtualHardwareSection"`
	ResourceAllocation *ResourceAllocationSection `xml:"ResourceAllocationSection"`
	DeploymentOption   *DeploymentOptionSection   `xml:"DeploymentOptionSection"`

	// Content: A VirtualSystem or a VirtualSystemCollection
	VirtualSystem *VirtualSystem `xml:"VirtualSystem"`

func Unmarshal

func Unmarshal(r io.Reader) (*Envelope, error)

type EulaSection

type EulaSection struct {

	License string `xml:"License"`

type File

type File struct {
	ID          string  `xml:"id,attr"`
	Href        string  `xml:"href,attr"`
	Size        uint    `xml:"size,attr"`
	Compression *string `xml:"compression,attr"`
	ChunkSize   *int    `xml:"chunkSize,attr"`

type Network

type Network struct {
	Name string `xml:"name,attr"`

	Description string `xml:"Description"`

type NetworkSection

type NetworkSection struct {

	Networks []Network `xml:"Network"`

type OperatingSystemSection

type OperatingSystemSection struct {

	ID      uint16  `xml:"id,attr"`
	Version *string `xml:"version,attr"`
	OSType  *string `xml:"osType,attr"`

	Description *string `xml:"Description"`

type PlatformSection

type PlatformSection struct {
	Kind    string `xml:"Kind"`
	Version string `xml:"Version"`
	Vendor  string `xml:"Vendor"`
	Locale  string `xml:"Locale"`

type ProductSection

type ProductSection struct {

	Class    *string `xml:"class,attr"`
	Instance *string `xml:"instance,attr"`

	Product     string     `xml:"Product"`
	Vendor      string     `xml:"Vendor"`
	Version     string     `xml:"Version"`
	FullVersion string     `xml:"FullVersion"`
	ProductURL  string     `xml:"ProductUrl"`
	VendorURL   string     `xml:"VendorUrl"`
	AppURL      string     `xml:"AppUrl"`
	Property    []Property `xml:"Property"`

type Property

type Property struct {
	Key              string  `xml:"key,attr"`
	Type             string  `xml:"type,attr"`
	Qualifiers       *string `xml:"qualifiers,attr"`
	UserConfigurable *bool   `xml:"userConfigurable,attr"`
	Default          *string `xml:"value,attr"`
	Password         *bool   `xml:"password,attr"`

	Label       *string `xml:"Label"`
	Description *string `xml:"Description"`

	Values []PropertyConfigurationValue `xml:"Value"`

type PropertyConfigurationValue

type PropertyConfigurationValue struct {
	Value         string  `xml:"value,attr"`
	Configuration *string `xml:"configuration,attr"`

type PropertySection

type PropertySection struct {
	Properties []EnvProperty `xml:"Property"`

type ResourceAllocationSection

type ResourceAllocationSection struct {

	Item []ResourceAllocationSettingData `xml:"Item"`

type ResourceAllocationSettingData

type ResourceAllocationSettingData struct {

	Required      *bool   `xml:"required,attr"`
	Configuration *string `xml:"configuration,attr"`
	Bound         *string `xml:"bound,attr"`

type Section

type Section struct {
	Required *bool  `xml:"required,attr"`
	Info     string `xml:"Info"`

type VirtualDiskDesc

type VirtualDiskDesc struct {
	DiskID                  string  `xml:"diskId,attr"`
	FileRef                 *string `xml:"fileRef,attr"`
	Capacity                string  `xml:"capacity,attr"`
	CapacityAllocationUnits *string `xml:"capacityAllocationUnits,attr"`
	Format                  *string `xml:"format,attr"`
	PopulatedSize           *int    `xml:"populatedSize,attr"`
	ParentRef               *string `xml:"parentRef,attr"`

type VirtualHardwareSection

type VirtualHardwareSection struct {

	ID        *string `xml:"id,attr"`
	Transport *string `xml:"transport,attr"`

	System *VirtualSystemSettingData       `xml:"System"`
	Item   []ResourceAllocationSettingData `xml:"Item"`

type VirtualSystem

type VirtualSystem struct {

	Annotation      []AnnotationSection      `xml:"AnnotationSection"`
	Product         []ProductSection         `xml:"ProductSection"`
	OperatingSystem []OperatingSystemSection `xml:"OperatingSystemSection"`
	Eula            []EulaSection            `xml:"EulaSection"`
	VirtualHardware []VirtualHardwareSection `xml:"VirtualHardwareSection"`

type VirtualSystemSettingData

type VirtualSystemSettingData struct {

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL