Module: Inprovise::Infrastructure
- Defined in:
- lib/inprovise/infra.rb
Defined Under Namespace
Classes: Group, Node, Target
Class Method Summary
collapse
Class Method Details
.deregister(tgt) ⇒ Object
47
48
49
50
51
52
|
# File 'lib/inprovise/infra.rb', line 47
def deregister(tgt)
targets.synchronize do
raise ArgumentError, "Invalid infrastructure target [#{tgt.to_s}]" unless targets.delete(Target === tgt ? tgt.name : tgt.to_s)
targets.each_value {|t| t.remove_target(tgt) }
end
end
|
.find(name) ⇒ Object
21
22
23
24
25
26
|
# File 'lib/inprovise/infra.rb', line 21
def find(name)
return name if name.is_a?(Target)
targets.synchronize do
return targets[name]
end
end
|
.init(path) ⇒ Object
62
63
64
|
# File 'lib/inprovise/infra.rb', line 62
def init(path)
File.open(path, 'w') {|f| f << JSON.pretty_generate([]) }
end
|
.list(type = Target) ⇒ Object
34
35
36
37
38
|
# File 'lib/inprovise/infra.rb', line 34
def list(type=Target)
targets.synchronize do
targets.values.select {|t| type === t}
end
end
|
.load ⇒ Object
66
67
68
69
70
|
# File 'lib/inprovise/infra.rb', line 66
def load
targets.synchronize do
JSON.load(IO.read(Inprovise.infra)) if File.readable?(Inprovise.infra)
end
end
|
.names ⇒ Object
28
29
30
31
32
|
# File 'lib/inprovise/infra.rb', line 28
def names
targets.synchronize do
targets.keys.sort
end
end
|
.register(tgt) ⇒ Object
40
41
42
43
44
45
|
# File 'lib/inprovise/infra.rb', line 40
def register(tgt)
targets.synchronize do
raise ArgumentError, "Existing [#{targets[tgt.name].to_s}] found" if targets.has_key?(tgt.name)
targets[tgt.name] = tgt
end
end
|
.save ⇒ Object
54
55
56
57
58
59
60
|
# File 'lib/inprovise/infra.rb', line 54
def save
targets.synchronize do
data = []
targets.each_value {|t| t.is_a?(Node) ? data.insert(0,t) : data.push(t) }
File.open(Inprovise.infra, 'w') {|f| f << JSON.pretty_generate(data) }
end
end
|
.targets ⇒ Object
16
17
18
|
# File 'lib/inprovise/infra.rb', line 16
def targets
@targets ||= Hash.new.extend(MonitorMixin)
end
|