vagrant-dotvm 0.32.1 → 0.33.0
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/CHANGELOG.md +9 -0
- data/examples/config/projects/playground/bootstrap.sh +1 -1
- data/lib/vagrant-dotvm.rb +3 -1
- data/lib/vagrant-dotvm/config/abstractconfig.rb +36 -2
- data/lib/vagrant-dotvm/config/invalidconfigerror.rb +8 -0
- data/lib/vagrant-dotvm/config/machine.rb +26 -72
- data/lib/vagrant-dotvm/config/network.rb +7 -7
- data/lib/vagrant-dotvm/config/optionssetter.rb +30 -0
- data/lib/vagrant-dotvm/config/provision.rb +4 -16
- data/lib/vagrant-dotvm/config/root.rb +12 -30
- data/lib/vagrant-dotvm/dotvm.rb +43 -36
- data/lib/vagrant-dotvm/injector/abstractinjector.rb +10 -0
- data/lib/vagrant-dotvm/injector/authorizedkey.rb +3 -3
- data/lib/vagrant-dotvm/injector/host.rb +1 -1
- data/lib/vagrant-dotvm/injector/machine.rb +10 -10
- data/lib/vagrant-dotvm/injector/root.rb +1 -1
- data/lib/vagrant-dotvm/injector/route.rb +1 -1
- data/lib/vagrant-dotvm/paths.rb +5 -0
- data/lib/vagrant-dotvm/version.rb +1 -1
- data/utils/add_host.sh +2 -0
- data/utils/authorize_key.sh +3 -0
- data/utils/setup_route.sh +3 -0
- metadata +5 -3
- data/lib/vagrant-dotvm/pathes.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f2c4493bbc971762cd78c087bddafd0f65a28e1e
|
4
|
+
data.tar.gz: 25b550ad3122a86fdba3798ad3837087bda96c52
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9c855e57c186204b4b9c7c26db8a64c770eab5a12385a52853f6546491ee6270596890fc5ac26b9ca47e76ef53e0eef7002480c37c4b74d841f8d8c37e53dc0a
|
7
|
+
data.tar.gz: 129cc8bf0e2cbffa2b5985f33af4fd7e65a5224d53e74d57e40d9c5f8359d72b48d607990b4f9fa72b2ad577f066c95ebb58c9d2bf0744d5d8be28ae837d7c4c
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
# 0.32.1
|
2
|
+
* Bugfix for situation when configuration file is empty
|
3
|
+
* Bugfix for situation when configuration doesn't have machines
|
4
|
+
|
5
|
+
# 0.32.0
|
6
|
+
* Local variables
|
7
|
+
* Global variables
|
8
|
+
* Refering another variables within variable
|
9
|
+
|
1
10
|
# 0.31.0
|
2
11
|
* Authorized keys and hosts were broken. It has been fixed.
|
3
12
|
* Docker provision
|
data/lib/vagrant-dotvm.rb
CHANGED
@@ -3,7 +3,7 @@ require 'yaml'
|
|
3
3
|
|
4
4
|
require 'vagrant-dotvm/plugin'
|
5
5
|
require 'vagrant-dotvm/version'
|
6
|
-
require 'vagrant-dotvm/
|
6
|
+
require 'vagrant-dotvm/paths'
|
7
7
|
require 'vagrant-dotvm/dotvm'
|
8
8
|
|
9
9
|
require 'vagrant-dotvm/injector/abstractinjector'
|
@@ -16,6 +16,8 @@ require 'vagrant-dotvm/injector/sharedfolder'
|
|
16
16
|
require 'vagrant-dotvm/injector/route'
|
17
17
|
require 'vagrant-dotvm/injector/network'
|
18
18
|
|
19
|
+
require 'vagrant-dotvm/config/optionssetter'
|
20
|
+
require 'vagrant-dotvm/config/invalidconfigerror'
|
19
21
|
require 'vagrant-dotvm/config/abstractconfig'
|
20
22
|
require 'vagrant-dotvm/config/root'
|
21
23
|
require 'vagrant-dotvm/config/machine'
|
@@ -2,13 +2,42 @@ module VagrantPlugins
|
|
2
2
|
module Dotvm
|
3
3
|
module Config
|
4
4
|
class AbstractConfig
|
5
|
+
# Populates current object with provided data.
|
6
|
+
#
|
7
|
+
# @param data [Hash] Hash with data
|
5
8
|
def populate(data)
|
6
9
|
data.each do |key, value|
|
7
|
-
raise "Invalid configuration option: #{key}." until respond_to? "#{key}="
|
10
|
+
raise InvalidConfigError.new "Invalid configuration option: #{key}." until respond_to? "#{key}="
|
8
11
|
send("#{key}=", value)
|
9
12
|
end
|
10
13
|
end
|
11
14
|
|
15
|
+
def ensure_type(value, type, name = '')
|
16
|
+
raise InvalidConfigError.new "'#{name}' must be #{type.name}." unless value.kind_of?(type) || value.kind_of?(NilClass)
|
17
|
+
end
|
18
|
+
|
19
|
+
# Converts array of hashes into array of specialized objects.
|
20
|
+
#
|
21
|
+
# @param data [Array] Array of hashes
|
22
|
+
# @param type [String] Specialized class name
|
23
|
+
# @return [Array] Array of specialized objects.
|
24
|
+
def convert_array(data, type)
|
25
|
+
result = []
|
26
|
+
|
27
|
+
data.to_a.each do |item|
|
28
|
+
object = Object.const_get(type).new
|
29
|
+
object.populate item
|
30
|
+
result << object
|
31
|
+
end
|
32
|
+
|
33
|
+
result
|
34
|
+
end
|
35
|
+
|
36
|
+
# Replaces variables in target object.
|
37
|
+
#
|
38
|
+
# @param vars [Hash] Hash of variables to be replaced.
|
39
|
+
# @param target [Object] Object to operate on.
|
40
|
+
# @return [Number] Number of performed replaces.
|
12
41
|
def replace_vars(vars, target)
|
13
42
|
replaced = 0
|
14
43
|
|
@@ -23,7 +52,7 @@ module VagrantPlugins
|
|
23
52
|
elsif target.kind_of?(String)
|
24
53
|
vars.each do |k, v|
|
25
54
|
pattern = "%#{k}%"
|
26
|
-
replaced+=1 unless (target.gsub! pattern, v).kind_of?(NilClass)
|
55
|
+
replaced += 1 unless (target.gsub! pattern, v).kind_of?(NilClass)
|
27
56
|
end
|
28
57
|
elsif target.kind_of?(AbstractConfig)
|
29
58
|
replaced += target.replace_vars!(vars)
|
@@ -32,6 +61,11 @@ module VagrantPlugins
|
|
32
61
|
replaced
|
33
62
|
end
|
34
63
|
|
64
|
+
# Search for variables within this object
|
65
|
+
# and performs replaces of them.
|
66
|
+
#
|
67
|
+
# @param vars [Hash] Hash of variables to be replaced.
|
68
|
+
# @return [Number] Number of performed replaces.
|
35
69
|
def replace_vars!(vars)
|
36
70
|
replaced = 0
|
37
71
|
|
@@ -2,6 +2,12 @@ module VagrantPlugins
|
|
2
2
|
module Dotvm
|
3
3
|
module Config
|
4
4
|
class Machine < AbstractConfig
|
5
|
+
include OptionsSetter
|
6
|
+
|
7
|
+
OPTIONS_CATEGORIES = [
|
8
|
+
:virtualbox,
|
9
|
+
]
|
10
|
+
|
5
11
|
attr_accessor :nick
|
6
12
|
attr_accessor :hostname # name
|
7
13
|
attr_accessor :box
|
@@ -22,7 +28,7 @@ module VagrantPlugins
|
|
22
28
|
attr_accessor :post_up_message
|
23
29
|
attr_accessor :autostart
|
24
30
|
attr_reader :hosts
|
25
|
-
attr_reader :options
|
31
|
+
attr_reader :options # mixin
|
26
32
|
attr_reader :shared_folders
|
27
33
|
attr_accessor :box_download_checksum
|
28
34
|
attr_accessor :box_download_checksum_type
|
@@ -42,45 +48,27 @@ module VagrantPlugins
|
|
42
48
|
|
43
49
|
def usable_port_range=(value)
|
44
50
|
m = value.scan(/^(\d+)\.\.(\d+)$/)
|
45
|
-
raise
|
51
|
+
raise InvalidConfigError.new 'Invalid usable_port_range, it must be in A..B format.' if m.length == 0
|
46
52
|
@usable_port_range = Range.new(m[0][0].to_i, m[0][1].to_i)
|
47
53
|
end
|
48
54
|
|
49
55
|
def networks=(networks)
|
50
|
-
|
51
|
-
|
52
|
-
@networks = []
|
53
|
-
networks.to_a.each do |conf|
|
54
|
-
item = Network.new
|
55
|
-
item.populate conf
|
56
|
-
@networks << item
|
57
|
-
end
|
56
|
+
ensure_type networks, Array, 'networks'
|
57
|
+
@networks = convert_array(networks, Network.name)
|
58
58
|
end
|
59
59
|
|
60
60
|
def routes=(routes)
|
61
|
-
|
62
|
-
|
63
|
-
@routes = []
|
64
|
-
routes.to_a.each do |conf|
|
65
|
-
item = Route.new
|
66
|
-
item.populate conf
|
67
|
-
@routes << item
|
68
|
-
end
|
61
|
+
ensure_type routes, Array, 'routes'
|
62
|
+
@routes = convert_array(routes, Route.name)
|
69
63
|
end
|
70
64
|
|
71
65
|
def provision=(provision)
|
72
|
-
|
73
|
-
|
74
|
-
@provision = []
|
75
|
-
provision.to_a.each do |conf|
|
76
|
-
item = Provision.new
|
77
|
-
item.populate conf
|
78
|
-
@provision << item
|
79
|
-
end
|
66
|
+
ensure_type provision, Array, 'provision'
|
67
|
+
@provision = convert_array(provision, Provision.name)
|
80
68
|
end
|
81
69
|
|
82
70
|
def groups=(groups)
|
83
|
-
|
71
|
+
ensure_type groups, Array, 'groups'
|
84
72
|
|
85
73
|
@groups = []
|
86
74
|
groups.to_a.each do |item|
|
@@ -89,59 +77,25 @@ module VagrantPlugins
|
|
89
77
|
end
|
90
78
|
|
91
79
|
def authorized_keys=(keys)
|
92
|
-
|
93
|
-
|
94
|
-
@authorized_keys = []
|
95
|
-
keys.to_a.each do |conf|
|
96
|
-
item = AuthorizedKey.new
|
97
|
-
item.populate conf
|
98
|
-
@authorized_keys << item
|
99
|
-
end
|
80
|
+
ensure_type keys, Array, 'authorized_keys'
|
81
|
+
@authorized_keys = convert_array(keys, AuthorizedKey.name)
|
100
82
|
end
|
101
83
|
|
102
84
|
def hosts=(hosts)
|
103
|
-
|
104
|
-
|
105
|
-
@hosts = []
|
106
|
-
hosts.to_a.each do |conf|
|
107
|
-
item = Host.new
|
108
|
-
item.populate conf
|
109
|
-
@hosts << item
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
def options=(options)
|
114
|
-
raise "'options' must be hash." unless options.kind_of?(Hash) || options.kind_of?(NilClass)
|
115
|
-
|
116
|
-
@options = {
|
117
|
-
:virtualbox => [],
|
118
|
-
}
|
119
|
-
options.to_h.each do |key, confs|
|
120
|
-
key = key.to_sym
|
121
|
-
raise "Invalid options category: #{key}." unless @options.has_key?(key)
|
122
|
-
|
123
|
-
confs.to_a.each do |conf|
|
124
|
-
item = Option.new
|
125
|
-
item.populate conf
|
126
|
-
@options[key] << item
|
127
|
-
end
|
128
|
-
end
|
85
|
+
ensure_type hosts, Array, 'hosts'
|
86
|
+
@hosts = convert_array(hosts, Host.name)
|
129
87
|
end
|
130
88
|
|
131
89
|
def shared_folders=(shared_folders)
|
132
|
-
|
133
|
-
shared_folders
|
134
|
-
item = SharedFolder.new
|
135
|
-
item.populate conf
|
136
|
-
@shared_folders << item
|
137
|
-
end
|
90
|
+
ensure_type shared_folders, Array, 'shared_folders'
|
91
|
+
@shared_folders = convert_array(shared_folders, SharedFolder.name)
|
138
92
|
|
139
93
|
settings = {
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
94
|
+
'host' => '%project.host%',
|
95
|
+
'guest' => '%project.guest%',
|
96
|
+
'disabled' => false,
|
97
|
+
'create' => false,
|
98
|
+
'type' => nil,
|
145
99
|
}
|
146
100
|
item = SharedFolder.new
|
147
101
|
item.populate settings
|
@@ -16,18 +16,18 @@ module VagrantPlugins
|
|
16
16
|
attr_accessor :auto_correct
|
17
17
|
attr_accessor :auto_config
|
18
18
|
|
19
|
-
def initialize
|
19
|
+
def initialize
|
20
20
|
@net = :private_network
|
21
21
|
end
|
22
22
|
|
23
23
|
def net=(value)
|
24
24
|
nets = {
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
25
|
+
'private_network' => :private_network,
|
26
|
+
'private' => :private_network,
|
27
|
+
'public_network' => :public_network,
|
28
|
+
'public' => :public_network,
|
29
|
+
'forwarded_port' => :forwarded_port,
|
30
|
+
'port' => :forwarded_port,
|
31
31
|
}
|
32
32
|
|
33
33
|
@net = nets[value]
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module VagrantPlugins
|
2
|
+
module Dotvm
|
3
|
+
module Config
|
4
|
+
module OptionsSetter
|
5
|
+
def options=(options)
|
6
|
+
ensure_type options, Hash, 'options'
|
7
|
+
|
8
|
+
@options = {}
|
9
|
+
self.class::OPTIONS_CATEGORIES.each do |cat|
|
10
|
+
@options[cat] = []
|
11
|
+
end
|
12
|
+
|
13
|
+
options.to_h.each do |key, confs|
|
14
|
+
key = key.to_sym
|
15
|
+
raise InvalidConfigError.new "Invalid options category: #{key}." unless @options.has_key?(key)
|
16
|
+
ensure_type confs, Array, "options.#{key}"
|
17
|
+
|
18
|
+
confs.to_a.each do |conf|
|
19
|
+
ensure_type conf, Hash, "option item within options.#{key}"
|
20
|
+
|
21
|
+
item = Option.new
|
22
|
+
item.populate conf
|
23
|
+
@options[key] << item
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -128,25 +128,13 @@ module VagrantPlugins
|
|
128
128
|
attr_reader :runs
|
129
129
|
|
130
130
|
def build_images=(build_images)
|
131
|
-
|
132
|
-
|
133
|
-
@build_images = []
|
134
|
-
build_images.to_a.each do |conf|
|
135
|
-
item = BuildImage.new
|
136
|
-
item.populate conf
|
137
|
-
@build_images << item
|
138
|
-
end
|
131
|
+
ensure_type build_images, Array, 'build_images'
|
132
|
+
@build_images = convert_array(build_images, BuildImage.name)
|
139
133
|
end
|
140
134
|
|
141
135
|
def runs=(runs)
|
142
|
-
|
143
|
-
|
144
|
-
@runs = []
|
145
|
-
runs.to_a.each do |conf|
|
146
|
-
item = Run.new
|
147
|
-
item.populate conf
|
148
|
-
@runs << item
|
149
|
-
end
|
136
|
+
ensure_type runs, Array, 'runs'
|
137
|
+
@runs = convert_array(runs, Run.name)
|
150
138
|
end
|
151
139
|
end
|
152
140
|
end
|
@@ -2,43 +2,25 @@ module VagrantPlugins
|
|
2
2
|
module Dotvm
|
3
3
|
module Config
|
4
4
|
class Root < AbstractConfig
|
5
|
+
OPTIONS_CATEGORIES = [
|
6
|
+
:ssh,
|
7
|
+
:winrm,
|
8
|
+
:vagrant,
|
9
|
+
]
|
10
|
+
|
11
|
+
include OptionsSetter
|
12
|
+
|
5
13
|
attr_reader :machines
|
6
|
-
attr_reader :options
|
14
|
+
attr_reader :options # mixin
|
7
15
|
attr_reader :vars
|
8
16
|
|
9
17
|
def machines=(machines)
|
10
|
-
|
11
|
-
|
12
|
-
@machines = []
|
13
|
-
machines.to_a.each do |item|
|
14
|
-
machine = Machine.new
|
15
|
-
machine.populate item
|
16
|
-
@machines << machine
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
def options=(data)
|
21
|
-
raise "'options' must be hash." unless options.kind_of?(Hash) || options.kind_of?(NilClass)
|
22
|
-
|
23
|
-
@options = {
|
24
|
-
:ssh => [],
|
25
|
-
:winrm => [],
|
26
|
-
:vagrant => [],
|
27
|
-
}
|
28
|
-
options.to_h.each do |key, confs|
|
29
|
-
key = key.to_sym
|
30
|
-
raise "Invalid options category: #{key}." unless @options.has_key?(key)
|
31
|
-
|
32
|
-
confs.to_a.each do |conf|
|
33
|
-
item = Option.new
|
34
|
-
item.populate conf
|
35
|
-
@options[key] << item
|
36
|
-
end
|
37
|
-
end
|
18
|
+
ensure_type machines, Array, 'machines'
|
19
|
+
@machines = convert_array(machines, Machine.name)
|
38
20
|
end
|
39
21
|
|
40
22
|
def vars=(vars)
|
41
|
-
|
23
|
+
ensure_type vars, Hash, 'vars'
|
42
24
|
@vars = vars
|
43
25
|
end
|
44
26
|
end
|
data/lib/vagrant-dotvm/dotvm.rb
CHANGED
@@ -3,10 +3,7 @@ module VagrantPlugins
|
|
3
3
|
class Dotvm
|
4
4
|
|
5
5
|
def initialize(path = nil)
|
6
|
-
|
7
|
-
path = Dir.pwd
|
8
|
-
end
|
9
|
-
|
6
|
+
raise 'path must be set.' until path
|
10
7
|
@path = path
|
11
8
|
end
|
12
9
|
|
@@ -14,7 +11,7 @@ module VagrantPlugins
|
|
14
11
|
def get_globals
|
15
12
|
globals = {}
|
16
13
|
|
17
|
-
Dir[@path +
|
14
|
+
Dir[@path + '/globals/*.yaml'].each do |fname|
|
18
15
|
yaml = YAML::load(File.read(fname)) || {}
|
19
16
|
yaml.each do |name, value|
|
20
17
|
globals[name] = value
|
@@ -25,45 +22,55 @@ module VagrantPlugins
|
|
25
22
|
end
|
26
23
|
|
27
24
|
private
|
28
|
-
def
|
29
|
-
|
30
|
-
|
31
|
-
Dir[@path + "/projects/*/*.yaml"].each do |fname|
|
32
|
-
yaml = YAML::load(File.read(fname)) || {}
|
25
|
+
def prefix_vars(vars, prefix)
|
26
|
+
result = {}
|
33
27
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
}
|
28
|
+
vars.each do |name, value|
|
29
|
+
result[prefix + name] = value
|
30
|
+
end
|
38
31
|
|
39
|
-
|
40
|
-
|
41
|
-
end
|
32
|
+
result
|
33
|
+
end
|
42
34
|
|
43
|
-
|
44
|
-
|
35
|
+
private
|
36
|
+
def process_config(fname)
|
37
|
+
yaml = YAML::load(File.read(fname)) || {}
|
38
|
+
|
39
|
+
begin
|
40
|
+
conf = Config::Root.new
|
41
|
+
conf.populate yaml
|
42
|
+
|
43
|
+
vars = {}
|
44
|
+
vars.merge! prefix_vars(ENV, 'env.')
|
45
|
+
vars.merge! prefix_vars(get_globals, 'global.')
|
46
|
+
vars.merge! prefix_vars(conf.vars.to_h, 'local.')
|
47
|
+
vars.merge!(
|
48
|
+
{
|
49
|
+
'project.host' => File.dirname(fname),
|
50
|
+
'project.guest' => '/dotvm/project',
|
51
|
+
}
|
52
|
+
)
|
53
|
+
|
54
|
+
for _ in (0..5)
|
55
|
+
last = conf.replace_vars! vars
|
56
|
+
break if last == 0
|
45
57
|
end
|
46
58
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
vars['local.' + name] = value
|
53
|
-
end
|
59
|
+
raise 'Too deep variables relations, possible recurrence.' unless last == 0
|
60
|
+
rescue VagrantPlugins::Dotvm::Config::InvalidConfigError => e
|
61
|
+
file = fname[(@path.length + '/projects/'.length)..-1]
|
62
|
+
raise Vagrant::Errors::VagrantError.new, "DotVM: #{file}: #{e.message}"
|
63
|
+
end
|
54
64
|
|
55
|
-
|
56
|
-
|
57
|
-
break if last == 0
|
58
|
-
end
|
65
|
+
conf
|
66
|
+
end
|
59
67
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
raise Vagrant::Errors::VagrantError.new, "DotVM: #{file}: #{e.message}"
|
64
|
-
end
|
68
|
+
private
|
69
|
+
def get_configs
|
70
|
+
configs = []
|
65
71
|
|
66
|
-
|
72
|
+
Dir[@path + '/projects/*/*.yaml'].each do |fname|
|
73
|
+
configs << process_config(fname)
|
67
74
|
end
|
68
75
|
|
69
76
|
return configs
|
@@ -2,6 +2,11 @@ module VagrantPlugins
|
|
2
2
|
module Dotvm
|
3
3
|
module Injector
|
4
4
|
class AbstractInjector
|
5
|
+
# Extracts specified `options` from `source` and return them as hash.
|
6
|
+
#
|
7
|
+
# @param source [Object] Object to extract data from
|
8
|
+
# @param options [Array] List of options to be extraced
|
9
|
+
# @return [Hash] Extracted data
|
5
10
|
def self.generate_hash(source, options)
|
6
11
|
hash = {}
|
7
12
|
|
@@ -13,6 +18,11 @@ module VagrantPlugins
|
|
13
18
|
return hash
|
14
19
|
end
|
15
20
|
|
21
|
+
# Rewrite `options` from `source` to `target`.
|
22
|
+
#
|
23
|
+
# @param source [Object] Object to rewrite data from
|
24
|
+
# @param target [Object] Object to rewrite data to
|
25
|
+
# @param options [Array] List of options to be rewritten
|
16
26
|
def self.rewrite_options(source, target, options)
|
17
27
|
options.each do |opt|
|
18
28
|
val = source.send(opt)
|
@@ -3,13 +3,13 @@ module VagrantPlugins
|
|
3
3
|
module Injector
|
4
4
|
class AuthorizedKey < AbstractInjector
|
5
5
|
def self.inject(key: nil, machine: nil)
|
6
|
-
if key.type ==
|
6
|
+
if key.type == 'file'
|
7
7
|
pubkey = File.readlines(File.expand_path(key.path)).first.strip
|
8
|
-
elsif key.type ==
|
8
|
+
elsif key.type == 'static'
|
9
9
|
pubkey = key.key
|
10
10
|
end
|
11
11
|
|
12
|
-
machine.vm.provision
|
12
|
+
machine.vm.provision 'shell' do |s|
|
13
13
|
s.path = "#{UTILS_PATH}/authorize_key.sh"
|
14
14
|
s.args = [pubkey]
|
15
15
|
s.privileged = false
|
@@ -3,7 +3,7 @@ module VagrantPlugins
|
|
3
3
|
module Injector
|
4
4
|
class Host < AbstractInjector
|
5
5
|
def self.inject(host: nil, machine: nil)
|
6
|
-
machine.vm.provision
|
6
|
+
machine.vm.provision 'shell', run: 'always' do |s|
|
7
7
|
s.path = "#{UTILS_PATH}/add_host.sh"
|
8
8
|
s.args = [host.ip, host.host]
|
9
9
|
s.privileged = true
|
@@ -34,20 +34,20 @@ module VagrantPlugins
|
|
34
34
|
machine.vm.send("#{opt}=", val) unless val.nil?
|
35
35
|
end
|
36
36
|
|
37
|
-
machine.vm.provider
|
38
|
-
vb.customize [
|
39
|
-
vb.customize [
|
40
|
-
vb.customize [
|
41
|
-
vb.customize [
|
37
|
+
machine.vm.provider 'virtualbox' do |vb|
|
38
|
+
vb.customize ['modifyvm', :id, '--memory', machine_cfg.memory] unless machine_cfg.memory.nil?
|
39
|
+
vb.customize ['modifyvm', :id, '--cpus', machine_cfg.cpus] unless machine_cfg.cpus.nil?
|
40
|
+
vb.customize ['modifyvm', :id, '--cpuexecutioncap', machine_cfg.cpucap] unless machine_cfg.cpucap.nil?
|
41
|
+
vb.customize ['modifyvm', :id, '--natnet1', machine_cfg.natnet] unless machine_cfg.natnet.nil?
|
42
42
|
|
43
43
|
machine_cfg.options.to_h[:virtualbox].to_a.each do |option|
|
44
|
-
vb.customize [
|
44
|
+
vb.customize ['modifyvm', :id, option.name, option.value]
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
-
machine.vm.provider
|
49
|
-
vf.vmx[
|
50
|
-
vf.
|
48
|
+
machine.vm.provider 'vmware_fusion' do |vf|
|
49
|
+
vf.vmx['memsize'] = machine_cfg.memory unless machine_cfg.memory.nil?
|
50
|
+
vf.vmx['numvcpus'] = machine_cfg.cpus unless machine_cfg.cpus.nil?
|
51
51
|
end
|
52
52
|
|
53
53
|
machine_cfg.networks.to_a.each do |net|
|
@@ -80,7 +80,7 @@ module VagrantPlugins
|
|
80
80
|
machine: machine
|
81
81
|
end
|
82
82
|
|
83
|
-
if Vagrant.has_plugin?(
|
83
|
+
if Vagrant.has_plugin?('vagrant-group')
|
84
84
|
vc.group.groups = {} unless vc.group.groups.kind_of?(Hash)
|
85
85
|
|
86
86
|
machine_cfg.groups.to_a.each do |group|
|
@@ -5,7 +5,7 @@ module VagrantPlugins
|
|
5
5
|
def self.inject(config: nil, vc: nil)
|
6
6
|
config.options.to_h.each do |category, options|
|
7
7
|
options.to_a.each do |option|
|
8
|
-
vc.
|
8
|
+
vc.send(category).send("#{option.name}=", option.value)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
@@ -3,7 +3,7 @@ module VagrantPlugins
|
|
3
3
|
module Injector
|
4
4
|
class Route < AbstractInjector
|
5
5
|
def self.inject(route: nil, machine: nil)
|
6
|
-
machine.vm.provision
|
6
|
+
machine.vm.provision 'shell', run: 'always' do |s|
|
7
7
|
s.path = "#{UTILS_PATH}/setup_route.sh"
|
8
8
|
s.args = [route.destination, route.gateway]
|
9
9
|
s.privileged = true
|
data/utils/add_host.sh
CHANGED
data/utils/authorize_key.sh
CHANGED
data/utils/setup_route.sh
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-dotvm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.33.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Krzysztof Magosa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -64,9 +64,11 @@ files:
|
|
64
64
|
- lib/vagrant-dotvm/config/authorizedkey.rb
|
65
65
|
- lib/vagrant-dotvm/config/buildimage.rb
|
66
66
|
- lib/vagrant-dotvm/config/host.rb
|
67
|
+
- lib/vagrant-dotvm/config/invalidconfigerror.rb
|
67
68
|
- lib/vagrant-dotvm/config/machine.rb
|
68
69
|
- lib/vagrant-dotvm/config/network.rb
|
69
70
|
- lib/vagrant-dotvm/config/option.rb
|
71
|
+
- lib/vagrant-dotvm/config/optionssetter.rb
|
70
72
|
- lib/vagrant-dotvm/config/provision.rb
|
71
73
|
- lib/vagrant-dotvm/config/root.rb
|
72
74
|
- lib/vagrant-dotvm/config/route.rb
|
@@ -82,7 +84,7 @@ files:
|
|
82
84
|
- lib/vagrant-dotvm/injector/root.rb
|
83
85
|
- lib/vagrant-dotvm/injector/route.rb
|
84
86
|
- lib/vagrant-dotvm/injector/sharedfolder.rb
|
85
|
-
- lib/vagrant-dotvm/
|
87
|
+
- lib/vagrant-dotvm/paths.rb
|
86
88
|
- lib/vagrant-dotvm/plugin.rb
|
87
89
|
- lib/vagrant-dotvm/version.rb
|
88
90
|
- utils/add_host.sh
|