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.
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