vagrant-brightbox 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +10 -1
- data/README.md +55 -28
- data/lib/vagrant-brightbox/action.rb +15 -3
- data/lib/vagrant-brightbox/action/create_server.rb +21 -10
- data/lib/vagrant-brightbox/action/read_ssh_info.rb +1 -7
- data/lib/vagrant-brightbox/action/sync_folders.rb +10 -2
- data/lib/vagrant-brightbox/action/timed_provision.rb +2 -2
- data/lib/vagrant-brightbox/config.rb +14 -20
- data/lib/vagrant-brightbox/errors.rb +4 -0
- data/lib/vagrant-brightbox/plugin.rb +2 -2
- data/lib/vagrant-brightbox/version.rb +1 -1
- data/locales/en.yml +9 -1
- data/spec/vagrant-brightbox/config_spec.rb +8 -5
- metadata +26 -12
- data/dummy.box +0 -0
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,13 @@
|
|
1
|
-
# 0.
|
1
|
+
# 0.2.0 (April 19, 2013)
|
2
|
+
|
3
|
+
* Merge from upstream 'vagrant-aws' v0.2.2
|
4
|
+
* Ability to specify a timeout for waiting for server to build.
|
5
|
+
* Add support for `vagrant ssh -c`
|
6
|
+
* Better error messages if server doesn't build in time.
|
7
|
+
* Implement `:disabled` flag support for shared folders.
|
8
|
+
* `brightbox.user_data` to specify user data on the server.
|
9
|
+
|
10
|
+
# 0.1.0 (April 15, 2013)
|
2
11
|
|
3
12
|
* Exclude the ".vagrant" directory from rsync.
|
4
13
|
* Initial release.
|
data/README.md
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# Vagrant Brightbox Provider
|
2
2
|
|
3
|
-
This is a [Vagrant](http://www.vagrantup.com) 1.
|
3
|
+
This is a [Vagrant](http://www.vagrantup.com) 1.2+ plugin that adds a [Brightbox](http://brightbox.com/)
|
4
4
|
provider to Vagrant, allowing Vagrant to control and provision servers in
|
5
|
-
the Brightbox Cloud
|
5
|
+
the Brightbox Cloud.
|
6
6
|
|
7
|
-
**Note:** This plugin requires Vagrant 1.
|
7
|
+
**Note:** This plugin requires Vagrant 1.2+,
|
8
8
|
|
9
9
|
## Features
|
10
10
|
|
@@ -28,50 +28,68 @@ $ vagrant up --provider=brightbox
|
|
28
28
|
...
|
29
29
|
```
|
30
30
|
|
31
|
-
Of course prior to doing this, you'll need to obtain
|
31
|
+
Of course prior to doing this, you'll need to obtain a Brightbox-compatible
|
32
32
|
box file for Vagrant.
|
33
33
|
|
34
34
|
## Quick Start
|
35
35
|
|
36
|
-
After installing the plugin (instructions above), the
|
37
|
-
|
38
|
-
|
39
|
-
|
36
|
+
After installing the plugin (instructions above), select the Brightbox
|
37
|
+
Cloud image you want to use and note the id. You can find these using
|
38
|
+
the Brightbox CLI or the Cloud GUI in the normal way, or you can view the
|
39
|
+
[Vagrant image page](http://docs.brightbox.com/vagrant/images).
|
40
|
+
|
41
|
+
Then add your chosen box to your vagrant installation using the
|
42
|
+
`config.vm.box` tag from your Vagrantfile, e.g.
|
40
43
|
|
41
44
|
```
|
42
|
-
$ vagrant box add
|
43
|
-
|
45
|
+
$ vagrant box add precise32 http://docs.brightbox.com/vagrant/img-mvunm.box
|
46
|
+
```
|
47
|
+
|
48
|
+
If you have your `~/.fog` setup to access Brightbox then you can now
|
49
|
+
bring up your configuration on Brightbox Cloud with:
|
50
|
+
|
44
51
|
```
|
52
|
+
$ vagrant up --provider=brightbox
|
53
|
+
```
|
54
|
+
|
55
|
+
## Generic Setup
|
45
56
|
|
46
|
-
|
47
|
-
|
57
|
+
If you don't want to be adding new box files for every type of image on
|
58
|
+
Brightbox Cloud you can shift the configuration into the Vagrantfile by
|
59
|
+
using the `dummy.box` Vagrant box file which has no preconfigured defaults.
|
60
|
+
|
61
|
+
First add the dummy box to your vagrant installation.
|
62
|
+
|
63
|
+
```
|
64
|
+
$ vagrant box add dummy http://docs.brightbox.com/vagrant/dummy.box
|
65
|
+
```
|
66
|
+
|
67
|
+
Then make a Vagrantfile that looks like the following, filling in
|
68
|
+
your information where necessary along with your choice of image id
|
48
69
|
|
49
70
|
```ruby
|
50
71
|
Vagrant.configure("2") do |config|
|
51
72
|
config.vm.box = "dummy"
|
52
73
|
|
53
|
-
config.vm.provider :brightbox do |brightbox|
|
74
|
+
config.vm.provider :brightbox do |brightbox, override|
|
54
75
|
brightbox.client_id = "YOUR API CLIENT ID"
|
55
76
|
brightbox.secret = "YOUR API SECRET"
|
56
|
-
brightbox.ssh_private_key_path = "PATH TO YOUR PRIVATE KEY"
|
57
77
|
|
58
78
|
brightbox.image_id = "img-q6gc8"
|
59
|
-
|
79
|
+
|
80
|
+
override.ssh.username = "ubuntu"
|
81
|
+
override.ssh.private_key_path = "PATH TO YOUR PRIVATE KEY"
|
60
82
|
end
|
61
83
|
end
|
62
84
|
```
|
63
85
|
|
64
|
-
|
86
|
+
Finally run `vagrant up --provider=brightbox` to build your setup on Brightbox Cloud.
|
65
87
|
|
66
88
|
This will start an Ubuntu 12.04 server in the gb1 region within
|
67
89
|
your account. And assuming your SSH information was filled in properly
|
68
90
|
within your Vagrantfile, SSH and provisioning will work as well.
|
69
91
|
|
70
|
-
|
71
|
-
file, but the box file used for the quick start, the "dummy" box, has
|
72
|
-
no preconfigured defaults.
|
73
|
-
|
74
|
-
Instead of having to add our client credentials to each Vagrantfile
|
92
|
+
Instead of having to add your client credentials to each Vagrantfile
|
75
93
|
we can put them in the Fog configuration file. Create a new
|
76
94
|
file at `~/.fog` and add the following:
|
77
95
|
|
@@ -86,33 +104,42 @@ file at `~/.fog` and add the following:
|
|
86
104
|
Every provider in Vagrant must introduce a custom box format. This
|
87
105
|
provider introduces `brightbox` boxes. You can view an example box in
|
88
106
|
the [example_box/ directory](https://github.com/NeilW/vagrant-brightbox/tree/master/example_box).
|
107
|
+
|
89
108
|
That directory also contains instructions on how to build a box.
|
90
109
|
|
91
|
-
The box format is
|
110
|
+
The box format is the required `metadata.json` file
|
92
111
|
along with a `Vagrantfile` that does default settings for the
|
93
112
|
provider-specific configuration for this provider.
|
94
113
|
|
114
|
+
## Box Format Dowloadable Images
|
115
|
+
|
116
|
+
You can view the [list of current Vagrant box
|
117
|
+
files](http://docs.brightbox.com/vagrant) on the Brightbox documentation
|
118
|
+
site.
|
119
|
+
|
95
120
|
## Configuration
|
96
121
|
|
97
122
|
This provider exposes quite a few provider-specific configuration options:
|
98
123
|
|
99
|
-
* `client_id` - The api access key for accessing Brightbox in the form
|
124
|
+
* `client_id` - The api access key for accessing Brightbox in the form
|
125
|
+
'cli-xxxxx'
|
100
126
|
* `secret` - The api secret access code for accessing Brightbox
|
101
127
|
* `image_id` - The image id to boot, in the form 'img-xxxxx'
|
102
128
|
* `zone` - The zone within the region to launch
|
103
129
|
the server. If nil, it will use the default for this account.
|
104
130
|
* `server_type` - The type of server, such as "nano"
|
105
131
|
* `region` - The region to start the server in, such as "gb1"
|
106
|
-
* `ssh_private_key_path` - The path to the SSH private key. This overrides
|
107
|
-
`config.ssh.private_key_path`.
|
108
|
-
* `ssh_username` - The SSH username, which overrides `config.ssh.username`.
|
109
132
|
* `security_groups` - An array of security groups for the server.
|
133
|
+
* `server_build_timeout` - The number of seconds to wait for the instance
|
134
|
+
to become ready on Brightbox Cloud. Defaults to 120 seconds.
|
110
135
|
|
111
|
-
If you are the collaborator on a number of accounts you can specify
|
136
|
+
If you are the collaborator on a number of accounts you can specify
|
137
|
+
which one you want by setting the following options:
|
112
138
|
|
113
139
|
* `username` - User id in the form 'usr-xxxxx'
|
114
140
|
* `password` - The password for the user id
|
115
|
-
* `account` - Create servers in the context of this account - in the form
|
141
|
+
* `account` - Create servers in the context of this account - in the form
|
142
|
+
'acc-xxxxx'
|
116
143
|
|
117
144
|
These can be set like typical provider-specific configuration:
|
118
145
|
|
@@ -108,6 +108,19 @@ module VagrantPlugins
|
|
108
108
|
end
|
109
109
|
end
|
110
110
|
|
111
|
+
def self.action_ssh_run
|
112
|
+
Vagrant::Action::Builder.new.tap do |b|
|
113
|
+
b.use ConfigValidate
|
114
|
+
b.use Call, IsCreated do |env, b2|
|
115
|
+
if env[:result]
|
116
|
+
b2.use SSHRun
|
117
|
+
else
|
118
|
+
b2.use MessageNotCreated
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
111
124
|
def self.action_up
|
112
125
|
Vagrant::Action::Builder.new.tap do |b|
|
113
126
|
b.use ConfigValidate
|
@@ -123,7 +136,7 @@ module VagrantPlugins
|
|
123
136
|
end
|
124
137
|
end
|
125
138
|
else
|
126
|
-
b2.use
|
139
|
+
b2.use TimedProvision
|
127
140
|
b2.use SyncFolders
|
128
141
|
b2.use CreateServer
|
129
142
|
b2.use MapCloudIp
|
@@ -143,8 +156,6 @@ module VagrantPlugins
|
|
143
156
|
alias action_suspend action_package
|
144
157
|
end
|
145
158
|
|
146
|
-
|
147
|
-
|
148
159
|
# The autoload farm
|
149
160
|
action_root = Pathname.new(File.expand_path("../action", __FILE__))
|
150
161
|
autoload :ConnectBrightbox, action_root.join("connect_brightbox")
|
@@ -161,6 +172,7 @@ module VagrantPlugins
|
|
161
172
|
autoload :ForcedHalt, action_root.join("forced_halt")
|
162
173
|
autoload :StartServer, action_root.join("start_server")
|
163
174
|
autoload :Unsupported, action_root.join("unsupported")
|
175
|
+
autoload :TimedProvision, action_root.join("timed_provision")
|
164
176
|
end
|
165
177
|
end
|
166
178
|
end
|
@@ -30,9 +30,11 @@ module VagrantPlugins
|
|
30
30
|
server_name = region_config.server_name
|
31
31
|
server_type = region_config.server_type
|
32
32
|
server_groups = region_config.server_groups
|
33
|
+
user_data = region_config.user_data
|
33
34
|
|
34
35
|
# Launch!
|
35
36
|
env[:ui].info(I18n.t("vagrant_brightbox.launching_server"))
|
37
|
+
env[:ui].info(I18n.t("vagrant_brightbox.supplied_user_data")) if user_data
|
36
38
|
env[:ui].info(" -- Type: #{server_type}") if server_type
|
37
39
|
env[:ui].info(" -- Image: #{image_id}") if image_id
|
38
40
|
env[:ui].info(" -- Region: #{region}")
|
@@ -45,12 +47,11 @@ module VagrantPlugins
|
|
45
47
|
:image_id => image_id,
|
46
48
|
:name => server_name,
|
47
49
|
:flavor_id => server_type,
|
50
|
+
:user_data => user_data,
|
48
51
|
:zone_id => zone
|
49
52
|
}
|
50
53
|
|
51
|
-
|
52
|
-
options[:server_groups] = server_groups
|
53
|
-
end
|
54
|
+
options[:server_groups] = server_groups unless server_groups.empty?
|
54
55
|
|
55
56
|
server = env[:brightbox_compute].servers.create(options)
|
56
57
|
rescue Excon::Errors::HTTPStatusError => e
|
@@ -62,14 +63,24 @@ module VagrantPlugins
|
|
62
63
|
|
63
64
|
# Wait for the server to build
|
64
65
|
env[:metrics]["server_build_time"] = Util::Timer.time do
|
66
|
+
tries = region_config.server_build_timeout / 2
|
65
67
|
env[:ui].info(I18n.t("vagrant_brightbox.waiting_for_build"))
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
68
|
+
begin
|
69
|
+
retryable(:on => Fog::Errors::TimeoutError, :tries => tries) do
|
70
|
+
# If we're interrupted don't worry about waiting
|
71
|
+
next if env[:interrupted]
|
72
|
+
|
73
|
+
# Wait for the server to be ready
|
74
|
+
server.wait_for(2) { ready? }
|
75
|
+
end
|
76
|
+
rescue Fog::Errors::TimeoutError
|
77
|
+
# Delete the server
|
78
|
+
terminate(env)
|
79
|
+
|
80
|
+
# Notify the user
|
81
|
+
raise Errors::ServerBuildTimeout,
|
82
|
+
timeout: region_config.server_build_timeout
|
83
|
+
end
|
73
84
|
end
|
74
85
|
|
75
86
|
@logger.info("Time for server to build: #{env[:metrics]["server_build_time"]}")
|
@@ -29,10 +29,6 @@ module VagrantPlugins
|
|
29
29
|
return nil
|
30
30
|
end
|
31
31
|
|
32
|
-
# Get the configuration
|
33
|
-
region = machine.provider_config.region
|
34
|
-
config = machine.provider_config.get_region_config(region)
|
35
|
-
|
36
32
|
if use_private_network?(machine.config.vm.networks)
|
37
33
|
host_name = server.fqdn
|
38
34
|
elsif use_ipv6_public_network?(machine.config.vm.networks)
|
@@ -47,9 +43,7 @@ module VagrantPlugins
|
|
47
43
|
# Read the DNS info
|
48
44
|
return {
|
49
45
|
:host => host_name,
|
50
|
-
:port => 22
|
51
|
-
:private_key_path => config.ssh_private_key_path,
|
52
|
-
:username => config.ssh_username
|
46
|
+
:port => 22
|
53
47
|
}
|
54
48
|
end
|
55
49
|
|
@@ -2,12 +2,15 @@ require "log4r"
|
|
2
2
|
|
3
3
|
require "vagrant/util/subprocess"
|
4
4
|
|
5
|
+
require "vagrant/util/scoped_hash_override"
|
6
|
+
|
5
7
|
module VagrantPlugins
|
6
8
|
module Brightbox
|
7
9
|
module Action
|
8
|
-
# This middleware uses `rsync` to sync the folders
|
9
|
-
# Brightbox server.
|
10
|
+
# This middleware uses `rsync` to sync the folders
|
10
11
|
class SyncFolders
|
12
|
+
include Vagrant::Util::ScopedHashOverride
|
13
|
+
|
11
14
|
def initialize(app, env)
|
12
15
|
@app = app
|
13
16
|
@logger = Log4r::Logger.new("vagrant_brightbox::action::sync_folders")
|
@@ -19,6 +22,11 @@ module VagrantPlugins
|
|
19
22
|
ssh_info = env[:machine].ssh_info
|
20
23
|
|
21
24
|
env[:machine].config.vm.synced_folders.each do |id, data|
|
25
|
+
data = scoped_hash_override(data, :brightbox)
|
26
|
+
|
27
|
+
# Ignore disabled shared folders
|
28
|
+
next if data[:disabled]
|
29
|
+
|
22
30
|
hostpath = File.expand_path(data[:hostpath], env[:root_path])
|
23
31
|
guestpath = data[:guestpath]
|
24
32
|
|
@@ -6,14 +6,14 @@ module VagrantPlugins
|
|
6
6
|
# This is the same as the builtin provision except it times the
|
7
7
|
# provisioner runs.
|
8
8
|
class TimedProvision < Vagrant::Action::Builtin::Provision
|
9
|
-
def run_provisioner(env, p)
|
9
|
+
def run_provisioner(env, name, p)
|
10
10
|
timer = Util::Timer.time do
|
11
11
|
super
|
12
12
|
end
|
13
13
|
|
14
14
|
env[:metrics] ||= {}
|
15
15
|
env[:metrics]["provisioner_times"] ||= []
|
16
|
-
env[:metrics]["provisioner_times"] << [
|
16
|
+
env[:metrics]["provisioner_times"] << [name, timer]
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
@@ -50,6 +50,11 @@ module VagrantPlugins
|
|
50
50
|
# @return [String]
|
51
51
|
attr_accessor :zone
|
52
52
|
|
53
|
+
# The timeout to wait for a server to become ready
|
54
|
+
#
|
55
|
+
# @return [Fixnum]
|
56
|
+
attr_accessor :server_build_timeout
|
57
|
+
|
53
58
|
# The type of server to launch, such as "nano"
|
54
59
|
#
|
55
60
|
# @return [String]
|
@@ -71,17 +76,10 @@ module VagrantPlugins
|
|
71
76
|
# @return [Array<String>]
|
72
77
|
attr_accessor :server_groups
|
73
78
|
|
74
|
-
# The
|
75
|
-
# This overrides the `config.ssh.private_key_path` variable.
|
76
|
-
#
|
77
|
-
# @return [String]
|
78
|
-
attr_accessor :ssh_private_key_path
|
79
|
-
|
80
|
-
# The SSH username to use with this server. This overrides
|
81
|
-
# the `config.ssh.username` variable.
|
79
|
+
# The user data string
|
82
80
|
#
|
83
81
|
# @return [String]
|
84
|
-
attr_accessor :
|
82
|
+
attr_accessor :user_data
|
85
83
|
|
86
84
|
def initialize(region_specific=false)
|
87
85
|
@client_id = UNSET_VALUE
|
@@ -93,12 +91,12 @@ module VagrantPlugins
|
|
93
91
|
@account = UNSET_VALUE
|
94
92
|
@image_id = UNSET_VALUE
|
95
93
|
@zone = UNSET_VALUE
|
94
|
+
@server_build_timeout = UNSET_VALUE
|
96
95
|
@server_type = UNSET_VALUE
|
97
96
|
@server_name = UNSET_VALUE
|
98
97
|
@region = UNSET_VALUE
|
99
98
|
@server_groups = UNSET_VALUE
|
100
|
-
|
101
|
-
@ssh_username = UNSET_VALUE
|
99
|
+
@user_data = UNSET_VALUE
|
102
100
|
|
103
101
|
# Internal state (prefix with __ so they aren't automatically
|
104
102
|
# merged)
|
@@ -184,11 +182,11 @@ module VagrantPlugins
|
|
184
182
|
@server_name = nil if @server_name == UNSET_VALUE
|
185
183
|
@zone = nil if @zone == UNSET_VALUE
|
186
184
|
|
185
|
+
# User data is nil by default
|
186
|
+
@user_data = nil if @user_data == UNSET_VALUE
|
187
187
|
|
188
|
-
|
189
|
-
|
190
|
-
@ssh_private_key_path = nil if @ssh_private_key_path == UNSET_VALUE
|
191
|
-
@ssh_username = nil if @ssh_username == UNSET_VALUE
|
188
|
+
# The default timeout is 120 seconds
|
189
|
+
@server_build_timeout = 120 if @server_build_timeout == UNSET_VALUE
|
192
190
|
|
193
191
|
# Compile our region specific configurations only within
|
194
192
|
# NON-REGION-SPECIFIC configurations.
|
@@ -216,7 +214,7 @@ module VagrantPlugins
|
|
216
214
|
end
|
217
215
|
|
218
216
|
def validate(machine)
|
219
|
-
errors =
|
217
|
+
errors = _detected_errors
|
220
218
|
|
221
219
|
errors << I18n.t("vagrant_brightbox.config.region_required") if @region.nil?
|
222
220
|
|
@@ -235,10 +233,6 @@ module VagrantPlugins
|
|
235
233
|
config.secret.nil?
|
236
234
|
end
|
237
235
|
|
238
|
-
if config.ssh_private_key_path && \
|
239
|
-
!File.file?(File.expand_path(config.ssh_private_key_path, machine.env.root_path))
|
240
|
-
errors << I18n.t("vagrant_brightbox.config.private_key_missing")
|
241
|
-
end
|
242
236
|
end
|
243
237
|
|
244
238
|
{ "Brightbox Provider" => errors }
|
@@ -6,8 +6,8 @@ end
|
|
6
6
|
|
7
7
|
# This is a sanity check to make sure no one is attempting to install
|
8
8
|
# this into an early Vagrant version.
|
9
|
-
if Vagrant::VERSION < "1.
|
10
|
-
raise "The Vagrant Brightbox plugin is only compatible with Vagrant 1.
|
9
|
+
if Vagrant::VERSION < "1.2.0"
|
10
|
+
raise "The Vagrant Brightbox plugin is only compatible with Vagrant 1.2+"
|
11
11
|
end
|
12
12
|
|
13
13
|
module VagrantPlugins
|
data/locales/en.yml
CHANGED
@@ -7,7 +7,9 @@ en:
|
|
7
7
|
finding_image: |-
|
8
8
|
Finding image for server...
|
9
9
|
launching_server: |-
|
10
|
-
Launching a server with the following settings
|
10
|
+
Launching a server with the following settings
|
11
|
+
supplied_user_data: |-
|
12
|
+
using supplied user_data string
|
11
13
|
not_created: |-
|
12
14
|
The server hasn't been created yet. Run `vagrant up` first.
|
13
15
|
ready: |-
|
@@ -60,6 +62,12 @@ en:
|
|
60
62
|
message is shown below:
|
61
63
|
|
62
64
|
%{message}
|
65
|
+
server_build_timeout: |-
|
66
|
+
The server never became available on Brightbox Cloud. The timeout
|
67
|
+
currently set waiting for the server to build is %{timeout}
|
68
|
+
seconds. Please verify that the server properly boots. If you
|
69
|
+
need more time set the `server_build_timeout` configuration in
|
70
|
+
the Brightbox provider.
|
63
71
|
rsync_error: |-
|
64
72
|
There was an error when attemping to rsync a share folder.
|
65
73
|
Please inspect the error message below for more info.
|
@@ -22,20 +22,19 @@ describe VagrantPlugins::Brightbox::Config do
|
|
22
22
|
# Server
|
23
23
|
its("image_id") { should be_nil }
|
24
24
|
its("zone") { should be_nil }
|
25
|
+
its("server_build_timeout") { should == 120 }
|
25
26
|
its("server_type") { should be_nil }
|
26
27
|
its("server_name") { should be_nil }
|
27
28
|
its("region") { should == "gb1" }
|
28
29
|
its("server_groups") { should == [] }
|
30
|
+
its("user_data") { should be nil }
|
29
31
|
|
30
|
-
# Access
|
31
|
-
its("ssh_private_key_path") { should be_nil }
|
32
|
-
its("ssh_username") { should be_nil }
|
33
32
|
end
|
34
33
|
|
35
34
|
describe "overriding defaults" do
|
36
35
|
[:client_id, :secret, :auth_url, :api_url, :username, :password, :account,
|
37
|
-
:image_id, :zone, :
|
38
|
-
|
36
|
+
:image_id, :zone, :server_build_timeout, :server_type, :server_name,
|
37
|
+
:region, :server_groups, :user_data].each do |attribute|
|
39
38
|
|
40
39
|
it "should not default #{attribute} if overridden" do
|
41
40
|
instance.send("#{attribute}=".to_sym, "foo")
|
@@ -60,6 +59,7 @@ describe VagrantPlugins::Brightbox::Config do
|
|
60
59
|
let(:config_server_groups) { ["foo", "bar"] }
|
61
60
|
let(:config_zone) { "foo" }
|
62
61
|
let(:config_region) { "foo" }
|
62
|
+
let(:config_user_data) { "user_data" }
|
63
63
|
|
64
64
|
def set_test_values(instance)
|
65
65
|
instance.client_id = config_client_id
|
@@ -76,6 +76,7 @@ describe VagrantPlugins::Brightbox::Config do
|
|
76
76
|
instance.region = config_region
|
77
77
|
instance.zone = config_zone
|
78
78
|
instance.server_groups = config_server_groups
|
79
|
+
instance.user_data = config_user_data
|
79
80
|
end
|
80
81
|
|
81
82
|
it "should raise an exception if not finalized" do
|
@@ -109,6 +110,7 @@ describe VagrantPlugins::Brightbox::Config do
|
|
109
110
|
its("region") { should == config_region }
|
110
111
|
its("zone") { should == config_zone }
|
111
112
|
its("server_groups") { should == config_server_groups }
|
113
|
+
its("user_data") { should == config_user_data }
|
112
114
|
end
|
113
115
|
|
114
116
|
context "with a specific config set" do
|
@@ -140,6 +142,7 @@ describe VagrantPlugins::Brightbox::Config do
|
|
140
142
|
its("server_type") { should == config_server_type }
|
141
143
|
its("zone") { should == config_zone }
|
142
144
|
its("server_groups") { should == config_server_groups }
|
145
|
+
its("user_data") { should == config_user_data }
|
143
146
|
end
|
144
147
|
|
145
148
|
describe "inheritance of parent config" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-brightbox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-04-
|
13
|
+
date: 2013-04-19 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: fog
|
17
|
-
requirement:
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,15 @@ dependencies:
|
|
22
22
|
version: 1.10.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements:
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ~>
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: 1.10.0
|
26
31
|
- !ruby/object:Gem::Dependency
|
27
32
|
name: rake
|
28
|
-
requirement:
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
29
34
|
none: false
|
30
35
|
requirements:
|
31
36
|
- - ! '>='
|
@@ -33,10 +38,15 @@ dependencies:
|
|
33
38
|
version: '0'
|
34
39
|
type: :development
|
35
40
|
prerelease: false
|
36
|
-
version_requirements:
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ! '>='
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
37
47
|
- !ruby/object:Gem::Dependency
|
38
48
|
name: rspec
|
39
|
-
requirement:
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
40
50
|
none: false
|
41
51
|
requirements:
|
42
52
|
- - ~>
|
@@ -44,7 +54,12 @@ dependencies:
|
|
44
54
|
version: 2.13.0
|
45
55
|
type: :development
|
46
56
|
prerelease: false
|
47
|
-
version_requirements:
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ~>
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 2.13.0
|
48
63
|
description: Enables Vagrant to manage servers in Brightbox Cloud.
|
49
64
|
email:
|
50
65
|
- neil@aldur.co.uk
|
@@ -59,7 +74,6 @@ files:
|
|
59
74
|
- README.md
|
60
75
|
- Rakefile
|
61
76
|
- Vagrantfile.example
|
62
|
-
- dummy.box
|
63
77
|
- example_box/README.md
|
64
78
|
- example_box/metadata.json
|
65
79
|
- lib/vagrant-brightbox.rb
|
@@ -102,7 +116,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
102
116
|
version: '0'
|
103
117
|
segments:
|
104
118
|
- 0
|
105
|
-
hash:
|
119
|
+
hash: -4267484700850995720
|
106
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
121
|
none: false
|
108
122
|
requirements:
|
@@ -111,10 +125,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
125
|
version: '0'
|
112
126
|
segments:
|
113
127
|
- 0
|
114
|
-
hash:
|
128
|
+
hash: -4267484700850995720
|
115
129
|
requirements: []
|
116
130
|
rubyforge_project:
|
117
|
-
rubygems_version: 1.8.
|
131
|
+
rubygems_version: 1.8.23
|
118
132
|
signing_key:
|
119
133
|
specification_version: 3
|
120
134
|
summary: Enables Vagrant to manage servers in Brightbox Cloud.
|
data/dummy.box
DELETED
Binary file
|