vagrant-invade 0.0.1 → 0.2.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/.gitattributes +17 -0
- data/.gitignore +4 -0
- data/Gemfile +10 -0
- data/Gemfile.lock +106 -0
- data/LICENSE +339 -0
- data/README.md +4 -0
- data/Rakefile +3 -0
- data/images/logo-128.png +0 -0
- data/images/logo-256.png +0 -0
- data/images/logo-512.png +0 -0
- data/invade.yml.dist +56 -0
- data/lib/vagrant-invade/action/config.rb +73 -0
- data/lib/vagrant-invade/action/create.rb +97 -0
- data/lib/vagrant-invade/action/generate.rb +95 -0
- data/lib/vagrant-invade/action/validate.rb +156 -0
- data/lib/vagrant-invade/action.rb +34 -0
- data/lib/vagrant-invade/builder/definition.rb +43 -0
- data/lib/vagrant-invade/builder/network/forwarded_port.rb +47 -0
- data/lib/vagrant-invade/builder/network/private_network.rb +41 -0
- data/lib/vagrant-invade/builder/network/public_network.rb +43 -0
- data/lib/vagrant-invade/builder/network.rb +13 -0
- data/lib/vagrant-invade/builder/provider/virtualbox.rb +47 -0
- data/lib/vagrant-invade/builder/provider/vmware.rb +44 -0
- data/lib/vagrant-invade/builder/provider.rb +12 -0
- data/lib/vagrant-invade/builder/provision/puppet.rb +47 -0
- data/lib/vagrant-invade/builder/provision/shell.rb +45 -0
- data/lib/vagrant-invade/builder/provision/shell_inline.rb +45 -0
- data/lib/vagrant-invade/builder/provision.rb +12 -0
- data/lib/vagrant-invade/builder/synced_folder/nfs.rb +48 -0
- data/lib/vagrant-invade/builder/synced_folder/virtualbox.rb +48 -0
- data/lib/vagrant-invade/builder/synced_folder.rb +12 -0
- data/lib/vagrant-invade/builder/vagrantfile.rb +35 -0
- data/lib/vagrant-invade/builder/vm.rb +41 -0
- data/lib/vagrant-invade/builder.rb +17 -0
- data/lib/vagrant-invade/command/base.rb +19 -0
- data/lib/vagrant-invade/command/build.rb +37 -0
- data/lib/vagrant-invade/command/root.rb +73 -0
- data/lib/vagrant-invade/command/validate.rb +37 -0
- data/lib/vagrant-invade/generator/definition.rb +25 -0
- data/lib/vagrant-invade/generator/section/network.rb +38 -0
- data/lib/vagrant-invade/generator/section/plugin.rb +0 -0
- data/lib/vagrant-invade/generator/section/provider.rb +36 -0
- data/lib/vagrant-invade/generator/section/provision.rb +38 -0
- data/lib/vagrant-invade/generator/section/synced_folder.rb +36 -0
- data/lib/vagrant-invade/generator/section/vm.rb +27 -0
- data/lib/vagrant-invade/generator/section.rb +15 -0
- data/lib/vagrant-invade/generator/vagrantfile.rb +24 -0
- data/lib/vagrant-invade/generator.rb +11 -0
- data/lib/vagrant-invade/plugin.rb +28 -0
- data/lib/vagrant-invade/template/definition.erb +19 -0
- data/lib/vagrant-invade/template/network/forwarded_port.erb +8 -0
- data/lib/vagrant-invade/template/network/private_network.erb +1 -0
- data/lib/vagrant-invade/template/network/public_network.erb +5 -0
- data/lib/vagrant-invade/template/provider/virtualbox.erb +11 -0
- data/lib/vagrant-invade/template/provider/vmware.erb +5 -0
- data/lib/vagrant-invade/template/provision/puppet.erb +0 -0
- data/lib/vagrant-invade/template/provision/shell.erb +2 -0
- data/lib/vagrant-invade/template/provision/shell_inline.erb +2 -0
- data/lib/vagrant-invade/template/synced_folder/nfs.erb +12 -0
- data/lib/vagrant-invade/template/synced_folder/virtualbox.erb +1 -0
- data/lib/vagrant-invade/template/v2.erb +9 -0
- data/lib/vagrant-invade/template/vm/vm.erb +7 -0
- data/lib/vagrant-invade/validator/invade.rb +39 -0
- data/lib/vagrant-invade/validator/network/forwarded_port.rb +68 -0
- data/lib/vagrant-invade/validator/network/private_network.rb +44 -0
- data/lib/vagrant-invade/validator/network/public_network.rb +56 -0
- data/lib/vagrant-invade/validator/network.rb +13 -0
- data/lib/vagrant-invade/validator/plugin/hostmanager.rb +57 -0
- data/lib/vagrant-invade/validator/plugin/winnfsd.rb +52 -0
- data/lib/vagrant-invade/validator/plugin.rb +12 -0
- data/lib/vagrant-invade/validator/provider/virtualbox.rb +46 -0
- data/lib/vagrant-invade/validator/provider/vmware.rb +27 -0
- data/lib/vagrant-invade/validator/provider.rb +39 -0
- data/lib/vagrant-invade/validator/provision/puppet.rb +70 -0
- data/lib/vagrant-invade/validator/provision/shell.rb +52 -0
- data/lib/vagrant-invade/validator/provision/shell_inline.rb +52 -0
- data/lib/vagrant-invade/validator/provision.rb +22 -0
- data/lib/vagrant-invade/validator/ssh.rb +38 -0
- data/lib/vagrant-invade/validator/synced_folder/nfs.rb +46 -0
- data/lib/vagrant-invade/validator/synced_folder/vb.rb +52 -0
- data/lib/vagrant-invade/validator/synced_folder.rb +36 -0
- data/lib/vagrant-invade/validator/vm.rb +45 -0
- data/lib/vagrant-invade/validator.rb +113 -0
- data/lib/vagrant-invade/version.rb +5 -0
- data/lib/vagrant-invade.rb +41 -0
- data/pkg/vagrant-invade-0.0.1.gem +0 -0
- data/vagrant-invade.gemspec +17 -0
- metadata +94 -7
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module VagrantPlugins
|
|
2
|
+
module Invade
|
|
3
|
+
module Generator
|
|
4
|
+
module Section
|
|
5
|
+
|
|
6
|
+
class SyncedFolder
|
|
7
|
+
|
|
8
|
+
attr_accessor :machine_name, :type, :synced_folder_data
|
|
9
|
+
|
|
10
|
+
def initialize(machine_name, type, synced_folder_data)
|
|
11
|
+
@machine_name = machine_name
|
|
12
|
+
@type = type
|
|
13
|
+
@synced_folder_data = synced_folder_data
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def generate
|
|
17
|
+
case @type
|
|
18
|
+
when 'vb', 'virtualbox'
|
|
19
|
+
synced_folder = Builder::SyncedFolder::VirtualBox.new(@machine_name, @synced_folder_data)
|
|
20
|
+
when 'nfs'
|
|
21
|
+
synced_folder = Builder::SyncedFolder::NFS.new(@machine_name, @synced_folder_data)
|
|
22
|
+
else
|
|
23
|
+
raise StandardError, "Synced folder type unknown or not set. Please check the synced folder configuration."
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
synced_folder.build
|
|
27
|
+
|
|
28
|
+
synced_folder.result
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module VagrantPlugins
|
|
2
|
+
module Invade
|
|
3
|
+
module Generator
|
|
4
|
+
module Section
|
|
5
|
+
|
|
6
|
+
class VM
|
|
7
|
+
|
|
8
|
+
attr_accessor :machine_name, :vm_data
|
|
9
|
+
|
|
10
|
+
def initialize(machine_name, vm_data)
|
|
11
|
+
@machine_name = machine_name
|
|
12
|
+
@vm_data = vm_data
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def generate
|
|
16
|
+
vm = Builder::VM.new(@machine_name, @vm_data)
|
|
17
|
+
vm.build
|
|
18
|
+
|
|
19
|
+
vm.result
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module VagrantPlugins
|
|
2
|
+
module Invade
|
|
3
|
+
module Generator
|
|
4
|
+
module Section
|
|
5
|
+
|
|
6
|
+
autoload :VM, 'vagrant-invade/generator/section/vm'
|
|
7
|
+
autoload :Network, 'vagrant-invade/generator/section/network'
|
|
8
|
+
autoload :Provider, 'vagrant-invade/generator/section/provider'
|
|
9
|
+
autoload :SyncedFolder, 'vagrant-invade/generator/section/synced_folder'
|
|
10
|
+
autoload :Provision, 'vagrant-invade/generator/section/provision'
|
|
11
|
+
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module VagrantPlugins
|
|
2
|
+
module Invade
|
|
3
|
+
module Generator
|
|
4
|
+
|
|
5
|
+
class Vagrantfile
|
|
6
|
+
|
|
7
|
+
attr_accessor :env, :vagrantfile_data
|
|
8
|
+
|
|
9
|
+
def initialize(env, vagrantfile_data)
|
|
10
|
+
@env = env
|
|
11
|
+
@vagrantfile_data = vagrantfile_data
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def generate
|
|
15
|
+
vagrantfile = Builder::Vagrantfile.new(@vagrantfile_data)
|
|
16
|
+
vagrantfile.build
|
|
17
|
+
|
|
18
|
+
vagrantfile.result
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
module VagrantPlugins
|
|
2
|
+
module Invade
|
|
3
|
+
module Generator
|
|
4
|
+
|
|
5
|
+
autoload :Section, 'vagrant-invade/generator/section'
|
|
6
|
+
autoload :Definition, 'vagrant-invade/generator/definition'
|
|
7
|
+
autoload :Vagrantfile, 'vagrant-invade/generator/vagrantfile'
|
|
8
|
+
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
require 'vagrant'
|
|
2
|
+
|
|
3
|
+
module VagrantPlugins
|
|
4
|
+
module Invade
|
|
5
|
+
class Plugin < Vagrant.plugin('2')
|
|
6
|
+
name 'invade command'
|
|
7
|
+
description 'This plugin configures Vagrant for you'
|
|
8
|
+
|
|
9
|
+
command('invade') do
|
|
10
|
+
require File.expand_path("../command/root", __FILE__)
|
|
11
|
+
Command::Root
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Hook - Do all the invade magic before Vagrant itself comes alive
|
|
15
|
+
action_hook(:invade, :machine_action_up) do |hook|
|
|
16
|
+
require 'vagrant-invade/action'
|
|
17
|
+
|
|
18
|
+
# 1. Checks config file
|
|
19
|
+
# 2. Validates config file
|
|
20
|
+
# 3. Generates Vagrantfile from invade config
|
|
21
|
+
# 4. Creates generated Vagrantfile
|
|
22
|
+
hook.prepend(Action.build)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
autoload :Action, File.expand_path("../action/", __FILE__)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
config.vm.define "<%= machine_name %>" do |<%= machine_name %>|
|
|
2
|
+
|
|
3
|
+
<% if vm %>
|
|
4
|
+
# VM configuration
|
|
5
|
+
<%= vm %>
|
|
6
|
+
<% end %>
|
|
7
|
+
<% if network %>
|
|
8
|
+
# Network configuration
|
|
9
|
+
<%= network %>
|
|
10
|
+
<% end %>
|
|
11
|
+
<% if provider %>
|
|
12
|
+
# Provider configuration
|
|
13
|
+
<%= provider %>
|
|
14
|
+
<% end %>
|
|
15
|
+
<% if synced_folder %>
|
|
16
|
+
# Synced folder configuration
|
|
17
|
+
<%= synced_folder %>
|
|
18
|
+
<% end %>
|
|
19
|
+
end
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
|
|
2
|
+
<%= machine_name %>.vm.network "forwarded_port"
|
|
3
|
+
<% if guest %>, guest: <%= guest %><% end %>
|
|
4
|
+
<% if guest_ip %>, guest_ip: <%= guest_ip %><% end %>
|
|
5
|
+
<% if host %>, host: <%= host %><% end %>
|
|
6
|
+
<% if host_ip %>, host_ip: <%= host_ip %><% end %>
|
|
7
|
+
<% if protocol %>, protocol: <%= protocol %><% end %>
|
|
8
|
+
<% if auto_correct %>, auto_correct: <%= auto_correct %><% end %>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= machine_name %>.vm.network "private_network"<% if ip %>, ip: "<%= ip %>"<% end %><% if dhcp %>, type: "<%= dhcp %>"<% end %><% if auto_config %>, auto_config: <%= auto_config %><% end %>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<%= machine_name %>.vm.provider :virtualbox do |virtualbox|
|
|
2
|
+
virtualbox.name = '<%= name %>'
|
|
3
|
+
virtualbox.cpus = <%= cpus %>
|
|
4
|
+
virtualbox.memory = <%= memory %>
|
|
5
|
+
<% if natdns =%>
|
|
6
|
+
virtualbox.customize ['modifyvm', :id, '--natdnshostresolver1', 'on']
|
|
7
|
+
<% end %>
|
|
8
|
+
<% if nicspeed =%>
|
|
9
|
+
virtualbox.customize ['modifyvm', :id, '--nicspeed1', '10485760']
|
|
10
|
+
<% end %>
|
|
11
|
+
end
|
|
File without changes
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<%= machine_name %>.vm.synced_folder '<%= source %>', '<%= path %>',
|
|
2
|
+
type: 'nfs', mount_options: <%= mount_options %>, disabled: <%= enabled %>
|
|
3
|
+
<% if uid %>
|
|
4
|
+
<%= machine_name %>.nfs.map_uid = <%= uid %>
|
|
5
|
+
<% else %>
|
|
6
|
+
<%= machine_name %>.nfs.map_uid = Process.uid
|
|
7
|
+
<% end %>
|
|
8
|
+
<% if gid %>
|
|
9
|
+
<%= machine_name %>.nfs.map_gid = <%= gid %>
|
|
10
|
+
<% else %>
|
|
11
|
+
<%= machine_name %>.nfs.map_gid = Process.gid
|
|
12
|
+
<% end %>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= machine_name -%>.vm.synced_folder <%= source -%>, <%= path -%>, id: 'vagrant-root', owner: <%= owner -%>, <%= group -%>, mount_options: ["dmode=<%= dmode -%>,fmode=<%= fmode -%>], disabled: <%= enabled-%>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module VagrantPlugins
|
|
2
|
+
module Invade
|
|
3
|
+
module Validator
|
|
4
|
+
|
|
5
|
+
class Invade
|
|
6
|
+
|
|
7
|
+
attr_accessor :env
|
|
8
|
+
attr_accessor :invade
|
|
9
|
+
|
|
10
|
+
DEFAULT = {
|
|
11
|
+
'auto' => false,
|
|
12
|
+
'debug' => false
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
def initialize(env, invade)
|
|
16
|
+
@env = env
|
|
17
|
+
@invade = invade
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def validate
|
|
21
|
+
return nil unless @invade
|
|
22
|
+
|
|
23
|
+
# INVADE ON/OFF
|
|
24
|
+
@invade['auto'] = Validator.validate_boolean(
|
|
25
|
+
@invade['auto'], 'auto', DEFAULT['auto']
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
# DEBUG MODE ON/OFF
|
|
29
|
+
@invade['debug'] = Validator.validate_boolean(
|
|
30
|
+
@invade['debug'], 'debug', DEFAULT['debug']
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
@invade
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
module VagrantPlugins
|
|
2
|
+
module Invade
|
|
3
|
+
module Validator
|
|
4
|
+
|
|
5
|
+
module Network
|
|
6
|
+
|
|
7
|
+
#(see https://docs.vagrantup.com/v2/networking/forwarded_ports.html)
|
|
8
|
+
class ForwardedPort
|
|
9
|
+
|
|
10
|
+
attr_accessor :env
|
|
11
|
+
attr_accessor :forwarded_port
|
|
12
|
+
|
|
13
|
+
DEFAULT = {
|
|
14
|
+
'guest' => 80,
|
|
15
|
+
'guest_ip' => nil, # Use Vagrant default: every network
|
|
16
|
+
'host' => 8080,
|
|
17
|
+
'host_ip' => nil, # Use Vagrant default: bount to every ip
|
|
18
|
+
'protocol' => nil, # Use Vagrant default: TCP
|
|
19
|
+
'auto_correct' => nil # Use Vagrant default: TRUE
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
def initialize(env, forwarded_port)
|
|
23
|
+
@env = env
|
|
24
|
+
@forwarded_port = forwarded_port
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def validate
|
|
28
|
+
return nil unless @forwarded_port
|
|
29
|
+
|
|
30
|
+
# GUEST
|
|
31
|
+
@forwarded_port['guest'] = Validator.validate_string(
|
|
32
|
+
@forwarded_port['guest'], 'guest', DEFAULT['guest']
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
# GUEST IP
|
|
36
|
+
@forwarded_port['guest_ip'] = Validator.validate_string(
|
|
37
|
+
@forwarded_port['guest_ip'], 'guest_ip', DEFAULT['guest_ip']
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
# HOST
|
|
41
|
+
@forwarded_port['host'] = Validator.validate_string(
|
|
42
|
+
@forwarded_port['host'], 'host', DEFAULT['host']
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
# HOST IP
|
|
46
|
+
@forwarded_port['host_ip'] = Validator.validate_string(
|
|
47
|
+
@forwarded_port['host_ip'], 'host_ip', DEFAULT['host_ip']
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
# PROTOCOL
|
|
51
|
+
@forwarded_port['protocol'] = Validator.validate_string(
|
|
52
|
+
@forwarded_port['protocol'], 'protocol', DEFAULT['protocol']
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
# AUTO CORRECT
|
|
56
|
+
@forwarded_port['auto_correct'] = Validator.validate_string(
|
|
57
|
+
@forwarded_port['auto_correct'], 'auto_correct', DEFAULT['auto_correct']
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
@forwarded_port
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
module VagrantPlugins
|
|
2
|
+
module Invade
|
|
3
|
+
module Validator
|
|
4
|
+
|
|
5
|
+
module Network
|
|
6
|
+
|
|
7
|
+
#(see https://docs.vagrantup.com/v2/networking/private_network.html)
|
|
8
|
+
class PrivateNetwork
|
|
9
|
+
|
|
10
|
+
attr_accessor :env
|
|
11
|
+
attr_accessor :private_network
|
|
12
|
+
|
|
13
|
+
DEFAULT = {
|
|
14
|
+
'type' => 'dhcp',
|
|
15
|
+
'ip' => nil # Use default. Vagrant default is NIL if not set
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
def initialize(env, private_network)
|
|
19
|
+
@env = env
|
|
20
|
+
@private_network = private_network
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def validate
|
|
24
|
+
return nil unless @private_network
|
|
25
|
+
|
|
26
|
+
# NETWORK TYPE (DHCP, not used if IP is given)
|
|
27
|
+
@private_network['type'] = Validator.validate_string(
|
|
28
|
+
@private_network['type'], 'type', DEFAULT['type']
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
# IP ADDRESS
|
|
32
|
+
@private_network['ip'] = Validator.validate_string(
|
|
33
|
+
@private_network['ip'], 'ip', DEFAULT['ip']
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
@private_network
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
module VagrantPlugins
|
|
2
|
+
module Invade
|
|
3
|
+
module Validator
|
|
4
|
+
|
|
5
|
+
module Network
|
|
6
|
+
|
|
7
|
+
#(see https://docs.vagrantup.com/v2/networking/public_network.html)
|
|
8
|
+
class PublicNetwork
|
|
9
|
+
|
|
10
|
+
attr_accessor :env
|
|
11
|
+
attr_accessor :public_network
|
|
12
|
+
|
|
13
|
+
DEFAULT = {
|
|
14
|
+
'type' => nil, # Use default. Vagrant default is NIL if not set
|
|
15
|
+
'ip' => nil, # Use default. Vagrant default is NIL if not set
|
|
16
|
+
'bridge' => nil, # Use default. Vagrant default is NIL if not set
|
|
17
|
+
'auto_config' => nil # Use default. Vagrant default is TRUE if not set
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
def initialize(env, public_network)
|
|
21
|
+
@env = env
|
|
22
|
+
@public_network = public_network
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def validate
|
|
26
|
+
return nil unless @public_network
|
|
27
|
+
|
|
28
|
+
# NETWORK TYPE
|
|
29
|
+
@public_network['type'] = Validator.validate_string(
|
|
30
|
+
@public_network['type'], 'type', DEFAULT['type']
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
# IP ADDRESS
|
|
34
|
+
@public_network['ip'] = Validator.validate_string(
|
|
35
|
+
@public_network['ip'], 'ip', DEFAULT['ip']
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
# BRIDGE SETTINGS
|
|
39
|
+
@public_network['bridge'] = Validator.validate_array(
|
|
40
|
+
@public_network['bridge'], 'bridge', DEFAULT['bridge']
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
# AUTO CONFIG
|
|
44
|
+
@public_network['auto_config'] = Validator.validate_boolean(
|
|
45
|
+
@public_network['auto_config'], 'auto_config', DEFAULT['auto_config']
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
@public_network
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module VagrantPlugins
|
|
2
|
+
module Invade
|
|
3
|
+
module Validator
|
|
4
|
+
module Network
|
|
5
|
+
|
|
6
|
+
autoload :ForwardedPort, 'vagrant-invade/validator/network/forwarded_port'
|
|
7
|
+
autoload :PrivateNetwork, 'vagrant-invade/validator/network/private_network'
|
|
8
|
+
autoload :PublicNetwork, 'vagrant-invade/validator/network/public_network'
|
|
9
|
+
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
module VagrantPlugins
|
|
2
|
+
module Invade
|
|
3
|
+
module Validator
|
|
4
|
+
module Plugin
|
|
5
|
+
|
|
6
|
+
class HostManager
|
|
7
|
+
|
|
8
|
+
attr_accessor :env
|
|
9
|
+
attr_accessor :hostmanager
|
|
10
|
+
|
|
11
|
+
DEFAULT = {
|
|
12
|
+
'enabled' => true,
|
|
13
|
+
'manage_host' => true,
|
|
14
|
+
'ignore_private_ip' => false,
|
|
15
|
+
'include_offline' => true,
|
|
16
|
+
'aliases' => nil
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
def initialize(env, hostmanager)
|
|
20
|
+
@env = env
|
|
21
|
+
@hostmanager = hostmanager
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def validate
|
|
25
|
+
return nil unless @hostmanager
|
|
26
|
+
|
|
27
|
+
@hostmanager['enabled'] = Validator.validate_boolean(
|
|
28
|
+
@hostmanager['enabled'], 'enabled', DEFAULT['enabled']
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
# MANAGE HOST (updates hosts /etc/hosts file)
|
|
32
|
+
@hostmanager['manage_host'] = Validator.validate_boolean(
|
|
33
|
+
@hostmanager['manage_host'], 'manage_host', DEFAULT['manage_host']
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
# IGNORE PRIVATE IP (machine's IP address is defined by either the static IP for a private network configuration or by the SSH host configuration)
|
|
37
|
+
@hostmanager['ignore_private_ip'] = Validator.validate_boolean(
|
|
38
|
+
@hostmanager['ignore_private_ip'], 'ignore_private_ip', DEFAULT['ignore_private_ip']
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
# INCLUDE OFFLINE (boxes that are up or have a private ip configured will be added to the hosts file)
|
|
42
|
+
@hostmanager['include_offline'] = Validator.validate_boolean(
|
|
43
|
+
@hostmanager['include_offline'], 'include_offline', DEFAULT['include_offline']
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
# ALIASES
|
|
47
|
+
@hostmanager['aliases'] = Validator.validate_array(
|
|
48
|
+
@hostmanager['aliases'], 'aliases', DEFAULT['aliases']
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
@hostmanager
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
module VagrantPlugins
|
|
2
|
+
module Invade
|
|
3
|
+
module Validator
|
|
4
|
+
module Plugin
|
|
5
|
+
|
|
6
|
+
class WinNFSd
|
|
7
|
+
|
|
8
|
+
attr_accessor :env
|
|
9
|
+
attr_accessor :winnfsd
|
|
10
|
+
|
|
11
|
+
DEFAULT = {
|
|
12
|
+
'enabled' => true,
|
|
13
|
+
'logging' => false,
|
|
14
|
+
'uid' => Process.uid,
|
|
15
|
+
'guid' => Process.gid
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
def initialize(env, winnfsd)
|
|
19
|
+
@env = env
|
|
20
|
+
@winnfsd = winnfsd
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def validate
|
|
24
|
+
return nil unless @winnfsd
|
|
25
|
+
|
|
26
|
+
# ENABLED
|
|
27
|
+
@winnfsd['enabled'] = Validator.validate_boolean(
|
|
28
|
+
@winnfsd['enabled'], 'enabled', DEFAULT['enabled']
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
# LOGGING (activate the logging of the NFS daemon which will show the daemon window in the foreground)
|
|
32
|
+
@winnfsd['logging'] = Validator.validate_boolean(
|
|
33
|
+
@winnfsd['logging'], 'logging', DEFAULT['logging']
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
# User ID
|
|
37
|
+
@winnfsd['uid'] = Validator.validate_integer(
|
|
38
|
+
@winnfsd['uid'], 'uid', DEFAULT['uid']
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
# Group ID
|
|
42
|
+
@winnfsd['guid'] = Validator.validate_integer(
|
|
43
|
+
@winnfsd['guid'], 'guid', DEFAULT['guid']
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
@winnfsd
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
module VagrantPlugins
|
|
2
|
+
module Invade
|
|
3
|
+
module Validator
|
|
4
|
+
module Provider
|
|
5
|
+
|
|
6
|
+
class VirtualBox
|
|
7
|
+
|
|
8
|
+
attr_accessor :env
|
|
9
|
+
attr_accessor :virtualbox
|
|
10
|
+
|
|
11
|
+
DEFAULT = {
|
|
12
|
+
'gui' => nil,
|
|
13
|
+
'natdns' => nil,
|
|
14
|
+
'nicspeed' => 10485760
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
def initialize(env, virtualbox)
|
|
18
|
+
@env = env
|
|
19
|
+
@virtualbox = Provider.validate_base(env, virtualbox)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def validate
|
|
23
|
+
return nil unless @virtualbox
|
|
24
|
+
|
|
25
|
+
# GUI
|
|
26
|
+
@virtualbox['gui'] = Validator.validate_boolean(
|
|
27
|
+
@virtualbox['gui'], 'gui', DEFAULT['gui']
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
# HOSTRESOLVER
|
|
31
|
+
@virtualbox['natdns'] = Validator.validate_boolean(
|
|
32
|
+
@virtualbox['natdns'], 'natdns', DEFAULT['natdns']
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
# NICSPEED
|
|
36
|
+
@virtualbox['nicspeed'] = Validator.validate_integer(
|
|
37
|
+
@virtualbox['nicspeed'], 'nicspeed', DEFAULT['nicspeed']
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
@virtualbox
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module VagrantPlugins
|
|
2
|
+
module Invade
|
|
3
|
+
module Validator
|
|
4
|
+
module Provider
|
|
5
|
+
|
|
6
|
+
class VMware
|
|
7
|
+
|
|
8
|
+
attr_accessor :env
|
|
9
|
+
attr_accessor :vmware
|
|
10
|
+
|
|
11
|
+
DEFAULT = {}
|
|
12
|
+
|
|
13
|
+
def initialize(env, vmware)
|
|
14
|
+
@env = env
|
|
15
|
+
@vmware = Provider.validate_base(env, vmware)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def validate
|
|
19
|
+
return nil unless @vmware
|
|
20
|
+
|
|
21
|
+
@vmware
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|