vagrant-softlayer 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
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