Class: OpenNebula::DocumentPool

Inherits:
Pool show all
Defined in:
OpenNebula/DocumentPool.rb

Overview

All subclasses must define the DOCUMENT_TYPE constant and the factory method.

Examples:

require 'OpenNebula/DocumentPool'

module OpenNebula
    class CustomObjectPool < DocumentPool

        DOCUMENT_TYPE = 400

        def factory(element_xml)
            OpenNebula::CustomObject.new(element_xml, @client)
        end
    end
end

Direct Known Subclasses

DocumentPoolJSON

Constant Summary

DOCUMENT_POOL_METHODS =

Constants and Class attribute accessors

{
    :info => "documentpool.info"
}

Constants inherited from Pool

Pool::INFO_ALL, Pool::INFO_GROUP, Pool::INFO_MINE

Instance Method Summary (collapse)

Methods inherited from Pool

#each, #to_str

Methods inherited from XMLPool

#each_element

Methods inherited from XMLElement

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

Constructor Details

- (DocumentPool) initialize(client, user_id = -1))

Class constructor

Parameters:



58
59
60
61
62
# File 'OpenNebula/DocumentPool.rb', line 58

def initialize(client, user_id=-1)
    super('DOCUMENT_POOL','DOCUMENT',client)

    @user_id  = user_id
end

Instance Method Details

- (Object) document_type



93
94
95
# File 'OpenNebula/DocumentPool.rb', line 93

def document_type
    self.class::DOCUMENT_TYPE
end

- (nil, OpenNebula::Error) info(*args)

Retrieves all or part of the Documents in the pool.

Returns:



72
73
74
75
76
77
78
79
# File 'OpenNebula/DocumentPool.rb', line 72

def info(*args)
    case args.size
        when 0
            info_filter(DOCUMENT_POOL_METHODS[:info],@user_id,-1,-1, document_type)
        when 3
            info_filter(DOCUMENT_POOL_METHODS[:info],args[0],args[1],args[2], document_type)
    end
end

- (Object) info_all



81
82
83
# File 'OpenNebula/DocumentPool.rb', line 81

def info_all()
    return super(DOCUMENT_POOL_METHODS[:info], document_type)
end

- (Object) info_group



89
90
91
# File 'OpenNebula/DocumentPool.rb', line 89

def info_group()
    return super(DOCUMENT_POOL_METHODS[:info], document_type)
end

- (Object) info_mine



85
86
87
# File 'OpenNebula/DocumentPool.rb', line 85

def info_mine()
    return super(DOCUMENT_POOL_METHODS[:info], document_type)
end