landrush 0.19.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/.config/cucumber.yml +7 -0
  3. data/.gitignore +6 -4
  4. data/.rubocop.yml +5 -0
  5. data/.rubocop_todo.yml +32 -259
  6. data/CHANGELOG.md +8 -1
  7. data/CONTRIBUTING.md +11 -10
  8. data/Gemfile +7 -4
  9. data/Gemfile.lock +178 -0
  10. data/README.md +148 -35
  11. data/Rakefile +18 -0
  12. data/doc/img/advanced-tcp-properties.png +0 -0
  13. data/doc/img/network-connections.png +0 -0
  14. data/features/dns_resolution.feature +26 -0
  15. data/features/step_definitions/dns.rb +19 -0
  16. data/features/support/env.rb +16 -0
  17. data/landrush.gemspec +1 -2
  18. data/lib/landrush.rb +0 -12
  19. data/lib/landrush/action/common.rb +5 -5
  20. data/lib/landrush/action/redirect_dns.rb +1 -1
  21. data/lib/landrush/action/setup.rb +9 -14
  22. data/lib/landrush/action/teardown.rb +5 -1
  23. data/lib/landrush/cap/debian/install_iptables.rb +2 -2
  24. data/lib/landrush/cap/linux/add_iptables_rule.rb +0 -1
  25. data/lib/landrush/cap/linux/redirect_dns.rb +0 -1
  26. data/lib/landrush/cap/redhat/install_iptables.rb +2 -2
  27. data/lib/landrush/command.rb +8 -10
  28. data/lib/landrush/config.rb +1 -1
  29. data/lib/landrush/dependent_vms.rb +2 -2
  30. data/lib/landrush/os.rb +19 -0
  31. data/lib/landrush/plugin.rb +4 -4
  32. data/lib/landrush/resolver_config.rb +1 -5
  33. data/lib/landrush/server.rb +187 -25
  34. data/lib/landrush/store.rb +12 -4
  35. data/lib/landrush/version.rb +1 -1
  36. data/test/landrush/action/setup_test.rb +14 -9
  37. data/test/landrush/action/teardown_test.rb +8 -9
  38. data/test/landrush/cap/linux/configured_dns_servers_test.rb +2 -2
  39. data/test/landrush/cap/linux/read_host_visible_ip_address_test.rb +5 -7
  40. data/test/landrush/cap/linux/redirect_dns_test.rb +1 -1
  41. data/test/landrush/resolver_config_test.rb +0 -2
  42. data/test/landrush/server_test.rb +18 -12
  43. data/test/landrush/store_test.rb +7 -6
  44. data/test/support/clear_dependent_vms.rb +4 -2
  45. data/test/support/create_fake_working_dir.rb +19 -0
  46. data/test/support/delete_fake_working_dir.rb +12 -0
  47. data/test/support/fake_resolver_config.rb +8 -3
  48. data/test/support/test_server_daemon.rb +20 -15
  49. data/test/test_helper.rb +31 -22
  50. metadata +26 -28
  51. data/lib/ext/rexec.rb +0 -10
  52. data/test/support/fake_working_dir.rb +0 -16
data/test/test_helper.rb CHANGED
@@ -12,7 +12,9 @@ require 'minitest/autorun'
12
12
  require 'mocha/mini_test'
13
13
 
14
14
  def fake_environment(options = { enabled: true })
15
- { machine: fake_machine(options), ui: FakeUI }
15
+ # For the home_path we want the base Vagrant directory
16
+ vagrant_test_home = Pathname(Landrush::Server.working_dir).parent.parent
17
+ { machine: fake_machine(options), ui: FakeUI, home_path: vagrant_test_home }
16
18
  end
17
19
 
18
20
  class RecordingCommunicator
@@ -33,10 +35,10 @@ class RecordingCommunicator
33
35
  responses[command]
34
36
  end
35
37
 
36
- def execute(command, &block)
38
+ def execute(command)
37
39
  commands[:execute] << command
38
40
  responses[command].split("\n").each do |line|
