landrush 1.1.0.beta.1 → 1.1.0.beta.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -0
  3. data/.rubocop_todo.yml +5 -14
  4. data/.travis.yml +1 -1
  5. data/README.md +29 -5
  6. data/lib/landrush.rb +0 -2
  7. data/lib/landrush/action/setup.rb +2 -12
  8. data/lib/landrush/cap/{all → guest/all}/read_host_visible_ip_address.rb +0 -0
  9. data/lib/landrush/cap/{debian → guest/debian}/install_iptables.rb +0 -0
  10. data/lib/landrush/cap/{debian → guest/debian}/iptables_installed.rb +0 -0
  11. data/lib/landrush/cap/{linux → guest/linux}/add_iptables_rule.rb +1 -1
  12. data/lib/landrush/cap/{linux → guest/linux}/configured_dns_servers.rb +0 -0
  13. data/lib/landrush/cap/{linux → guest/linux}/redirect_dns.rb +0 -0
  14. data/lib/landrush/cap/{redhat → guest/redhat}/install_iptables.rb +0 -0
  15. data/lib/landrush/cap/{redhat → guest/redhat}/iptables_installed.rb +0 -0
  16. data/lib/landrush/cap/host/darwin/configure_visibility_on_host.rb +62 -0
  17. data/lib/landrush/cap/host/debian/dnsmasq_installed.rb +11 -0
  18. data/lib/landrush/cap/host/debian/host.rb +11 -0
  19. data/lib/landrush/cap/host/debian/install_dnsmasq.rb +12 -0
  20. data/lib/landrush/cap/host/debian/restart_dnsmasq.rb +11 -0
  21. data/lib/landrush/cap/host/linux/configure_visibility_on_host.rb +18 -0
  22. data/lib/landrush/cap/host/linux/create_dnsmasq_config.rb +65 -0
  23. data/lib/landrush/cap/host/redhat/dnsmasq_installed.rb +11 -0
  24. data/lib/landrush/cap/host/redhat/install_dnsmasq.rb +14 -0
  25. data/lib/landrush/cap/host/redhat/restart_dnsmasq.rb +23 -0
  26. data/lib/landrush/cap/host/ubuntu/host.rb +12 -0
  27. data/lib/landrush/cap/host/windows/configure_visibility_on_host.rb +187 -0
  28. data/lib/landrush/config.rb +22 -15
  29. data/lib/landrush/plugin.rb +68 -8
  30. data/lib/landrush/version.rb +1 -1
  31. data/test/landrush/action/setup_test.rb +4 -34
  32. data/test/landrush/cap/{all → guest/all}/read_host_visible_ip_address_test.rb +1 -1
  33. data/test/landrush/cap/{linux → guest/linux}/configured_dns_servers_test.rb +1 -1
  34. data/test/landrush/cap/{linux → guest/linux}/redirect_dns_test.rb +2 -5
  35. data/test/landrush/cap/host/darwin/configure_visibility_on_host_test.rb +56 -0
  36. data/test/landrush/cap/host/linux/configure_visibility_on_host_test.rb +34 -0
  37. data/test/landrush/cap/host/windows/configure_visibility_on_host_test.rb +70 -0
  38. data/test/test_helper.rb +28 -17
  39. metadata +34 -26
  40. data/lib/landrush/resolver_config.rb +0 -68
  41. data/lib/landrush/win_network_config.rb +0 -185
  42. data/test/landrush/resolver_config_test.rb +0 -19
  43. data/test/landrush/win_network_config_test.rb +0 -70
  44. data/test/support/fake_resolver_config.rb +0 -25
  45. data/test/support/fake_ui.rb +0 -5
