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.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +17 -0
  3. data/.gitignore +4 -0
  4. data/Gemfile +10 -0
  5. data/Gemfile.lock +106 -0
  6. data/LICENSE +339 -0
  7. data/README.md +4 -0
  8. data/Rakefile +3 -0
  9. data/images/logo-128.png +0 -0
  10. data/images/logo-256.png +0 -0
  11. data/images/logo-512.png +0 -0
  12. data/invade.yml.dist +56 -0
  13. data/lib/vagrant-invade/action/config.rb +73 -0
  14. data/lib/vagrant-invade/action/create.rb +97 -0
  15. data/lib/vagrant-invade/action/generate.rb +95 -0
  16. data/lib/vagrant-invade/action/validate.rb +156 -0
  17. data/lib/vagrant-invade/action.rb +34 -0
  18. data/lib/vagrant-invade/builder/definition.rb +43 -0
  19. data/lib/vagrant-invade/builder/network/forwarded_port.rb +47 -0
  20. data/lib/vagrant-invade/builder/network/private_network.rb +41 -0
  21. data/lib/vagrant-invade/builder/network/public_network.rb +43 -0
  22. data/lib/vagrant-invade/builder/network.rb +13 -0
  23. data/lib/vagrant-invade/builder/provider/virtualbox.rb +47 -0
  24. data/lib/vagrant-invade/builder/provider/vmware.rb +44 -0
  25. data/lib/vagrant-invade/builder/provider.rb +12 -0
  26. data/lib/vagrant-invade/builder/provision/puppet.rb +47 -0
  27. data/lib/vagrant-invade/builder/provision/shell.rb +45 -0
  28. data/lib/vagrant-invade/builder/provision/shell_inline.rb +45 -0
  29. data/lib/vagrant-invade/builder/provision.rb +12 -0
  30. data/lib/vagrant-invade/builder/synced_folder/nfs.rb +48 -0
  31. data/lib/vagrant-invade/builder/synced_folder/virtualbox.rb +48 -0
  32. data/lib/vagrant-invade/builder/synced_folder.rb +12 -0
  33. data/lib/vagrant-invade/builder/vagrantfile.rb +35 -0
  34. data/lib/vagrant-invade/builder/vm.rb +41 -0
  35. data/lib/vagrant-invade/builder.rb +17 -0
  36. data/lib/vagrant-invade/command/base.rb +19 -0
  37. data/lib/vagrant-invade/command/build.rb +37 -0
  38. data/lib/vagrant-invade/command/root.rb +73 -0
  39. data/lib/vagrant-invade/command/validate.rb +37 -0
  40. data/lib/vagrant-invade/generator/definition.rb +25 -0
  41. data/lib/vagrant-invade/generator/section/network.rb +38 -0
  42. data/lib/vagrant-invade/generator/section/plugin.rb +0 -0
  43. data/lib/vagrant-invade/generator/section/provider.rb +36 -0
  44. data/lib/vagrant-invade/generator/section/provision.rb +38 -0
  45. data/lib/vagrant-invade/generator/section/synced_folder.rb +36 -0
  46. data/lib/vagrant-invade/generator/section/vm.rb +27 -0
  47. data/lib/vagrant-invade/generator/section.rb +15 -0
  48. data/lib/vagrant-invade/generator/vagrantfile.rb +24 -0
  49. data/lib/vagrant-invade/generator.rb +11 -0
  50. data/lib/vagrant-invade/plugin.rb +28 -0
  51. data/lib/vagrant-invade/template/definition.erb +19 -0
  52. data/lib/vagrant-invade/template/network/forwarded_port.erb +8 -0
  53. data/lib/vagrant-invade/template/network/private_network.erb +1 -0
  54. data/lib/vagrant-invade/template/network/public_network.erb +5 -0
  55. data/lib/vagrant-invade/template/provider/virtualbox.erb +11 -0
  56. data/lib/vagrant-invade/template/provider/vmware.erb +5 -0
  57. data/lib/vagrant-invade/template/provision/puppet.erb +0 -0
  58. data/lib/vagrant-invade/template/provision/shell.erb +2 -0
  59. data/lib/vagrant-invade/template/provision/shell_inline.erb +2 -0
  60. data/lib/vagrant-invade/template/synced_folder/nfs.erb +12 -0
  61. data/lib/vagrant-invade/template/synced_folder/virtualbox.erb +1 -0
  62. data/lib/vagrant-invade/template/v2.erb +9 -0
  63. data/lib/vagrant-invade/template/vm/vm.erb +7 -0
  64. data/lib/vagrant-invade/validator/invade.rb +39 -0
  65. data/lib/vagrant-invade/validator/network/forwarded_port.rb +68 -0
  66. data/lib/vagrant-invade/validator/network/private_network.rb +44 -0
  67. data/lib/vagrant-invade/validator/network/public_network.rb +56 -0
  68. data/lib/vagrant-invade/validator/network.rb +13 -0
  69. data/lib/vagrant-invade/validator/plugin/hostmanager.rb +57 -0
  70. data/lib/vagrant-invade/validator/plugin/winnfsd.rb +52 -0
  71. data/lib/vagrant-invade/validator/plugin.rb +12 -0
  72. data/lib/vagrant-invade/validator/provider/virtualbox.rb +46 -0
  73. data/lib/vagrant-invade/validator/provider/vmware.rb +27 -0
  74. data/lib/vagrant-invade/validator/provider.rb +39 -0
  75. data/lib/vagrant-invade/validator/provision/puppet.rb +70 -0
  76. data/lib/vagrant-invade/validator/provision/shell.rb +52 -0
  77. data/lib/vagrant-invade/validator/provision/shell_inline.rb +52 -0
  78. data/lib/vagrant-invade/validator/provision.rb +22 -0
  79. data/lib/vagrant-invade/validator/ssh.rb +38 -0
  80. data/lib/vagrant-invade/validator/synced_folder/nfs.rb +46 -0
  81. data/lib/vagrant-invade/validator/synced_folder/vb.rb +52 -0
  82. data/lib/vagrant-invade/validator/synced_folder.rb +36 -0
  83. data/lib/vagrant-invade/validator/vm.rb +45 -0
  84. data/lib/vagrant-invade/validator.rb +113 -0
  85. data/lib/vagrant-invade/version.rb +5 -0
  86. data/lib/vagrant-invade.rb +41 -0
  87. data/pkg/vagrant-invade-0.0.1.gem +0 -0
  88. data/vagrant-invade.gemspec +17 -0
  89. 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,5 @@