39
- block.call(:stdout, "#{line}\n")
41
+ yield(:stdout, "#{line}\n")
40
42
  end
41
43
  end
42
44
 
@@ -50,28 +52,32 @@ class RecordingCommunicator
50
52
  end
51
53
  end
52
54
 
53
- class Landrush::FakeProvider
54
- def initialize(*args)
55
- end
55
+ module Landrush
56
+ class FakeProvider
57
+ def initialize(*args)
58
+ end
56
59
 
57
- def _initialize(*args)
58
- end
60
+ def _initialize(*args)
61
+ end
59
62
 
60
- def ssh_info
61
- end
63
+ def ssh_info
64
+ end
62
65
 
63
- def state
64
- @state ||= Vagrant::MachineState.new('fake-state', 'fake-state','fake-state')
66
+ def state
67
+ @state ||= Vagrant::MachineState.new('fake-state', 'fake-state', 'fake-state')
68
+ end
65
69
  end
66
70
  end
67
71
 
68
- class Landrush::FakeConfig
69
- def landrush
70
- @landrush_config ||= Landrush::Config.new
71
- end
72
+ module Landrush
73
+ class FakeConfig
74
+ def landrush
75
+ @landrush_config ||= Landrush::Config.new
76
+ end
72
77
 
73
- def vm
74
- VagrantPlugins::Kernel_V2::VMConfig.new
78
+ def vm
79
+ VagrantPlugins::Kernel_V2::VMConfig.new
80
+ end
75
81
  end
76
82
  end
77
83
 
@@ -107,16 +113,19 @@ def fake_static_entry(env, hostname, ip)
107
113
  Landrush::Store.hosts.set(hostname, ip)
108
114
  end
109
115
 
110
- class MiniTest::Spec
111
- alias_method :hush, :capture_io
116
+ module MiniTest
117
+ class Spec
118
+ alias_method :hush, :capture_io
119
+ end
112
120
  end
113
121
 
114
122
  # order is important on these
123
+ require 'support/create_fake_working_dir'
124
+
115
125
  require 'support/clear_dependent_vms'
116
126
 
117
127
  require 'support/fake_ui'
118
128
  require 'support/test_server_daemon'
119
129
  require 'support/fake_resolver_config'
120
130
 
121
- # need to be last; don't want to delete dir out from servers before they clean up
122
- require 'support/fake_working_dir'
131
+ require '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: 0.19.0
4
+ version: 1.0.0
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-03-10 00:00:00.000000000 Z
11
+ date: 2016-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubydns
@@ -16,28 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.2
19
+ version: 0.8.5
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 1.0.2
27
- - !ruby/object:Gem::Dependency
28
- name: rexec
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'
26
+ version: 0.8.5
41
27
  description: |
42
28
  Forget about IPs in Vagrant - Automated DNS for your VMs
43
29
 
@@ -54,17 +40,21 @@ executables: []
54
40
  extensions: []
55
41
  extra_rdoc_files: []
56
42
  files:
57
- - ".gitignore"
58
- - ".rubocop.yml"
59
- - ".rubocop_todo.yml"
60
- - ".travis.yml"
43
+ - .config/cucumber.yml
44
+ - .gitignore
45
+ - .rubocop.yml
46
+ - .rubocop_todo.yml
47
+ - .travis.yml
61
48
  - CHANGELOG.md
62
49
  - CONTRIBUTING.md
63
50
  - Gemfile
51
+ - Gemfile.lock
64
52
  - LICENSE.txt
65
53
  - NOTES.md
66
54
  - README.md
67
55
  - Rakefile
56
+ - doc/img/advanced-tcp-properties.png
57
+ - doc/img/network-connections.png
68
58
  - doc/img/osx.png
69
59
  - doc/img/ubuntu.png
70
60
  - doc/img/vbox.png
@@ -73,9 +63,11 @@ files:
73
63
  - doc/vagrant_dns_without_landrush.diag
74
64
  - doc/vagrant_dns_without_landrush.svg