@@ -0,0 +1,23 @@
1
+ module Landrush
2
+ module Cap
3
+ module Redhat
4
+ module RestartDnsmasq
5
+ class << self
6
+ SED_COMMAND = <<-EOF.gsub(/^ +/, '')
7
+ sudo sed -i.orig '/nameserver/i\\
8
+ nameserver 127.0.0.1 # Added by landrush, a vagrant plugin
9
+
10
+ ' /etc/resolv.conf
11
+ EOF
12
+
13
+ def restart_dnsmasq(_env)
14
+ # TODO: At some stage we might want to make create_dnsmasq_config host specific and add the resolv.conf
15
+ # changes there which seems more natural
16
+ system(SED_COMMAND) unless system("cat /etc/resolv.conf | grep 'nameserver 127.0.0.1' > /dev/null 2>&1")
17
+ system('sudo systemctl restart dnsmasq')
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,12 @@
1
+ module Landrush
2
+ module Cap
3
+ module Ubuntu
4
+ class UbuntuHost < Vagrant.plugin('2', 'host')
5
+ def detect?(_env)
6
+ return false unless Pathname('/usr/bin/lsb_release').exist?
7
+ system("/usr/bin/lsb_release -i | grep 'Ubuntu' >/dev/null 2>&1")
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,187 @@
1
+ # This file needs to be able to execute out of the Vagrant context. Do not require any non core or non relative files
2
+ require 'ipaddr'
3
+ require_relative '../../../util/retry'
4
+
5
+ module Landrush
6
+ module Cap
7
+ module Windows
8
+ class ConfigureVisibilityOnHost
9
+ # Windows registry path under which network interface configuration is stored
10
+ INTERFACES = 'SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces'.freeze
11
+
12
+ class << self
13
+ def configure_visibility_on_host(env, ip, tld)
14
+ @env = env
15
+ update_network_adapter(ip, tld) if ensure_prerequisites
16
+ end
17
+
18
+ # If this registry query succeeds we assume we have Admin rights
19
+ # http://stackoverflow.com/questions/8268154/run-ruby-script-in-elevated-mode/27954953
20
+ def admin_mode?
21
+ (`reg query HKU\\S-1-5-19 2>&1` =~ /ERROR/).nil?
22
+ end
23
+
24
+ private
25
+
26
+ # Checks that all required tools are on the PATH and that the Wired AutoConfig service is started
27
+ def ensure_prerequisites
28
+ return false unless command_found('netsh')
29
+ return false unless command_found('net')
30
+ return false unless command_found('reg')
31
+
32
+ unless wired_autoconfig_service_running?
33
+ info('starting \'Wired AutoConfig\' service')
34
+ if self.class.admin_mode?
35
+ `net start dot3svc`
36
+ else
37
+ require 'win32ole'
38
+ shell = WIN32OLE.new('Shell.Application')
39
+ shell.ShellExecute('net', 'start dot3svc', nil, 'runas', 1)
40
+ end
41
+ service_has_started = self.retry(tries: 5, sleep: 1) do
42
+ wired_autoconfig_service_running?
43
+ end
44
+ unless service_has_started
45
+ info('Unable to start \'Wired AutoConfig\' service. Unable to configure DNS on host. Try manual configuration.')
46
+ return false
47
+ end
48
+ info('\'Wired AutoConfig\' service has started.')
49
+ end
50
+ true
51
+ end
52
+
53
+ # Does the actual update of the network configuration
54
+ def update_network_adapter(ip, tld)
55
+ # Need to defer loading to ensure cross OS compatibility
56
+ require 'win32/registry'
57
+ ensure_admin_privileges(__FILE__.to_s, ip, tld)
58
+
59
+ network_name = get_network_name(ip)
60
+ if network_name.nil?
61
+ info("unable to determine network interface for #{ip}. DNS on host cannot be configured. Try manual configuration.")
62
+ return
63
+ else
64
+ info("adding Landrush'es DNS server to network '#{network_name}' using DNS IP '#{ip}'' and search domain '#{tld}'")
65
+ end
66
+ network_guid = get_guid(network_name)
67
+ if network_guid.nil?
68
+ info("unable to determine network GUID for #{ip}. DNS on host cannot be configured. Try manual configuration.")
69
+ return
70
+ end
71
+ interface_path = INTERFACES + "\\{#{network_guid}}"
72
+ Win32::Registry::HKEY_LOCAL_MACHINE.open(interface_path, Win32::Registry::KEY_ALL_ACCESS) do |reg|
73
+ reg['NameServer'] = '127.0.0.1'
74
+ reg['Domain'] = tld
75
+ end
76
+ end
77
+
78
+ # Given a network name (as displayed on 'Control Panel\Network and Internet\Network Connections'),
79
+ # determines the GUID of this network interface using 'netsh'.
80
+ #
81
+ # To make this work the "Wired Autoconfig" service must be started (go figure).
82
+ #
83
+ # Output of netsh command which is being processed:
84
+ #
85
+ # There are 4 interfaces on the system:
86
+ #
87
+ # Name : Ethernet
88
+ # Description : Intel(R) Ethernet Connection (3) I218-LM
89
+ # GUID : fd9270f6-aff6-4f24-bc4a-1f90c032d5c3
90
+ # Physical Address : 50-7B-9D-AB-25-1D
91
+ # \n\n
92
+ # ...
93
+ def get_guid(network_name)
94
+ cmd_out = `netsh lan show interfaces`
95
+ interface_details = cmd_out.split(/\n\n/).select { |settings| settings.match(/#{Regexp.quote(network_name)}/m) }
96
+ return nil if interface_details.empty?
97
+ interface_details[0].split(/\n/)[2].match(/.*:(.*)/).captures[0].strip
98
+ end
99
+
100
+ # Given an IP determines the network name, if any. Uses netsh which generates output like this:
101
+ #
102
+ # ...
103
+ # \n\n
104
+ # Configuration for interface "Ethernet 2"
105
+ # DHCP enabled: Yes
106
+ # IP Address: 10.10.10.1
107
+ # Subnet Prefix: 10.10.10.0/24 (mask 255.255.255.0)
108
+ # InterfaceMetric: 10
109
+ # DNS servers configured through DHCP: None
110
+ # Register with which suffix: Primary only
111
+ # WINS servers configured through DHCP: None
112
+ # \n\n
113
+ # ...
114
+ def get_network_name(ip)
115
+ cmd_out = `netsh interface ip show config`
116
+ network_details = cmd_out.split(/\n\n/).select do |settings|
117
+ begin
118
+ lines = settings.split(/\n/).reject(&:empty?)
119
+ subnet = lines[3]
120
+ next false unless subnet =~ /Subnet Prefix/
121
+
122
+ mask = IPAddr.new(subnet.match(%r{.* (\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}/\d{1,3}).*}).captures[0])
123
+ address = IPAddr.new(ip)
124
+
125
+ mask.include?(address)
126
+ rescue
127
+ false
128
+ end
129
+ end
130
+ return nil if network_details[0].nil?
131
+ network_details[0].split(/\n/)[0].match(/Configuration for interface "(.*)"/).captures[0].strip
132
+ end
133
+
134
+ # Makes sure that we have admin privileges and if nor starts a new shell with the required
135
+ # privileges
136
+ def ensure_admin_privileges(file, *args)
137
+ unless admin_mode?
138
+ require 'win32ole'
139
+ shell = WIN32OLE.new('Shell.Application')
140
+ shell.ShellExecute('ruby', "#{file} #{args.join(' ')}", nil, 'runas', 1)
141
+ # need to exit current execution, changes will occur in new environment
142
+ exit
143
+ end
144
+ end
145
+
146
+ def info(msg)
147
+ @env[:ui].info("[landrush] #{msg}") unless @env.nil?
148
+ end
149
+
150
+ def wired_autoconfig_service_running?
151
+ cmd_out = `net start`
152
+ cmd_out =~ /Wired AutoConfig/m
153
+ end
154
+
155
+ def command_found(cmd)
156
+ if which(cmd).nil?
157
+ info("Cannot find '#{cmd}' on the PATH. Unable to configure DNS. Try manual configuration.")
158
+ false
159
+ else
160
+ true
161
+ end
162
+ end
163
+
164
+ # Cross-platform way of finding an executable in the $PATH.
165
+ #
166
+ # which('ruby') #=> /usr/bin/ruby
167
+ def which(cmd)
168
+ exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
169
+ ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
170
+ exts.each do |ext|
171
+ exe = File.join(path, "#{cmd}#{ext}")
172
+ return exe if File.executable?(exe) && !File.directory?(exe)
173
+ end
174
+ end
175
+ nil
176
+ end
177
+ end
178
+ end
179
+ end
180
+ end
181
+ end
182
+
183
+ # Only run the following code when this file is the main file being run
184
+ # instead of having been required or loaded by another file
185
+ if __FILE__ == $0
186
+ Landrush::Cap::Windows::ConfigureVisibilityOnHost.configure_visibility_on_host(nil, ARGV[0], ARGV[1])
187
+ end
@@ -8,26 +8,29 @@ module Landrush
8
8
  attr_accessor :guest_redirect_dns
9
9
  attr_accessor :host_interface
10
10
  attr_accessor :host_interface_excludes
11
+ attr_accessor :host_redirect_dns
11
12
 
12
13
  DEFAULTS = {
13
- :enabled => false,
14
- :tld => 'vagrant.test',
15
- :upstream_servers => [[:udp, '8.8.8.8', 53], [:tcp, '8.8.8.8', 53]],
16
- :host_ip_address => nil,
17
- :guest_redirect_dns => true,
18
- :host_interface => nil,
19
- :host_interface_excludes => [/lo[0-9]*/, /docker[0-9]+/, /tun[0-9]+/]
14
+ :enabled => false,
15
+ :tld => 'vagrant.test',
16
+ :upstream_servers => [[:udp, '8.8.8.8', 53], [:tcp, '8.8.8.8', 53]],
17
+ :host_ip_address => nil,
18
+ :guest_redirect_dns => true,
19
+ :host_interface => nil,
20
+ :host_interface_excludes => [/lo[0-9]*/, /docker[0-9]+/, /tun[0-9]+/],
21
+ :host_redirect_dns => true
20
22
  }.freeze
21
23
 
22
24
  def initialize
23
- @hosts = {}
24
- @enabled = UNSET_VALUE
25
- @tld = UNSET_VALUE
26
- @upstream_servers = UNSET_VALUE
27
- @host_ip_address = UNSET_VALUE
28
- @guest_redirect_dns = UNSET_VALUE
29
- @host_interface = UNSET_VALUE
30
- @host_interface_excludes = UNSET_VALUE
25
+ @hosts = {}
26
+ @enabled = UNSET_VALUE
27
+ @tld = UNSET_VALUE
28
+ @upstream_servers = UNSET_VALUE
29
+ @host_ip_address = UNSET_VALUE
30
+ @guest_redirect_dns = UNSET_VALUE
31
+ @host_interface = UNSET_VALUE
32
+ @host_interface_excludes = UNSET_VALUE
33
+ @host_redirect_dns = UNSET_VALUE
31
34
  end
32
35
 
33
36
  def enable
@@ -46,6 +49,10 @@ module Landrush
46
49
  @guest_redirect_dns
47
50
  end
48
51
 
52
+ def host_redirect_dns?
53
+ @host_redirect_dns
54
+ end
55
+
49
56
  def host(hostname, ip_address=nil)
50
57
  @hosts[hostname] = ip_address
51
58
  end
@@ -63,43 +63,103 @@ module Landrush
63
63
  action_hook 'landrush_teardown', :machine_action_reload, &landrush_teardown
64
64
 
65
65
  guest_capability('debian', 'iptables_installed') do
66
- require_relative 'cap/debian/iptables_installed'
66
+ require_relative 'cap/guest/debian/iptables_installed'
67
67
  Cap::Debian::IptablesInstalled
68
68
  end
69
69
 
70
70
  guest_capability('debian', 'install_iptables') do
71
- require_relative 'cap/debian/install_iptables'
71
+ require_relative 'cap/guest/debian/install_iptables'
72
72
  Cap::Debian::InstallIptables
73
73
  end
74
74
 
75
75
  guest_capability('redhat', 'iptables_installed') do
76
- require_relative 'cap/redhat/iptables_installed'
76
+ require_relative 'cap/guest/redhat/iptables_installed'
77
77
  Cap::Redhat::IptablesInstalled
78
78
  end
79
79
 
80
80
  guest_capability('redhat', 'install_iptables') do
81
- require_relative 'cap/redhat/install_iptables'
81
+ require_relative 'cap/guest/redhat/install_iptables'
82
82
  Cap::Redhat::InstallIptables
83
83
  end
84
84
 
85
85
  guest_capability('linux', 'configured_dns_servers') do
86
- require_relative 'cap/linux/configured_dns_servers'
86
+ require_relative 'cap/guest/linux/configured_dns_servers'
87
87
  Cap::Linux::ConfiguredDnsServers
88
88
  end
89
89
 
90
90
  guest_capability('linux', 'redirect_dns') do
91
- require_relative 'cap/linux/redirect_dns'
91
+ require_relative 'cap/guest/linux/redirect_dns'
92
92
  Cap::Linux::RedirectDns
93
93
  end
94
94
 
95
95
  guest_capability('linux', 'add_iptables_rule') do
96
- require_relative 'cap/linux/add_iptables_rule'
96
+ require_relative 'cap/guest/linux/add_iptables_rule'
97
97
  Cap::Linux::AddIptablesRule
98
98
  end
99
99
 
100
100
  guest_capability('linux', 'read_host_visible_ip_address') do
101
- require_relative 'cap/all/read_host_visible_ip_address'
101
+ require_relative 'cap/guest/all/read_host_visible_ip_address'
102
102
  Cap::All::ReadHostVisibleIpAddress
103
103
  end
104
+
105
+ host_capability('darwin', 'configure_visibility_on_host') do
106
+ require_relative 'cap/host/darwin/configure_visibility_on_host'
107
+ Cap::Darwin::ConfigureVisibilityOnHost
108
+ end
109
+
110
+ host_capability('windows', 'configure_visibility_on_host') do
111
+ require_relative 'cap/host/windows/configure_visibility_on_host'
112
+ Cap::Windows::ConfigureVisibilityOnHost
113
+ end
114
+
115
+ host_capability('linux', 'configure_visibility_on_host') do
116
+ require_relative 'cap/host/linux/configure_visibility_on_host'
117
+ Cap::Linux::ConfigureVisibilityOnHost
118
+ end
119
+
120
+ host_capability('linux', 'create_dnsmasq_config') do
121
+ require_relative 'cap/host/linux/create_dnsmasq_config'
122
+ Cap::Linux::CreateDnsmasqConfig
123
+ end
124
+
125
+ host 'debian', 'linux' do
126
+ require_relative 'cap/host/debian/host'
127
+ Cap::Debian::DebianHost
128
+ end
129
+
130
+ host 'ubuntu', 'debian' do
131
+ require_relative 'cap/host/ubuntu/host'
132
+ Cap::Ubuntu::UbuntuHost
133
+ end
134
+
135
+ host_capability('debian', 'dnsmasq_installed') do
136
+ require_relative 'cap/host/debian/dnsmasq_installed'
137
+ Landrush::Cap::Debian::DnsmasqInstalled
138
+ end
139
+
140
+ host_capability('debian', 'install_dnsmasq') do
141
+ require_relative 'cap/host/debian/install_dnsmasq'
142
+ Cap::Debian::InstallDnsmasq
143
+ end
144
+
145
+ host_capability('debian', 'restart_dnsmasq') do
146
+ require_relative 'cap/host/debian/restart_dnsmasq'
147
+ Cap::Debian::RestartDnsmasq
148
+ end
149
+
150
+ host_capability('redhat', 'dnsmasq_installed') do
151
+ require_relative 'cap/host/redhat/dnsmasq_installed'
152
+ Cap::Redhat::DnsmasqInstalled
153
+ end
154
+
155
+ host_capability('redhat', 'install_dnsmasq') do
156
+ require_relative 'cap/host/redhat/install_dnsmasq'
157
+ Cap::Redhat::InstallDnsmasq
158
+ end
159
+
160
+ host_capability('redhat', 'restart_dnsmasq') do
161
+ require_relative 'cap/host/redhat/restart_dnsmasq'
162
+ Cap::Redhat::RestartDnsmasq
163
+ end
104
164
  end
105
165
  end
@@ -1,3 +1,3 @@
1
1
  module Landrush
2
- VERSION = '1.1.0.beta.1'.freeze
2
+ VERSION = '1.1.0.beta.2'.freeze
3
3
  end
@@ -5,17 +5,13 @@ require 'landrush/action/setup'
5
5
  module Landrush
6
6
  module Action
7
7
  describe Setup do
8
+ let(:env) { fake_environment }
9
+ let(:app) { proc {} }
8
10
  before do
9
- ResolverConfig.sudo = ''
10
- end
11
-
12
- after do
13
- ResolverConfig.sudo = 'sudo'
11
+ env[:machine].config.landrush.host_redirect_dns = false
14
12
  end
15
13
 
16
14
  it "calls the next app in the chain" do
17
- skip('Not working on Windows, since it will also do the network config') if Vagrant::Util::Platform.windows?
18
- env = fake_environment
19
15
  app = -> (e) { e[:called] = true }
20
16
  setup = Setup.new(app, nil)
21
17
 
@@ -25,10 +21,7 @@ module Landrush
25
21
  end
26
22
 
27
23
  it "records the booting host as a dependent VM" do
28
- skip('Not working on Windows, since it will also do the network config') if Vagrant::Util::Platform.windows?
29
- app = proc {}
30
24
  setup = Setup.new(app, nil)
31
- env = fake_environment
32
25
 
33
26
  setup.call(env)
34
27
 
@@ -36,10 +29,7 @@ module Landrush
36
29
  end
37
30
 
38
31
  it "starts the landrush server if it's not already started" do
39
- skip('Not working on Windows, since it will also do the network config') if Vagrant::Util::Platform.windows?
40
- app = proc {}
41
32
  setup = Setup.new(app, nil)
42
- env = fake_environment
43
33
 
44
34
  setup.call(env)
45
35
 
@@ -47,10 +37,7 @@ module Landrush
47
37
  end
48
38
 
49
39
  it "does not attempt to start the server if it's already up" do
50
- skip('Not working on Windows, since it will also do the network config') if Vagrant::Util::Platform.windows?
51
- app = proc {}
52
40
  setup = Setup.new(app, nil)
53
- env = fake_environment
54
41
 
55
42
  Server.start
56
43
  original_pid = Server.pid
@@ -62,10 +49,7 @@ module Landrush
62
49
  end
63
50
 
64
51
  it "does nothing if it is not enabled via config" do
65
- skip('Not working on Windows, since it will also do the network config') if Vagrant::Util::Platform.windows?
66
- app = proc {}
67
52
  setup = Setup.new(app, nil)
68
- env = fake_environment
69
53
 
70
54
  env[:machine].config.landrush.disable
71
55
  setup.call(env)
@@ -74,10 +58,7 @@ module Landrush
74
58
  end
75
59
 
76
60
  it "for single private network IP host visible IP can be retrieved w/o starting the VM" do
77
- skip('Not working on Windows, since it will also do the network config') if Vagrant::Util::Platform.windows?
78
- app = proc {}
79
61
  setup = Setup.new(app, nil)
80
- env = fake_environment
81
62
  env[:machine].config.vm.network :private_network, ip: '42.42.42.42'
82
63
 
83
64
  setup.call(env)
@@ -85,10 +66,7 @@ module Landrush
85
66
  end
86
67
 
87
68
  it "for multiple private network IPs host visible IP cant be retrieved if host_ip_address is set" do
88
- skip('Not working on Windows, since it will also do the network config') if Vagrant::Util::Platform.windows?
89
- app = proc {}
90
69
  setup = Setup.new(app, nil)
91
- env = fake_environment
92
70
 
93
71
  env[:machine].config.vm.network :private_network, ip: '42.42.42.41'
94
72
  env[:machine].config.vm.network :private_network, ip: '42.42.42.42'
@@ -98,10 +76,7 @@ module Landrush
98
76
  end
99
77
 
100
78
  it "is possible to add cnames via the config.landrush.host configuration option" do
101
- skip('Not working on Windows, since it will also do the network config') if Vagrant::Util::Platform.windows?
102
- app = proc {}
103
79
  setup = Setup.new(app, nil)
104
- env = fake_environment
105
80
 
106
81
  env[:machine].config.landrush.host 'foo', 'bar'
107
82
  setup.call(env)
@@ -111,10 +86,7 @@ module Landrush
111
86
 
112
87
  describe 'after boot' do
113
88
  it "stores the machine's hostname => ip address" do
114
- skip('Not working on Windows, since it will also do the network config') if Vagrant::Util::Platform.windows?
115
- app = proc {}
116
89
  setup = Setup.new(app, nil)
117
- env = fake_environment
118
90
 
119
91
  setup.call(env)
120
92
 
@@ -122,11 +94,9 @@ module Landrush
122
94
  end
123
95
 
124
96
  it "does nothing if it is not enabled via config" do
125
- skip('Not working on Windows, since it will also do the network config') if Vagrant::Util::Platform.windows?
126
- app = proc {}
127
97
  setup = Setup.new(app, nil)
128
- env = fake_environment(enabled: false)
129
98
 
99
+ env = fake_environment(enabled: false)
130
100
  setup.call(env)
131
101
 
132
102
  Store.hosts.get('somehost.vagrant.test').must_equal nil