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