alpha_omega 0.0.202 → 0.0.204
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/alpha_omega/deploy.rb +2 -1
- data/lib/alpha_omega/utils.rb +27 -6
- metadata +17 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.204
|
data/lib/alpha_omega/deploy.rb
CHANGED
@@ -2,6 +2,7 @@ $:.unshift File.expand_path(File.join(File.dirname(__FILE__),'..','..','lib'))
|
|
2
2
|
|
3
3
|
require 'benchmark'
|
4
4
|
require 'yaml'
|
5
|
+
require 'json'
|
5
6
|
require 'alpha_omega/deploy/scm'
|
6
7
|
require 'alpha_omega/deploy/strategy'
|
7
8
|
require 'alpha_omega/utils'
|
@@ -37,7 +38,7 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
|
|
37
38
|
_cset(:revision) { source.head }
|
38
39
|
|
39
40
|
_cset :default_shell, "/bin/bash"
|
40
|
-
_cset(:deploy_to) { "/
|
41
|
+
_cset(:deploy_to) { "/data/#{application}" }
|
41
42
|
|
42
43
|
_cset :root_user, "root"
|
43
44
|
_cset :root_group, "root"
|
data/lib/alpha_omega/utils.rb
CHANGED
@@ -80,8 +80,8 @@ module AlphaOmega
|
|
80
80
|
|
81
81
|
node_dna = { }
|
82
82
|
hosts =
|
83
|
-
|
84
|
-
n =
|
83
|
+
self.what_hosts pod do |task_name, remote_name, node|
|
84
|
+
n = self.node_defaults(node, pod_name, remote_name)
|
85
85
|
node_dna[remote_name] = {}
|
86
86
|
node_dna[remote_name].deep_merge!(n)
|
87
87
|
|
@@ -100,11 +100,11 @@ module AlphaOmega
|
|
100
100
|
end
|
101
101
|
|
102
102
|
config.task "#{task_name}.#{pod_name}.echo" do # task host.pod1.echo
|
103
|
-
puts "#{
|
103
|
+
puts "#{self.magic_prefix} #{remote_name}"
|
104
104
|
end
|
105
105
|
|
106
106
|
config.task "#{task_name}.#{pod_name}.yaml" do # task host.pod1.yaml
|
107
|
-
StringIO.new({ remote_name => n }.to_yaml).lines.to_a[1..-1].each {|l| puts "#{
|
107
|
+
StringIO.new({ remote_name => n }.to_yaml).lines.to_a[1..-1].each {|l| puts "#{self.magic_prefix} #{l}" }
|
108
108
|
end
|
109
109
|
|
110
110
|
%w(app echo yaml).each do |tsuffix|
|
@@ -116,7 +116,7 @@ module AlphaOmega
|
|
116
116
|
n
|
117
117
|
end
|
118
118
|
|
119
|
-
|
119
|
+
self.what_groups hosts do |task_name, nodes|
|
120
120
|
if task_name == "all"
|
121
121
|
# simulate all podXX all
|
122
122
|
%w(app echo yaml).each do |tsuffix|
|
@@ -179,7 +179,7 @@ module AlphaOmega
|
|
179
179
|
this_host = Socket.gethostname.chomp.split(".")[0]
|
180
180
|
dna_base = "#{node_home}/pods/#{$this_pod}/#{this_host}"
|
181
181
|
dna = File.exists?("#{dna_base}.yaml") ? YAML.load(File.read("#{dna_base}.yaml")) : JSON.load(File.read("#{dna_base}.json"))
|
182
|
-
this_node =
|
182
|
+
this_node = self.node_defaults(dna, $this_pod, this_host)
|
183
183
|
$this_host = this_node
|
184
184
|
|
185
185
|
((this_node["pods"] || []) + [$this_pod]).inject({}) do |pods, pod_name|
|
@@ -227,4 +227,25 @@ module AlphaOmega
|
|
227
227
|
|
228
228
|
cap_groups
|
229
229
|
end
|
230
|
+
|
231
|
+
def self.interesting (config, deploy, &node_filter)
|
232
|
+
config._cset :repository, deploy["repository"]
|
233
|
+
config._cset :application, deploy["application"]
|
234
|
+
|
235
|
+
config._cset :user, deploy["user"]
|
236
|
+
config._cset :group, deploy["group"]
|
237
|
+
|
238
|
+
config._cset :ruby_loader, "#{deploy["ruby_loader"]} #{deploy["app_ruby"]}"
|
239
|
+
|
240
|
+
# branches
|
241
|
+
config._cset :branch, self.what_branch(deploy["branches"] + [%r(#{deploy["branch_regex"]})])
|
242
|
+
|
243
|
+
# pods, hosts, groups
|
244
|
+
self.setup_pods config, (ENV['CHEF_PATH'] || deploy["chef_path"]), node_filter
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
def Deploy(config, deploy_yaml, &node_filter)
|
249
|
+
deploy = YAML.load_file(deploy_yaml)
|
250
|
+
AlphaOmega.interesting(config, deploy, node_filter)
|
230
251
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alpha_omega
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.204
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -12,6 +12,22 @@ bindir: bin
|
|
12
12
|
cert_chain: []
|
13
13
|
date: 2011-08-31 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: json
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ! '>='
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '0'
|
15
31
|
- !ruby/object:Gem::Dependency
|
16
32
|
name: grit
|
17
33
|
requirement: !ruby/object:Gem::Requirement
|