landrush 1.0.0 → 1.1.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +8 -8
  3. data/.rubocop.yml +1 -0
  4. data/.travis.yml +3 -0
  5. data/CHANGELOG.md +4 -4
  6. data/CONTRIBUTING.md +54 -17
  7. data/Gemfile +4 -8
  8. data/README.md +152 -40
  9. data/features/dns_resolution.feature +9 -0
  10. data/features/landrush-ip.feature +57 -0
  11. data/features/step_definitions/ip.rb +13 -0
  12. data/landrush.gemspec +3 -1
  13. data/lib/landrush/action/setup.rb +49 -10
  14. data/lib/landrush/cap/all/read_host_visible_ip_address.rb +49 -0
  15. data/lib/landrush/config.rb +17 -11
  16. data/lib/landrush/plugin.rb +2 -2
  17. data/lib/landrush/resolver_config.rb +3 -7
  18. data/lib/landrush/server.rb +48 -22
  19. data/lib/landrush/util/retry.rb +16 -0
  20. data/lib/landrush/version.rb +1 -1
  21. data/lib/landrush/win_network_config.rb +185 -0
  22. data/lib/landrush.rb +6 -1
  23. data/test/landrush/action/setup_test.rb +44 -1
  24. data/test/landrush/action/teardown_test.rb +1 -1
  25. data/test/landrush/cap/all/read_host_visible_ip_address_test.rb +87 -0
  26. data/test/landrush/cap/linux/configured_dns_servers_test.rb +1 -1
  27. data/test/landrush/cap/linux/redirect_dns_test.rb +1 -1
  28. data/test/landrush/config_test.rb +1 -1
  29. data/test/landrush/dependent_vms_test.rb +1 -1
  30. data/test/landrush/resolver_config_test.rb +1 -3
  31. data/test/landrush/server_test.rb +1 -1
  32. data/test/landrush/store_test.rb +1 -1
  33. data/test/landrush/util/rety_test.rb +50 -0
  34. data/test/landrush/win_network_config_test.rb +70 -0
  35. data/test/support/fake_ui.rb +1 -0
  36. data/test/test_helper.rb +26 -11
  37. metadata +46 -12
  38. data/Gemfile.lock +0 -178
  39. data/examples/Vagrantfile +0 -20
  40. data/issues/vbox/Vagrantfile +0 -122
  41. data/lib/landrush/cap/linux/read_host_visible_ip_address.rb +0 -47
  42. data/lib/landrush/os.rb +0 -19
  43. data/test/landrush/cap/linux/read_host_visible_ip_address_test.rb +0 -37
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative '../../test_helper'
2
2
  require 'landrush/action/common'
3
3
  require 'landrush/action/setup'
4
4
 
@@ -14,6 +14,7 @@ module Landrush
14
14
  end
15
15
 
16
16
  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?
17
18
  env = fake_environment
18
19
  app = -> (e) { e[:called] = true }
19
20
  setup = Setup.new(app, nil)
@@ -24,6 +25,7 @@ module Landrush
24
25
  end
25
26
 
26
27
  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?
27
29
  app = proc {}
28
30
  setup = Setup.new(app, nil)
29
31
  env = fake_environment
@@ -34,6 +36,7 @@ module Landrush
34
36
  end
35
37
 
36
38
  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?
37
40
  app = proc {}
38
41
  setup = Setup.new(app, nil)
39
42
  env = fake_environment
@@ -44,6 +47,7 @@ module Landrush
44
47
  end
45
48
 
46
49
  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?
47
51
  app = proc {}
48
52
  setup = Setup.new(app, nil)
49
53
  env = fake_environment
@@ -58,6 +62,7 @@ module Landrush
58
62
  end
59
63
 
60
64
  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?
61
66
  app = proc {}
62
67
  setup = Setup.new(app, nil)
63
68
  env = fake_environment
@@ -68,8 +73,45 @@ module Landrush
68
73
  DependentVMs.list.must_equal []
69
74
  end
70
75
 
