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