Class OpenNebula::VirtualNetwork

  1. OpenNebula/VirtualNetwork.rb
Pool VirtualNetworkPool ClusterPool ImagePool VirtualMachinePool HostPool UserPool XMLElement PoolElement XMLPool User VirtualNetwork Cluster Image VirtualMachine Host Enumerable Client ImageRepository Error OpenNebula dot/f_0.png

Methods

public class

  1. build_xml
  2. new

public instance

  1. addleases
  2. allocate
  3. delete
  4. info
  5. publish
  6. rmleases
  7. unpublish

Constants

VN_METHODS = { :info => "vn.info", :allocate => "vn.allocate", :publish => "vn.publish", :delete => "vn.delete", :addleases => "vn.addleases", :rmleases => "vn.rmleases" }  

Constants and Class Methods


Public class methods

build_xml (pe_id=nil)

Creates a VirtualNetwork description with just its identifier this method should be used to create plain VirtualNetwork objects. id the id of the network

Example:

vnet = VirtualNetwork.new(VirtualNetwork.build_xml(3),rpc_client)
[show source]
    # File OpenNebula/VirtualNetwork.rb, line 40
40:         def VirtualNetwork.build_xml(pe_id=nil)
41:             if pe_id
42:                 vn_xml = "<VNET><ID>#{pe_id}</ID></VNET>"
43:             else
44:                 vn_xml = "<VNET></VNET>"
45:             end
46: 
47:             XMLElement.build_xml(vn_xml, 'VNET')
48:         end
new (xml, client)

Class constructor

[show source]
    # File OpenNebula/VirtualNetwork.rb, line 51
51:         def initialize(xml, client)
52:             super(xml,client)
53: 
54:             @client = client
55:         end

Public instance methods

addleases (ip, mac = nil)

Adds a lease to the VirtualNetwork

[show source]
     # File OpenNebula/VirtualNetwork.rb, line 89
 89:         def addleases(ip, mac = nil)
 90:             return Error.new('ID not defined') if !@pe_id
 91: 
 92:             lease_template = "LEASES = [ IP = #{ip}"
 93:             lease_template << ", MAC = #{mac}" if mac
 94:             lease_template << " ]"
 95: 
 96:             rc = @client.call(VN_METHODS[:addleases], @pe_id, lease_template)
 97:             rc = nil if !OpenNebula.is_error?(rc)
 98: 
 99:             return rc
100:         end
allocate (description)

Allocates a new VirtualNetwork in OpenNebula

description A string containing the template of the VirtualNetwork.

[show source]
    # File OpenNebula/VirtualNetwork.rb, line 69
69:         def allocate(description)
70:             super(VN_METHODS[:allocate],description)
71:         end
delete ()

Deletes the VirtualNetwork

[show source]
    # File OpenNebula/VirtualNetwork.rb, line 84
84:         def delete()
85:             super(VN_METHODS[:delete])
86:         end
info ()

Retrieves the information of the given VirtualNetwork.

[show source]
    # File OpenNebula/VirtualNetwork.rb, line 62
62:         def info()
63:             super(VN_METHODS[:info], 'VNET')
64:         end
publish ()

Publishes the VirtualNetwork, to be used by other users

[show source]
    # File OpenNebula/VirtualNetwork.rb, line 74
74:         def publish
75:             set_publish(true)
76:         end
rmleases (ip)

Removes a lease from the VirtualNetwork

[show source]
     # File OpenNebula/VirtualNetwork.rb, line 103
103:         def rmleases(ip)
104:             return Error.new('ID not defined') if !@pe_id
105: 
106:             lease_template = "LEASES = [ IP = #{ip} ]"
107: 
108:             rc = @client.call(VN_METHODS[:rmleases], @pe_id, lease_template)
109:             rc = nil if !OpenNebula.is_error?(rc)
110: 
111:             return rc
112:         end
unpublish ()

Unplubishes the VirtualNetwork

[show source]
    # File OpenNebula/VirtualNetwork.rb, line 79
79:         def unpublish
80:             set_publish(false)
81:         end