76
+ 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
+ setup = Setup.new(app, nil)
80
+ env = fake_environment
81
+ env[:machine].config.vm.network :private_network, ip: '42.42.42.42'
82
+
83
+ setup.call(env)
84
+ Store.hosts.get('somehost.vagrant.test').must_equal '42.42.42.42'
85
+ end
86
+
87
+ 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
+ setup = Setup.new(app, nil)
91
+ env = fake_environment
92
+
93
+ env[:machine].config.vm.network :private_network, ip: '42.42.42.41'
94
+ env[:machine].config.vm.network :private_network, ip: '42.42.42.42'
95
+ env[:machine].config.landrush.host_ip_address = '42.42.42.42'
96
+ setup.call(env)
97
+ Store.hosts.get('somehost.vagrant.test').must_equal '42.42.42.42'
98
+ end
99
+
100
+ 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
+ setup = Setup.new(app, nil)
104
+ env = fake_environment
105
+
106
+ env[:machine].config.landrush.host 'foo', 'bar'
107
+ setup.call(env)
108
+
109
+ Store.hosts.get('foo').must_equal 'bar'
110
+ end
111
+
71
112
  describe 'after boot' do
72
113
  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?
73
115
  app = proc {}
74
116
  setup = Setup.new(app, nil)
75
117
  env = fake_environment
@@ -80,6 +122,7 @@ module Landrush
80
122
  end
81
123
 
82
124
  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?
83
126
  app = proc {}
84
127
  setup = Setup.new(app, nil)
85
128
  env = fake_environment(enabled: false)
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative '../../test_helper'
2
2
  require 'landrush/action/common'
3
3
  require 'landrush/action/teardown'
4
4
 
@@ -0,0 +1,87 @@
1
+ require_relative '../../../test_helper'
2
+
3
+ module Landrush
4
+ module Cap
5
+ module All
6
+ describe ReadHostVisibleIpAddress do
7
+ let(:machine) { fake_machine }
8
+ let(:addresses) { fake_addresses }
9
+
10
+ def call_cap(machine)
11
+ Landrush::Cap::All::ReadHostVisibleIpAddress.read_host_visible_ip_address(machine)
12
+ end
13
+
14
+ before do
15
+ # TODO: Is there a way to only unstub it for read_host_visible_ip_address?
16
+ machine.guest.unstub(:capability)
17
+ machine.guest.stubs(:capability).with(:landrush_ip_get).returns(fake_addresses)
18
+ end
19
+
20
+ describe 'read_host_visible_ip_address' do
21
+ # First, test with an empty response (no addresses)
22
+ it 'should throw an error when there are no addresses' do
23
+ machine.guest.stubs(:capability).with(:landrush_ip_get).returns([])
24
+
25
+ lambda do
26
+ call_cap(machine)
27
+ end.must_raise(RuntimeError, 'No addresses found')
28
+ end
29
+
30
+ # Step 1: nothing excluded, nothing explicitly selected
31
+ it 'should return the last address' do
32
+ machine.config.landrush.host_interface = nil
33
+ machine.config.landrush.host_interface_excludes = []
34
+
35
+ expected = addresses.last['ipv4']
36
+
37
+ # call_cap(machine).must_equal expected
38
+ call_cap(machine).must_equal expected
39
+ end
40
+
41
+ # Test exclusion mechanics; it should select the las
42
+ it 'should ignore interfaces that are excluded and select the last not excluded interface' do
43
+ machine.config.landrush.host_interface = nil
44
+ machine.config.landrush.host_interface_excludes = [/exclude[0-9]+/]
45
+
46
+ expected = addresses.detect { |a| a['name'] == 'include3' }
47
+ expected = expected['ipv4']
48
+
49
+ call_cap(machine).must_equal expected
50
+ end
51
+
52
+ # Explicitly select one; this supersedes the exclusion mechanic
53
+ it 'should select the desired interface' do
54
+ machine.config.landrush.host_interface = 'include1'
55
+ machine.config.landrush.host_interface_excludes = [/exclude[0-9]+/]
56
+
57
+ expected = addresses.detect { |a| a['name'] == 'include1' }
58
+ expected = expected['ipv4']
59
+
60
+ call_cap(machine).must_equal expected
61
+ end
62
+
63
+ # Now make sure it returns the last not excluded interface when the desired interface does not exist
64
+ it 'should return the last not excluded interface if the desired interface does not exist' do
65
+ machine.config.landrush.host_interface = 'dummy'
66
+ machine.config.landrush.host_interface_excludes = [/exclude[0-9]+/]
67
+
68
+ expected = addresses.detect { |a| a['name'] == 'include3' }
69
+ expected = expected['ipv4']
70
+
71
+ call_cap(machine).must_equal expected
72
+ end
73
+
74
+ # Now make sure it returns the last interface overall when nothing is excluded
75
+ it 'should return the last interface if the desired interface does not exist' do
76
+ machine.config.landrush.host_interface = 'dummy'
77
+ machine.config.landrush.host_interface_excludes = []
78
+
79
+ expected = addresses.last['ipv4']
80
+
81
+ call_cap(machine).must_equal expected
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative '../../../test_helper'
2
2
 
