alpha_omega 1.0.1 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.1
1
+ 1.1.1
@@ -6,7 +6,6 @@ $this_pod = nil
6
6
  $this_host = nil
7
7
  $opsdb = nil
8
8
  $pods_config = nil
9
- $magic_prefix = "eea914aaa8dde6fdae29242b1084a2b0415eefaf"
10
9
 
11
10
  module AlphaOmega
12
11
  def self.node_defaults(node, env_pod, node_name)
@@ -61,11 +60,8 @@ module AlphaOmega
61
60
 
62
61
  def self.default_pods_tasks
63
62
  Proc.new do |config, pod_name, pod, this_node, &node_filter|
64
- %w(app echo yaml).each do |tsuffix|
65
- # each pod task sets the pod context for host/group tasks
66
- config.task "#{pod_name}.#{tsuffix}" do # task pod1
67
- set :current_pod, pod_name
68
- end
63
+ config.task "#{pod_name}" do # task pod1
64
+ set :current_pod, pod_name
69
65
  end
70
66
 
71
67
  node_dna = { }
@@ -79,7 +75,7 @@ module AlphaOmega
79
75
  next nil unless cap_roles
80
76
  config.set :dna, node_dna[remote_name]
81
77
 
82
- config.task "#{task_name}.#{pod_name}.app" do # task host.pod1.app
78
+ config.task "#{task_name}.#{pod_name}" do # task host.pod1
83
79
  cap_roles.each do |cap_role, cap_preds|
84
80
  if $this_host["local_pods"] && $this_host["local_pods"].member?(node["env_pod"])
85
81
  role cap_role, node["node_name"], cap_preds
@@ -89,35 +85,20 @@ module AlphaOmega
89
85
  end
90
86
  end
91
87
 
92
- config.task "#{task_name}.#{pod_name}.echo" do # task host.pod1.echo
93
- puts "#{$magic_prefix} #{remote_name}"
94
- end
95
-
96
- config.task "#{task_name}.#{pod_name}.yaml" do # task host.pod1.yaml
97
- StringIO.new({ remote_name => n }.to_yaml).lines.to_a[1..-1].each {|l| puts "#{$magic_prefix} #{l}" }
98
- end
99
-
100
- %w(app echo yaml).each do |tsuffix|
101
- config.task "#{task_name}.#{tsuffix}" do # task host -> host.current_pod
102
- config.after "#{task_name}.#{tsuffix}", "#{task_name}.#{current_pod}.#{tsuffix}"
103
- end
88
+ config.task "#{task_name}" do # task host -> host.current_pod
89
+ config.after "#{task_name}", "#{task_name}.#{current_pod}"
104
90
  end
105
91
 
106
92
  n
107
93
  end
108
94
 
109
95
  self.what_groups hosts do |task_name, nodes|
110
- %w(app echo yaml).each do |tsuffix|
111
- config.task "#{task_name}.#{pod_name}.#{tsuffix}" do
112
- end
113
-
114
- nodes.keys.sort.each do |remote_name|
115
- config.after "#{task_name}.#{pod_name}.#{tsuffix}", "#{remote_name}.#{tsuffix}"
116
- end
96
+ nodes.keys.sort.each do |remote_name|
97
+ config.after "#{task_name}.#{pod_name}", "#{remote_name}"
98
+ end
117
99
 
118
- config.task "#{task_name}.#{tsuffix}" do
119
- config.after "#{task_name}.#{tsuffix}", "#{task_name}.#{current_pod}.#{tsuffix}"
120
- end
100
+ config.task "#{task_name}" do
101
+ config.after "#{task_name}", "#{task_name}.#{current_pod}"
121
102
  end
122
103
  end
123
104
  end
data/libexec/build CHANGED
@@ -1,199 +1,30 @@
1
- #!/bin/bash -e
1
+ #!/bin/bash
2
2
 
