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 CHANGED
@@ -1,4 +1,13 @@
1
- # 0.1.0 (unreleased)
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.1+ plugin that adds a [Brightbox](http://brightbox.com/)
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.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 an Brightbox-compatible
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 quickest way to get
37
- started is to actually use a dummy Brightbox box and specify all the details
38
- manually within a `config.vm.provider` block. So first, add the dummy
39
- box using any name you want:
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 dummy https://github.com/NeilW/vagrant-brightbox/raw/master/dummy.box
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
- And then make a Vagrantfile that looks like the following, filling in
47
- your information where necessary.
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
- brightbox.ssh_username = "ubuntu"
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
- And then run `vagrant up --provider=brightbox`.
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
- Note that normally a lot of this boilerplate is encoded within the box
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 basically just the required `metadata.json` file
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 'cli-xxxxx'
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 which one you want by setting the following options:
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 'acc-xxxxx'
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 Provision
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
- if !server_groups.empty?
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
- retryable(:on => Fog::Errors::TimeoutError, :tries => 30) do
67
- # If we're interrupted don't worry about waiting
68
- next if env[:interrupted]
69
-
70
- # Wait for the server to be ready
71
- server.wait_for(2) { ready? }
72
- end
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 over to the
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"] << [p.class.to_s, timer]
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 path to the SSH private key to use with this server.
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 :ssh_username
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
- @ssh_private_key_path = UNSET_VALUE
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
- # The SSH values by default are nil, and the top-level config
189
- # `config.ssh` values are used.
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 }
@@ -26,6 +26,10 @@ module VagrantPlugins
26
26
  error_key(:fog_error)
27
27
  end
28
28
 
29
+ class ServerBuildTimeout < VagrantBrightboxError
30
+ error_key(:server_build_timeout)
31
+ end
32
+
29
33
  class RsyncError < VagrantBrightboxError
30
34
  error_key(:rsync_error)
31
35
  end
@@ -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.1.0"
10
- raise "The Vagrant Brightbox plugin is only compatible with Vagrant 1.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
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module Brightbox
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
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, :server_type, :server_name, :region, :server_groups,
38
- :ssh_private_key_path, :ssh_username].each do |attribute|
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.1.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-05 00:00:00.000000000 Z
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: &17243720 !ruby/object:Gem::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: *17243720
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: &17241820 !ruby/object:Gem::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: *17241820
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: &17277700 !ruby/object:Gem::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: *17277700
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: 2290728058853834092
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: 2290728058853834092
128
+ hash: -4267484700850995720
115
129
  requirements: []
116
130
  rubyforge_project:
117
- rubygems_version: 1.8.11
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