3
3
  describe Landrush::Cap::Linux::ConfiguredDnsServers do
4
4
  let(:machine) { fake_machine }
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative '../../../test_helper'
2
2
 
3
3
  describe Landrush::Cap::Linux::RedirectDns do
4
4
  let(:machine) { fake_machine }
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative '../test_helper'
2
2
 
3
3
  describe 'Landrush::Config' do
4
4
  it "supports enabling via accessor style" do
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative '../test_helper'
2
2
 
3
3
  module Landrush
4
4
  describe DependentVMs do
@@ -1,12 +1,10 @@
1
- require 'test_helper'
1
+ require_relative '../test_helper'
2
2
 
3
3
  module Landrush
4
4
  describe ResolverConfig do
5
5
  describe 'ensure_config_exists' do
6
6
  it 'writes a resolver config on the host if one is not already there' do
7
7
  resolver_config = ResolverConfig.new(fake_environment)
8
- skip("Only supported on OSX") unless resolver_config.osx?
9
-
10
8
  resolver_config.config_file.exist?.must_equal false
11
9
  resolver_config.ensure_config_exists!
12
10
  resolver_config.config_file.exist?.must_equal true
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative '../test_helper'
2
2
  require 'resolv'
3
3
 
4
4
  module Landrush
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative '../test_helper'
2
2
 
3
3
  module Landrush
4
4
  describe Store do
