alpha_omega 0.0.51 → 0.0.52

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.
@@ -27,19 +27,44 @@ module AlphaOmega
27
27
  end
28
28
  end
29
29
 
30
- def self.what_hosts (nodes_spec)
30
+ def self.what_pods (node_home)
31
+ pods = {
32
+ "default" => {
33
+ "nodes_spec" => "#{node_home}/nodes/*.json",
34
+ "node_suffix" => ""
35
+ }
36
+ }
37
+
38
+ yield "default", pods["default"]
39
+
40
+ this_host = Socket.gethostname.chomp.split(".")[0]
41
+ this_node = JSON.load(File.read("#{node_home}/nodes/#{this_host}.json"))
42
+ (this_node["pods"] || []).each do |pod_name|
43
+ pods[pod_name] = {
44
+ "nodes_spec" => "#{node_home}/pods/#{pod_name}/*.json",
45
+ "node_suffix" => ".#{pod_name}"
46
+ }
47
+
48
+ yield pod_name, pods[pod_name]
49
+ end
50
+
51
+ pods
52
+ end
53
+
54
+ def self.what_hosts (pod)
31
55
  # load all the nodes and define cap tasks
32
56
  nodes = {}
33
57
 
34
- Dir[nodes_spec].each do |fname|
35
- nm_node = File.basename(fname, ".json")
58
+ Dir[pod["node_spec"]].each do |fname|
59
+ node_name = File.basename(fname, ".json")
36
60
 
37
61
  node = JSON.parse(IO.read(fname))
38
- node[:node_name] = nm_node
62
+ node["node_name"] = node_name
63
+ node["pod_context"] = pod
39
64
 
40
- nodes[nm_node] = node
65
+ nodes[node_name] = node
41
66
 
42
- yield node if node[:node_name] && node["public_ip"] # TODO is the :node_name test necessary?
67
+ yield node_name, "#{node_name}#{pod["node_suffix"]}", node unless node["virtual"]
43
68
  end
44
69
 
45
70
  nodes
@@ -50,19 +75,16 @@ module AlphaOmega
50
75
  # generalize groups
51
76
  cap_groups = {}
52
77
 
53
- nodes.each do |nm_node, node|
54
- %w(chef_group cap_group).each do |nm_group| # TODO get rid of chef_group
55
- if node.member?(nm_group) && !node["ignore"]
56
- node[nm_group].each do |g|
57
- cap_groups[g] ||= {}
58
- cap_groups[g][nm_node] = node
59
- end
60
- end
78
+ nodes.each do |node_name, node|
79
+ remote_name = "#{node_name}#{node["pod_context"]["node_suffix"]}"
80
+ node["cap_group"].each do |g|
81
+ cap_groups[g] ||= {}
82
+ cap_groups[g][remote_name] = node
61
83
  end
62
84
  end
63
85
 
64
- cap_groups.each do |nm_group, group|
65
- yield nm_group, group
86
+ cap_groups.each do |group_name, nodes|
87
+ yield group_name, nodes
66
88
  end
67
89
 
68
90
  cap_groups
@@ -1,3 +1,3 @@
1
1
  module AlphaOmega
2
- Version = "0.0.51"
2
+ Version = "0.0.52"
3
3
  end
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: 121
5
- prerelease: false
4
+ hash: 119
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 51
10
- version: 0.0.51
9
+ - 52
10
+ version: 0.0.52
11
11
  platform: ruby
12
12
  authors:
13
13
  - David Nghiem
@@ -16,8 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-08-31 00:00:00 -07:00
20
- default_executable:
19
+ date: 2011-08-31 00:00:00 Z
21
20
  dependencies:
22
21
  - !ruby/object:Gem::Dependency
23
22
  name: grit
@@ -118,28 +117,27 @@ files:
118
117
  - README.mkd
119
118
  - Procfile.rb
120
119
  - libexec/compare
121
- - libexec/deploy
122
- - libexec/major
123
- - libexec/patch
124
120
  - libexec/rollback
125
121
  - libexec/shell
122
+ - libexec/major
123
+ - libexec/patch
124
+ - libexec/deploy
126
125
  - libexec/stage
127
- - lib/alpha_omega/deploy/dependencies.rb
128
- - lib/alpha_omega/deploy/local_dependency.rb
126
+ - lib/alpha_omega/version.rb
127
+ - lib/alpha_omega/deploy.rb
128
+ - lib/alpha_omega/utils.rb
129
129
  - lib/alpha_omega/deploy/remote_dependency.rb
130
- - lib/alpha_omega/deploy/scm/base.rb
131
- - lib/alpha_omega/deploy/scm/git.rb
130
+ - lib/alpha_omega/deploy/strategy.rb
131
+ - lib/alpha_omega/deploy/dependencies.rb
132
132
  - lib/alpha_omega/deploy/scm.rb
133
+ - lib/alpha_omega/deploy/strategy/remote.rb
133
134
  - lib/alpha_omega/deploy/strategy/base.rb
134
135
  - lib/alpha_omega/deploy/strategy/checkout.rb
135
- - lib/alpha_omega/deploy/strategy/remote.rb
136
- - lib/alpha_omega/deploy/strategy.rb
137
136
  - lib/alpha_omega/deploy/templates/maintenance.rhtml
138
- - lib/alpha_omega/deploy.rb
139
- - lib/alpha_omega/utils.rb
140
- - lib/alpha_omega/version.rb
137
+ - lib/alpha_omega/deploy/local_dependency.rb
138
+ - lib/alpha_omega/deploy/scm/git.rb
139
+ - lib/alpha_omega/deploy/scm/base.rb
141
140
  - bin/deploy
142
- has_rdoc: true
143
141
  homepage: https://github.com/HeSYINUvSBZfxqA/alpha_omega
144
142
  licenses: []
145
143
 
@@ -169,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
169
167
  requirements: []
170
168
 
171
169
  rubyforge_project:
172
- rubygems_version: 1.3.7
170
+ rubygems_version: 1.8.10
173
171
  signing_key:
174
172
  specification_version: 3
175
173
  summary: alpha_omega capistrano recipes