vagrant-softlayer 0.3.2 → 0.3.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e2bcf85c294e1277c3f0735037d725a097c80573
4
- data.tar.gz: 55d0ede2bc1d93190be3d4a0b5b6cc3ab7a93907
3
+ metadata.gz: c0c1fe3a1cabd26c85e98ea939676567e1be1fe4
4
+ data.tar.gz: a5d2fdffa3043056351f95ef7bfd8d91f6406ade
5
5
  SHA512:
6
- metadata.gz: b6c90c5309edcbe1ec5d29b22628a058c715a4b2557654b6df6f2ca7cb8e6b426de4a45aef6e501302bc8effa30a4a002ba696e59d66550ec958996ceb7341b2
7
- data.tar.gz: cb6f940ee32c41fb277b460fae31e2d2ff40d5dcd6596baf6946a55a0057332c2266f0aba6f6cc61e25973aa50f049e62f54da12ed776f1a9088b5f114c84895
6
+ metadata.gz: 8d6ac6b78727aa2e6c7644ef41199bef30ae792e1daf2c03c6b2d85c3abd8f4781406d125b4e4a8fc6f1843d8e1ba56c66e8db57b3ee80f26ad99cc1bb9ae57e
7
+ data.tar.gz: be92961dc1d8fce6b402998b8c1112a74a6f634a322a29d3519f4e9be4ab739d9d71aa00fb4c6b16cede7811e29c6407578e300e403d70182a84d87f23ee1fa6
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## 0.3.3 (August 21, 2014)
2
+
3
+ ENHANCEMENTS:
4
+
5
+ - Add parallel execution capability.
6
+ - Add configuration variables for provision and rebuild timeout.
7
+ - Use builtin synced folders if available.
8
+
9
+ BUG FIXES:
10
+
11
+ - Raise a proper exception on timeout.
12
+
1
13
  ## 0.3.2 (August 1, 2014)
2
14
 
3
15
  ENHANCEMENTS:
data/README.md CHANGED
@@ -105,6 +105,13 @@ Parameter | Description
105
105
 
106
106
  \** When defining the instance you can either specify an `image_guid` or `operating_system` with optional `disk_capacity`.
107
107
 
108
+ ### Timeouts
109
+
110
+ Parameter | Description | Default | Required
111
+ ------------------- | ------------------------------------------| ----------------| --------
112
+ `provision_timeout` | Provisioning wait timeout in seconds | 1200 | no
113
+ `rebuild_timeout` | Rebuild wait timeout in seconds | 1200 | no
114
+
108
115
  These can be set like typical provider-specific configuration:
109
116
 