3
- export LOCAL_ONLY=
3
+ #/ NAME
4
+ #/ build-gem -- upload the latest (timestamp) rubygem to rubygems.org
5
+ #/
6
+ #/ SYNOPSIS
7
+ #/ build gem -n gem_name
4
8
 
5
- case "$(basename $0)" in
6
- invoke)
7
- export COMMAND="$1"; shift
9
+ # figure out the project root under which bin, lib live
10
+ shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
8
11
 
9
- if [[ -n $1 ]]; then
10
- set -- $(for a in "$@"; do echo $a.app; done)
11
- fi
12
+ # load a jason bourne library
13
+ source "$shome/bin/_treadstone"
12
14
 
13
- tmp_invoke=$(mktemp -t XXXXXXXXX)
14
- bundle exec cap "$@" invoke 2>&1 | perl -pe 's{.\[\d+m}{}g' | perl -ne 'm{^\s*\*+\s*\[(out|err)\s*::\s*([^]]+)\] ?(.*)} && print "$1 $2 $3\n"' > $tmp_invoke 2>&1
15
+ # define command line options:
16
+ DEFINE_string 'name' "$(basename "$shome")" 'name of gem' 'n'
15
17
 
16
- cat $tmp_invoke | awk '{print $2}' | sort -u | while read -r nm_host; do
17
- egrep "^(out|err) $nm_host" $tmp_invoke || true
18
- echo
19
- done
20
- rm -f $tmp_invoke
21
- ;;
22
- *)
23
- if [[ -n $1 ]]; then
24
- set -- $(for a in "$@"; do echo $a; done)
25
- fi
18
+ # entry point
19
+ function main {
20
+ local pth_gemspec="$shome/$FLAGS_name.gemspec"
21
+ if [[ ! -e "$pth_gemspec" ]]; then
22
+ logger_fatal "could not find gemspec $pth_gemspec"
23
+ exit 1
24
+ fi
26
25
 
27
- case "$(basename $0)" in
28
- debug)
29
- LOCAL_ONLY=true
30
- if [[ -z $1 ]]; then
31
- set "world"
32
- fi
33
-
34
- if [[ -n $1 ]]; then
35
- cap $(for a in "$@"; do echo $a.echo; done)
36
- fi
37
- ;;
38
-
39
- hosts)
40
- LOCAL_ONLY=true
41
- {
42
- if [[ -n $1 ]]; then
43
- cap $(for a in "$@"; do echo $a.echo; done)
44
- fi
45
- } 2>&1 | grep eea914aaa8dde6fdae29242b1084a2b0415eefaf | awk '{print $NF}' | sort -u
46
- ;;
47
-
48
- dna)
49
- LOCAL_ONLY=true
50
- {
51
- echo "eea914aaa8dde6fdae29242b1084a2b0415eefaf ---"
52
- if [[ -n $1 ]]; then
53
- cap $(for a in "$@"; do echo $a.yaml; done)
54
- fi
55
- } 2>&1 | grep eea914aaa8dde6fdae29242b1084a2b0415eefaf | sed 's#eea914aaa8dde6fdae29242b1084a2b0415eefaf ##'
56
- ;;
57
-
58
- task)
59
- if [[ -n $1 ]]; then
60
- nm_task=$1; shift
61
- set -- $(for a in "$@"; do echo $a.app; done)
62
- fi
63
- bundle exec cap "$@" deploy:lock_migrate deploy:migrate "$nm_task"
64
- ;;
65
-
66
- *)
67
- if [[ -n $1 ]]; then
68
- set -- $(for a in "$@"; do echo $a.app; done)
69
- fi
70
- case "$(basename $0)" in
71
- deploy)
72
- bundle exec cap "$@" deploy:lock deploy
73
- ;;
74
-
75
- release)
76
- bundle exec cap "$@" deploy:lock deploy
77
- ;;
78
-
79
- stage)
80
- bundle exec cap "$@" deploy:lock deploy:update_code deploy:symlink_next
81
- ;;
82
-
83
- restart)
84
- bundle exec cap "$@" deploy:lock deploy:restart
85
- ;;
86
-
87
- config)
88
- bundle exec cap "$@" deploy:lock deploy:config
89
- ;;
90
-
91
- build)
92
- bundle exec cap "$@" deploy:lock deploy:build
93
- ;;
94
-
95
- dist)
96
- bundle exec cap "$@" deploy:lock deploy:dist
97
- ;;
98
-
99
- activate)
100
- bundle exec cap "$@" deploy:lock deploy:symlink deploy:restart
101
- ;;
102
-
103
- rollback)
104
- bundle exec cap "$@" deploy:lock deploy:rollback
105
- ;;
106
-
107
- check)
108
- bundle exec cap "$@" deploy:lock deploy:check
109
- ;;
110
-
111
- plan)
112
- bundle exec cap "$@" deploy:lock deploy:plan
113
- ;;
114
-
115
- lock)
116
- case "${1%.app}" in
117
- compare|migrate)
118
- nm_lock="${1%.app}"; shift
119
- bundle exec cap "$@" deploy:dont_unlock "deploy:lock_${nm_lock}"
120
- ;;
121
- *)
122
- bundle exec cap "$@" deploy:dont_unlock deploy:lock
123
- ;;
124
- esac
125
- ;;
126
-
127
- unlock)
128
- case "${1%.app}" in
129
- compare|migrate)
130
- nm_lock="${1%.app}"; shift
131
- bundle exec cap "$@" "deploy:unlock_${nm_lock}"
132
- ;;
133
- *)
134
- bundle exec cap "$@" deploy:unlock
135
- ;;
136
- esac
137
- ;;
138
-
139
- shell)
140
- bundle exec cap "$@" shell
141
- ;;
142
-
143
- compare)
144
- bundle exec cap "$@" deploy:lock_compare deploy:compare
145
- ;;
146
-
147
- repl)
148
- bundle exec cap "$@" deploy:lock_compare deploy:repl
149
- ;;
150
-
151
- migrate)
152
- want_list=
153
- if [[ "${1%.app}" = "list" ]]; then
154
- want_list=1; shift
155
- fi
156
-
157
- change_group=
158
- migration=
159
- case "${1%.app}" in
160
- data)
161
- change_group=${1%.app}; shift
162
- ;;
163
- pre)
164
- change_group=${1%.app}; shift
165
- ;;
166
- during)
167
- change_group=${1%.app} shift
168
- ;;
169
- post)
170
- change_group=${1%.app}; shift
171
- ;;
172
- [0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789])
173
- migration=${1%.app}; shift
174
- ;;
175
- esac
176
-
177
- if [[ -n $change_group ]]; then
178
- if [[ -n $want_list ]]; then
179
- echo "listing change group $change_group"
180
- else
181
- echo "running change group $change_group"
182
- fi
183
- elif [[ -n $migration ]]; then
184
- echo "running migration $migratio"
185
- elif [[ -n $want_list ]]; then
186
- echo "listing migrations"
187
- fi
188
-
189
- bundle exec cap "$@" deploy:lock_migrate deploy:migrate
190
- ;;
191
-
192
- *)
193
- bundle exec cap "$@"
194
- ;;
195
- esac
196
- esac
197
- ;;
198
- esac
26
+ cd "$shome"
27
+ gem build "$pth_gemspec"
28
+ }
199
29
 
