Class: Floom::Master
Instance Attribute Summary
Attributes inherited from Client
#connection
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Client
#initialize, #reset_connection!, #to_s
Constructor Details
This class inherits a constructor from Floom::Client
Instance Method Details
#configurations ⇒ Object
6
7
8
|
# File 'lib/floom/client/master.rb', line 6
def configurations
connection.getConfigs.inject({}){ |hsh, (node, conf)| hsh[node] = Floom::Configuration.parse(conf) ; hsh }
end
|
30
31
32
|
# File 'lib/floom/client/master.rb', line 30
def configured? logical_node
configurations.keys.include? logical_node
end
|
#decommission(*logical_nodes) ⇒ Object
58
59
60
61
62
|
# File 'lib/floom/client/master.rb', line 58
def decommission(*logical_nodes)
logical_nodes.map do |logical_node|
perform_request(:decommission, logical_node)
end
end
|
#decommission_all ⇒ Object
64
65
66
|
# File 'lib/floom/client/master.rb', line 64
def decommission_all
decommission(*logical_nodes.select{ |node| mapped?(node) or configured?(node) })
end
|
#has_status?(logical_node) ⇒ Boolean
34
35
36
|
# File 'lib/floom/client/master.rb', line 34
def has_status? logical_node
statuses.keys.include? logical_node
end
|
#logical_nodes ⇒ Object
18
19
20
|
# File 'lib/floom/client/master.rb', line 18
def logical_nodes
(configurations.keys + mappings.values + statuses.keys).flatten.uniq
end
|
#map(physical_node, logical_node) ⇒ Object
43
44
45
|
# File 'lib/floom/client/master.rb', line 43
def map(physical_node, logical_node)
perform_request(:map, physical_node, logical_node)
end
|
#mapped?(logical_node) ⇒ Boolean
26
27
28
|
# File 'lib/floom/client/master.rb', line 26
def mapped? logical_node
mappings.values.include? logical_node
end
|
#mappings(physical_node = nil) ⇒ Object
10
11
12
|
# File 'lib/floom/client/master.rb', line 10
def mappings(physical_node = nil)
connection.getMappings(physical_node)
end
|
38
39
40
41
|
# File 'lib/floom/client/master.rb', line 38
def perform_request(*params)
req = Floom::Request.new(connection, *params).fetch
req.parse
end
|
#physical_nodes ⇒ Object
22
23
24
|
# File 'lib/floom/client/master.rb', line 22
def physical_nodes
mappings.keys
end
|
#purge(*logical_nodes) ⇒ Object
68
69
70
71
72
|
# File 'lib/floom/client/master.rb', line 68
def purge(*logical_nodes)
logical_nodes.map do |logical_node|
perform_request(:purge, logical_node)
end
end
|
#purge_all ⇒ Object
74
75
76
|
# File 'lib/floom/client/master.rb', line 74
def purge_all
purge(*logical_nodes.select{ |node| has_status? node })
end
|
#refresh(*logical_nodes) ⇒ Object
78
79
80
81
82
|
# File 'lib/floom/client/master.rb', line 78
def refresh(*logical_nodes)
logical_nodes.map do |logical_node|
perform_request(:refresh, logical_node)
end
end
|
#refresh_all ⇒ Object
84
85
86
|
# File 'lib/floom/client/master.rb', line 84
def refresh_all
refresh(*logical_nodes)
end
|
#statuses ⇒ Object
14
15
16
|
# File 'lib/floom/client/master.rb', line 14
def statuses
connection.getNodeStatuses.inject({}){ |hsh, (node, stat)| hsh[node] = Floom::Status.parse(stat) ; hsh }
end
|
100
101
102
103
104
|
# File 'lib/floom/client/master.rb', line 100
def unconfigure(*logical_nodes)
logical_nodes.map do |logical_node|
perform_request(:unconfig, logical_node)
end
end
|
#unmap(*logical_nodes) ⇒ Object
47
48
49
50
51
52
|
# File 'lib/floom/client/master.rb', line 47
def unmap(*logical_nodes)
logical_nodes.map do |logical_node|
physical_node = mappings.detect(->{ mappings.keys }){ |name, nodes| nodes.include? logical_node }.first
perform_request(:unmap, physical_node, logical_node)
end
end
|
#unmap_all ⇒ Object
54
55
56
|
# File 'lib/floom/client/master.rb', line 54
def unmap_all
unmap(*logical_nodes.select{ |node| mapped? node })
end
|