75
65
  - examples/Vagrantfile
66
+ - features/dns_resolution.feature
67
+ - features/step_definitions/dns.rb
68
+ - features/support/env.rb
76
69
  - issues/vbox/Vagrantfile
77
70
  - landrush.gemspec
78
- - lib/ext/rexec.rb
79
71
  - lib/landrush.rb
80
72
  - lib/landrush/action/common.rb
81
73
  - lib/landrush/action/install_prerequisites.rb
@@ -93,6 +85,7 @@ files:
93
85
  - lib/landrush/command.rb
94
86
  - lib/landrush/config.rb
95
87
  - lib/landrush/dependent_vms.rb
88
+ - lib/landrush/os.rb
96
89
  - lib/landrush/plugin.rb
97
90
  - lib/landrush/resolver_config.rb
98
91
  - lib/landrush/server.rb
@@ -109,9 +102,10 @@ files:
109
102
  - test/landrush/server_test.rb
110
103
  - test/landrush/store_test.rb
111
104
  - test/support/clear_dependent_vms.rb
105
+ - test/support/create_fake_working_dir.rb
106
+ - test/support/delete_fake_working_dir.rb
112
107
  - test/support/fake_resolver_config.rb
113
108
  - test/support/fake_ui.rb
114
- - test/support/fake_working_dir.rb
115
109
  - test/support/test_server_daemon.rb
116
110
  - test/test_helper.rb
117
111
  homepage: https://github.com/phinze/landrush
@@ -124,21 +118,24 @@ require_paths:
124
118
  - lib
125
119
  required_ruby_version: !ruby/object:Gem::Requirement
126
120
  requirements:
127
- - - ">="
121
+ - - '>='
128
122
  - !ruby/object:Gem::Version
129
123
  version: '0'
130
124
  required_rubygems_version: !ruby/object:Gem::Requirement
131
125
  requirements:
132
- - - ">="
126
+ - - '>='
133
127
  - !ruby/object:Gem::Version
134
128
  version: '0'
135
129
  requirements: []
136
130
  rubyforge_project:
137
- rubygems_version: 2.2.3
131
+ rubygems_version: 2.4.6
138
132
  signing_key:
139
133
  specification_version: 4
140
134
  summary: a vagrant plugin providing consistent DNS visible on host and guests
141
135
  test_files:
136
+ - features/dns_resolution.feature
137
+ - features/step_definitions/dns.rb
138
+ - features/support/env.rb
142
139
  - test/landrush/action/setup_test.rb
143
140
  - test/landrush/action/teardown_test.rb
144
141
  - test/landrush/cap/linux/configured_dns_servers_test.rb
@@ -150,8 +147,9 @@ test_files:
150
147
  - test/landrush/server_test.rb
151
148
  - test/landrush/store_test.rb
152
149
  - test/support/clear_dependent_vms.rb
150
+ - test/support/create_fake_working_dir.rb
151
+ - test/support/delete_fake_working_dir.rb
153
152
  - test/support/fake_resolver_config.rb
154
153
  - test/support/fake_ui.rb
155
- - test/support/fake_working_dir.rb
156
154
  - test/support/test_server_daemon.rb
157
155
  - test/test_helper.rb
data/lib/ext/rexec.rb DELETED
@@ -1,10 +0,0 @@
1
- # Monkey patch in a prefix for the RExec daemon log lines.
2
- module RExec
3
- module Daemon
4
- module Controller
5
- def self.puts(str)
6
- Kernel.puts "[landrush] #{str}"
7
- end
8
- end
9
- end
10
- end
@@ -1,16 +0,0 @@
1
- module FakeWorkingDirHooks
2
- def setup
3
- super
4
- Landrush.working_dir = '/tmp/vagrant_landrush_test_working_dir'
5
- end
6
-
7
- def teardown
8
- super
9
- Landrush.working_dir.rmtree if Landrush.working_dir.directory?
10
- end
11
- end
12
-
13
- class MiniTest::Spec
14
- include FakeWorkingDirHooks
15
- end
16
-