30
+ require sub "$BASH_SOURCE" "$@"
data/libexec/build-gem ADDED
@@ -0,0 +1,30 @@
1
+ #!/bin/bash
2
+
3
+ #/ NAME
4
+ #/ build-gem -- upload the latest (timestamp) rubygem to rubygems.org
5
+ #/
6
+ #/ SYNOPSIS
7
+ #/ build gem -n gem_name
8
+
9
+ # figure out the project root under which bin, lib live
10
+ shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
11
+
12
+ # load a jason bourne library
13
+ source "$shome/bin/_treadstone"
14
+
15
+ # define command line options:
16
+ DEFINE_string 'name' "$(basename "$shome")" 'name of gem' 'n'
17
+
18
+ # entry point
19
+ function main {
20
+ local pth_gemspec="$shome/$FLAGS_name.gemspec"
21
+ if [[ ! -e "$pth_gemspec" ]]; then
22
+ logger_fatal "could not find gemspec $pth_gemspec"
23
+ exit 1
24
+ fi
25
+
26
+ cd "$shome"
27
+ gem build "$pth_gemspec"
28
+ }
29
+
30
+ require sub "$BASH_SOURCE" "$@"
@@ -0,0 +1,199 @@
1
+ #!/bin/bash -e
2
+
3
+ export LOCAL_ONLY=
4
+
5
+ case "$(basename $0)" in
6
+ invoke)
7
+ export COMMAND="$1"; shift
8
+
9
+ if [[ -n $1 ]]; then
10
+ set -- $(for a in "$@"; do echo $a.app; done)
11
+ fi
12
+
13
+ tmp_invoke=$(mktemp -t XXXXXXXXX)
14
+ bundle exec cap "$@" invoke 2>&1 | perl -pe 's{.\[\d+m}{}g' | perl -ne 'm{^\s*\*+\s*\[(out|err)\s*::\s*([^]]+)\] ?(.*)} && print "$1 $2 $3\n"' > $tmp_invoke 2>&1
15
+
16
+ cat $tmp_invoke | awk '{print $2}' | sort -u | while read -r nm_host; do
17
+ egrep "^(out|err) $nm_host" $tmp_invoke || true
18
+ echo
19
+ done
20
+ rm -f $tmp_invoke
21
+ ;;
22
+ *)
23
+ if [[ -n $1 ]]; then
24
+ set -- $(for a in "$@"; do echo $a; done)
25
+ fi
26
+
27
+ case "$(basename $0)" in
28
+ debug)
29
+ LOCAL_ONLY=true
30
+ if [[ -z $1 ]]; then
31
+ set "world"
32
+ fi
33
+
34
+ if [[ -n $1 ]]; then
35
+ cap $(for a in "$@"; do echo $a.echo; done)
36
+ fi
37
+ ;;
38
+
39
+ hosts)
40
+ LOCAL_ONLY=true
41
+ {
42
+ if [[ -n $1 ]]; then
43
+ cap $(for a in "$@"; do echo $a.echo; done)
44
+ fi
45
+ } 2>&1 | grep eea914aaa8dde6fdae29242b1084a2b0415eefaf | awk '{print $NF}' | sort -u
46
+ ;;
47
+
48
+ dna)
49
+ LOCAL_ONLY=true
50
+ {
51
+ echo "eea914aaa8dde6fdae29242b1084a2b0415eefaf ---"
52
+ if [[ -n $1 ]]; then
53
+ cap $(for a in "$@"; do echo $a.yaml; done)
54
+ fi
55
+ } 2>&1 | grep eea914aaa8dde6fdae29242b1084a2b0415eefaf | sed 's#eea914aaa8dde6fdae29242b1084a2b0415eefaf ##'
56
+ ;;
57
+
58
+ task)
59
+ if [[ -n $1 ]]; then
60
+ nm_task=$1; shift
61
+ set -- $(for a in "$@"; do echo $a.app; done)
62
+ fi
63
+ bundle exec cap "$@" deploy:lock_migrate deploy:migrate "$nm_task"
64
+ ;;
65
+
66
+ *)
67
+ if [[ -n $1 ]]; then
68
+ set -- $(for a in "$@"; do echo $a.app; done)
69
+ fi
70
+ case "$(basename $0)" in
71
+ deploy)
72
+ bundle exec cap "$@" deploy:lock deploy
73
+ ;;
74
+
75
+ release)
76
+ bundle exec cap "$@" deploy:lock deploy
77
+ ;;
78
+
79
+ stage)
80
+ bundle exec cap "$@" deploy:lock deploy:update_code deploy:symlink_next
81
+ ;;
82
+
83
+ restart)
84
+ bundle exec cap "$@" deploy:lock deploy:restart
85
+ ;;
86
+
87
+ config)
88
+ bundle exec cap "$@" deploy:lock deploy:config
89
+ ;;
90
+
91
+ build)
92
+ bundle exec cap "$@" deploy:lock deploy:build
93
+ ;;
94
+
95
+ dist)
96
+ bundle exec cap "$@" deploy:lock deploy:dist
97
+ ;;
98
+
99
+ activate)
100
+ bundle exec cap "$@" deploy:lock deploy:symlink deploy:restart
101
+ ;;
102
+
103
+ rollback)
104
+ bundle exec cap "$@" deploy:lock deploy:rollback
105
+ ;;
106
+
107
+ check)
108
+ bundle exec cap "$@" deploy:lock deploy:check
109
+ ;;
110
+
111
+ plan)
112
+ bundle exec cap "$@" deploy:lock deploy:plan
113
+ ;;
114
+
115
+ lock)
116
+ case "${1%.app}" in
117
+ compare|migrate)
118
+ nm_lock="${1%.app}"; shift
119
+ bundle exec cap "$@" deploy:dont_unlock "deploy:lock_${nm_lock}"
120
+ ;;
121
+ *)
122
+ bundle exec cap "$@" deploy:dont_unlock deploy:lock
123
+ ;;
124
+ esac
125
+ ;;
126
+
127
+ unlock)
128
+ case "${1%.app}" in
129
+ compare|migrate)
130
+ nm_lock="${1%.app}"; shift
131
+ bundle exec cap "$@" "deploy:unlock_${nm_lock}"
132
+ ;;
133
+ *)
134
+ bundle exec cap "$@" deploy:unlock
135
+ ;;
136
+ esac
137
+ ;;
138
+
139
+ shell)
140
+ bundle exec cap "$@" shell
141
+ ;;
142
+
143
+ compare)
144
+ bundle exec cap "$@" deploy:lock_compare deploy:compare
145
+ ;;
146
+
147
+ repl)
148
+ bundle exec cap "$@" deploy:lock_compare deploy:repl
149
+ ;;
150
+
151
+ migrate)
152
+ want_list=
153
+ if [[ "${1%.app}" = "list" ]]; then
154
+ want_list=1; shift
155
+ fi
156
+
157
+ change_group=
158
+ migration=
159
+ case "${1%.app}" in
160
+ data)
161
+ change_group=${1%.app}; shift
162
+ ;;
163
+ pre)
164
+ change_group=${1%.app}; shift
165
+ ;;
166
+ during)
167
+ change_group=${1%.app} shift
168
+ ;;
169
+ post)
170
+ change_group=${1%.app}; shift
171
+ ;;
172
+ [0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789])
173
+ migration=${1%.app}; shift
174
+ ;;
175
+ esac
176
+
177
+ if [[ -n $change_group ]]; then
178
+ if [[ -n $want_list ]]; then
179
+ echo "listing change group $change_group"
180
+ else
181
+ echo "running change group $change_group"
182
+ fi
183
+ elif [[ -n $migration ]]; then
184
+ echo "running migration $migratio"
185
+ elif [[ -n $want_list ]]; then
186
+ echo "listing migrations"
187
+ fi
188
+
189
+ bundle exec cap "$@" deploy:lock_migrate deploy:migrate
190
+ ;;
191
+
192
+ *)
193
+ bundle exec cap "$@"
194
+ ;;
195
+ esac
196
+ esac
197
+ ;;
198
+ esac
199
+