alpha_omega 0.0.168 → 0.0.169
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/lib/alpha_omega/utils.rb +25 -23
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.169
|
data/lib/alpha_omega/utils.rb
CHANGED
@@ -2,13 +2,17 @@ require 'capistrano'
|
|
2
2
|
require 'yaml'
|
3
3
|
require 'deep_merge'
|
4
4
|
|
5
|
+
$this_pod = nil
|
6
|
+
$opsdb = nil
|
7
|
+
$pods_config = nil
|
8
|
+
|
5
9
|
module AlphaOmega
|
6
10
|
|
7
11
|
def self.magic_prefix
|
8
12
|
"eea914aaa8dde6fdae29242b1084a2b0415eefaf"
|
9
13
|
end
|
10
14
|
|
11
|
-
def self.node_defaults(node,
|
15
|
+
def self.node_defaults(node, env_pod, node_name)
|
12
16
|
node_name = node_name.split(".").first
|
13
17
|
|
14
18
|
node["node_name"] = node_name
|
@@ -22,10 +26,10 @@ module AlphaOmega
|
|
22
26
|
|
23
27
|
# enrich with pods config
|
24
28
|
node["env_pod"] = env_pod
|
25
|
-
node.deep_merge!(pods_config[env_pod])
|
29
|
+
node.deep_merge!($pods_config[env_pod])
|
26
30
|
|
27
31
|
# enrich with opsdb
|
28
|
-
node.deep_merge!(opsdb[env_pod][node_name]) if opsdb[env_pod].key? node_name
|
32
|
+
node.deep_merge!($opsdb[env_pod][node_name]) if $opsdb[env_pod].key? node_name
|
29
33
|
|
30
34
|
node["run_list"] = node["run_list"].clone # TODO without a clone, node.run_list also updates pods_config.env_pod.run_list
|
31
35
|
|
@@ -35,7 +39,7 @@ module AlphaOmega
|
|
35
39
|
node["p_name"] = "#{node["node_name"]}.#{node["env_pod"]}"
|
36
40
|
|
37
41
|
# check if managed
|
38
|
-
if this_pod != env_pod
|
42
|
+
if $this_pod != env_pod
|
39
43
|
node["q_name"] = "#{node["node_name"]}.#{node["env_pod"]}"
|
40
44
|
node["managed"] = true
|
41
45
|
else
|
@@ -51,17 +55,17 @@ module AlphaOmega
|
|
51
55
|
node["infra_domain"] = "#{node["env_dc"]}.#{node["dc_domain"]}"
|
52
56
|
end
|
53
57
|
|
54
|
-
node["run_list"].concat pods_config[env_pod]["run_list"] if pods_config[env_pod].key? "run_list"
|
58
|
+
node["run_list"].concat $pods_config[env_pod]["run_list"] if $pods_config[env_pod].key? "run_list"
|
55
59
|
|
56
60
|
node["cap_group"] << "all"
|
57
61
|
|
58
|
-
node["cap_group"].concat pods_config[env_pod]["cap_group"] if pods_config[env_pod].key? "cap_group"
|
62
|
+
node["cap_group"].concat $pods_config[env_pod]["cap_group"] if $pods_config[env_pod].key? "cap_group"
|
59
63
|
|
60
64
|
node
|
61
65
|
end
|
62
66
|
|
63
67
|
def self.default_pods_tasks
|
64
|
-
Proc.new do |config, pod_name, pod,
|
68
|
+
Proc.new do |config, pod_name, pod, this_node, &node_filter|
|
65
69
|
%w(app echo yaml).each do |tsuffix|
|
66
70
|
# world task accumulates all.* after tasks
|
67
71
|
config.task "world.#{tsuffix}" do # task world
|
@@ -76,7 +80,7 @@ module AlphaOmega
|
|
76
80
|
node_dna = { }
|
77
81
|
hosts =
|
78
82
|
AlphaOmega.what_hosts pod do |task_name, remote_name, node|
|
79
|
-
n = AlphaOmega.node_defaults(node,
|
83
|
+
n = AlphaOmega.node_defaults(node, pod_name, remote_name)
|
80
84
|
node_dna[remote_name] = {}
|
81
85
|
node_dna[remote_name].deep_merge!(n)
|
82
86
|
|
@@ -132,8 +136,8 @@ module AlphaOmega
|
|
132
136
|
end
|
133
137
|
|
134
138
|
def self.setup_pods (config, node_home, &node_filter)
|
135
|
-
self.what_pods(config, node_home) do |config, pod_name, pod,
|
136
|
-
self.default_pods_tasks.call(config, pod_name, pod,
|
139
|
+
self.what_pods(config, node_home) do |config, pod_name, pod, this_node|
|
140
|
+
self.default_pods_tasks.call(config, pod_name, pod, this_node, &node_filter)
|
137
141
|
end
|
138
142
|
end
|
139
143
|
|
@@ -154,33 +158,31 @@ module AlphaOmega
|
|
154
158
|
|
155
159
|
def self.what_pods (config, node_home)
|
156
160
|
# pods config
|
157
|
-
pods_config = YAML.load(File.read("#{node_home}/config/pods.yml"))
|
161
|
+
$pods_config = YAML.load(File.read("#{node_home}/config/pods.yml"))
|
158
162
|
|
159
163
|
# opsdb config
|
160
|
-
opsdb = Dir["#{node_home}/config/pod/*.yaml"].inject({}) do |acc, fname|
|
164
|
+
$opsdb = Dir["#{node_home}/config/pod/*.yaml"].inject({}) do |acc, fname|
|
161
165
|
env_pod = File.basename(File.basename(fname, ".yaml"), ".json")
|
162
166
|
acc[env_pod] = YAML.load(File.read(fname))
|
163
167
|
acc
|
164
168
|
end
|
165
169
|
|
166
|
-
|
167
|
-
|
168
|
-
this_pod = File.read("/etc/podname").strip
|
169
|
-
config.set :current_pod, this_pod
|
170
|
+
$this_pod = File.read("/etc/podname").strip
|
171
|
+
config.set :current_pod, $this_pod
|
170
172
|
|
171
173
|
this_host = Socket.gethostname.chomp.split(".")[0]
|
172
|
-
|
173
|
-
|
174
|
+
dna_base = "#{node_home}/pods/#{$this_pod}/#{this_host}"
|
175
|
+
dna = File.exists?("#{dna_base}.yaml") ? YAML.load(File.read("#{dna_base}.yaml")) : JSON.load(File.read("#{dna_base}.json"))
|
176
|
+
this_node = AlphaOmega.node_defaults(dna, $this_pod, this_host)
|
174
177
|
|
175
|
-
((this_node["pods"] || []) + [this_pod]).
|
178
|
+
((this_node["pods"] || []) + [$this_pod]).ineject{}) do |pods, pod_name|
|
176
179
|
pods[pod_name] = {
|
177
180
|
"nodes_specs" => [ "#{node_home}/pods/#{pod_name}/*.yaml", "#{node_home}/pods/#{pod_name}/*.json" ],
|
178
|
-
"node_suffix" => (pod_name == this_pod ? "" : ".#{pod_name}")
|
181
|
+
"node_suffix" => (pod_name == $this_pod ? "" : ".#{pod_name}")
|
179
182
|
}
|
180
|
-
yield config, pod_name, pods[pod_name],
|
183
|
+
yield config, pod_name, pods[pod_name], this_node
|
184
|
+
pods
|
181
185
|
end
|
182
|
-
|
183
|
-
pods
|
184
186
|
end
|
185
187
|
|
186
188
|
def self.what_hosts (pod)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alpha_omega
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 333
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 169
|
10
|
+
version: 0.0.169
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- David Nghiem
|