landrush 1.0.0 → 1.1.0.beta.1

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 (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