@@ -0,0 +1,50 @@
1
+ require_relative '../../test_helper'
2
+
3
+ class DummyClass
4
+ include Landrush::Util::Retry
5
+ end
6
+
7
+ module Landrush
8
+ module Util
9
+ describe Retry do
10
+ before do
11
+ @dummy = DummyClass.new
12
+ end
13
+
14
+ describe 'retry' do
15
+ it 'retries the provided block up to the specified count' do
16
+ retries = 0
17
+ result = @dummy.retry(tries: 2) do
18
+ retries += 1
19
+ false
20
+ end
21
+ retries.must_equal 2
22
+ result.must_equal false
23
+ end
24
+
25
+ it 'does not retry if \'true\' is returned' do
26
+ retries = 0
27
+ result = @dummy.retry(tries: 2) do
28
+ retries += 1
29
+ true
30
+ end
31
+ retries.must_equal 1
32
+ result.must_equal true
33
+ end
34
+
35
+ it 'does sleep between executions if requested' do
36
+ retries = 0
37
+ t1 = Time.now
38
+ result = @dummy.retry(tries: 1, sleep: 1) do
39
+ retries += 1
40
+ false
41
+ end
42
+ t2 = Time.now
43
+ retries.must_equal 1
44
+ result.must_equal false
45
+ assert t2 - t1 > 1
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,70 @@
1
+ require_relative '../test_helper'
2
+
3
+ module Landrush
4
+ TEST_IP = '10.42.42.42'.freeze
5
+
6
+ describe WinNetworkConfig do
7
+ before do
8
+ @vboxmanage_found = !Vagrant::Util::Which.which('VBoxManage').nil?
9
+ @has_admin_privileges = Landrush::WinNetworkConfig.admin_mode?
10
+ end
11
+
12
+ describe 'modify DNS settings of network adapter' do
13
+ it 'sets 127.0.0.1 as DNS server on the interface' do
14
+ skip('Only supported on Windows') unless Vagrant::Util::Platform.windows? && @vboxmanage_found && @has_admin_privileges
15
+
16
+ # VBoxManage uses the network description for its commands whereas netsh uses the name
17
+ # We need to get both
18
+ begin
19
+ old_network_state = network_state
20
+ network_description = create_test_interface
21
+ new_network_state = network_state
22
+ network_name = get_network_name(old_network_state, new_network_state)
23
+
24
+ get_dns_for_name(network_name).must_be_nil
25
+
26
+ config = Landrush::WinNetworkConfig.new(fake_environment)
27
+ config.ensure_prerequisites.must_equal true
28
+ config.update_network_adapter(TEST_IP, '127.0.0.1', 'landrush.test')
29
+
30
+ get_dns_for_name(network_name).must_equal '127.0.0.1'
31
+ rescue
32
+ delete_test_interface network_description
33
+ end
34
+ end
35
+ end
36
+
37
+ def network_state
38
+ `netsh interface ip show config`.split(/\n/).reject(&:empty?)
39
+ end
40
+
41
+ def get_network_name(old_network_state, new_network_state)
42
+ new_network_state.reject! { |line| old_network_state.include? line }
43
+ new_network_state[0].match(/.*\"(.*)\"$/).captures[0]
44
+ end
45
+
46
+ # Creates a test interface using VBoxMange and sets a known test IP
47
+ def create_test_interface
48
+ cmd_out = `VBoxManage hostonlyif create`
49
+ network_description = cmd_out.match(/.*'(.*)'.*/).captures[0]
50
+ `VBoxManage.exe hostonlyif ipconfig \"#{network_description}\" --ip #{TEST_IP}`
51
+ sleep 3
52
+ network_description
53
+ end
54
+
55
+ def delete_test_interface(name)
56
+ `VBoxManage hostonlyif remove \"#{name}\"`
57
+ end
58
+
59
+ def get_dns_for_name(name)
60
+ cmd_out = `netsh interface ip show config name=\"#{name}\"`
61
+ dns = cmd_out.split(/\n/).select { |settings| settings.match(/Statically Configured DNS Servers/m) }
62
+ # TODO: better error handling
63
+ begin
64
+ dns[0].match(/.* (\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}).*/).captures[0]
65
+ rescue
66
+ return nil
67
+ end
68
+ end
69
+ end
70
+ end
@@ -1,4 +1,5 @@
1
1
  class FakeUI
2
2
  def self.info(*args)
3
+ # puts "#{args.join(' ')}"
3
4
  end
4
5
  end
data/test/test_helper.rb CHANGED
@@ -5,12 +5,27 @@ require 'minitest/spec'
5
5
 
6
6
  require 'landrush'
7
7
  require 'landrush/cap/linux/configured_dns_servers'
8
- require 'landrush/cap/linux/read_host_visible_ip_address'
9
8
  require 'landrush/cap/linux/redirect_dns'
9
+ require 'landrush/cap/all/read_host_visible_ip_address'
10
+ require 'landrush/win_network_config'
11
+ require 'landrush/util/retry'
10
12
 
11
13
  require 'minitest/autorun'
12
14
  require 'mocha/mini_test'
13
15
 
16
+ # Make sure to keep the numbering sequential here
17
+ # Putting include/exclude out of order is kind of the point though ;)
18
+ def fake_addresses
19
+ [
20
+ { 'name' => 'exclude1', 'ipv4' => '172.28.128.1', 'ipv6' => '::1' },
21
+ { 'name' => 'include1', 'ipv4' => '172.28.128.2', 'ipv6' => '::2' },
22
+ { 'name' => 'include2', 'ipv4' => '172.28.128.3', 'ipv6' => '::3' },
23
+ { 'name' => 'include3', 'ipv4' => '172.28.128.4', 'ipv6' => '::4' },
24
+ { 'name' => 'exclude2', 'ipv4' => '172.28.128.5', 'ipv6' => '::5' },
25
+ { 'name' => 'exclude3', 'ipv4' => '172.28.128.6', 'ipv6' => '::6' }
26
+ ]
27
+ end
28
+
14
29
  def fake_environment(options = { enabled: true })
