vagrant-softlayer 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,227 +1,261 @@
1
- require "spec_helper"
2
-
3
- describe VagrantPlugins::SoftLayer::Config do
4
- let(:config) { described_class.new }
5
- let(:machine) { double("machine") }
6
-
7
- describe "defaults" do
8
- subject do
9
- config.tap do |o|
10
- o.finalize!
11
- end
12
- end
13
-
14
- its("api_key") { should be_nil }
15
- its("endpoint_url") { should eq VagrantPlugins::SoftLayer::API_PUBLIC_ENDPOINT }
16
- its("username") { should be_nil }
17
-
18
- its("datacenter") { should be_nil }
19
- its("dedicated") { should be_false }
20
- its("domain") { should be_nil }
21
- its("hostname") { should be_nil }
22
- its("hourly_billing") { should be_true }
23
- its("local_disk") { should be_true }
24
- its("max_memory") { should eq 1024 }
25
- its("network_speed") { should eq 10 }
26
- its("operating_system") { should eq "UBUNTU_LATEST" }
27
- its("post_install") { should be_nil }
28
- its("private_only") { should be_false }
29
- its("ssh_key") { should be_nil }
30
- its("start_cpus") { should eq 1 }
31
- its("user_data") { should be_nil }
32
- its("vlan_private") { should be_nil }
33
- its("vlan_public") { should be_nil }
34
-
35
- its("load_balancers") { should eq [] }
36
- its("manage_dns") { should be_false }
37
- end
38
-
39
- describe "overriding defaults" do
40
- context "booleans" do
41
- [true, false].each do |bool|
42
- [:dedicated, :hourly_billing, :local_disk, :manage_dns, :private_only].each do |attribute|
43
- it "should accept both true and false for #{attribute}" do
44
- config.send("#{attribute}=".to_sym, bool)
45
- config.finalize!
46
- expect(config.send(attribute)).to eq bool
47
- end
48
- end
49
- end
50
- end
51
-
52
- context "integers" do
53
- [:max_memory, :network_speed, :ssh_key, :start_cpus, :vlan_private, :vlan_public].each do |attribute|
54
- it "should not default #{attribute} if overridden" do
55
- config.send("#{attribute}=".to_sym, 999)
56
- config.finalize!
57
- expect(config.send(attribute)).to eq 999
58
- end
59
- end
60
- end
61
-
62
- context "strings" do
63
- [:api_key, :datacenter, :endpoint_url, :username, :domain, :hostname, :operating_system, :post_install, :ssh_key, :user_data].each do |attribute|
64
- it "should not default #{attribute} if overridden" do
65
- config.send("#{attribute}=".to_sym, "foo")
66
- config.finalize!
67
- expect(config.send(attribute)).to eq "foo"
68
- end
69
- end
70
- end
71
- end
72
-
73
- describe "joining load balancer" do
74
- it "should set weight to 1 by default" do
75
- config.join_load_balancer :port => 443, :vip => "1.1.1.1"
76
- config.finalize!
77
- expect(config.load_balancers.first[:service].weight).to eq(1)
78
- end
79
-
80
- it "should set passed options" do
81
- config.join_load_balancer :foo => "bar", :port => 443, :vip => "1.1.1.1"
82
- config.finalize!
83
- expect(config.load_balancers.first[:foo]).to eq("bar")
84
- end
85
-
86
- it "should set service parameters" do
87
- config.join_load_balancer :port => 443, :vip => "1.1.1.1" do |srv|
88
- srv.destination_port = 443
89
- srv.health_check = "DNS"
90
- srv.notes = "Some notes"
91
- srv.weight = 9
92
- end
93
- config.finalize!
94
- expect(config.load_balancers.first[:service].destination_port).to eq(443)
95
- expect(config.load_balancers.first[:service].health_check).to eq("DNS")
96
- expect(config.load_balancers.first[:service].notes).to eq("Some notes")
97
- expect(config.load_balancers.first[:service].weight).to eq(9)
98
- end
99
- end
100
-
101
- describe "using SL_ environment variables" do
102
- before :each do
103
- ENV.stub(:[]).with("SL_API_KEY").and_return("env_api_key")
104
- ENV.stub(:[]).with("SL_USERNAME").and_return("env_username")
105
- end
106
-
107
- subject do
108
- config.tap do |o|
109
- o.finalize!
110
- end
111
- end
112
-
113
- its("api_key") { should eq "env_api_key" }
114
- its("username") { should eq "env_username" }
115
- end
116
-
117
- describe "validation" do
118
- before :each do
119
- # Setup some good configuration values
120
- config.api_key = "An API key"
121
- config.username = "An username"
122
-
123
- config.datacenter = "ams01"
124
- config.dedicated = false
125
- config.domain = "example.com"
126
- config.hostname = "vagrant"
127
- config.hourly_billing = true
128
- config.local_disk = true
129
- config.max_memory = 1024
130
- config.network_speed = 10
131
- config.operating_system = "UBUNTU_LATEST"
132
- config.post_install = "http://example.com/foo"
133
- config.ssh_key = ["First key", "Second key"]
134
- config.start_cpus = 1
135
- config.user_data = "some metadata"
136
- config.vlan_private = 111
137
- config.vlan_public = 222
138
-
139
- config.manage_dns = false
140
-
141
- machine.stub_chain(:config, :vm, :hostname).and_return(nil)
142
- end
143
-
144
- it "should validate" do
145
- config.finalize!
146
- expect(config.validate(machine)["SoftLayer"]).to have(:no).item
147
- end
148
-
149
- it "should fail if API key is not given" do
150
- config.api_key = nil
151
- config.finalize!
152
- expect(config.validate(machine)["SoftLayer"]).to have(1).item
153
- end
154
-
155
- it "should fail if username is not given" do
156
- config.username = nil
157
- config.finalize!
158
- expect(config.validate(machine)["SoftLayer"]).to have(1).item
159
- end
160
-
161
- it "should fail if domain is not given" do
162
- config.domain = nil
163
- config.finalize!
164
- expect(config.validate(machine)["SoftLayer"]).to have(1).item
165
- end
166
-
167
- it "should fail if hostname is not given" do
168
- config.hostname = nil
169
- config.finalize!
170
- expect(config.validate(machine)["SoftLayer"]).to have(1).item
171
- end
172
-
173
- it "should validate if hostname is not given but config.vm.hostname is set" do
174
- config.hostname = nil
175
- config.finalize!
176
- machine.stub_chain(:config, :vm, :hostname).and_return("vagrant")
177
- expect(config.validate(machine)["SoftLayer"]).to have(:no).item
178
- end
179
-
180
- it "should fail if ssh key is not given" do
181
- config.ssh_key = nil
182
- config.finalize!
183
- expect(config.validate(machine)["SoftLayer"]).to have(1).item
184
- end
185
-
186
- it "should fail if a load balancer is specified without vip" do
187
- config.join_load_balancer :port => 443 do |srv|
188
- srv.destination_port = 443
189
- end
190
- config.finalize!
191
- expect(config.validate(machine)["SoftLayer"]).to have(1).item
192
- end
193
-
194
- it "should fail if a load balancer is specified without port" do
195
- config.join_load_balancer :vip => "1.1.1.1" do |srv|
196
- srv.destination_port = 443
197
- end
198
- config.finalize!
199
- expect(config.validate(machine)["SoftLayer"]).to have(1).item
200
- end
201
-
202
- it "should fail if a load balancer is specified without destination port" do
203
- config.join_load_balancer :port => 443, :vip => "1.1.1.1"
204
- config.finalize!
205
- expect(config.validate(machine)["SoftLayer"]).to have(1).item
206
- end
207
-
208
- it "should fail if two load balancers han been defined with same vip and port" do
209
- config.join_load_balancer :port => 443, :vip => "1.1.1.1" do |srv|
210
- srv.destination_port = 443
211
- end
212
- config.join_load_balancer :port => 443, :vip => "1.1.1.1" do |srv|
213
- srv.destination_port = 8443
214
- end
215
- config.finalize!
216
- expect(config.validate(machine)["SoftLayer"]).to have(1).item
217
- end
218
-
219
- it "should validate if a load balancer if specified with vip, port and destination port" do
220
- config.join_load_balancer :port => 443, :vip => "1.1.1.1" do |srv|
221
- srv.destination_port = 443
222
- end
223
- config.finalize!
224
- expect(config.validate(machine)["SoftLayer"]).to have(:no).item
225
- end
226
- end
227
- end
1
+ require "spec_helper"
2
+
3
+ describe VagrantPlugins::SoftLayer::Config do
4
+ let(:config) { described_class.new }
5
+ let(:machine) { double("machine") }
6
+
7
+ describe "defaults" do
8
+ subject do
9
+ config.tap do |o|
10
+ o.finalize!
11
+ end
12
+ end
13
+
14
+ its("api_key") { should be_nil }
15
+ its("endpoint_url") { should eq VagrantPlugins::SoftLayer::API_PUBLIC_ENDPOINT }
16
+ its("username") { should be_nil }
17
+
18
+ its("datacenter") { should be_nil }
19
+ its("dedicated") { should be_false }
20
+ its("disk_capacity") { should be_nil }
21
+ its("domain") { should be_nil }
22
+ its("hostname") { should be_nil }
23
+ its("hourly_billing") { should be_true }
24
+ its("image_guid") { should be_nil }
25
+ its("local_disk") { should be_true }
26
+ its("max_memory") { should eq 1024 }
27
+ its("network_speed") { should eq 10 }
28
+ its("operating_system") { should eq "UBUNTU_LATEST" }
29
+ its("post_install") { should be_nil }
30
+ its("private_only") { should be_false }
31
+ its("ssh_key") { should be_nil }
32
+ its("start_cpus") { should eq 1 }
33
+ its("user_data") { should be_nil }
34
+ its("vlan_private") { should be_nil }
35
+ its("vlan_public") { should be_nil }
36
+
37
+ its("load_balancers") { should eq [] }
38
+ its("manage_dns") { should be_false }
39
+ end
40
+
41
+ describe "overriding defaults" do
42
+ context "booleans" do
43
+ [true, false].each do |bool|
44
+ [:dedicated, :hourly_billing, :local_disk, :manage_dns, :private_only].each do |attribute|
45
+ it "should accept both true and false for #{attribute}" do
46
+ config.send("#{attribute}=".to_sym, bool)
47
+ config.finalize!
48
+ expect(config.send(attribute)).to eq bool
49
+ end
50
+ end
51
+ end
52
+ end
53
+
54
+ context "integers" do
55
+ [:max_memory, :network_speed, :ssh_key, :start_cpus, :vlan_private, :vlan_public].each do |attribute|
56
+ it "should not default #{attribute} if overridden" do
57
+ config.send("#{attribute}=".to_sym, 999)
58
+ config.finalize!
59
+ expect(config.send(attribute)).to eq 999
60
+ end
61
+ end
62
+ end
63
+
64
+ context "strings" do
65
+ [:api_key, :datacenter, :endpoint_url, :username, :domain, :hostname, :image_guid, :operating_system, :post_install, :ssh_key, :user_data].each do |attribute|
66
+ it "should not default #{attribute} if overridden" do
67
+ config.send("#{attribute}=".to_sym, "foo")
68
+ config.finalize!
69
+ expect(config.send(attribute)).to eq "foo"
70
+ end
71
+ end
72
+ end
73
+
74
+ context "int hash" do
75
+ it "should not default disk_capacity if overriden" do
76
+ config.send("disk_capacity=".to_sym, { 0 => 100, 2 => 25 } )
77
+ config.finalize!
78
+ expect(config.send("disk_capacity")).to eq { 0 => 100, 2 => 25 }
79
+ end
80
+ end
81
+ end
82
+
83
+ describe "joining load balancer" do
84
+ it "should set weight to 1 by default" do
85
+ config.join_load_balancer :port => 443, :vip => "1.1.1.1"
86
+ config.finalize!
87
+ expect(config.load_balancers.first[:service].weight).to eq(1)
88
+ end
89
+
90
+ it "should set passed options" do
91
+ config.join_load_balancer :foo => "bar", :port => 443, :vip => "1.1.1.1"
92
+ config.finalize!
93
+ expect(config.load_balancers.first[:foo]).to eq("bar")
94
+ end
95
+
96
+ it "should set service parameters" do
97
+ config.join_load_balancer :port => 443, :vip => "1.1.1.1" do |srv|
98
+ srv.destination_port = 443
99
+ srv.health_check = "DNS"
100
+ srv.notes = "Some notes"
101
+ srv.weight = 9
102
+ end
103
+ config.finalize!
104
+ expect(config.load_balancers.first[:service].destination_port).to eq(443)
105
+ expect(config.load_balancers.first[:service].health_check).to eq("DNS")
106
+ expect(config.load_balancers.first[:service].notes).to eq("Some notes")
107
+ expect(config.load_balancers.first[:service].weight).to eq(9)
108
+ end
109
+ end
110
+
111
+ describe "using SL_ environment variables" do
112
+ before :each do
113
+ ENV.stub(:[]).with("SL_API_KEY").and_return("env_api_key")
114
+ ENV.stub(:[]).with("SL_USERNAME").and_return("env_username")
115
+ end
116
+
117
+ subject do
118
+ config.tap do |o|
119
+ o.finalize!
120
+ end
121
+ end
122
+
123
+ its("api_key") { should eq "env_api_key" }
124
+ its("username") { should eq "env_username" }
125
+ end
126
+
127
+ describe "validation" do
128
+ before :each do
129
+ # Setup some good configuration values
130
+ config.api_key = "An API key"
131
+ config.username = "An username"
132
+
133
+ config.datacenter = "ams01"
134
+ config.dedicated = false
135
+ config.domain = "example.com"
136
+ config.disk_capacity = { 0 => 25 }
137
+ config.hostname = "vagrant"
138
+ config.hourly_billing = true
139
+ config.image_guid = nil
140
+ config.local_disk = true
141
+ config.max_memory = 1024
142
+ config.network_speed = 10
143
+ config.operating_system = "UBUNTU_LATEST"
144
+ config.post_install = "http://example.com/foo"
145
+ config.ssh_key = ["First key", "Second key"]
146
+ config.start_cpus = 1
147
+ config.user_data = "some metadata"
148
+ config.vlan_private = 111
149
+ config.vlan_public = 222
150
+
151
+ config.manage_dns = false
152
+
153
+ machine.stub_chain(:config, :vm, :hostname).and_return(nil)
154
+ end
155
+
156
+ it "should validate" do
157
+ config.finalize!
158
+ expect(config.validate(machine)["SoftLayer"]).to have(:no).item
159
+ end
160
+
161
+ it "should fail if API key is not given" do
162
+ config.api_key = nil
163
+ config.finalize!
164
+ expect(config.validate(machine)["SoftLayer"]).to have(1).item
165
+ end
166
+
167
+ it "should fail if username is not given" do
168
+ config.username = nil
169
+ config.finalize!
170
+ expect(config.validate(machine)["SoftLayer"]).to have(1).item
171
+ end
172
+
173
+ it "should fail if domain is not given" do
174
+ config.domain = nil
175
+ config.finalize!
176
+ expect(config.validate(machine)["SoftLayer"]).to have(1).item
177
+ end
178
+
179
+ it "should fail if hostname is not given" do
180
+ config.hostname = nil
181
+ config.finalize!
182
+ expect(config.validate(machine)["SoftLayer"]).to have(1).item
183
+ end
184
+
185
+ it "should validate if hostname is not given but config.vm.hostname is set" do
186
+ config.hostname = nil
187
+ config.finalize!
188
+ machine.stub_chain(:config, :vm, :hostname).and_return("vagrant")
189
+ expect(config.validate(machine)["SoftLayer"]).to have(:no).item
190
+ end
191
+
192
+ it "should fail if ssh key is not given" do
193
+ config.ssh_key = nil
194
+ config.finalize!
195
+ expect(config.validate(machine)["SoftLayer"]).to have(1).item
196
+ end
197
+
198
+ it "should fail if a load balancer is specified without vip" do
199
+ config.join_load_balancer :port => 443 do |srv|
200
+ srv.destination_port = 443
201
+ end
202
+ config.finalize!
203
+ expect(config.validate(machine)["SoftLayer"]).to have(1).item
204
+ end
205
+
206
+ it "should fail if a load balancer is specified without port" do
207
+ config.join_load_balancer :vip => "1.1.1.1" do |srv|
208
+ srv.destination_port = 443
209
+ end
210
+ config.finalize!
211
+ expect(config.validate(machine)["SoftLayer"]).to have(1).item
212
+ end
213
+
214
+ it "should fail if a load balancer is specified without destination port" do
215
+ config.join_load_balancer :port => 443, :vip => "1.1.1.1"
216
+ config.finalize!
217
+ expect(config.validate(machine)["SoftLayer"]).to have(1).item
218
+ end
219
+
220
+ it "should fail if two load balancers han been defined with same vip and port" do
221
+ config.join_load_balancer :port => 443, :vip => "1.1.1.1" do |srv|
222
+ srv.destination_port = 443
223
+ end
224
+ config.join_load_balancer :port => 443, :vip => "1.1.1.1" do |srv|
225
+ srv.destination_port = 8443
226
+ end
227
+ config.finalize!
228
+ expect(config.validate(machine)["SoftLayer"]).to have(1).item
229
+ end
230
+
231
+ it "should validate if a load balancer if specified with vip, port and destination port" do
232
+ config.join_load_balancer :port => 443, :vip => "1.1.1.1" do |srv|
233
+ srv.destination_port = 443
234
+ end
235
+ config.finalize!
236
+ expect(config.validate(machine)["SoftLayer"]).to have(:no).item
237
+ end
238
+
239
+ it "should fail if disk_capacity and image_guid are both specified" do
240
+ config.disk_capacity = { 0 => 25 }
241
+ config.image_guid = "AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE"
242
+ config.operating_system = nil
243
+ config.finalize!
244
+ expect(config.validate(machine)["SoftLayer"]).to have(1).item
245
+ end
246
+
247
+ it "should fail if operating system and image_guid are both specified" do
248
+ config.image_guid = "AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE"
249
+ config.operating_system = "UBUNTU_LATEST"
250
+ config.finalize!
251
+ expect(config.validate(machine)["SoftLayer"]).to have(1).item
252
+ end
253
+
254
+ it "should validate if operating_system and disk_capacity are both specified" do
255
+ config.operating_system = "UBUNTU_LATEST"
256
+ config.disk_capacity = { 0 => 25 }
257
+ config.finalize!
258
+ expect(config.validate(machine)["SoftLayer"]).to have(:no).item
259
+ end
260
+ end
261
+ end
@@ -6,9 +6,11 @@ Gem::Specification.new do |spec|
6
6
  spec.version = VagrantPlugins::SoftLayer::VERSION
