Class: OpenNebula::Zone

Inherits:
PoolElement show all
Defined in:
lib/opennebula/zone.rb

Constant Summary collapse

ZONE_METHODS =

Constants and Class Methods

{
    :info           => "zone.info",
    :allocate       => "zone.allocate",
    :update         => "zone.update",
    :rename         => "zone.rename",
    :delete         => "zone.delete",
    :addserver      => "zone.addserver",
    :delserver      => "zone.delserver"
}

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from PoolElement

#id, #name, new_with_id, #to_str

Methods inherited from XMLElement

#[], #add_element, #attr, #delete_element, #each, #each_xpath, #element_xml, #has_elements?, #initialize_xml, #name, #retrieve_elements, #retrieve_xmlelements, #template_like_str, #template_str, #template_xml, #text, #to_hash, #to_xml, #xml_nil?

Constructor Details

#initialize(xml, client) ⇒ Zone

Class constructor



54
55
56
# File 'lib/opennebula/zone.rb', line 54

def initialize(xml, client)
    super(xml,client)
end

Class Method Details

.build_xml(pe_id = nil) ⇒ Object

Creates a Zone description with just its identifier this method should be used to create plain Zone objects. Example:

zone = Zone.new(Zone.build_xml(3),rpc_client)

Parameters:

  • id (Integer)

    the id of the Zone



43
44
45
46
47
48
49
50
51
# File 'lib/opennebula/zone.rb', line 43

def Zone.build_xml(pe_id=nil)
    if pe_id
        zone_xml = "<ZONE><ID>#{pe_id}</ID></ZONE>"
    else
        zone_xml = "<ZONE></ZONE>"
    end

    XMLElement.build_xml(zone_xml,'ZONE')
end

Instance Method Details

#add_servers(servers) ⇒ nil, OpenNebula::Error

Adds servers to this Zone

Parameters:

  • name (String)

    Template with zone servers SERVER = [ NAME = “<server_name>”, ENDPOINT = “<rpc_ep>” ]

Returns:



116
117
118
# File 'lib/opennebula/zone.rb', line 116

def add_servers(servers)
    return call(ZONE_METHODS[:addserver], @pe_id, servers)
end

#allocate(description) ⇒ nil, OpenNebula::Error

Allocates a new Zone in OpenNebula

Parameters:

  • description (String)

    The template of the Zone.

Returns:



76
77
78
# File 'lib/opennebula/zone.rb', line 76

def allocate(description)
    super(ZONE_METHODS[:allocate], description)
end

#deletenil, OpenNebula::Error

Deletes the Zone

Returns:



95
96
97
# File 'lib/opennebula/zone.rb', line 95

def delete()
    super(ZONE_METHODS[:delete])
end

#delete_servers(server_id) ⇒ nil, OpenNebula::Error

Delete servers from this Zone

Parameters:

  • id (Int)

    Server ID

Returns:



126
127
128
# File 'lib/opennebula/zone.rb', line 126

def delete_servers(server_id)
    return call(ZONE_METHODS[:delserver], @pe_id, server_id)
end

#infonil, OpenNebula::Error Also known as: info!

Retrieves the information of the given Zone.

Returns:



65
66
67
# File 'lib/opennebula/zone.rb', line 65

def info()
    super(ZONE_METHODS[:info], 'ZONE')
end

#rename(name) ⇒ nil, OpenNebula::Error

Renames this Zone

Parameters:

  • name (String)

    New name for the Zone.

Returns:



105
106
107
# File 'lib/opennebula/zone.rb', line 105

def rename(name)
    return call(ZONE_METHODS[:rename], @pe_id, name)
end

#update(new_template = nil, append = false) ⇒ nil, OpenNebula::Error

Replaces the template contents

Parameters:

  • new_template (String) (defaults to: nil)

    New template contents

  • append (true, false) (defaults to: false)

    True to append new attributes instead of replace the whole template

Returns:



88
89
90
# File 'lib/opennebula/zone.rb', line 88

def update(new_template=nil, append=false)
    super(ZONE_METHODS[:update], new_template, append ? 1 : 0)
end