module Fog::Generators::Compute::VcloudDirector::ComposeCommon
Public Class Methods
new(configuration={})
click to toggle source
# File lib/fog/vcloud_director/generators/compute/compose_common.rb, line 7 def initialize(configuration={}) @configuration = configuration end
Private Instance Methods
build_source_items(xml)
click to toggle source
# File lib/fog/vcloud_director/generators/compute/compose_common.rb, line 59 def build_source_items(xml) vms = @configuration[:source_vms] vms.each do |vm| xml.SourcedItem { xml.Source(:name =>vm[:name], :href => vm[:href]) xml.VmGeneralParams { xml.Name vm[:name] xml.Description vm[:Description] if vm[:Description] xml.NeedsCustomization if vm[:NeedsCustomization] } if vm[:name] xml.InstantiationParams { if vm[:networks] xml.NetworkConnectionSection(:href => "#{vm[:href]}/networkConnectionSection/", :type => "application/vnd.vmware.vcloud.networkConnectionSection+xml", 'xmlns:ovf' => "http://schemas.dmtf.org/ovf/envelope/1", "ovf:required" => "false") { xml['ovf'].Info xml.PrimaryNetworkConnectionIndex 0 vm[:networks].each_with_index do |network, i| xml.NetworkConnection(:network => network[:networkName]) { xml.NetworkConnectionIndex i xml.IpAddress network[:IpAddress] if (network.key? :IpAddress) xml.ExternalIpAddress network[:ExternalIpAddress] if (network.key? :ExternalIpAddress) xml.IsConnected network[:IsConnected] xml.MACAddress network[:MACAddress] if (network.key? :MACAddress) xml.IpAddressAllocationMode network[:IpAddressAllocationMode] } end } end if customization = vm[:guest_customization] xml.GuestCustomizationSection(:xmlns => "http://www.vmware.com/vcloud/v1.5", 'xmlns:ovf' => "http://schemas.dmtf.org/ovf/envelope/1") { xml['ovf'].Info xml.Enabled (customization[:Enabled] || false) xml.ChangeSid customization[:ChangeSid] if (customization.key? :ChangeSid) xml.JoinDomainEnabled customization[:JoinDomainEnabled] if (customization.key? :JoinDomainEnabled) xml.UseOrgSettings customization[:UseOrgSettings] if (customization.key? :UseOrgSettings) xml.DomainName customization[:DomainName] if (customization.key? :DomainName) xml.DomainUserName customization[:DomainUserName] if (customization.key? :DomainUserName) xml.DomainUserPassword customization[:DomainUserPassword] if (customization.key? :DomainUserPassword) xml.MachineObjectOU customization[:MachineObjectOU] if (customization.key? :MachineObjectOU) xml.AdminPasswordEnabled customization[:AdminPasswordEnabled] if (customization.key? :AdminPasswordEnabled) xml.AdminPasswordAuto customization[:AdminPasswordAuto] if (customization.key? :AdminPasswordAuto) xml.AdminPassword customization[:AdminPassword] if (customization.key? :AdminPassword) xml.ResetPasswordRequired customization[:ResetPasswordRequired] if (customization.key? :ResetPasswordRequired) xml.CustomizationScript CGI::escapeHTML(customization[:CustomizationScript]).gsub(/\r/, " ") if (customization.key? :CustomizationScript) xml.ComputerName customization[:ComputerName] } end } xml.StorageProfile(:href => vm[:StorageProfileHref]) if (vm.key? :StorageProfileHref) } end if vms templates = @configuration[:source_templates] templates.each do |template| xml.SourcedItem { xml.Source(:href => template[:href]) } end if templates xml.AllEULAsAccepted (@configuration[:AllEULAsAccepted] || true) end
build_source_template(xml)
click to toggle source
# File lib/fog/vcloud_director/generators/compute/compose_common.rb, line 55 def build_source_template(xml) xml.Source(:href => @configuration[:Source]) end
build_vapp_instantiation_params(xml)
click to toggle source
# File lib/fog/vcloud_director/generators/compute/compose_common.rb, line 31 def build_vapp_instantiation_params(xml) xml.Description @configuration[:Description] if @configuration[:Description] vapp = @configuration[:InstantiationParams] if vapp xml.InstantiationParams { xml.DefaultStorageProfileSection { xml.StorageProfile vapp[:DefaultStorageProfile] } if (vapp.key? :DefaultStorageProfile) xml.NetworkConfigSection { xml['ovf'].Info vapp[:NetworkConfig].each do |network| xml.NetworkConfig(:networkName => network[:networkName]) { xml.Configuration { xml.ParentNetwork(:href => network[:networkHref]) xml.FenceMode network[:fenceMode] } } end if vapp[:NetworkConfig] } } end end
has_source_items?()
click to toggle source
# File lib/fog/vcloud_director/generators/compute/compose_common.rb, line 26 def has_source_items? (@configuration[:source_vms] && (@configuration[:source_vms].size > 0)) || (@configuration[:source_templates] && (@configuration[:source_templates].size > 0)) end
vapp_attrs()
click to toggle source
# File lib/fog/vcloud_director/generators/compute/compose_common.rb, line 13 def vapp_attrs attrs = { :xmlns => 'http://www.vmware.com/vcloud/v1.5', 'xmlns:ovf' => 'http://schemas.dmtf.org/ovf/envelope/1' } [:deploy, :powerOn, :name].each do |a| attrs[a] = @configuration[a] if @configuration.key?(a) end attrs end