coral_vagrant 0.2.1 → 0.2.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/Gemfile +1 -1
- data/Gemfile.lock +21 -15
- data/VERSION +1 -1
- data/bin/coral +2 -0
- data/coral_vagrant.gemspec +19 -10
- data/lib/coral_vagrant.rb +39 -38
- data/lib/coral_vagrant/commands/coral/add.rb +41 -0
- data/lib/coral_vagrant/commands/coral/config.rb +61 -0
- data/lib/coral_vagrant/commands/coral/create.rb +41 -0
- data/lib/coral_vagrant/commands/coral/image.rb +47 -0
- data/lib/coral_vagrant/commands/coral/init.rb +77 -0
- data/lib/coral_vagrant/commands/coral/push.rb +83 -0
- data/lib/coral_vagrant/commands/coral/rm.rb +37 -0
- data/lib/coral_vagrant/commands/coral/run.rb +52 -0
- data/lib/coral_vagrant/commands/coral/send.rb +42 -0
- data/lib/coral_vagrant/commands/coral/update.rb +60 -0
- data/lib/coral_vagrant/commands/coral_base.rb +155 -68
- data/lib/plugin.rb +12 -0
- metadata +109 -167
- data/lib/coral_vagrant/commands/coral_init.rb +0 -78
- data/lib/coral_vagrant/commands/coral_push.rb +0 -84
- data/lib/coral_vagrant/commands/coral_run.rb +0 -53
- data/lib/coral_vagrant/commands/coral_update.rb +0 -61
data/lib/plugin.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
module VagrantPlugins
|
2
|
+
module Coral
|
3
|
+
class Plugin < Vagrant.plugin('2')
|
4
|
+
name 'coral plugins'
|
5
|
+
description 'The `coral` plugin provides an easy way to manage and sync coral clusters locally and on the cloud from within Vagrant.'
|
6
|
+
|
7
|
+
command('coral') do
|
8
|
+
Coral::Vagrant::Command::CoralBase
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
metadata
CHANGED
@@ -1,183 +1,127 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: coral_vagrant
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.2
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 2
|
9
|
-
- 1
|
10
|
-
version: 0.2.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Adrian Webb
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
prerelease: false
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
12
|
+
date: 2013-05-24 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: coral_plan
|
16
|
+
requirement: &4990540 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
18
|
+
requirements:
|
26
19
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 1
|
31
|
-
- 0
|
32
|
-
version: "1.0"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0.1'
|
33
22
|
type: :runtime
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: coral_plan
|
37
23
|
prerelease: false
|
38
|
-
|
24
|
+
version_requirements: *4990540
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: coral_cloud
|
27
|
+
requirement: &4882440 !ruby/object:Gem::Requirement
|
39
28
|
none: false
|
40
|
-
requirements:
|
29
|
+
requirements:
|
41
30
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
segments:
|
45
|
-
- 0
|
46
|
-
- 1
|
47
|
-
version: "0.1"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0.1'
|
48
33
|
type: :runtime
|
49
|
-
version_requirements: *id002
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: coral_cloud
|
52
34
|
prerelease: false
|
53
|
-
|
35
|
+
version_requirements: *4882440
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: bundler
|
38
|
+
requirement: &4881580 !ruby/object:Gem::Requirement
|
54
39
|
none: false
|
55
|
-
requirements:
|
40
|
+
requirements:
|
56
41
|
- - ~>
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
|
59
|
-
|
60
|
-
- 0
|
61
|
-
- 1
|
62
|
-
version: "0.1"
|
63
|
-
type: :runtime
|
64
|
-
version_requirements: *id003
|
65
|
-
- !ruby/object:Gem::Dependency
|
66
|
-
name: bundler
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '1.2'
|
44
|
+
type: :development
|
67
45
|
prerelease: false
|
68
|
-
|
46
|
+
version_requirements: *4881580
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: jeweler
|
49
|
+
requirement: &4880680 !ruby/object:Gem::Requirement
|
69
50
|
none: false
|
70
|
-
requirements:
|
51
|
+
requirements:
|
71
52
|
- - ~>
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
|
74
|
-
segments:
|
75
|
-
- 1
|
76
|
-
- 2
|
77
|
-
version: "1.2"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.8'
|
78
55
|
type: :development
|
79
|
-
version_requirements: *id004
|
80
|
-
- !ruby/object:Gem::Dependency
|
81
|
-
name: jeweler
|
82
56
|
prerelease: false
|
83
|
-
|
57
|
+
version_requirements: *4880680
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: rspec
|
60
|
+
requirement: &4879740 !ruby/object:Gem::Requirement
|
84
61
|
none: false
|
85
|
-
requirements:
|
62
|
+
requirements:
|
86
63
|
- - ~>
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
|
89
|
-
segments:
|
90
|
-
- 1
|
91
|
-
- 8
|
92
|
-
version: "1.8"
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '2.10'
|
93
66
|
type: :development
|
94
|
-
version_requirements: *id005
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
|
-
name: rspec
|
97
67
|
prerelease: false
|
98
|
-
|
68
|
+
version_requirements: *4879740
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rdoc
|
71
|
+
requirement: &4878900 !ruby/object:Gem::Requirement
|
99
72
|
none: false
|
100
|
-
requirements:
|
73
|
+
requirements:
|
101
74
|
- - ~>
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
|
104
|
-
segments:
|
105
|
-
- 2
|
106
|
-
- 10
|
107
|
-
version: "2.10"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '3.12'
|
108
77
|
type: :development
|
109
|
-
version_requirements: *id006
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: rdoc
|
112
78
|
prerelease: false
|
113
|
-
|
79
|
+
version_requirements: *4878900
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: yard
|
82
|
+
requirement: &4877940 !ruby/object:Gem::Requirement
|
114
83
|
none: false
|
115
|
-
requirements:
|
84
|
+
requirements:
|
116
85
|
- - ~>
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
|
119
|
-
segments:
|
120
|
-
- 3
|
121
|
-
- 12
|
122
|
-
version: "3.12"
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0.8'
|
123
88
|
type: :development
|
124
|
-
version_requirements: *id007
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: yard
|
127
89
|
prerelease: false
|
128
|
-
|
90
|
+
version_requirements: *4877940
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: vagrant
|
93
|
+
requirement: &4876980 !ruby/object:Gem::Requirement
|
129
94
|
none: false
|
130
|
-
requirements:
|
131
|
-
- -
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
|
134
|
-
segments:
|
135
|
-
- 0
|
136
|
-
- 8
|
137
|
-
version: "0.8"
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
138
99
|
type: :development
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
it and/or contributed it.
|
157
|
-
* Fork the project.
|
158
|
-
* Start a feature/bugfix branch.
|
159
|
-
* Commit and push until you are happy with your contribution.
|
160
|
-
* Make sure to add tests for it. This is important so I don't break it in a
|
161
|
-
future version unintentionally.
|
162
|
-
* Please try not to mess with the Rakefile, version, or history. If you want
|
163
|
-
to have your own version, or is otherwise necessary, that is fine, but
|
164
|
-
please isolate to its own commit so I can cherry-pick around it.
|
165
|
-
|
166
|
-
== Copyright
|
167
|
-
|
168
|
-
Licensed under GPLv3. See LICENSE.txt for further details.
|
169
|
-
|
170
|
-
Copyright (c) 2013 Adrian Webb <adrian.webb@coraltech.net>
|
171
|
-
Coral Technology Group LLC
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *4876980
|
102
|
+
description: ! "= coral_vagrant\n\nThis library contains various commands and exposes
|
103
|
+
a data model to Vagrant\nthat allows for tightly integrated management of Virtual
|
104
|
+
machines that are\nlinked to remote servers. \n\nThis also allows for custom execution
|
105
|
+
plans.\n\nNote: This library is still very early in development!\n\n== Contributing
|
106
|
+
to coral_vagrant\n \n* Check out the latest {major}.{minor} branch to make sure
|
107
|
+
the feature hasn't \n been implemented or the bug hasn't been fixed yet.\n* Check
|
108
|
+
out the issue tracker to make sure someone already hasn't requested \n it and/or
|
109
|
+
contributed it.\n* Fork the project.\n* Start a feature/bugfix branch.\n* Commit
|
110
|
+
and push until you are happy with your contribution.\n* Make sure to add tests for
|
111
|
+
it. This is important so I don't break it in a \n future version unintentionally.\n*
|
112
|
+
Please try not to mess with the Rakefile, version, or history. If you want \n to
|
113
|
+
have your own version, or is otherwise necessary, that is fine, but \n please isolate
|
114
|
+
to its own commit so I can cherry-pick around it.\n\n== Copyright\n\nLicensed under
|
115
|
+
GPLv3. See LICENSE.txt for further details.\n\nCopyright (c) 2013 Adrian Webb
|
116
|
+
<adrian.webb@coraltech.net>\nCoral Technology Group LLC"
|
172
117
|
email: adrian.webb@coraltech.net
|
173
|
-
executables:
|
174
|
-
|
118
|
+
executables:
|
119
|
+
- coral
|
175
120
|
extensions: []
|
176
|
-
|
177
|
-
extra_rdoc_files:
|
121
|
+
extra_rdoc_files:
|
178
122
|
- LICENSE.txt
|
179
123
|
- README.rdoc
|
180
|
-
files:
|
124
|
+
files:
|
181
125
|
- .document
|
182
126
|
- Gemfile
|
183
127
|
- Gemfile.lock
|
@@ -186,54 +130,52 @@ files:
|
|
186
130
|
- Rakefile
|
187
131
|
- VERSION
|
188
132
|
- Vagrantfile
|
133
|
+
- bin/coral
|
189
134
|
- coral_vagrant.gemspec
|
190
135
|
- lib/coral_vagrant.rb
|
136
|
+
- lib/coral_vagrant/commands/coral/add.rb
|
137
|
+
- lib/coral_vagrant/commands/coral/config.rb
|
138
|
+
- lib/coral_vagrant/commands/coral/create.rb
|
139
|
+
- lib/coral_vagrant/commands/coral/image.rb
|
140
|
+
- lib/coral_vagrant/commands/coral/init.rb
|
141
|
+
- lib/coral_vagrant/commands/coral/push.rb
|
142
|
+
- lib/coral_vagrant/commands/coral/rm.rb
|
143
|
+
- lib/coral_vagrant/commands/coral/run.rb
|
144
|
+
- lib/coral_vagrant/commands/coral/send.rb
|
145
|
+
- lib/coral_vagrant/commands/coral/update.rb
|
191
146
|
- lib/coral_vagrant/commands/coral_base.rb
|
192
|
-
- lib/
|
193
|
-
- lib/coral_vagrant/commands/coral_push.rb
|
194
|
-
- lib/coral_vagrant/commands/coral_run.rb
|
195
|
-
- lib/coral_vagrant/commands/coral_update.rb
|
147
|
+
- lib/plugin.rb
|
196
148
|
- spec/coral_test_kernel.rb
|
197
149
|
- spec/spec_helper.rb
|
198
150
|
homepage: http://github.com/coraltech/ruby-coral_vagrant
|
199
|
-
licenses:
|
151
|
+
licenses:
|
200
152
|
- GPLv3
|
201
153
|
post_install_message:
|
202
|
-
rdoc_options:
|
154
|
+
rdoc_options:
|
203
155
|
- --title
|
204
156
|
- Coral Vagrant library
|
205
157
|
- --main
|
206
158
|
- README.rdoc
|
207
159
|
- --line-numbers
|
208
|
-
require_paths:
|
160
|
+
require_paths:
|
209
161
|
- lib
|
210
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
162
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
211
163
|
none: false
|
212
|
-
requirements:
|
213
|
-
- -
|
214
|
-
- !ruby/object:Gem::Version
|
215
|
-
hash: 53
|
216
|
-
segments:
|
217
|
-
- 1
|
218
|
-
- 8
|
219
|
-
- 1
|
164
|
+
requirements:
|
165
|
+
- - ! '>='
|
166
|
+
- !ruby/object:Gem::Version
|
220
167
|
version: 1.8.1
|
221
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
168
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
222
169
|
none: false
|
223
|
-
requirements:
|
224
|
-
- -
|
225
|
-
- !ruby/object:Gem::Version
|
226
|
-
|
227
|
-
segments:
|
228
|
-
- 0
|
229
|
-
version: "0"
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
230
174
|
requirements: []
|
231
|
-
|
232
175
|
rubyforge_project: coral_vagrant
|
233
|
-
rubygems_version: 1.8.
|
176
|
+
rubygems_version: 1.8.11
|
234
177
|
signing_key:
|
235
178
|
specification_version: 3
|
236
179
|
summary: Provides a data model and various Coral commands for Vagrant
|
237
180
|
test_files: []
|
238
|
-
|
239
181
|
has_rdoc:
|
@@ -1,78 +0,0 @@
|
|
1
|
-
|
2
|
-
module Vagrant
|
3
|
-
module Command
|
4
|
-
module Coral
|
5
|
-
class Init < Base
|
6
|
-
|
7
|
-
#-----------------------------------------------------------------------------
|
8
|
-
# Execution
|
9
|
-
|
10
|
-
def execute
|
11
|
-
options = {}
|
12
|
-
success = true
|
13
|
-
|
14
|
-
opts = OptionParser.new do |opts|
|
15
|
-
opts.banner = "Usage: vagrant coral init [server-name]... [-h] ..."
|
16
|
-
opts.separator ""
|
17
|
-
|
18
|
-
opts.on("-d", "--destroy", "Remove existing servers and start from scratch") do |d|
|
19
|
-
options[:destroy] = d
|
20
|
-
end
|
21
|
-
|
22
|
-
opts.on("-f", "--force", "Destroy without confirmation") do |f|
|
23
|
-
options[:force] = f
|
24
|
-
end
|
25
|
-
|
26
|
-
#---
|
27
|
-
|
28
|
-
options[:min] = 1
|
29
|
-
opts.on("-m", "--min TRIES", "Minimum number of provision runs") do |m|
|
30
|
-
options[:min] = m
|
31
|
-
end
|
32
|
-
|
33
|
-
options[:tries] = 1
|
34
|
-
opts.on("-t", "--tries TRIES", "Number of provision attempts before stopping with an error") do |t|
|
35
|
-
options[:tries] = t
|
36
|
-
end
|
37
|
-
|
38
|
-
options[:exit] = ''
|
39
|
-
opts.on("-e", "--exit CONDITIONS", "Conditions on which to exit in the format (separated by comma): 'User[git]:ensure:created'") do |e|
|
40
|
-
options[:exit] = e
|
41
|
-
end
|
42
|
-
|
43
|
-
options[:repos] = ''
|
44
|
-
opts.on("-r", "--repos REPO_DIRS,...'", "Local directories of repositories to syncronize remotes (relative to the Vagrantfile root)") do |r|
|
45
|
-
options[:repos] = r
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
options[:min] = 1
|
50
|
-
options[:auth] = true
|
51
|
-
|
52
|
-
#---
|
53
|
-
|
54
|
-
servers = parse_options(opts)
|
55
|
-
return if ! servers
|
56
|
-
|
57
|
-
with_target_vms(servers) do |vm|
|
58
|
-
@env.ui.info("Starting initialization run for: #{vm.name}")
|
59
|
-
|
60
|
-
server = ::Coral::Cloud::Server.new({
|
61
|
-
:cloud => ::Coral.vagrant,
|
62
|
-
:machine => vm,
|
63
|
-
:logger => @logger,
|
64
|
-
:ui => @env.ui,
|
65
|
-
})
|
66
|
-
|
67
|
-
if options[:destroy]
|
68
|
-
success = server.destroy(options) if success
|
69
|
-
end
|
70
|
-
success = server.start(options) if success
|
71
|
-
success = server.update(options) if success
|
72
|
-
end
|
73
|
-
exit success ? 0 : 1
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
@@ -1,84 +0,0 @@
|
|
1
|
-
|
2
|
-
module Vagrant
|
3
|
-
module Command
|
4
|
-
module Coral
|
5
|
-
class Push < Base
|
6
|
-
|
7
|
-
#-----------------------------------------------------------------------------
|
8
|
-
# Execution
|
9
|
-
|
10
|
-
def execute
|
11
|
-
options = {}
|
12
|
-
success = true
|
13
|
-
|
14
|
-
opts = OptionParser.new do |opts|
|
15
|
-
opts.banner = "Usage: vagrant coral push [server-name]... [-h] ..."
|
16
|
-
opts.separator ""
|
17
|
-
|
18
|
-
opts.on("-c", "--commit", "Commit any uncommitted changes before pushing to remotes") do |c|
|
19
|
-
options[:commit] = c
|
20
|
-
end
|
21
|
-
|
22
|
-
opts.on("-e", "--allow_empty", "Allow commits with no changes") do |e|
|
23
|
-
options[:allow_empty] = e
|
24
|
-
end
|
25
|
-
|
26
|
-
opts.on("-t", "--tags", "Push all local tags with selected branch") do |t|
|
27
|
-
options[:tags] = t
|
28
|
-
end
|
29
|
-
|
30
|
-
#---
|
31
|
-
|
32
|
-
options[:message] = ''
|
33
|
-
opts.on("-m", "--message MESSAGE", "Commit message") do |m|
|
34
|
-
options[:message] = m
|
35
|
-
end
|
36
|
-
|
37
|
-
options[:author] = ''
|
38
|
-
opts.on("-a", "--author AUTHOR", "Author of the changes being committed if different from the committer") do |a|
|
39
|
-
options[:author] = a
|
40
|
-
end
|
41
|
-
|
42
|
-
options[:branch] = ''
|
43
|
-
opts.on("-b", "--branch BRANCH", "Local branch of the remotes to push") do |b|
|
44
|
-
options[:branch] = b
|
45
|
-
end
|
46
|
-
|
47
|
-
options[:repos] = ''
|
48
|
-
opts.on("-r", "--repos REPO_DIRS,...", "Local directories of repositories to push (relative to the Vagrantfile root)") do |r|
|
49
|
-
options[:repos] = r
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
options[:auth] = true
|
54
|
-
|
55
|
-
#---
|
56
|
-
|
57
|
-
remotes = parse_options(opts)
|
58
|
-
return if ! remotes
|
59
|
-
|
60
|
-
if remotes.empty?
|
61
|
-
remotes = [ 'all' ]
|
62
|
-
end
|
63
|
-
|
64
|
-
remotes.each do |remote_name|
|
65
|
-
@env.ui.info("Starting push for: #{remote_name}")
|
66
|
-
|
67
|
-
server = ::Coral::Cloud::Server.new({
|
68
|
-
:cloud => ::Coral.vagrant,
|
69
|
-
:machine => remote_name,
|
70
|
-
:logger => @logger,
|
71
|
-
:ui => @env.ui,
|
72
|
-
})
|
73
|
-
|
74
|
-
if options[:commit]
|
75
|
-
success = server.commit(options) if success
|
76
|
-
end
|
77
|
-
success = server.push(options) if success
|
78
|
-
end
|
79
|
-
exit success ? 0 : 1
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|