vagrant-linode 0.2.5 → 0.2.6
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 +4 -4
- data/README.md +5 -0
- data/box/README.md +6 -0
- data/box/linode.box +0 -0
- data/box/metadata.json +1 -1
- data/lib/vagrant-linode/actions/create.rb +39 -3
- data/lib/vagrant-linode/config.rb +38 -19
- data/lib/vagrant-linode/errors.rb +8 -0
- data/lib/vagrant-linode/version.rb +1 -1
- data/locales/en.yml +6 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d69d729a4e0d62d3e6a9e7b0b21ecdb80995b37b
|
4
|
+
data.tar.gz: d607202c4ff6ef28c01612ca7888cf20ad91cc46
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc76f6878e29e12e0ed2608b07bae18938bdfb843be758a70439f08b1903bea6fd2b456c54a5acbebd8580798cf66d1d5108d124df0dc235c60d5d9b91ed2a3e
|
7
|
+
data.tar.gz: eaeb9a36d82212a329d25338fdd70af8b972d97641ff431adb8ae78d18ad9c206016dc0df06c601af40d4f346c6be05be66fa32a7a027e84127e1781bac2f3a2
|
data/README.md
CHANGED
@@ -171,6 +171,11 @@ curl -X POST "https://api.linode.com/?api_action=avail.kernels" \
|
|
171
171
|
|
172
172
|
More detail: [Linode API - Kernels](https://www.linode.com/api/utility/avail.kernels)
|
173
173
|
|
174
|
+
### nfs.functional
|
175
|
+
|
176
|
+
The sync provider, NFS, has been disabled to make rsync easier to use. To enable NFS,
|
177
|
+
run Vagrant with an environment variable `LINODE_NFS_FUNCTIONAL=1`. This will require
|
178
|
+
a bit more configuration between the Linode and the Vagrant host.
|
174
179
|
|
175
180
|
Run
|
176
181
|
---
|
data/box/README.md
CHANGED
@@ -11,3 +11,9 @@ $ tar cvzf linode.box ./metadata.json ./Vagrantfile
|
|
11
11
|
This box works by using Vagrant's built-in Vagrantfile merging to setup
|
12
12
|
defaults for Linode. These defaults can easily be overwritten by higher-level
|
13
13
|
Vagrantfiles (such as project root Vagrantfiles).
|
14
|
+
|
15
|
+
# Test
|
16
|
+
|
17
|
+
```
|
18
|
+
vagrant box add --name linode_test linode.box
|
19
|
+
```
|
data/box/linode.box
CHANGED
Binary file
|
data/box/metadata.json
CHANGED
@@ -16,7 +16,7 @@ module VagrantPlugins
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def call(env)
|
19
|
-
|
19
|
+
@client = env[:linode_api]
|
20
20
|
ssh_key_id = env[:machine].config.ssh.private_key_path
|
21
21
|
ssh_key_id = ssh_key_id[0] if ssh_key_id.is_a?(Array)
|
22
22
|
if ssh_key_id
|
@@ -29,6 +29,23 @@ module VagrantPlugins
|
|
29
29
|
root_pass = Digest::SHA2.new.update(@machine.provider_config.api_key).to_s
|
30
30
|
end
|
31
31
|
|
32
|
+
if @machine.provider_config.stackscript
|
33
|
+
stackscripts = @client.stackscript.list + @client.avail.stackscripts
|
34
|
+
stackscript = stackscripts.find { |s| s.label.downcase == @machine.provider_config.stackscript.to_s.downcase }
|
35
|
+
fail(Errors::StackscriptMatch, stackscript: @machine.provider_config.stackscript.to_s) if stackscript.nil?
|
36
|
+
stackscript_id = stackscript.stackscriptid || nil
|
37
|
+
else
|
38
|
+
stackscript_id = @machine.provider_config.stackscriptid
|
39
|
+
end
|
40
|
+
|
41
|
+
stackscript_udf_responses = @machine.provider_config.stackscript_udf_responses
|
42
|
+
|
43
|
+
if stackscript_udf_responses and !stackscript_udf_responses.is_a?(Hash)
|
44
|
+
fail(Errors::StackscriptUDFFormat, format: stackscript_udf_responses.class.to_s)
|
45
|
+
else
|
46
|
+
stackscript_udf_responses = @machine.provider_config.stackscript_udf_responses or {}
|
47
|
+
end
|
48
|
+
|
32
49
|
if @machine.provider_config.distribution
|
33
50
|
distributions = @client.avail.distributions
|
34
51
|
distribution = distributions.find { |d| d.label.downcase.include? @machine.provider_config.distribution.downcase }
|
@@ -50,7 +67,7 @@ module VagrantPlugins
|
|
50
67
|
image = images.find { |i| i.label.downcase.include? @machine.provider_config.image.downcase }
|
51
68
|
fail Errors::ImageMatch, image: @machine.provider_config.image.to_s if image.nil?
|
52
69
|
image_id = image.imageid || nil
|
53
|
-
|
70
|
+
end
|
54
71
|
|
55
72
|
if @machine.provider_config.kernel
|
56
73
|
kernels = @client.avail.kernels
|
@@ -114,7 +131,26 @@ module VagrantPlugins
|
|
114
131
|
# assign the machine id for reference in other commands
|
115
132
|
@machine.id = result['linodeid'].to_s
|
116
133
|
|
117
|
-
if
|
134
|
+
if stackscript_id
|
135
|
+
swap = @client.linode.disk.create(
|
136
|
+
linodeid: result['linodeid'],
|
137
|
+
label: 'Vagrant swap',
|
138
|
+
type: 'swap',
|
139
|
+
size: swap_size
|
140
|
+
)
|
141
|
+
|
142
|
+
disk = @client.linode.disk.createfromstackscript(
|
143
|
+
linodeid: result['linodeid'],
|
144
|
+
stackscriptid: stackscript_id,
|
145
|
+
stackscriptudfresponses: JSON.dump(stackscript_udf_responses),
|
146
|
+
distributionid: distribution_id,
|
147
|
+
label: 'Vagrant Disk Distribution ' + distribution_id.to_s + ' Linode ' + result['linodeid'].to_s,
|
148
|
+
type: 'ext4',
|
149
|
+
size: xvda_size,
|
150
|
+
rootsshkey: pubkey,
|
151
|
+
rootpass: root_pass
|
152
|
+
)
|
153
|
+
elsif distribution_id
|
118
154
|
swap = @client.linode.disk.create(
|
119
155
|
linodeid: result['linodeid'],
|
120
156
|
label: 'Vagrant swap',
|
@@ -17,6 +17,9 @@ module VagrantPlugins
|
|
17
17
|
attr_accessor :ca_path
|
18
18
|
attr_accessor :ssh_key_name
|
19
19
|
attr_accessor :setup
|
20
|
+
attr_accessor :stackscriptid
|
21
|
+
attr_accessor :stackscript
|
22
|
+
attr_accessor :stackscript_udf_responses
|
20
23
|
attr_accessor :xvda_size
|
21
24
|
attr_accessor :swap_size
|
22
25
|
attr_accessor :kernelid
|
@@ -34,9 +37,12 @@ module VagrantPlugins
|
|
34
37
|
@api_url = UNSET_VALUE
|
35
38
|
@distributionid = UNSET_VALUE
|
36
39
|
@distribution = UNSET_VALUE
|
40
|
+
@stackscriptid = UNSET_VALUE
|
41
|
+
@stackscript = UNSET_VALUE
|
42
|
+
@stackscript_udf_responses = UNSET_VALUE
|
37
43
|
@imageid = UNSET_VALUE
|
38
|
-
|
39
|
-
|
44
|
+
@image = UNSET_VALUE
|
45
|
+
@datacenterid = UNSET_VALUE
|
40
46
|
@datacenter = UNSET_VALUE
|
41
47
|
@planid = UNSET_VALUE
|
42
48
|
@plan = UNSET_VALUE
|
@@ -61,13 +67,16 @@ module VagrantPlugins
|
|
61
67
|
@imageid = nil if @imageid == UNSET_VALUE
|
62
68
|
@image = nil if @image == UNSET_VALUE
|
63
69
|
@distributionid = nil if @distributionid == UNSET_VALUE
|
64
|
-
|
70
|
+
@distribution = nil if @distribution == UNSET_VALUE
|
65
71
|
@distribution = 'Ubuntu 14.04 LTS' if @distribution.nil? and @distributionid.nil? and @imageid.nil? and @image.nil?
|
72
|
+
@stackscriptid = nil if @stackscriptid == UNSET_VALUE
|
73
|
+
@stackscript = nil if @stackscript == UNSET_VALUE
|
74
|
+
@stackscript_udf_responses = nil if @stackscript_udf_responses == UNSET_VALUE
|
66
75
|
@datacenterid = nil if @datacenterid == UNSET_VALUE
|
67
76
|
@datacenter = nil if @datacenter == UNSET_VALUE
|
68
77
|
@datacenter = 'dallas' if @datacenter.nil? and @datacenterid.nil?
|
69
78
|
@planid = nil if @planid == UNSET_VALUE
|
70
|
-
|
79
|
+
@plan = nil if @plan == UNSET_VALUE
|
71
80
|
@plan = 'Linode 1024' if @plan.nil? and @planid.nil?
|
72
81
|
@paymentterm = '1' if @paymentterm == UNSET_VALUE
|
73
82
|
@private_networking = false if @private_networking == UNSET_VALUE
|
@@ -97,29 +106,39 @@ module VagrantPlugins
|
|
97
106
|
errors << I18n.t('vagrant_linode.config.public_key', key: "#{key}.pub")
|
98
107
|
end
|
99
108
|
|
100
|
-
|
101
|
-
|
102
|
-
|
109
|
+
if @distributionid and @distribution
|
110
|
+
errors << I18n.t('vagrant_linode.config.distributionid_or_distribution')
|
111
|
+
end
|
112
|
+
|
113
|
+
<<<<<<< 879127420e478cc36b502abe9dd6d88b7d3ccc40
|
114
|
+
if @stackscriptid and @stackscript
|
115
|
+
errors << I18n.t('vagrant_linode.config.stackscriptid_or_stackscript')
|
116
|
+
end
|
103
117
|
|
104
118
|
if @datacenterid and @datacenter
|
105
119
|
errors << I18n.t('vagrant_linode.config.datacenterid_or_datacenter')
|
106
120
|
end
|
121
|
+
=======
|
122
|
+
if @datacenterid and @datacenter
|
123
|
+
errors << I18n.t('vagrant_linode.config.datacenterid_or_datacenter')
|
124
|
+
end
|
125
|
+
>>>>>>> nagging white-space clean-up in config.rb
|
107
126
|
|
108
|
-
|
109
|
-
|
110
|
-
|
127
|
+
if @kernelid and @kernel
|
128
|
+
errors << I18n.t('vagrant_linode.config.kernelid_or_kernel')
|
129
|
+
end
|
111
130
|
|
112
|
-
|
113
|
-
|
114
|
-
|
131
|
+
if @planid and @plan
|
132
|
+
errors << I18n.t('vagrant_linode.config.planid_or_plan')
|
133
|
+
end
|
115
134
|
|
116
|
-
|
117
|
-
|
118
|
-
|
135
|
+
if @imageid and @image
|
136
|
+
errors << I18n.t('vagrant_linode.config.imageid_or_image')
|
137
|
+
end
|
119
138
|
|
120
|
-
|
121
|
-
|
122
|
-
|
139
|
+
if (@distribution or @distributionid) and (@imageid or @image)
|
140
|
+
errors << I18n.t('vagrant_linode.config.distribution_or_image')
|
141
|
+
end
|
123
142
|
|
124
143
|
{ 'Linode Provider' => errors }
|
125
144
|
end
|
@@ -56,6 +56,14 @@ module VagrantPlugins
|
|
56
56
|
class RsyncError < LinodeError
|
57
57
|
error_key(:rsync)
|
58
58
|
end
|
59
|
+
|
60
|
+
class StackscriptMatch < LinodeError
|
61
|
+
error_key(:stackscript_match)
|
62
|
+
end
|
63
|
+
|
64
|
+
class StackscriptUDFFormat < LinodeError
|
65
|
+
error_key(:stackscript_udf_responses)
|
66
|
+
end
|
59
67
|
end
|
60
68
|
end
|
61
69
|
end
|
data/locales/en.yml
CHANGED
@@ -46,6 +46,7 @@ en:
|
|
46
46
|
disk_too_large: "Disk Images use more drive space than plan allocates"
|
47
47
|
planid_or_plan: "Use either planid or plan, not both"
|
48
48
|
distributionid_or_distribution: "Use either distributionid or distribution, not both"
|
49
|
+
stackscriptid_or_stackscript: "Use either stackscriptid or stackscript, not both"
|
49
50
|
datacenterid_or_datacenter: "Use either datacenterid or datacenter, not both"
|
50
51
|
kernelid_or_kernel: "Use either kernelid or kernel, not both"
|
51
52
|
imageid_or_image: "Use either imageid or image, not both"
|
@@ -126,3 +127,8 @@ en:
|
|
126
127
|
plan_id: !-
|
127
128
|
The plan which you have specified ( %{plan} ) is not available at this time,
|
128
129
|
for more information regarding plans review the following url - https://www.linode.com/pricing
|
130
|
+
stackscript_match: !-
|
131
|
+
The provider does not have your chosen Stackscript ( %{stackscript} ).
|
132
|
+
Supported distributions can be found at the following url - https://manager.linode.com/stackscripts
|
133
|
+
stackscript_udf_responses: !-
|
134
|
+
The stackscript UDF responses object provided is of the wrong type. It should be a Hash.
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-linode
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marques Johansson
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-06-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: linodeapi
|
@@ -203,7 +203,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
203
203
|
version: '0'
|
204
204
|
requirements: []
|
205
205
|
rubyforge_project:
|
206
|
-
rubygems_version: 2.
|
206
|
+
rubygems_version: 2.5.1
|
207
207
|
signing_key:
|
208
208
|
specification_version: 4
|
209
209
|
summary: Enables Vagrant to manage Linode linodes
|