vagrant-brightbox 0.1.0 → 0.2.0
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/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
|