alpha_omega 0.0.168 → 0.0.169

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/VERSION +1 -1
  2. data/lib/alpha_omega/utils.rb +25 -23
  3. metadata +3 -3
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.168
1
+ 0.0.169
@@ -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, pods_config, opsdb, env_pod, this_pod, node_name)
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, pods_config, opsdb, this_pod, this_node, &node_filter|
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, pods_config, opsdb, pod_name, this_pod, remote_name)
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, pods_config, opsdb, this_pod, this_node|
136
- self.default_pods_tasks.call(config, pod_name, pod, pods_config, opsdb, this_pod, this_node, &node_filter)
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
- pods = { }
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
- n = File.exists?("#{node_home}/pods/#{this_pod}/#{this_host}.yaml") ? YAML.load(File.read("#{node_home}/pods/#{this_pod}/#{this_host}.yaml")) : JSON.load(File.read("#{node_home}/pods/#{this_pod}/#{this_host}.json"))
173
- this_node = AlphaOmega.node_defaults(n, pods_config, opsdb, this_pod, this_pod, this_host)
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]).each do |pod_name|
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], pods_config, opsdb, this_pod, this_node
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: 335
4
+ hash: 333
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 168
10
- version: 0.0.168
9
+ - 169
10
+ version: 0.0.169
11
11
  platform: ruby
12
12
  authors:
13
13
  - David Nghiem