Sha256: 8524544fd1075db31e6a4956f8f9706f9f888989b5d9e979f425c6956f5b8fbb

Contents?: true

Size: 1.34 KB

Versions: 56

Compression:

Stored size: 1.34 KB

Contents

require 'fog'                                                               

#
# Create the connection to the XenServer host
#
xenserver = Fog::Compute.new({
  :provider           => 'XenServer',
  :xenserver_url      => '1.2.3.4',
  :xenserver_username => 'root',
  :xenserver_password => 'secret',
})

# We have a bonded interface in XenServer, bond0 and
# we want to add the VLANs there.
# Note the VLAN ID -1, it is important since you
# will problably have many PIFs with device == bond0
# but we need the one without a proper VLAN ID
#
bondmaster_pif = xenserver.pifs.find do |pif| 
  pif.vlan == "-1" and pif.device == "bond0"
end

# Another valid way of finding a PIF, without bonding
# pif = xenserver.pifs.find { |pif| pif.physical and pif.device == 'eth0' }

# We want to create these new VLANs
vlans = [
  { "name" => "VLAN 44", "vlanid" => 44},
  { "name" => "VLAN 55", "vlanid" => 55}
]


vlans.each do |vlan|
  # Do not create duplicated networks
  if xenserver.networks.find { |n| n.name == vlan['name'] }
    puts "Network #{vlan['name']} available, skipping"
    next
  end

  puts "Craeting Network #{vlan['name']}, VLAN ID #{vlan['vlanid']}"
  network = xenserver.networks.create :name => vlan['name']
  xenserver.vlans.create :tag => vlan['vlanid'],
                         :network => network,
                         :pif => bondmaster_pif
end

Version data entries

56 entries across 56 versions & 4 rubygems

Version Path
fog-maestrodev-1.20.0.20140305101839 lib/fog/xenserver/examples/networks-and-vlans.rb
fog-maestrodev-1.20.0.20140305101305 lib/fog/xenserver/examples/networks-and-vlans.rb
fog-maestrodev-1.19.0.20140212012611 lib/fog/xenserver/examples/networks-and-vlans.rb
fog-1.20.0 lib/fog/xenserver/examples/networks-and-vlans.rb
fog-maestrodev-1.19.0.20140110004459 lib/fog/xenserver/examples/networks-and-vlans.rb
fog-maestrodev-1.19.0.20140110003812 lib/fog/xenserver/examples/networks-and-vlans.rb
fog-maestrodev-1.19.0.20140109202555 lib/fog/xenserver/examples/networks-and-vlans.rb
fog-maestrodev-1.19.0.20140107192102 lib/fog/xenserver/examples/networks-and-vlans.rb
fog-maestrodev-1.19.0.20140107142106 lib/fog/xenserver/examples/networks-and-vlans.rb
fog-maestrodev-1.19.0.20131219203941 lib/fog/xenserver/examples/networks-and-vlans.rb
fog-maestrodev-1.18.0.20131219193542 lib/fog/xenserver/examples/networks-and-vlans.rb
fog-1.19.0 lib/fog/xenserver/examples/networks-and-vlans.rb
fog-maestrodev-1.18.0.20131219033443 lib/fog/xenserver/examples/networks-and-vlans.rb
fog-maestrodev-1.18.0.20131219032002 lib/fog/xenserver/examples/networks-and-vlans.rb
fog-maestrodev-1.18.0.20131219030716 lib/fog/xenserver/examples/networks-and-vlans.rb
fog-maestrodev-1.18.0.20131219022322 lib/fog/xenserver/examples/networks-and-vlans.rb
fog-maestrodev-1.18.0.20131218202447 lib/fog/xenserver/examples/networks-and-vlans.rb
fog-maestrodev-1.18.0.20131209091424 lib/fog/xenserver/examples/networks-and-vlans.rb
fog-maestrodev-1.18.0.20131209090811 lib/fog/xenserver/examples/networks-and-vlans.rb
fog-maestrodev-1.18.0.20131206115947 lib/fog/xenserver/examples/networks-and-vlans.rb