7
7
  spec.authors = "Audiolize GmbH"
8
8
  spec.email = ""
9
+ spec.homepage = "https://github.com/audiolize/vagrant-softlayer"
9
10
  spec.description = "Enables Vagrant to manages SoftLayer CCI."
10
11
  spec.summary = "Enables Vagrant to manages SoftLayer CCI."
11
-
12
+ spec.license = "MIT"
13
+
12
14
  # The following block of code determines the files that should be included
13
15
  # in the gem. It does this by reading all the files in the directory where
14
16
  # this gemspec is, and parsing out the ignored files from the gitignore.
metadata CHANGED
@@ -1,36 +1,32 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-softlayer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
5
- prerelease:
4
+ version: 0.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Audiolize GmbH
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-12-05 00:00:00.000000000 Z
11
+ date: 2014-04-15 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: softlayer_api
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: bundler
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -46,33 +41,29 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rake
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rspec
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  description: Enables Vagrant to manages SoftLayer CCI.
@@ -82,6 +73,8 @@ extensions: []
82
73
  extra_rdoc_files: []
83
74
  files:
84
75
  - CHANGELOG.md
76
+ - contrib/README.md
77
+ - contrib/vagrant-softlayer-boxes
85
78
  - dummy.box
86
79
  - example_box/metadata.json
