manifests-vmc-plugin 0.1.1 → 0.1.2
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.
- data/lib/manifests-vmc-plugin/plugin.rb +37 -39
- data/lib/manifests-vmc-plugin/version.rb +1 -1
- data/lib/manifests-vmc-plugin.rb +3 -26
- metadata +39 -19
@@ -16,36 +16,36 @@ VMC.Plugin(VMC::App) do
|
|
16
16
|
# app(s) described by the manifest, in dependency-order
|
17
17
|
[:start, :instances, :logs].each do |wrap|
|
18
18
|
around(wrap) do |cmd, args|
|
19
|
-
if args.empty?
|
19
|
+
if args.empty? && !passed_value(:name)
|
20
20
|
each_app do |a|
|
21
|
-
cmd.call(a["name"])
|
21
|
+
cmd.call(:name => a["name"])
|
22
22
|
puts "" unless simple_output?
|
23
23
|
end || err("No applications to act on.")
|
24
24
|
else
|
25
|
-
cmd.call
|
25
|
+
cmd.call
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
30
|
# same as above but in reverse dependency-order
|
31
31
|
around(:stop) do |cmd, args|
|
32
|
-
if args.empty?
|
32
|
+
if args.empty? && !passed_value(:name)
|
33
33
|
reversed = []
|
34
34
|
each_app do |a|
|
35
35
|
reversed.unshift a["name"]
|
36
36
|
end || err("No applications to act on.")
|
37
37
|
|
38
38
|
reversed.each do |name|
|
39
|
-
cmd.call(name)
|
39
|
+
cmd.call(:name => name)
|
40
40
|
puts "" unless simple_output?
|
41
41
|
end
|
42
42
|
else
|
43
|
-
cmd.call
|
43
|
+
cmd.call
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
47
|
around(:delete) do |cmd, args|
|
48
|
-
if args.empty? && !options[:all]
|
48
|
+
if args.empty? && !options[:all] && !passed_value(:name)
|
49
49
|
reversed = []
|
50
50
|
has_manifest =
|
51
51
|
each_app do |a|
|
@@ -53,22 +53,22 @@ VMC.Plugin(VMC::App) do
|
|
53
53
|
end
|
54
54
|
|
55
55
|
unless has_manifest
|
56
|
-
return cmd.call
|
56
|
+
return cmd.call
|
57
57
|
end
|
58
58
|
|
59
59
|
reversed.each do |name|
|
60
|
-
cmd.call(name)
|
60
|
+
cmd.call(:name => name)
|
61
61
|
puts "" unless simple_output?
|
62
62
|
end
|
63
63
|
else
|
64
|
-
cmd.call
|
64
|
+
cmd.call
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
68
68
|
# stop apps in reverse dependency order,
|
69
69
|
# and then start in dependency order
|
70
70
|
around(:restart) do |cmd, args|
|
71
|
-
if args.empty?
|
71
|
+
if args.empty? && !passed_value(:name)
|
72
72
|
reversed = []
|
73
73
|
forwards = []
|
74
74
|
each_app do |a|
|
@@ -77,55 +77,53 @@ VMC.Plugin(VMC::App) do
|
|
77
77
|
end || err("No applications to act on.")
|
78
78
|
|
79
79
|
reversed.each do |name|
|
80
|
-
|
80
|
+
with_inputs(:name => name) do
|
81
|
+
stop
|
82
|
+
end
|
81
83
|
end
|
82
84
|
|
83
85
|
puts "" unless simple_output?
|
84
86
|
|
85
87
|
forwards.each do |name|
|
86
|
-
|
88
|
+
with_inputs(:name => name) do
|
89
|
+
start
|
90
|
+
end
|
87
91
|
end
|
88
92
|
else
|
89
|
-
cmd.call
|
93
|
+
cmd.call
|
90
94
|
end
|
91
95
|
end
|
92
96
|
|
93
97
|
# push and sync meta changes in the manifest
|
94
98
|
# also sets env data on creation if present in manifest
|
95
99
|
around(:push) do |push, args|
|
96
|
-
|
97
|
-
all_pushed =
|
98
|
-
each_app do |a|
|
99
|
-
app = client.app(a["name"])
|
100
|
-
updating = app.exists?
|
100
|
+
name = passed_value(:name) || args.first
|
101
101
|
|
102
|
-
|
102
|
+
all_pushed =
|
103
|
+
each_app do |a|
|
104
|
+
next if name && a["name"] != name
|
103
105
|
|
104
|
-
|
105
|
-
|
106
|
+
app = client.app(a["name"])
|
107
|
+
updating = app.exists?
|
106
108
|
|
107
|
-
|
108
|
-
|
109
|
+
sync_changes(a)
|
110
|
+
push.call(:name => a["name"], :start => false)
|
109
111
|
|
110
|
-
|
111
|
-
|
112
|
+
unless updating
|
113
|
+
app.env = a["env"]
|
112
114
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
app.update!
|
117
|
-
end
|
115
|
+
if input(:start)
|
116
|
+
with_inputs(:name => a["name"]) do
|
117
|
+
start
|
118
118
|
end
|
119
|
-
|
120
|
-
|
119
|
+
else
|
120
|
+
app.update!
|
121
121
|
end
|
122
|
-
|
123
|
-
puts "" unless simple_output?
|
124
122
|
end
|
125
123
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
124
|
+
puts "" unless simple_output?
|
125
|
+
end
|
126
|
+
|
127
|
+
push.call unless all_pushed
|
130
128
|
end
|
131
129
|
end
|
data/lib/manifests-vmc-plugin.rb
CHANGED
@@ -251,41 +251,18 @@ module VMCManifests
|
|
251
251
|
|
252
252
|
private
|
253
253
|
|
254
|
-
def inputs
|
255
|
-
@inputs ||= {}
|
256
|
-
end
|
257
|
-
|
258
254
|
# call the block as if the app info and path were given as flags
|
259
|
-
def with_app(path, info)
|
260
|
-
|
261
|
-
before_info = {}
|
262
|
-
|
263
|
-
inputs[:path] = path
|
264
|
-
|
255
|
+
def with_app(path, info, &blk)
|
256
|
+
inputs = {:path => path}
|
265
257
|
info.each do |k, v|
|
266
258
|
if k == "mem"
|
267
259
|
k = "memory"
|
268
260
|
end
|
269
261
|
|
270
|
-
before_info[k.to_sym] = inputs[k.to_sym]
|
271
262
|
inputs[k.to_sym] = v
|
272
263
|
end
|
273
264
|
|
274
|
-
|
275
|
-
ensure
|
276
|
-
if before_path.nil?
|
277
|
-
inputs.delete :path
|
278
|
-
else
|
279
|
-
inputs[:path] = before_path
|
280
|
-
end
|
281
|
-
|
282
|
-
before_info.each do |k, v|
|
283
|
-
if v.nil?
|
284
|
-
inputs.delete k
|
285
|
-
else
|
286
|
-
inputs[k] = v
|
287
|
-
end
|
288
|
-
end
|
265
|
+
with_inputs(inputs, &blk)
|
289
266
|
end
|
290
267
|
|
291
268
|
# sort applications in dependency order
|
metadata
CHANGED
@@ -1,23 +1,33 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: manifests-vmc-plugin
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 31
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 2
|
10
|
+
version: 0.1.2
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Alex Suraci
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
17
|
+
|
18
|
+
date: 2012-05-30 00:00:00 Z
|
13
19
|
dependencies: []
|
20
|
+
|
14
21
|
description:
|
15
|
-
email:
|
22
|
+
email:
|
16
23
|
- asuraci@vmware.com
|
17
24
|
executables: []
|
25
|
+
|
18
26
|
extensions: []
|
27
|
+
|
19
28
|
extra_rdoc_files: []
|
20
|
-
|
29
|
+
|
30
|
+
files:
|
21
31
|
- Rakefile
|
22
32
|
- lib/manifests-vmc-plugin/errors.rb
|
23
33
|
- lib/manifests-vmc-plugin/manifest.rb
|
@@ -26,26 +36,36 @@ files:
|
|
26
36
|
- lib/manifests-vmc-plugin.rb
|
27
37
|
homepage: http://cloudfoundry.com/
|
28
38
|
licenses: []
|
39
|
+
|
29
40
|
post_install_message:
|
30
41
|
rdoc_options: []
|
31
|
-
|
42
|
+
|
43
|
+
require_paths:
|
32
44
|
- lib
|
33
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
34
46
|
none: false
|
35
|
-
requirements:
|
36
|
-
- -
|
37
|
-
- !ruby/object:Gem::Version
|
38
|
-
|
39
|
-
|
47
|
+
requirements:
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
hash: 3
|
51
|
+
segments:
|
52
|
+
- 0
|
53
|
+
version: "0"
|
54
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
40
55
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
hash: 3
|
60
|
+
segments:
|
61
|
+
- 0
|
62
|
+
version: "0"
|
45
63
|
requirements: []
|
64
|
+
|
46
65
|
rubyforge_project: manifests-vmc-plugin
|
47
|
-
rubygems_version: 1.8.
|
66
|
+
rubygems_version: 1.8.23
|
48
67
|
signing_key:
|
49
68
|
specification_version: 3
|
50
69
|
summary: Cloud Foundry automation via manifest documents.
|
51
70
|
test_files: []
|
71
|
+
|