alpha_omega 0.0.51 → 0.0.52

Sign up to get free protection for your applications and to get access to all the features.
@@ -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