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.
- checksums.yaml +4 -4
- data/.gitignore +8 -8
- data/.rubocop.yml +1 -0
- data/.travis.yml +3 -0
- data/CHANGELOG.md +4 -4
- data/CONTRIBUTING.md +54 -17
- data/Gemfile +4 -8
- data/README.md +152 -40
- data/features/dns_resolution.feature +9 -0
- data/features/landrush-ip.feature +57 -0
- data/features/step_definitions/ip.rb +13 -0
- data/landrush.gemspec +3 -1
- data/lib/landrush/action/setup.rb +49 -10
- data/lib/landrush/cap/all/read_host_visible_ip_address.rb +49 -0
- data/lib/landrush/config.rb +17 -11
- data/lib/landrush/plugin.rb +2 -2
- data/lib/landrush/resolver_config.rb +3 -7
- data/lib/landrush/server.rb +48 -22
- data/lib/landrush/util/retry.rb +16 -0
- data/lib/landrush/version.rb +1 -1
- data/lib/landrush/win_network_config.rb +185 -0
- data/lib/landrush.rb +6 -1
- data/test/landrush/action/setup_test.rb +44 -1
- data/test/landrush/action/teardown_test.rb +1 -1
- data/test/landrush/cap/all/read_host_visible_ip_address_test.rb +87 -0
- data/test/landrush/cap/linux/configured_dns_servers_test.rb +1 -1
- data/test/landrush/cap/linux/redirect_dns_test.rb +1 -1
- data/test/landrush/config_test.rb +1 -1
- data/test/landrush/dependent_vms_test.rb +1 -1
- data/test/landrush/resolver_config_test.rb +1 -3
- data/test/landrush/server_test.rb +1 -1
- data/test/landrush/store_test.rb +1 -1
- data/test/landrush/util/rety_test.rb +50 -0
- data/test/landrush/win_network_config_test.rb +70 -0
- data/test/support/fake_ui.rb +1 -0
- data/test/test_helper.rb +26 -11
- metadata +46 -12
- data/Gemfile.lock +0 -178
- data/examples/Vagrantfile +0 -20
- data/issues/vbox/Vagrantfile +0 -122
- data/lib/landrush/cap/linux/read_host_visible_ip_address.rb +0 -47
- data/lib/landrush/os.rb +0 -19
- data/test/landrush/cap/linux/read_host_visible_ip_address_test.rb +0 -37
@@ -1,4 +1,4 @@
|
|
1
|
-
|
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)
|
@@ -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,12 +1,10 @@
|
|
1
|
-
|
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
|
data/test/landrush/store_test.rb
CHANGED
@@ -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
|
data/test/support/fake_ui.rb
CHANGED
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
|
-
|
138
|
+
require_relative 'support/create_fake_working_dir'
|
124
139
|
|
125
|
-
|
140
|
+
require_relative 'support/clear_dependent_vms'
|
126
141
|
|
127
|
-
|
128
|
-
|
129
|
-
|
142
|
+
require_relative 'support/fake_ui'
|
143
|
+
require_relative 'support/test_server_daemon'
|
144
|
+
require_relative 'support/fake_resolver_config'
|
130
145
|
|
131
|
-
|
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.
|
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-
|
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/
|
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:
|
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
|