15
30
  # For the home_path we want the base Vagrant directory
16
31
  vagrant_test_home = Pathname(Landrush::Server.working_dir).parent.parent
@@ -97,14 +112,14 @@ def fake_machine(options={})
97
112
  )
98
113
 
99
114
  machine.instance_variable_set("@communicator", RecordingCommunicator.new)
100
- machine.communicate.stub_command(
101
- Landrush::Cap::Linux::ReadHostVisibleIpAddress.command,
102
- "#{options.fetch(:ip, '1.2.3.4')}\n"
103
- )
104
115
 
105
116
  machine.config.landrush.enabled = options.fetch(:enabled, false)
117
+ machine.config.landrush.host_interface = nil
118
+ machine.config.landrush.host_interface_excludes = [/exclude[0-9]+/]
106
119
  machine.config.vm.hostname = options.fetch(:hostname, 'somehost.vagrant.test')
107
120
 
121
+ machine.guest.stubs(:capability).with(:read_host_visible_ip_address).returns(options.fetch(:ip, '1.2.3.4'))
122
+
108
123
  machine
109
124
  end
110
125
 
@@ -120,12 +135,12 @@ module MiniTest
120
135
  end
121
136
 
122
137
  # order is important on these
123
- require 'support/create_fake_working_dir'
138
+ require_relative 'support/create_fake_working_dir'
124
139
 
125
- require 'support/clear_dependent_vms'
140
+ require_relative 'support/clear_dependent_vms'
126
141
 
127
- require 'support/fake_ui'
128
- require 'support/test_server_daemon'
129
- require 'support/fake_resolver_config'
142
+ require_relative 'support/fake_ui'
143
+ require_relative 'support/test_server_daemon'
144
+ require_relative 'support/fake_resolver_config'
130
145
 
131
- require 'support/delete_fake_working_dir'
146
+ require_relative 'support/delete_fake_working_dir'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: landrush
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0.beta.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Hinze
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-17 00:00:00.000000000 Z
11
+ date: 2016-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubydns
@@ -24,6 +24,34 @@ dependencies:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.8.5
27
+ - !ruby/object:Gem::Dependency
28
+ name: win32-process
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: landrush-ip
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 0.2.3
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.2.3
27
55
  description: |
28
56
  Forget about IPs in Vagrant - Automated DNS for your VMs
29
57
 
@@ -48,7 +76,6 @@ files:
48
76
  - CHANGELOG.md
49
77
  - CONTRIBUTING.md
50
78
  - Gemfile
51
- - Gemfile.lock
52
79
  - LICENSE.txt
53
80
  - NOTES.md
54
81
  - README.md
@@ -62,11 +89,11 @@ files:
62
89
  - doc/support/seqdiag.fontmap
63
90
  - doc/vagrant_dns_without_landrush.diag
64
91
  - doc/vagrant_dns_without_landrush.svg
65
- - examples/Vagrantfile
66
92
  - features/dns_resolution.feature
93
+ - features/landrush-ip.feature
67
94
  - features/step_definitions/dns.rb
95
+ - features/step_definitions/ip.rb
68
96
  - features/support/env.rb
69
- - issues/vbox/Vagrantfile
70
97
  - landrush.gemspec
71
98
  - lib/landrush.rb
72
99
  - lib/landrush/action/common.rb
@@ -74,33 +101,36 @@ files:
74
101
  - lib/landrush/action/redirect_dns.rb
75
102
  - lib/landrush/action/setup.rb
76
103
  - lib/landrush/action/teardown.rb
104
+ - lib/landrush/cap/all/read_host_visible_ip_address.rb
77
105
  - lib/landrush/cap/debian/install_iptables.rb
78
106
  - lib/landrush/cap/debian/iptables_installed.rb
79
107
  - lib/landrush/cap/linux/add_iptables_rule.rb