1
+
2
+ <%= machine_name %>.vm.network "public_network"
3
+ <% if ip %>, ip: <%= ip %><% end %>
4
+ <% if type %>, type: <%= type %><% end %>
5
+ <% 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
@@ -0,0 +1,5 @@
1
+ <%= machine_name %>.vm.provider :vmware_desktop do |vmware|
2
+ vmware.vmx['displayName'] = '<%= name %>'
3
+ vmware.vmx['memsize'] = <%= memory %>
4
+ vmware.vmx['numvcpus'] = <%= cpus %>
5
+ end
File without changes
@@ -0,0 +1,2 @@
1
+ <%= machine_name %>.vm.provision "shell",
2
+ path: <%= path %><% unless name %>, name: <%= name %><% end %><% unless binary %>, binary: <%= binary %><% end %><% unless privileged %>, privileged: <%= privileged %><% end %>
@@ -0,0 +1,2 @@
1
+ <%= machine_name %>.vm.provision "shell",
2
+ inline: <%= inline %><% unless name %>, name: <%= name %><% end %><% unless binary %>, binary: <%= binary %><% end %><% unless privileged %>, privileged: <%= privileged %><% end %>
@@ -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,9 @@
1
+ # -*- mode: ruby -*-
2
+ # vi: set ft=ruby :
3
+
4
+ Vagrant.configure(2) do |config|
5
+
6
+ <% definitions.each do |definition, data| %>
7
+ <%= data %>
8
+ <% end %>
9
+ end
@@ -0,0 +1,7 @@
1
+ <%= machine_name %>.vm.box = '<%= box %>'
2
+ <% if url %>
3
+ <%= machine_name %>.vm.box_url = '<%= url %>'
4
+ <% end %>
5
+ <% if hostname %>
6
+ <%= machine_name %>.vm.hostname = '<%= hostname %>'
7
+ <% end %>
@@ -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,12 @@
1
+ module VagrantPlugins
2
+ module Invade
3
+ module Validator
4
+ module Plugin
5
+
6
+ autoload :HostManager, 'vagrant-invade/validator/plugin/hostmanager'
7
+ autoload :WinNFSd, 'vagrant-invade/validator/plugin/winnfsd'
8
+
9
+ end
10
+ end
11
+ end
12
+ 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