87
80
  - example_box/README.md
@@ -95,9 +88,11 @@ files:
95
88
  - lib/vagrant-softlayer/action/read_ssh_info.rb
96
89
  - lib/vagrant-softlayer/action/read_state.rb
97
90
  - lib/vagrant-softlayer/action/rebuild_instance.rb
91
+ - lib/vagrant-softlayer/action/resume_instance.rb
98
92
  - lib/vagrant-softlayer/action/setup_softlayer.rb
99
93
  - lib/vagrant-softlayer/action/start_instance.rb
100
94
  - lib/vagrant-softlayer/action/stop_instance.rb
95
+ - lib/vagrant-softlayer/action/suspend_instance.rb
101
96
  - lib/vagrant-softlayer/action/sync_folders.rb
102
97
  - lib/vagrant-softlayer/action/update_dns.rb
103
98
  - lib/vagrant-softlayer/action/wait_for_provision.rb
@@ -121,35 +116,29 @@ files:
121
116
  - spec/vagrant-softlayer/config_spec.rb
122
117
  - vagrant-softlayer.gemspec
123
118
  - .gitignore
124
- homepage:
125
- licenses: []
119
+ homepage: https://github.com/audiolize/vagrant-softlayer
120
+ licenses:
121
+ - MIT
122
+ metadata: {}
126
123
  post_install_message:
127
124
  rdoc_options: []
128
125
  require_paths:
129
126
  - lib
130
127
  required_ruby_version: !ruby/object:Gem::Requirement
131
- none: false
132
128
  requirements:
133
- - - ! '>='
129
+ - - '>='
134
130
  - !ruby/object:Gem::Version
135
131
  version: '0'
136
- segments:
137
- - 0
138
- hash: 2669020036350751985
139
132
  required_rubygems_version: !ruby/object:Gem::Requirement
140
- none: false
141
133
  requirements:
142
- - - ! '>='
134
+ - - '>='
143
135
  - !ruby/object:Gem::Version
144
136
  version: '0'
145
- segments:
146
- - 0
147
- hash: 2669020036350751985
148
137
  requirements: []
149
138
  rubyforge_project:
150
- rubygems_version: 1.8.23
139
+ rubygems_version: 2.0.14
151
140
  signing_key:
152
- specification_version: 3
141
+ specification_version: 4
153
142
  summary: Enables Vagrant to manages SoftLayer CCI.
154
143
  test_files:
155
144
  - spec/spec_helper.rb