110
117
  ```
@@ -247,6 +254,3 @@ $ bundle exec vagrant up --provider=softlayer
247
254
 
248
255
  Emiliano Ticci (@emyl)
249
256
  Julio Lajara (@ju2wheels)
250
-
251
- [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/audiolize/vagrant-softlayer/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
252
-
@@ -1,22 +1,22 @@
1
- require "pathname"
2
- require "softlayer_api"
3
- require "vagrant-softlayer/plugin"
4
-
5
- module VagrantPlugins
6
- module SoftLayer
7
- API_PRIVATE_ENDPOINT = ::SoftLayer::API_PRIVATE_ENDPOINT
8
- API_PUBLIC_ENDPOINT = ::SoftLayer::API_PUBLIC_ENDPOINT
9
-
10
- lib_path = Pathname.new(File.expand_path("../vagrant-softlayer", __FILE__))
11
- autoload :Action, lib_path.join("action")
12
- autoload :Config, lib_path.join("config")
13
- autoload :Errors, lib_path.join("errors")
14
-
15
- # This returns the path to the source of this plugin.
16
- #
17
- # @return [Pathname]
18
- def self.source_root
19
- @source_root ||= Pathname.new(File.expand_path("../../", __FILE__))
20
- end
21
- end
22
- end
1
+ require "pathname"
2
+ require "softlayer_api"
3
+ require "vagrant-softlayer/plugin"
4
+
5
+ module VagrantPlugins
6
+ module SoftLayer
7
+ API_PRIVATE_ENDPOINT = ::SoftLayer::API_PRIVATE_ENDPOINT
8
+ API_PUBLIC_ENDPOINT = ::SoftLayer::API_PUBLIC_ENDPOINT
9
+
10
+ lib_path = Pathname.new(File.expand_path("../vagrant-softlayer", __FILE__))
11
+ autoload :Action, lib_path.join("action")
12
+ autoload :Config, lib_path.join("config")
13
+ autoload :Errors, lib_path.join("errors")
14
+
15
+ # This returns the path to the source of this plugin.
16
+ #
17
+ # @return [Pathname]
18
+ def self.source_root
19
+ @source_root ||= Pathname.new(File.expand_path("../../", __FILE__))
20
+ end
21
+ end
22
+ end
@@ -60,7 +60,7 @@ module VagrantPlugins
60
60
  end
61
61
 
62
62
  b2.use Provision
63
- b2.use SyncFolders
63
+ defined?(SyncedFolders) ? b2.use(SyncedFolders) : b2.use(SyncFolders)
64
64
  end
65
65
  end
66
66
  end
@@ -100,7 +100,7 @@ module VagrantPlugins
100
100
  b3.use SetupSoftLayer
101
101
  b3.use RebuildInstance
102
102
  b3.use Provision
103
- b3.use SyncFolders
103
+ defined?(SyncedFolders) ? b3.use(SyncedFolders) : b3.use(SyncFolders)
104
104
  b3.use WaitForRebuild
105
105
  b3.use WaitForCommunicator
106
106
  end
@@ -195,7 +195,7 @@ module VagrantPlugins
195
195
  if env1[:result]
196
196
  b1.use SetupSoftLayer
197
197
  b1.use Provision
198
- b1.use SyncFolders
198
+ defined?(SyncedFolders) ? b1.use(SyncedFolders) : b1.use(SyncFolders)
199
199
  b1.use CreateInstance
200
200
  b1.use WaitForProvision
201
201
  b1.use UpdateDNS
@@ -206,7 +206,7 @@ module VagrantPlugins
206
206
  if env2[:result]
207
207
  b2.use SetupSoftLayer
208
208
  b2.use Provision
209
- b2.use SyncFolders
209
+ defined?(SyncedFolders) ? b2.use(SyncedFolders) : b2.use(SyncFolders)
210
210
  b2.use StartInstance
211
211
  b2.use UpdateDNS
212
212
  b2.use JoinLoadBalancer
@@ -1,23 +1,23 @@
1
- module VagrantPlugins
2
- module SoftLayer
3
- module Action
4
- # This deletes the running instance.
5
- class DestroyInstance
6
- include Util::Warden
7
-
8
- def initialize(app, env)
9
- @app = app
10
- end
11
-
12
- def call(env)
13
- env[:ui].info I18n.t("vagrant_softlayer.vm.destroying")
14
-
15
- sl_warden { env[:sl_machine].deleteObject }
16
- env[:machine].id = nil
17
-
18
- @app.call(env)
19
- end
20
- end
21
- end
22
- end
23
- end
1
+ module VagrantPlugins
2
+ module SoftLayer
3
+ module Action
4
+ # This deletes the running instance.
5
+ class DestroyInstance
6
+ include Util::Warden
7
+
8
+ def initialize(app, env)
9
+ @app = app
10
+ end
11
+
12
+ def call(env)
13
+ env[:ui].info I18n.t("vagrant_softlayer.vm.destroying")
14
+
15
+ sl_warden { env[:sl_machine].deleteObject }
16
+ env[:machine].id = nil
17
+
18
+ @app.call(env)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,28 +1,28 @@
1
- module VagrantPlugins
2
- module SoftLayer
3
- module Action
4
- # This action reads the SSH info for the machine and puts it into the
5
- # `:machine_ssh_info` key in the environment.
6
- class ReadSSHInfo
7
- include Util::Network
8
- include Util::Warden
9
-
10
- def initialize(app, env)
11
- @app = app
12
- end
13
-
14
- def call(env)
15
- env[:machine_ssh_info] = read_ssh_info(env)
16
-
17
- @app.call(env)
18
- end
19
-
20
- def read_ssh_info(env)
21
- return nil unless env[:sl_machine]
22
-
23
- return { :host => ip_address(env), :port => 22 }
24
- end
25
- end
26
- end
27
- end
28
- end
1
+ module VagrantPlugins
2
+ module SoftLayer
3
+ module Action
4
+ # This action reads the SSH info for the machine and puts it into the
5
+ # `:machine_ssh_info` key in the environment.
6
+ class ReadSSHInfo
7
+ include Util::Network
8
+ include Util::Warden
9
+
10
+ def initialize(app, env)
11
+ @app = app
12
+ end
13
+
14
+ def call(env)
15
+ env[:machine_ssh_info] = read_ssh_info(env)
16
+
17
+ @app.call(env)
18
+ end
19
+
20
+ def read_ssh_info(env)
21
+ return nil unless env[:sl_machine]
22
+
23
+ return { :host => ip_address(env), :port => 22 }
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -1,42 +1,42 @@
1
- require "log4r"
2
-
3
- module VagrantPlugins
4
- module SoftLayer
5
- module Action
6
- # This action reads the state of the machine and puts it in the
7
- # `:machine_state_id` key in the environment.
8
- class ReadState
9
- include Util::Warden
10
-
11
- def initialize(app, env)
12
- @app = app
13
- @logger = Log4r::Logger.new("vagrant_softlayer::action::read_state")
14
- end
15
-
16
- def call(env)
17
- env[:machine_state_id] = read_state(env)
18
-
19
- # Carry on
20
- @app.call(env)
21
- end
22
-
23
- def read_state(env)
24
- return :not_created unless env[:sl_machine]
25
-
26
- wipe_id = lambda do
27
- @logger.info("Machine not found, assuming it got destroyed.")
28
- env[:machine].id = nil
29
- next :not_created
30
- end
31
-
32
- state = sl_warden(wipe_id) { env[:sl_machine].getPowerState }
33
- if state && ["Halted", "Paused", "Running"].include?(state["name"])
34
- return state["name"].downcase.to_sym
35
- else
36
- return :unknown
37
- end
38
- end
39
- end
40
- end
41
- end
42
- end
1
+ require "log4r"
2
+
3
+ module VagrantPlugins
4
+ module SoftLayer
5
+ module Action
6
+ # This action reads the state of the machine and puts it in the
7
+ # `:machine_state_id` key in the environment.
8
+ class ReadState
9
+ include Util::Warden
10
+
11
+ def initialize(app, env)
12
+ @app = app
13
+ @logger = Log4r::Logger.new("vagrant_softlayer::action::read_state")
14
+ end
15
+
16
+ def call(env)
17
+ env[:machine_state_id] = read_state(env)
18
+
19
+ # Carry on
20
+ @app.call(env)
21
+ end
22
+
23
+ def read_state(env)
24
+ return :not_created unless env[:sl_machine]
25
+
26
+ wipe_id = lambda do
27
+ @logger.info("Machine not found, assuming it got destroyed.")
28
+ env[:machine].id = nil
29
+ next :not_created
30
+ end
31
+
32
+ state = sl_warden(wipe_id) { env[:sl_machine].getPowerState }
33
+ if state && ["Halted", "Paused", "Running"].include?(state["name"])
34
+ return state["name"].downcase.to_sym
35
+ else
36
+ return :unknown
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -1,35 +1,35 @@
1
- module VagrantPlugins
2
- module SoftLayer
3
- module Action
4
- # This rebuilds the running instance.
5
- class RebuildInstance
6
- include Util::Network
7
- include Util::Warden
8
-
9
- def initialize(app, env)
10
- @app = app
11
- @logger = Log4r::Logger.new("vagrant_softlayer::action::rebuild_instance")
12
- end
13
-
14
- def call(env)
15
- env[:ui].info I18n.t("vagrant_softlayer.vm.rebuilding")
16
-
17
- # Wipe out provision sentinel file, we need to run provisioning after rebuild
18
- @logger.debug("Looking for provision sentinel file.")
19
- provision_file = env[:machine].data_dir.join("action_provision")
20
- if provision_file.file?
21
- @logger.debug("Removing provision sentinel file.")
22
- provision_file.delete
23
- end
24
-
25
- template = { "sshKeyIds" => ssh_keys(env, true) }
26
- template["customProvisionScriptUri"] = env[:machine].provider_config.post_install if env[:machine].provider_config.post_install
27
-
28
- sl_warden { env[:sl_machine].reloadOperatingSystem("FORCE", template) }
29
-
30
- @app.call(env)
31
- end
32
- end
33
- end
34
- end
35
- end
1
+ module VagrantPlugins
2
+ module SoftLayer
3
+ module Action
4
+ # This rebuilds the running instance.
5
+ class RebuildInstance
6
+ include Util::Network
7
+ include Util::Warden
8
+
9
+ def initialize(app, env)
10
+ @app = app
11
+ @logger = Log4r::Logger.new("vagrant_softlayer::action::rebuild_instance")
12
+ end
13
+
14
+ def call(env)
15
+ env[:ui].info I18n.t("vagrant_softlayer.vm.rebuilding")
16
+
17
+ # Wipe out provision sentinel file, we need to run provisioning after rebuild
18
+ @logger.debug("Looking for provision sentinel file.")
19
+ provision_file = env[:machine].data_dir.join("action_provision")
20
+ if provision_file.file?
21
+ @logger.debug("Removing provision sentinel file.")
22
+ provision_file.delete
23
+ end
24
+
25
+ template = { "sshKeyIds" => ssh_keys(env, true) }
26
+ template["customProvisionScriptUri"] = env[:machine].provider_config.post_install if env[:machine].provider_config.post_install
27
+
28
+ sl_warden { env[:sl_machine].reloadOperatingSystem("FORCE", template) }
29
+
30
+ @app.call(env)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -1,21 +1,21 @@
1
- module VagrantPlugins
2
- module SoftLayer
3
- module Action
4
- # This starts a stopped instance.
5
- class StartInstance
6
- include Util::Warden
7
-
8
- def initialize(app, env)
9
- @app = app
10
- end
11
-
12
- def call(env)
13
- env[:ui].info I18n.t("vagrant_softlayer.vm.starting")
14
- sl_warden { env[:sl_machine].powerOn }
15
-
16
- @app.call(env)
17
- end
18
- end
19
- end
20
- end
21
- end
1
+ module VagrantPlugins
2
+ module SoftLayer
3
+ module Action
4
+ # This starts a stopped instance.
5
+ class StartInstance
6
+ include Util::Warden
7
+
8
+ def initialize(app, env)
9
+ @app = app
10
+ end
11
+
12
+ def call(env)
13
+ env[:ui].info I18n.t("vagrant_softlayer.vm.starting")
14
+ sl_warden { env[:sl_machine].powerOn }
15
+
16
+ @app.call(env)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,30 +1,30 @@
1
- module VagrantPlugins
2
- module SoftLayer
3
- module Action
4
- # This stops the running instance.
5
- class StopInstance
6
- include Util::Warden
7
-
8
- def initialize(app, env)
9
- @app = app
10
- end
11
-
12
- def call(env)
13
- if env[:machine].state.id == :halted
14
- env[:ui].info I18n.t("vagrant_softlayer.vm.already_stopped")
15
- else
16
- if env[:force_halt]
17
- env[:ui].info I18n.t("vagrant_softlayer.vm.stopping_force")
18
- sl_warden { env[:sl_machine].powerOff }
19
- else
20
- env[:ui].info I18n.t("vagrant_softlayer.vm.stopping")
21
- sl_warden { env[:sl_machine].powerOffSoft }
22
- end
23
- end
24
-
25
- @app.call(env)
26
- end
27
- end
28
- end
29
- end
30
- end
1
+ module VagrantPlugins
2
+ module SoftLayer
3
+ module Action
4
+ # This stops the running instance.
5
+ class StopInstance
6
+ include Util::Warden
7
+
8
+ def initialize(app, env)
9
+ @app = app
10
+ end
11
+
12
+ def call(env)
13
+ if env[:machine].state.id == :halted
14
+ env[:ui].info I18n.t("vagrant_softlayer.vm.already_stopped")
15
+ else
16
+ if env[:force_halt]
17
+ env[:ui].info I18n.t("vagrant_softlayer.vm.stopping_force")
18
+ sl_warden { env[:sl_machine].powerOff }
19
+ else
20
+ env[:ui].info I18n.t("vagrant_softlayer.vm.stopping")
21
+ sl_warden { env[:sl_machine].powerOffSoft }
22
+ end
23
+ end
24
+
25
+ @app.call(env)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -19,8 +19,8 @@ module VagrantPlugins
19
19
 
20
20
  retry_msg = lambda { @logger.debug("Object not found, retrying in 10 seconds.") }
21
21
 
22
- # 20 minutes timeout
23
- Timeout::timeout(1200) do
22
+ # Defaults to 20 minutes timeout
23
+ Timeout::timeout(env[:machine].provider_config.provision_timeout, Errors::SLProvisionTimeoutError) do
24
24
  @logger.debug("Checking if the newly ordered machine has been provisioned.")
25
25
  sl_warden(retry_msg, 10) do
26
26
  while env[:sl_machine].getPowerState["name"] != "Running" || env[:sl_machine].object_mask( { "provisionDate" => "" } ).getObject == {}
@@ -31,7 +31,7 @@ module VagrantPlugins
31
31
  end
32
32
 
33
33
  env[:ui].info I18n.t("vagrant_softlayer.vm.provisioned")
34
-
34
+
35
35
  @app.call(env)
36
36
  end
37
37
  end
@@ -15,8 +15,8 @@ module VagrantPlugins
15
15
  def call(env)
16
16
  env[:ui].info I18n.t("vagrant_softlayer.vm.wait_for_rebuild")
17
17
 
18
- # 20 minutes timeout
19
- Timeout::timeout(1200) do
18
+ # Defaults to 20 minutes timeout
19
+ Timeout::timeout(env[:machine].provider_config.rebuild_timeout, Errors::SLRebuildTimeoutError) do
20
20
  @logger.debug("Checking if the instance has been rebuilt.")
21
21
  sl_warden do
22
22
  while env[:sl_machine].object_mask("activeTransactionCount").getObject["activeTransactionCount"] > 0
@@ -27,7 +27,7 @@ module VagrantPlugins
27
27
  end
28
28
 
29
29
  env[:ui].info I18n.t("vagrant_softlayer.vm.rebuilt")
30
-
30
+
31
31
  @app.call(env)
32
32
  end
33
33
  end
@@ -54,6 +54,12 @@ module VagrantPlugins
54
54
  # Whether or not the instance only has access to the private network.
55
55
  attr_accessor :private_only
56
56
 
57
+ # The amount of time in seconds to wait for provision to complete.
58
+ attr_accessor :provision_timeout
59
+
60
+ # The amount of time in seconds to wait for rebuild to complete.
61
+ attr_accessor :rebuild_timeout
62
+
57
63
  # The id or name of the ssh key to be provisioned.
58
64
  attr_accessor :ssh_key
59
65
 
@@ -80,25 +86,27 @@ module VagrantPlugins
80
86
  @endpoint_url = UNSET_VALUE
81
87
  @username = UNSET_VALUE
82
88
 
83
- @datacenter = UNSET_VALUE
84
- @dedicated = UNSET_VALUE
85
- @disk_capacity = UNSET_VALUE
86
- @domain = UNSET_VALUE
87
- @force_private_ip = UNSET_VALUE
88
- @hostname = UNSET_VALUE
89
- @image_guid = UNSET_VALUE
90
- @hourly_billing = UNSET_VALUE
91
- @local_disk = UNSET_VALUE
92
- @max_memory = UNSET_VALUE
93
- @network_speed = UNSET_VALUE
94
- @operating_system = UNSET_VALUE
95
- @post_install = UNSET_VALUE
96
- @private_only = UNSET_VALUE
97
- @ssh_key = UNSET_VALUE
98
- @start_cpus = UNSET_VALUE
99
- @user_data = UNSET_VALUE
100
- @vlan_private = UNSET_VALUE
101
- @vlan_public = UNSET_VALUE
89
+ @datacenter = UNSET_VALUE
90
+ @dedicated = UNSET_VALUE
91
+ @disk_capacity = UNSET_VALUE
92
+ @domain = UNSET_VALUE
93
+ @force_private_ip = UNSET_VALUE
94
+ @hostname = UNSET_VALUE
95
+ @image_guid = UNSET_VALUE
96
+ @hourly_billing = UNSET_VALUE
97
+ @local_disk = UNSET_VALUE
98
+ @max_memory = UNSET_VALUE
99
+ @network_speed = UNSET_VALUE
100
+ @operating_system = UNSET_VALUE
101
+ @post_install = UNSET_VALUE
102
+ @private_only = UNSET_VALUE
103
+ @provision_timeout = UNSET_VALUE
104
+ @rebuild_timeout = UNSET_VALUE
105
+ @ssh_key = UNSET_VALUE
106
+ @start_cpus = UNSET_VALUE
107
+ @user_data = UNSET_VALUE
108
+ @vlan_private = UNSET_VALUE
109
+ @vlan_public = UNSET_VALUE
102
110
 
103
111
  @load_balancers = []
104
112
  @manage_dns = UNSET_VALUE
@@ -189,6 +197,12 @@ module VagrantPlugins
189
197
  # Private-network only is false by default.
190
198
  @private_only = false if @private_only == UNSET_VALUE
191
199
 
200
+ # The amount of time in seconds to wait for provision to complete.
201
+ @provision_timeout = 1200 if @provision_timeout == UNSET_VALUE
202
+
203
+ # The amount of time in seconds to wait for rebuild to complete.
204
+ @rebuild_timeout = 1200 if @rebuild_timeout == UNSET_VALUE
205
+
192
206
  # SSH key should be specified in Vagrantfile, so we set default to nil.
193
207
  @ssh_key = nil if @ssh_key == UNSET_VALUE
194
208
 
@@ -21,6 +21,14 @@ module VagrantPlugins
21
21
  error_key(:load_balancer_not_found)
22
22
  end
23
23
 
24
+ class SLProvisionTimeoutError < VagrantSoftLayerError
25
+ error_key(:provision_timeout_error)
26
+ end
27
+
28
+ class SLRebuildTimeoutError < VagrantSoftLayerError
29
+ error_key(:rebuild_timeout_error)
30
+ end
31
+
24
32
  class SLSshKeyNotFound < VagrantSoftLayerError
25
33
  error_key(:ssh_key_not_found)
26
34
  end
@@ -29,7 +29,7 @@ module VagrantPlugins
29
29
  Config
30
30
  end
31
31
 
32
- provider(:softlayer) do
32
+ provider(:softlayer, :parallel => true) do
33
33
  init_logging
34
34
  init_i18n
35
35
 
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module SoftLayer
3
- VERSION = "0.3.2"
3
+ VERSION = "0.3.3"
4
4
  end
5
5
  end
data/locales/en.yml CHANGED
@@ -120,6 +120,30 @@ en:
120
120
  The load balancer you're trying to join has not been found.
121
121
 
122
122
  Please check the configuration parameter for virtual IP address.
123
+ provision_timeout_error: |-
124
+ Timed out while waiting for the instance to be available. This
125
+ means that Vagrant was unable to communicate with the instance
126
+ within the configured time period.
127
+
128
+ Please check the instance status using another SoftLayer
129
+ client tool (e.g. `sl` command line utility). If the box appears
130
+ to be properly up, you may want to increase the provision timeout:
131
+
132
+ config.vm.provider :softlayer do |sl|
133
+ sl.provision_timeout = 99999 # in seconds
134
+ end
135
+ rebuild_timeout_error: |-
136
+ Timed out while waiting for the instance to be available. This
137
+ means that Vagrant was unable to communicate with the instance
138
+ within the configured time period.
139
+
140
+ Please check the instance status using another SoftLayer
141
+ client tool (e.g. `sl` command line utility). If the box appears
142
+ to be properly up, you may want to increase the rebuild timeout:
143
+
144
+ config.vm.provider :softlayer do |sl|
145
+ sl.rebuild_timeout = 99999 # in seconds
146
+ end
123
147
  ssh_key_not_found: |-
124
148
  The SSH key you're trying to set (%{key}) does not exists in the
125
149
  SoftLayer account's keychain.
@@ -15,25 +15,27 @@ describe VagrantPlugins::SoftLayer::Config do
15
15
  its("endpoint_url") { should eq VagrantPlugins::SoftLayer::API_PUBLIC_ENDPOINT }
16
16
  its("username") { should be_nil }
17
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("force_private_ip") { should be_false }
23
- its("hostname") { should be_nil }
24
- its("hourly_billing") { should be_true }
25
- its("image_guid") { should be_nil }
26
- its("local_disk") { should be_true }
27
- its("max_memory") { should eq 1024 }
28
- its("network_speed") { should eq 10 }
29
- its("operating_system") { should eq "UBUNTU_LATEST" }
30
- its("post_install") { should be_nil }
31
- its("private_only") { should be_false }
32
- its("ssh_key") { should be_nil }
33
- its("start_cpus") { should eq 1 }
34
- its("user_data") { should be_nil }
35
- its("vlan_private") { should be_nil }
36
- its("vlan_public") { should be_nil }
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("force_private_ip") { should be_false }
23
+ its("hostname") { should be_nil }
24
+ its("hourly_billing") { should be_true }
25
+ its("image_guid") { should be_nil }
26
+ its("local_disk") { should be_true }
27
+ its("max_memory") { should eq 1024 }
28
+ its("network_speed") { should eq 10 }
29
+ its("operating_system") { should eq "UBUNTU_LATEST" }
30
+ its("post_install") { should be_nil }
31
+ its("private_only") { should be_false }
32
+ its("provision_timeout") { should eq 1200 }
33
+ its("rebuild_timeout") { should eq 1200 }
34
+ its("ssh_key") { should be_nil }
35
+ its("start_cpus") { should eq 1 }
36
+ its("user_data") { should be_nil }
37
+ its("vlan_private") { should be_nil }
38
+ its("vlan_public") { should be_nil }
37
39
 
38
40
  its("load_balancers") { should eq [] }
39
41
  its("manage_dns") { should be_false }
@@ -53,7 +55,7 @@ describe VagrantPlugins::SoftLayer::Config do
53
55
  end
54
56
 
55
57
  context "integers" do
56
- [:max_memory, :network_speed, :ssh_key, :start_cpus, :vlan_private, :vlan_public].each do |attribute|
58
+ [:max_memory, :network_speed, :provision_timeout, :rebuild_timeout, :ssh_key, :start_cpus, :vlan_private, :vlan_public].each do |attribute|
57
59
  it "should not default #{attribute} if overridden" do
58
60
  config.send("#{attribute}=".to_sym, 999)
59
61
  config.finalize!
@@ -131,26 +133,28 @@ describe VagrantPlugins::SoftLayer::Config do
131
133
  config.api_key = "An API key"
132
134
  config.username = "An username"
133
135
 
134
- config.datacenter = "ams01"
135
- config.dedicated = false
136
- config.domain = "example.com"
137
- config.disk_capacity = { 0 => 25 }
138
- config.force_private_ip = false
139
- config.hostname = "vagrant"
140
- config.hourly_billing = true
141
- config.image_guid = nil
142
- config.local_disk = true
143
- config.max_memory = 1024
144
- config.network_speed = 10
145
- config.operating_system = "UBUNTU_LATEST"
146
- config.post_install = "http://example.com/foo"
147
- config.ssh_key = ["First key", "Second key"]
148
- config.start_cpus = 1
149
- config.user_data = "some metadata"
150
- config.vlan_private = 111
151
- config.vlan_public = 222
152
-
153
- config.manage_dns = false
136
+ config.datacenter = "ams01"
137
+ config.dedicated = false
138
+ config.domain = "example.com"
139
+ config.disk_capacity = { 0 => 25 }
140
+ config.force_private_ip = false
141
+ config.hostname = "vagrant"
142
+ config.hourly_billing = true
143
+ config.image_guid = nil
144
+ config.local_disk = true
145
+ config.max_memory = 1024
146
+ config.network_speed = 10
147
+ config.operating_system = "UBUNTU_LATEST"
148
+ config.post_install = "http://example.com/foo"
149
+ config.provision_timeout = 1200
150
+ config.rebuild_timeout = 1200
151
+ config.ssh_key = ["First key", "Second key"]
152
+ config.start_cpus = 1
153
+ config.user_data = "some metadata"
154
+ config.vlan_private = 111
155
+ config.vlan_public = 222
156
+
157
+ config.manage_dns = false
154
158
 
155
159
  machine.stub_chain(:config, :vm, :hostname).and_return(nil)
156
160
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-softlayer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Audiolize GmbH
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-01 00:00:00.000000000 Z
11
+ date: 2014-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: softlayer_api