vagrant-dotvm 0.31.0 → 0.32.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/README.md +1 -0
- data/lib/vagrant-dotvm/config/abstractconfig.rb +15 -14
- data/lib/vagrant-dotvm/config/machine.rb +52 -56
- data/lib/vagrant-dotvm/config/provision.rb +10 -13
- data/lib/vagrant-dotvm/config/root.rb +18 -15
- data/lib/vagrant-dotvm/dotvm.rb +29 -1
- data/lib/vagrant-dotvm/injector/abstractinjector.rb +25 -0
- data/lib/vagrant-dotvm/injector/authorizedkey.rb +1 -1
- data/lib/vagrant-dotvm/injector/host.rb +1 -1
- data/lib/vagrant-dotvm/injector/machine.rb +9 -9
- data/lib/vagrant-dotvm/injector/network.rb +2 -9
- data/lib/vagrant-dotvm/injector/provision.rb +4 -15
- data/lib/vagrant-dotvm/injector/root.rb +5 -11
- data/lib/vagrant-dotvm/injector/route.rb +1 -1
- data/lib/vagrant-dotvm/injector/sharedfolder.rb +2 -9
- data/lib/vagrant-dotvm/version.rb +1 -1
- data/lib/vagrant-dotvm.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d6eb0ece7b163748f746c29841424622f1eb0df
|
4
|
+
data.tar.gz: 8786686be74d5c5891de13b51d91a9b67a511515
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d318951e66516781853e2c70cf5307d75626d0024a0af154850c22834c7f445e5de834f6971d2473ed7d2578852e276cfb57a762cc0a7e517296ae86c4d48956
|
7
|
+
data.tar.gz: a7e4d57c89a1ff84b36ec2f7e1e5aa31fe210dacf005d9ea2863b498a45bd8b904228c5d46cdc2a3faf0442680cd74f04bd209a6606804cd58f5eaf528167757
|
data/README.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# DotVm
|
2
2
|
|
3
|
+
[](https://codeclimate.com/github/vagrant-dotvm/vagrant-dotvm)
|
3
4
|
[](https://scrutinizer-ci.com/g/krzysztof-magosa/vagrant-dotvm/?branch=master)
|
4
5
|
[](http://badge.fury.io/rb/vagrant-dotvm)
|
5
6
|
|
@@ -4,42 +4,43 @@ module VagrantPlugins
|
|
4
4
|
class AbstractConfig
|
5
5
|
def populate(data)
|
6
6
|
data.each do |key, value|
|
7
|
-
|
8
|
-
|
9
|
-
elsif respond_to? "#{key}="
|
10
|
-
m = method("#{key}=")
|
11
|
-
else
|
12
|
-
raise "Invalid configuration option: #{key}."
|
13
|
-
end
|
14
|
-
|
15
|
-
m.call(value)
|
7
|
+
raise "Invalid configuration option: #{key}." until respond_to? "#{key}="
|
8
|
+
send("#{key}=", value)
|
16
9
|
end
|
17
10
|
end
|
18
11
|
|
19
12
|
def replace_vars(vars, target)
|
13
|
+
replaced = 0
|
14
|
+
|
20
15
|
if target.kind_of?(Array)
|
21
16
|
target.each do |item|
|
22
|
-
replace_vars(vars, item)
|
17
|
+
replaced += replace_vars(vars, item)
|
23
18
|
end
|
24
19
|
elsif target.kind_of?(Hash)
|
25
20
|
target.each do |name, item|
|
26
|
-
replace_vars(vars, item)
|
21
|
+
replaced += replace_vars(vars, item)
|
27
22
|
end
|
28
23
|
elsif target.kind_of?(String)
|
29
24
|
vars.each do |k, v|
|
30
25
|
pattern = "%#{k}%"
|
31
|
-
target.gsub! pattern, v
|
26
|
+
replaced+=1 unless (target.gsub! pattern, v).kind_of?(NilClass)
|
32
27
|
end
|
33
28
|
elsif target.kind_of?(AbstractConfig)
|
34
|
-
target.replace_vars!(vars)
|
29
|
+
replaced += target.replace_vars!(vars)
|
35
30
|
end
|
31
|
+
|
32
|
+
replaced
|
36
33
|
end
|
37
34
|
|
38
35
|
def replace_vars!(vars)
|
36
|
+
replaced = 0
|
37
|
+
|
39
38
|
instance_variables.each do |var_name|
|
40
39
|
var = instance_variable_get(var_name)
|
41
|
-
replace_vars(vars, var)
|
40
|
+
replaced += replace_vars(vars, var)
|
42
41
|
end
|
42
|
+
|
43
|
+
replaced
|
43
44
|
end
|
44
45
|
end
|
45
46
|
end
|
@@ -10,20 +10,20 @@ module VagrantPlugins
|
|
10
10
|
attr_accessor :cpucap
|
11
11
|
attr_accessor :primary
|
12
12
|
attr_accessor :natnet
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
13
|
+
attr_reader :networks
|
14
|
+
attr_reader :routes
|
15
|
+
attr_reader :provision
|
16
|
+
attr_reader :groups
|
17
|
+
attr_reader :authorized_keys
|
18
18
|
attr_accessor :boot_timeout
|
19
19
|
attr_accessor :box_check_update
|
20
20
|
attr_accessor :box_version
|
21
21
|
attr_accessor :graceful_halt_timeout
|
22
22
|
attr_accessor :post_up_message
|
23
23
|
attr_accessor :autostart
|
24
|
-
|
25
|
-
|
26
|
-
|
24
|
+
attr_reader :hosts
|
25
|
+
attr_reader :options
|
26
|
+
attr_reader :shared_folders
|
27
27
|
attr_accessor :box_download_checksum
|
28
28
|
attr_accessor :box_download_checksum_type
|
29
29
|
attr_accessor :box_download_client_cert
|
@@ -36,31 +36,6 @@ module VagrantPlugins
|
|
36
36
|
attr_accessor :guest
|
37
37
|
attr_reader :usable_port_range
|
38
38
|
|
39
|
-
def initialize()
|
40
|
-
@networks = []
|
41
|
-
@routes = []
|
42
|
-
@provision = []
|
43
|
-
@groups = []
|
44
|
-
@authorized_keys = []
|
45
|
-
@hosts = []
|
46
|
-
@options = {
|
47
|
-
:virtualbox => [],
|
48
|
-
}
|
49
|
-
@shared_folders = []
|
50
|
-
|
51
|
-
populate_shared_folders(
|
52
|
-
[
|
53
|
-
{
|
54
|
-
"host" => "%project.host%",
|
55
|
-
"guest" => "%project.guest%",
|
56
|
-
"disabled" => false,
|
57
|
-
"create" => false,
|
58
|
-
"type" => nil,
|
59
|
-
}
|
60
|
-
]
|
61
|
-
)
|
62
|
-
end
|
63
|
-
|
64
39
|
def name=(value)
|
65
40
|
@hostname = value
|
66
41
|
end
|
@@ -71,68 +46,77 @@ module VagrantPlugins
|
|
71
46
|
@usable_port_range = Range.new(m[0][0].to_i, m[0][1].to_i)
|
72
47
|
end
|
73
48
|
|
74
|
-
def
|
75
|
-
raise "'networks' must be array." unless
|
49
|
+
def networks=(networks)
|
50
|
+
raise "'networks' must be array." unless networks.kind_of?(Array) || networks.kind_of?(NilClass)
|
76
51
|
|
77
|
-
|
52
|
+
@networks = []
|
53
|
+
networks.to_a.each do |conf|
|
78
54
|
item = Network.new
|
79
55
|
item.populate conf
|
80
56
|
@networks << item
|
81
57
|
end
|
82
58
|
end
|
83
59
|
|
84
|
-
def
|
85
|
-
raise "'routes' must be array." unless
|
60
|
+
def routes=(routes)
|
61
|
+
raise "'routes' must be array." unless routes.kind_of?(Array) || routes.kind_of?(NilClass)
|
86
62
|
|
87
|
-
|
63
|
+
@routes = []
|
64
|
+
routes.to_a.each do |conf|
|
88
65
|
item = Route.new
|
89
66
|
item.populate conf
|
90
67
|
@routes << item
|
91
68
|
end
|
92
69
|
end
|
93
70
|
|
94
|
-
def
|
95
|
-
raise "'provision' must be array." unless
|
71
|
+
def provision=(provision)
|
72
|
+
raise "'provision' must be array." unless provision.kind_of?(Array) || provision.kind_of?(NilClass)
|
96
73
|
|
97
|
-
|
74
|
+
@provision = []
|
75
|
+
provision.to_a.each do |conf|
|
98
76
|
item = Provision.new
|
99
77
|
item.populate conf
|
100
78
|
@provision << item
|
101
79
|
end
|
102
80
|
end
|
103
81
|
|
104
|
-
def
|
105
|
-
raise "'groups' must be array." unless
|
82
|
+
def groups=(groups)
|
83
|
+
raise "'groups' must be array." unless groups.kind_of?(Array) || groups.kind_of?(NilClass)
|
106
84
|
|
107
|
-
|
85
|
+
@groups = []
|
86
|
+
groups.to_a.each do |item|
|
108
87
|
@groups << item
|
109
88
|
end
|
110
89
|
end
|
111
90
|
|
112
|
-
def
|
113
|
-
raise "'authorized_keys' must be array." unless
|
91
|
+
def authorized_keys=(keys)
|
92
|
+
raise "'authorized_keys' must be array." unless keys.kind_of?(Array) || keys.kind_of?(NilClass)
|
114
93
|
|
115
|
-
|
94
|
+
@authorized_keys = []
|
95
|
+
keys.to_a.each do |conf|
|
116
96
|
item = AuthorizedKey.new
|
117
97
|
item.populate conf
|
118
98
|
@authorized_keys << item
|
119
99
|
end
|
120
100
|
end
|
121
101
|
|
122
|
-
def
|
123
|
-
raise "'hosts' must be array." unless
|
102
|
+
def hosts=(hosts)
|
103
|
+
raise "'hosts' must be array." unless hosts.kind_of?(Array) || hosts.kind_of?(NilClass)
|
124
104
|
|
125
|
-
|
105
|
+
@hosts = []
|
106
|
+
hosts.to_a.each do |conf|
|
126
107
|
item = Host.new
|
127
108
|
item.populate conf
|
128
109
|
@hosts << item
|
129
110
|
end
|
130
111
|
end
|
131
112
|
|
132
|
-
def
|
133
|
-
raise "'options' must be hash." unless
|
113
|
+
def options=(options)
|
114
|
+
raise "'options' must be hash." unless options.kind_of?(Hash) || options.kind_of?(NilClass)
|
134
115
|
|
135
|
-
|
116
|
+
@options = {
|
117
|
+
:virtualbox => [],
|
118
|
+
}
|
119
|
+
options.to_h.each do |key, confs|
|
136
120
|
key = key.to_sym
|
137
121
|
raise "Invalid options category: #{key}." unless @options.has_key?(key)
|
138
122
|
|
@@ -144,12 +128,24 @@ module VagrantPlugins
|
|
144
128
|
end
|
145
129
|
end
|
146
130
|
|
147
|
-
def
|
148
|
-
|
131
|
+
def shared_folders=(shared_folders)
|
132
|
+
@shared_folders = []
|
133
|
+
shared_folders.to_a.each do |conf|
|
149
134
|
item = SharedFolder.new
|
150
135
|
item.populate conf
|
151
136
|
@shared_folders << item
|
152
137
|
end
|
138
|
+
|
139
|
+
settings = {
|
140
|
+
"host" => "%project.host%",
|
141
|
+
"guest" => "%project.guest%",
|
142
|
+
"disabled" => false,
|
143
|
+
"create" => false,
|
144
|
+
"type" => nil,
|
145
|
+
}
|
146
|
+
item = SharedFolder.new
|
147
|
+
item.populate settings
|
148
|
+
@shared_folders << item
|
153
149
|
end
|
154
150
|
|
155
151
|
end
|
@@ -124,28 +124,25 @@ module VagrantPlugins
|
|
124
124
|
attr_accessor :pillar
|
125
125
|
|
126
126
|
attr_accessor :images
|
127
|
-
|
128
|
-
|
127
|
+
attr_reader :build_images
|
128
|
+
attr_reader :runs
|
129
129
|
|
130
|
-
def
|
131
|
-
|
132
|
-
@runs = []
|
133
|
-
end
|
130
|
+
def build_images=(build_images)
|
131
|
+
raise "'build_images' must be array." unless build_images.kind_of?(Array) || build_images.kind_of?(NilClass)
|
134
132
|
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
data.to_a.each do |conf|
|
133
|
+
@build_images = []
|
134
|
+
build_images.to_a.each do |conf|
|
139
135
|
item = BuildImage.new
|
140
136
|
item.populate conf
|
141
137
|
@build_images << item
|
142
138
|
end
|
143
139
|
end
|
144
140
|
|
145
|
-
def
|
146
|
-
raise "'runs' must be array." unless
|
141
|
+
def runs=(runs)
|
142
|
+
raise "'runs' must be array." unless runs.kind_of?(Array) || runs.kind_of?(NilClass)
|
147
143
|
|
148
|
-
|
144
|
+
@runs = []
|
145
|
+
runs.to_a.each do |conf|
|
149
146
|
item = Run.new
|
150
147
|
item.populate conf
|
151
148
|
@runs << item
|
@@ -4,30 +4,28 @@ module VagrantPlugins
|
|
4
4
|
class Root < AbstractConfig
|
5
5
|
attr_reader :machines
|
6
6
|
attr_reader :options
|
7
|
+
attr_reader :vars
|
7
8
|
|
8
|
-
def
|
9
|
-
|
10
|
-
@options = {
|
11
|
-
:ssh => [],
|
12
|
-
:winrm => [],
|
13
|
-
:vagrant => [],
|
14
|
-
}
|
15
|
-
end
|
16
|
-
|
17
|
-
def populate_machines(data)
|
18
|
-
raise "'machines' must be array." unless data.kind_of?(Array) || data.kind_of?(NilClass)
|
9
|
+
def machines=(machines)
|
10
|
+
raise "'machines' must be array." unless machines.kind_of?(Array) || machines.kind_of?(NilClass)
|
19
11
|
|
20
|
-
|
12
|
+
@machines = []
|
13
|
+
machines.to_a.each do |item|
|
21
14
|
machine = Machine.new
|
22
15
|
machine.populate item
|
23
16
|
@machines << machine
|
24
17
|
end
|
25
18
|
end
|
26
19
|
|
27
|
-
def
|
28
|
-
raise "'options' must be hash." unless
|
20
|
+
def options=(data)
|
21
|
+
raise "'options' must be hash." unless options.kind_of?(Hash) || options.kind_of?(NilClass)
|
29
22
|
|
30
|
-
|
23
|
+
@options = {
|
24
|
+
:ssh => [],
|
25
|
+
:winrm => [],
|
26
|
+
:vagrant => [],
|
27
|
+
}
|
28
|
+
options.to_h.each do |key, confs|
|
31
29
|
key = key.to_sym
|
32
30
|
raise "Invalid options category: #{key}." unless @options.has_key?(key)
|
33
31
|
|
@@ -38,6 +36,11 @@ module VagrantPlugins
|
|
38
36
|
end
|
39
37
|
end
|
40
38
|
end
|
39
|
+
|
40
|
+
def vars=(vars)
|
41
|
+
raise "'vars' must be hash." unless vars.kind_of?(Hash) || vars.kind_of?(NilClass)
|
42
|
+
@vars = vars
|
43
|
+
end
|
41
44
|
end
|
42
45
|
end
|
43
46
|
end
|
data/lib/vagrant-dotvm/dotvm.rb
CHANGED
@@ -10,6 +10,20 @@ module VagrantPlugins
|
|
10
10
|
@path = path
|
11
11
|
end
|
12
12
|
|
13
|
+
private
|
14
|
+
def get_globals
|
15
|
+
globals = {}
|
16
|
+
|
17
|
+
Dir[@path + "/globals/*.yaml"].each do |fname|
|
18
|
+
yaml = YAML::load(File.read(fname))
|
19
|
+
yaml.each do |name, value|
|
20
|
+
globals[name] = value
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
globals
|
25
|
+
end
|
26
|
+
|
13
27
|
private
|
14
28
|
def get_configs()
|
15
29
|
configs = []
|
@@ -26,10 +40,24 @@ module VagrantPlugins
|
|
26
40
|
vars['env.' + name] = value
|
27
41
|
end
|
28
42
|
|
43
|
+
get_globals.each do |name, value|
|
44
|
+
vars['global.' + name] = value
|
45
|
+
end
|
46
|
+
|
29
47
|
begin
|
30
48
|
conf = Config::Root.new
|
31
49
|
conf.populate yaml
|
32
|
-
|
50
|
+
|
51
|
+
conf.vars.to_h.each do |name, value|
|
52
|
+
vars['local.' + name] = value
|
53
|
+
end
|
54
|
+
|
55
|
+
for _ in (0..5)
|
56
|
+
last = conf.replace_vars! vars
|
57
|
+
break if last == 0
|
58
|
+
end
|
59
|
+
|
60
|
+
raise "Too deep variables relations, possible recurrence." unless last == 0
|
33
61
|
rescue Exception => e
|
34
62
|
file = fname[(@path.length+"/projects/".length)..-1]
|
35
63
|
raise Vagrant::Errors::VagrantError.new, "DotVM: #{file}: #{e.message}"
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module VagrantPlugins
|
2
|
+
module Dotvm
|
3
|
+
module Injector
|
4
|
+
class AbstractInjector
|
5
|
+
def self.generate_hash(source, options)
|
6
|
+
hash = {}
|
7
|
+
|
8
|
+
options.each do |opt|
|
9
|
+
val = source.send(opt)
|
10
|
+
hash[opt] = val unless val.nil?
|
11
|
+
end
|
12
|
+
|
13
|
+
return hash
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.rewrite_options(source, target, options)
|
17
|
+
options.each do |opt|
|
18
|
+
val = source.send(opt)
|
19
|
+
target.send("#{opt}=", val) unless val.nil?
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module VagrantPlugins
|
2
2
|
module Dotvm
|
3
3
|
module Injector
|
4
|
-
class Machine
|
4
|
+
class Machine < AbstractInjector
|
5
5
|
BOX_OPTIONS = [
|
6
6
|
:box,
|
7
7
|
:hostname,
|
@@ -40,7 +40,7 @@ module VagrantPlugins
|
|
40
40
|
vb.customize ["modifyvm", :id, "--cpuexecutioncap", machine_cfg.cpucap] unless machine_cfg.cpucap.nil?
|
41
41
|
vb.customize ["modifyvm", :id, "--natnet1", machine_cfg.natnet] unless machine_cfg.natnet.nil?
|
42
42
|
|
43
|
-
machine_cfg.options[:virtualbox].each do |option|
|
43
|
+
machine_cfg.options.to_h[:virtualbox].to_a.each do |option|
|
44
44
|
vb.customize ["modifyvm", :id, option.name, option.value]
|
45
45
|
end
|
46
46
|
end
|
@@ -50,32 +50,32 @@ module VagrantPlugins
|
|
50
50
|
vf.vmz["numvcpus"] = machine_cfg.cpus unless machine_cfg.cpus.nil?
|
51
51
|
end
|
52
52
|
|
53
|
-
machine_cfg.networks.each do |net|
|
53
|
+
machine_cfg.networks.to_a.each do |net|
|
54
54
|
Network.inject net: net,
|
55
55
|
machine: machine
|
56
56
|
end
|
57
57
|
|
58
|
-
machine_cfg.routes.each do |route|
|
58
|
+
machine_cfg.routes.to_a.each do |route|
|
59
59
|
Route.inject route: route,
|
60
60
|
machine: machine
|
61
61
|
end
|
62
62
|
|
63
|
-
machine_cfg.hosts.each do |host|
|
63
|
+
machine_cfg.hosts.to_a.each do |host|
|
64
64
|
Host.inject host: host,
|
65
65
|
machine: machine
|
66
66
|
end
|
67
67
|
|
68
|
-
machine_cfg.provision.each do |provision|
|
68
|
+
machine_cfg.provision.to_a.each do |provision|
|
69
69
|
Provision.inject provision_cfg: provision,
|
70
70
|
machine: machine
|
71
71
|
end
|
72
72
|
|
73
|
-
machine_cfg.shared_folders.each do |folder|
|
73
|
+
machine_cfg.shared_folders.to_a.each do |folder|
|
74
74
|
SharedFolder.inject folder: folder,
|
75
75
|
machine: machine
|
76
76
|
end
|
77
77
|
|
78
|
-
machine_cfg.authorized_keys.each do |key|
|
78
|
+
machine_cfg.authorized_keys.to_a.each do |key|
|
79
79
|
AuthorizedKey.inject key: key,
|
80
80
|
machine: machine
|
81
81
|
end
|
@@ -83,7 +83,7 @@ module VagrantPlugins
|
|
83
83
|
if Vagrant.has_plugin?("vagrant-group")
|
84
84
|
vc.group.groups = {} unless vc.group.groups.kind_of?(Hash)
|
85
85
|
|
86
|
-
machine_cfg.groups.each do |group|
|
86
|
+
machine_cfg.groups.to_a.each do |group|
|
87
87
|
vc.group.groups[group] = [] unless vc.group.groups.has_key?(group)
|
88
88
|
vc.group.groups[group] << machine_cfg.nick
|
89
89
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module VagrantPlugins
|
2
2
|
module Dotvm
|
3
3
|
module Injector
|
4
|
-
class Network
|
4
|
+
class Network < AbstractInjector
|
5
5
|
OPTIONS = [
|
6
6
|
:type,
|
7
7
|
:ip,
|
@@ -18,14 +18,7 @@ module VagrantPlugins
|
|
18
18
|
]
|
19
19
|
|
20
20
|
def self.inject(net: nil, machine: nil)
|
21
|
-
|
22
|
-
|
23
|
-
OPTIONS.each do |opt|
|
24
|
-
val = net.send(opt)
|
25
|
-
hash[opt] = val unless val.nil?
|
26
|
-
end
|
27
|
-
|
28
|
-
machine.vm.network net.net, **hash
|
21
|
+
machine.vm.network net.net, **generate_hash(net, OPTIONS)
|
29
22
|
end
|
30
23
|
end
|
31
24
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module VagrantPlugins
|
2
2
|
module Dotvm
|
3
3
|
module Injector
|
4
|
-
class Provision
|
4
|
+
class Provision < AbstractInjector
|
5
5
|
OPTIONS = [
|
6
6
|
:path,
|
7
7
|
:inline,
|
@@ -134,10 +134,7 @@ module VagrantPlugins
|
|
134
134
|
public
|
135
135
|
def self.inject(provision_cfg: nil, machine: nil)
|
136
136
|
machine.vm.provision provision_cfg.type, run: provision_cfg.run do |p|
|
137
|
-
|
138
|
-
val = provision_cfg.send(opt)
|
139
|
-
p.send("#{opt}=", val) unless val.nil?
|
140
|
-
end
|
137
|
+
rewrite_options(provision_cfg, p, OPTIONS)
|
141
138
|
|
142
139
|
provision_cfg.recipes.to_a.each do |recipe|
|
143
140
|
p.add_recipe(recipe)
|
@@ -150,19 +147,11 @@ module VagrantPlugins
|
|
150
147
|
p.pillar provision_cfg.pillar unless provision_cfg.pillar.nil?
|
151
148
|
|
152
149
|
provision_cfg.build_images.to_a.each do |image|
|
153
|
-
|
154
|
-
args[:args] = image.args unless image.args.nil?
|
155
|
-
p.build_image image.image, **args
|
150
|
+
p.build_image image.image, **generate_hash(image, [:args])
|
156
151
|
end
|
157
152
|
|
158
153
|
provision_cfg.runs.to_a.each do |run|
|
159
|
-
|
160
|
-
RUNS_OPTIONS.each do |opt|
|
161
|
-
val = run.send(opt)
|
162
|
-
args[opt] = val unless val.nil?
|
163
|
-
end
|
164
|
-
|
165
|
-
p.run run.name, **args
|
154
|
+
p.run run.name, **generate_hash(run, RUNS_OPTIONS)
|
166
155
|
end
|
167
156
|
end
|
168
157
|
end
|
@@ -1,18 +1,12 @@
|
|
1
1
|
module VagrantPlugins
|
2
2
|
module Dotvm
|
3
3
|
module Injector
|
4
|
-
class Root
|
4
|
+
class Root < AbstractInjector
|
5
5
|
def self.inject(config: nil, vc: nil)
|
6
|
-
config.options
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
config.options[:winrm].each do |option|
|
11
|
-
vc.winrm.send("#{option.name}=", option.value)
|
12
|
-
end
|
13
|
-
|
14
|
-
config.options[:vagrant].each do |option|
|
15
|
-
vc.vagrant.send("#{option.name}=", option.value)
|
6
|
+
config.options.to_h.each do |category, options|
|
7
|
+
options.to_a.each do |option|
|
8
|
+
vc.call(category).call("#{option.name}=", option.value)
|
9
|
+
end
|
16
10
|
end
|
17
11
|
|
18
12
|
config.machines.each do |machine_cfg|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module VagrantPlugins
|
2
2
|
module Dotvm
|
3
3
|
module Injector
|
4
|
-
class SharedFolder
|
4
|
+
class SharedFolder < AbstractInjector
|
5
5
|
OPTIONS = [
|
6
6
|
:disabled,
|
7
7
|
:create,
|
@@ -24,14 +24,7 @@ module VagrantPlugins
|
|
24
24
|
]
|
25
25
|
|
26
26
|
def self.inject(folder: nil, machine: nil)
|
27
|
-
|
28
|
-
|
29
|
-
OPTIONS.each do |opt|
|
30
|
-
val = folder.send(opt)
|
31
|
-
hash[opt] = val unless val.nil?
|
32
|
-
end
|
33
|
-
|
34
|
-
machine.vm.synced_folder folder.host, folder.guest, **hash
|
27
|
+
machine.vm.synced_folder folder.host, folder.guest, **generate_hash(folder, OPTIONS)
|
35
28
|
end
|
36
29
|
end
|
37
30
|
end
|
data/lib/vagrant-dotvm.rb
CHANGED
@@ -6,6 +6,7 @@ require 'vagrant-dotvm/version'
|
|
6
6
|
require 'vagrant-dotvm/pathes'
|
7
7
|
require 'vagrant-dotvm/dotvm'
|
8
8
|
|
9
|
+
require 'vagrant-dotvm/injector/abstractinjector'
|
9
10
|
require 'vagrant-dotvm/injector/root'
|
10
11
|
require 'vagrant-dotvm/injector/machine'
|
11
12
|
require 'vagrant-dotvm/injector/provision'
|
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.32.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-
|
11
|
+
date: 2015-08-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -73,6 +73,7 @@ files:
|
|
73
73
|
- lib/vagrant-dotvm/config/run.rb
|
74
74
|
- lib/vagrant-dotvm/config/sharedfolder.rb
|
75
75
|
- lib/vagrant-dotvm/dotvm.rb
|
76
|
+
- lib/vagrant-dotvm/injector/abstractinjector.rb
|
76
77
|
- lib/vagrant-dotvm/injector/authorizedkey.rb
|
77
78
|
- lib/vagrant-dotvm/injector/host.rb
|
78
79
|
- lib/vagrant-dotvm/injector/machine.rb
|