80
108
  - lib/landrush/cap/linux/configured_dns_servers.rb
81
- - lib/landrush/cap/linux/read_host_visible_ip_address.rb
82
109
  - lib/landrush/cap/linux/redirect_dns.rb
83
110
  - lib/landrush/cap/redhat/install_iptables.rb
84
111
  - lib/landrush/cap/redhat/iptables_installed.rb
85
112
  - lib/landrush/command.rb
86
113
  - lib/landrush/config.rb
87
114
  - lib/landrush/dependent_vms.rb
88
- - lib/landrush/os.rb
89
115
  - lib/landrush/plugin.rb
90
116
  - lib/landrush/resolver_config.rb
91
117
  - lib/landrush/server.rb
92
118
  - lib/landrush/store.rb
119
+ - lib/landrush/util/retry.rb
93
120
  - lib/landrush/version.rb
121
+ - lib/landrush/win_network_config.rb
94
122
  - test/landrush/action/setup_test.rb
95
123
  - test/landrush/action/teardown_test.rb
124
+ - test/landrush/cap/all/read_host_visible_ip_address_test.rb
96
125
  - test/landrush/cap/linux/configured_dns_servers_test.rb
97
- - test/landrush/cap/linux/read_host_visible_ip_address_test.rb
98
126
  - test/landrush/cap/linux/redirect_dns_test.rb
99
127
  - test/landrush/config_test.rb
100
128
  - test/landrush/dependent_vms_test.rb
101
129
  - test/landrush/resolver_config_test.rb
102
130
  - test/landrush/server_test.rb
103
131
  - test/landrush/store_test.rb
132
+ - test/landrush/util/rety_test.rb
133
+ - test/landrush/win_network_config_test.rb
104
134
  - test/support/clear_dependent_vms.rb
105
135
  - test/support/create_fake_working_dir.rb
106
136
  - test/support/delete_fake_working_dir.rb
@@ -108,7 +138,7 @@ files:
108
138
  - test/support/fake_ui.rb
109
139
  - test/support/test_server_daemon.rb
110
140
  - test/test_helper.rb
111
- homepage: https://github.com/phinze/landrush
141
+ homepage: https://github.com/vagrant-landrush/landrush
112
142
  licenses:
113
143
  - MIT
114
144
  metadata: {}
@@ -123,9 +153,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
123
153
  version: '0'
124
154
  required_rubygems_version: !ruby/object:Gem::Requirement
125
155
  requirements:
126
- - - '>='
156
+ - - '>'
127
157
  - !ruby/object:Gem::Version
128
- version: '0'
158
+ version: 1.3.1
129
159
  requirements: []
130
160
  rubyforge_project:
131
161
  rubygems_version: 2.4.6
@@ -134,18 +164,22 @@ specification_version: 4
134
164
  summary: a vagrant plugin providing consistent DNS visible on host and guests
135
165
  test_files:
136
166
  - features/dns_resolution.feature
167
+ - features/landrush-ip.feature
137
168
  - features/step_definitions/dns.rb
169
+ - features/step_definitions/ip.rb
138
170
  - features/support/env.rb
139
171
  - test/landrush/action/setup_test.rb
140
172
  - test/landrush/action/teardown_test.rb
173
+ - test/landrush/cap/all/read_host_visible_ip_address_test.rb
141
174
  - test/landrush/cap/linux/configured_dns_servers_test.rb
142
- - test/landrush/cap/linux/read_host_visible_ip_address_test.rb
143
175
  - test/landrush/cap/linux/redirect_dns_test.rb
144
176
  - test/landrush/config_test.rb
145
177
  - test/landrush/dependent_vms_test.rb
146
178
  - test/landrush/resolver_config_test.rb
147
179
  - test/landrush/server_test.rb
148
180
  - test/landrush/store_test.rb
181
+ - test/landrush/util/rety_test.rb
182
+ - test/landrush/win_network_config_test.rb
149
183
  - test/support/clear_dependent_vms.rb
150
184
  - test/support/create_fake_working_dir.rb
151
185
  - test/support/delete_fake_working_dir.rb