vagrant-skytap 0.1.11 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.byebug_history +242 -19
- data/CHANGELOG.md +9 -0
- data/README.md +30 -8
- data/Vagrantfile.rej +83 -0
- data/_patches-20160112/0 +388 -0
- data/_patches-20160112/1 +82 -0
- data/_patches-20160112/2 +239 -0
- data/_patches-20160112/COMPLETED-ABOVE-THIS-LINE +4 -0
- data/_patches-20160112/COMPLETED-BELOW-THIS-LINE +4 -0
- data/_patches-20160112/CR-ABOVE-THIS-LINE +4 -0
- data/_patches-20160112/CR-BELOW-THIS-LINE +4 -0
- data/_patches-20160112/WIP-ABOVE-THIS-LINE +4 -0
- data/_patches-20160112/WIP-BELOW-THIS-LINE +4 -0
- data/_patches-20160112/acceptance-test-runner +29 -0
- data/_patches-20160112/ansible-1 +92 -0
- data/_patches-20160112/cache-api-client-in-up +40 -0
- data/_patches-20160112/dead-code-in-actions +44 -0
- data/_patches-20160112/debug-changes +42 -0
- data/_patches-20160112/demo-rails-app +1276 -0
- data/_patches-20160112/eng-10166-halt-spec +40 -0
- data/_patches-20160112/eng-10256 +527 -0
- data/_patches-20160112/eng-10256-2 +162 -0
- data/_patches-20160112/eng-10256-ubuntu-testing +88 -0
- data/_patches-20160112/eng-10269-test-stuff +87 -0
- data/_patches-20160112/eng-10269-wtf +119 -0
- data/_patches-20160112/eng-10369 +143 -0
- data/_patches-20160112/eng-10369-tmp +60 -0
- data/_patches-20160112/eng-10919 +56 -0
- data/_patches-20160112/eng-11177-fix-actions-requires +44 -0
- data/_patches-20160112/eng-11442 +4 -0
- data/_patches-20160112/eng-11616 +403 -0
- data/_patches-20160112/eng-11616-2 +67 -0
- data/_patches-20160112/eng-11616-actual +184 -0
- data/_patches-20160112/eng-11625a +4 -0
- data/_patches-20160112/eng-11711 +85 -0
- data/_patches-20160112/eng-12232-command-spec +236 -0
- data/_patches-20160112/eng-12235 +83 -0
- data/_patches-20160112/eng-12235-override-refactor +140 -0
- data/_patches-20160112/eng-12240 +103 -0
- data/_patches-20160112/eng-12249 +40 -0
- data/_patches-20160112/eng-12301 +50 -0
- data/_patches-20160112/eng-12843 +95 -0
- data/_patches-20160112/env-source +112 -0
- data/_patches-20160112/frickin-vagrant-spec +163 -0
- data/_patches-20160112/gem-pre-version +14 -0
- data/_patches-20160112/gems-old +9 -0
- data/_patches-20160112/googles-specs +713 -0
- data/_patches-20160112/local-configs-ignore +61 -0
- data/_patches-20160112/misc +79 -0
- data/_patches-20160112/network-unreachable +31 -0
- data/_patches-20160112/new-boxfile +288 -0
- data/_patches-20160112/parallelization-maybe +198 -0
- data/_patches-20160112/read-state +23 -0
- data/_patches-20160112/refactor-to-use-public_address-cap +25 -0
- data/_patches-20160112/series +60 -0
- data/_patches-20160112/status +12 -0
- data/_patches-20160112/test-move-env-data +231 -0
- data/_patches-20160112/test-vagrantfile-vm1 +167 -0
- data/_patches-20160112/the_version_in_0.1.13.pre1 +598 -0
- data/_patches-20160112/vagrant-spec-mock-api +137 -0
- data/_patches-20160112/vagrant-vmware-plugin +233 -0
- data/_patches-20160112/vagrantfile +403 -0
- data/_patches-20160112/vagrantfile-for-acceptance-tests +29 -0
- data/_patches-20160112/vagrantfile-for-nick +95 -0
- data/_patches-20160112/vagrantfiles-to-forget-what-they-are-for +134 -0
- data/_patches-20160112/vm-vanished +42 -0
- data/_patches-20160112a/01 +148 -0
- data/_patches-20160112a/2 +239 -0
- data/_patches-20160112a/COMPLETED-ABOVE-THIS-LINE +4 -0
- data/_patches-20160112a/COMPLETED-BELOW-THIS-LINE +4 -0
- data/_patches-20160112a/CR-ABOVE-THIS-LINE +4 -0
- data/_patches-20160112a/CR-BELOW-THIS-LINE +4 -0
- data/_patches-20160112a/WIP-ABOVE-THIS-LINE +4 -0
- data/_patches-20160112a/WIP-BELOW-THIS-LINE +4 -0
- data/_patches-20160112a/acceptance-test-runner +29 -0
- data/_patches-20160112a/ansible-1 +92 -0
- data/_patches-20160112a/cache-api-client-in-up +40 -0
- data/_patches-20160112a/dead-code-in-actions +44 -0
- data/_patches-20160112a/debug-changes +42 -0
- data/_patches-20160112a/demo-rails-app +1276 -0
- data/_patches-20160112a/eng-10166-halt-spec +40 -0
- data/_patches-20160112a/eng-10256-ubuntu-testing +88 -0
- data/_patches-20160112a/eng-10269-test-stuff +87 -0
- data/_patches-20160112a/eng-10269-wtf +119 -0
- data/_patches-20160112a/eng-10369 +143 -0
- data/_patches-20160112a/eng-10369-tmp +60 -0
- data/_patches-20160112a/eng-10919 +56 -0
- data/_patches-20160112a/eng-11177-fix-actions-requires +44 -0
- data/_patches-20160112a/eng-11442 +4 -0
- data/_patches-20160112a/eng-11616 +403 -0
- data/_patches-20160112a/eng-11616-2 +67 -0
- data/_patches-20160112a/eng-11616-actual +184 -0
- data/_patches-20160112a/eng-11625a +4 -0
- data/_patches-20160112a/eng-11711 +85 -0
- data/_patches-20160112a/eng-12232-command-spec +236 -0
- data/_patches-20160112a/eng-12235 +83 -0
- data/_patches-20160112a/eng-12235-override-refactor +140 -0
- data/_patches-20160112a/eng-12240 +103 -0
- data/_patches-20160112a/eng-12249 +40 -0
- data/_patches-20160112a/eng-12301 +50 -0
- data/_patches-20160112a/eng-12843 +95 -0
- data/_patches-20160112a/env-source +112 -0
- data/_patches-20160112a/frickin-vagrant-spec +163 -0
- data/_patches-20160112a/gem-pre-version +14 -0
- data/_patches-20160112a/gems-old +9 -0
- data/_patches-20160112a/googles-specs +713 -0
- data/_patches-20160112a/local-configs-ignore +61 -0
- data/_patches-20160112a/misc +79 -0
- data/_patches-20160112a/network-unreachable +31 -0
- data/_patches-20160112a/new-boxfile +288 -0
- data/_patches-20160112a/parallelization-maybe +198 -0
- data/_patches-20160112a/read-state +23 -0
- data/_patches-20160112a/refactor-to-use-public_address-cap +25 -0
- data/_patches-20160112a/series +58 -0
- data/_patches-20160112a/status +14 -0
- data/_patches-20160112a/test-move-env-data +231 -0
- data/_patches-20160112a/test-vagrantfile-vm1 +167 -0
- data/_patches-20160112a/the_version_in_0.1.13.pre1 +612 -0
- data/_patches-20160112a/then-copy-the-newer-files +632 -0
- data/_patches-20160112a/vagrant-spec-mock-api +137 -0
- data/_patches-20160112a/vagrant-vmware-plugin +233 -0
- data/_patches-20160112a/vagrantfile +403 -0
- data/_patches-20160112a/vagrantfile-for-acceptance-tests +29 -0
- data/_patches-20160112a/vagrantfile-for-nick +95 -0
- data/_patches-20160112a/vagrantfiles-to-forget-what-they-are-for +134 -0
- data/_patches-20160112a/vm-vanished +42 -0
- data/_patches-20160113/COMPLETED-ABOVE-THIS-LINE +4 -0
- data/_patches-20160113/COMPLETED-BELOW-THIS-LINE +4 -0
- data/_patches-20160113/CR-ABOVE-THIS-LINE +4 -0
- data/_patches-20160113/CR-BELOW-THIS-LINE +4 -0
- data/_patches-20160113/WIP-ABOVE-THIS-LINE +4 -0
- data/_patches-20160113/WIP-BELOW-THIS-LINE +4 -0
- data/_patches-20160113/acceptance-test-runner +29 -0
- data/_patches-20160113/ansible-1 +92 -0
- data/_patches-20160113/cache-api-client-in-up +40 -0
- data/_patches-20160113/dead-code-in-actions +44 -0
- data/_patches-20160113/debug-changes +55 -0
- data/_patches-20160113/demo-rails-app +1276 -0
- data/_patches-20160113/eng-10166-halt-spec +40 -0
- data/_patches-20160113/eng-10256 +543 -0
- data/_patches-20160113/eng-10256-ubuntu-testing +88 -0
- data/_patches-20160113/eng-10269-test-stuff +87 -0
- data/_patches-20160113/eng-10269-wtf +119 -0
- data/_patches-20160113/eng-10369 +143 -0
- data/_patches-20160113/eng-10369-tmp +60 -0
- data/_patches-20160113/eng-10919 +56 -0
- data/_patches-20160113/eng-11177-fix-actions-requires +44 -0
- data/_patches-20160113/eng-11442 +4 -0
- data/_patches-20160113/eng-11616 +403 -0
- data/_patches-20160113/eng-11616-2 +67 -0
- data/_patches-20160113/eng-11616-actual +184 -0
- data/_patches-20160113/eng-11625a +4 -0
- data/_patches-20160113/eng-11711 +85 -0
- data/_patches-20160113/eng-12232-command-spec +236 -0
- data/_patches-20160113/eng-12235 +83 -0
- data/_patches-20160113/eng-12235-override-refactor +140 -0
- data/_patches-20160113/eng-12240 +103 -0
- data/_patches-20160113/eng-12249 +40 -0
- data/_patches-20160113/eng-12301 +50 -0
- data/_patches-20160113/eng-12720 +47 -0
- data/_patches-20160113/eng-12843 +95 -0
- data/_patches-20160113/env-source +112 -0
- data/_patches-20160113/frickin-vagrant-spec +163 -0
- data/_patches-20160113/gem-pre-version +14 -0
- data/_patches-20160113/gems-old +9 -0
- data/_patches-20160113/googles-specs +713 -0
- data/_patches-20160113/local-configs-ignore +61 -0
- data/_patches-20160113/misc +79 -0
- data/_patches-20160113/network-unreachable +31 -0
- data/_patches-20160113/new-boxfile +288 -0
- data/_patches-20160113/parallelization-maybe +198 -0
- data/_patches-20160113/read-state +23 -0
- data/_patches-20160113/refactor-to-use-public_address-cap +25 -0
- data/_patches-20160113/series +56 -0
- data/_patches-20160113/status +14 -0
- data/_patches-20160113/test-move-env-data +231 -0
- data/_patches-20160113/test-vagrantfile-vm1 +167 -0
- data/_patches-20160113/vagrant-spec-mock-api +137 -0
- data/_patches-20160113/vagrant-vmware-plugin +233 -0
- data/_patches-20160113/vagrantfile +403 -0
- data/_patches-20160113/vagrantfile-for-acceptance-tests +29 -0
- data/_patches-20160113/vagrantfile-for-nick +95 -0
- data/_patches-20160113/vagrantfiles-to-forget-what-they-are-for +134 -0
- data/_patches-20160113/vm-vanished +42 -0
- data/_patches-20160118/COMPLETED-ABOVE-THIS-LINE +4 -0
- data/_patches-20160118/COMPLETED-BELOW-THIS-LINE +4 -0
- data/_patches-20160118/CR-ABOVE-THIS-LINE +4 -0
- data/_patches-20160118/CR-BELOW-THIS-LINE +4 -0
- data/_patches-20160118/WIP-ABOVE-THIS-LINE +4 -0
- data/_patches-20160118/WIP-BELOW-THIS-LINE +4 -0
- data/_patches-20160118/acceptance-test-runner +29 -0
- data/_patches-20160118/ansible-1 +92 -0
- data/_patches-20160118/cache-api-client-in-up +40 -0
- data/_patches-20160118/dead-code-in-actions +44 -0
- data/_patches-20160118/debug-changes +55 -0
- data/_patches-20160118/demo-rails-app +1276 -0
- data/_patches-20160118/eng-10166-halt-spec +40 -0
- data/_patches-20160118/eng-10256 +554 -0
- data/_patches-20160118/eng-10256-cr +314 -0
- data/_patches-20160118/eng-10256-ubuntu-testing +88 -0
- data/_patches-20160118/eng-10269-test-stuff +87 -0
- data/_patches-20160118/eng-10269-wtf +119 -0
- data/_patches-20160118/eng-10369 +143 -0
- data/_patches-20160118/eng-10369-tmp +60 -0
- data/_patches-20160118/eng-10919 +56 -0
- data/_patches-20160118/eng-11177-fix-actions-requires +44 -0
- data/_patches-20160118/eng-11442 +4 -0
- data/_patches-20160118/eng-11616 +403 -0
- data/_patches-20160118/eng-11616-2 +67 -0
- data/_patches-20160118/eng-11616-actual +184 -0
- data/_patches-20160118/eng-11625a +4 -0
- data/_patches-20160118/eng-11711 +85 -0
- data/_patches-20160118/eng-12232-command-spec +236 -0
- data/_patches-20160118/eng-12235 +83 -0
- data/_patches-20160118/eng-12235-override-refactor +140 -0
- data/_patches-20160118/eng-12240 +103 -0
- data/_patches-20160118/eng-12249 +40 -0
- data/_patches-20160118/eng-12301 +50 -0
- data/_patches-20160118/eng-12720 +74 -0
- data/_patches-20160118/eng-12843 +95 -0
- data/_patches-20160118/eng-13040 +291 -0
- data/_patches-20160118/env-source +112 -0
- data/_patches-20160118/frickin-vagrant-spec +163 -0
- data/_patches-20160118/gem-pre-version +14 -0
- data/_patches-20160118/gems-old +9 -0
- data/_patches-20160118/googles-specs +713 -0
- data/_patches-20160118/local-configs-ignore +61 -0
- data/_patches-20160118/misc +79 -0
- data/_patches-20160118/network-unreachable +31 -0
- data/_patches-20160118/new-boxfile +288 -0
- data/_patches-20160118/parallelization-maybe +198 -0
- data/_patches-20160118/port-forwarding-processes +87 -0
- data/_patches-20160118/read-state +23 -0
- data/_patches-20160118/refactor-to-use-public_address-cap +25 -0
- data/_patches-20160118/series +59 -0
- data/_patches-20160118/status +13 -0
- data/_patches-20160118/test-move-env-data +231 -0
- data/_patches-20160118/test-vagrantfile-vm1 +167 -0
- data/_patches-20160118/vagrant-spec-mock-api +137 -0
- data/_patches-20160118/vagrant-vmware-plugin +233 -0
- data/_patches-20160118/vagrantfile +403 -0
- data/_patches-20160118/vagrantfile-for-acceptance-tests +29 -0
- data/_patches-20160118/vagrantfile-for-nick +95 -0
- data/_patches-20160118/vagrantfiles-to-forget-what-they-are-for +134 -0
- data/_patches-20160118/vm-vanished +42 -0
- data/_patches-20160118a/COMPLETED-ABOVE-THIS-LINE +4 -0
- data/_patches-20160118a/COMPLETED-BELOW-THIS-LINE +4 -0
- data/_patches-20160118a/CR-ABOVE-THIS-LINE +4 -0
- data/_patches-20160118a/CR-BELOW-THIS-LINE +4 -0
- data/_patches-20160118a/WIP-ABOVE-THIS-LINE +4 -0
- data/_patches-20160118a/WIP-BELOW-THIS-LINE +4 -0
- data/_patches-20160118a/acceptance-test-runner +29 -0
- data/_patches-20160118a/ansible-1 +92 -0
- data/_patches-20160118a/bar +189 -0
- data/_patches-20160118a/cache-api-client-in-up +40 -0
- data/_patches-20160118a/dead-code-in-actions +44 -0
- data/_patches-20160118a/debug-changes +55 -0
- data/_patches-20160118a/demo-rails-app +1276 -0
- data/_patches-20160118a/eng-10166-halt-spec +40 -0
- data/_patches-20160118a/eng-10256 +554 -0
- data/_patches-20160118a/eng-10256-cr +314 -0
- data/_patches-20160118a/eng-10256-ubuntu-testing +88 -0
- data/_patches-20160118a/eng-10269-test-stuff +87 -0
- data/_patches-20160118a/eng-10269-wtf +119 -0
- data/_patches-20160118a/eng-10369 +143 -0
- data/_patches-20160118a/eng-10369-tmp +60 -0
- data/_patches-20160118a/eng-10919 +56 -0
- data/_patches-20160118a/eng-11177-fix-actions-requires +44 -0
- data/_patches-20160118a/eng-11442 +4 -0
- data/_patches-20160118a/eng-11616 +403 -0
- data/_patches-20160118a/eng-11616-2 +67 -0
- data/_patches-20160118a/eng-11616-actual +184 -0
- data/_patches-20160118a/eng-11625a +4 -0
- data/_patches-20160118a/eng-11711 +85 -0
- data/_patches-20160118a/eng-12232-command-spec +236 -0
- data/_patches-20160118a/eng-12235 +83 -0
- data/_patches-20160118a/eng-12235-override-refactor +140 -0
- data/_patches-20160118a/eng-12240 +103 -0
- data/_patches-20160118a/eng-12249 +40 -0
- data/_patches-20160118a/eng-12301 +50 -0
- data/_patches-20160118a/eng-12720 +74 -0
- data/_patches-20160118a/eng-12843 +95 -0
- data/_patches-20160118a/eng-13040 +291 -0
- data/_patches-20160118a/env-source +112 -0
- data/_patches-20160118a/foo +169 -0
- data/_patches-20160118a/frickin-vagrant-spec +163 -0
- data/_patches-20160118a/gem-pre-version +14 -0
- data/_patches-20160118a/gems-old +9 -0
- data/_patches-20160118a/googles-specs +713 -0
- data/_patches-20160118a/guestport-madness +59 -0
- data/_patches-20160118a/local-configs-ignore +61 -0
- data/_patches-20160118a/misc +79 -0
- data/_patches-20160118a/network-unreachable +31 -0
- data/_patches-20160118a/new-boxfile +288 -0
- data/_patches-20160118a/parallelization-maybe +198 -0
- data/_patches-20160118a/port-forwarding-processes +87 -0
- data/_patches-20160118a/read-state +23 -0
- data/_patches-20160118a/refactor-to-use-public_address-cap +25 -0
- data/_patches-20160118a/series +62 -0
- data/_patches-20160118a/status +14 -0
- data/_patches-20160118a/test-move-env-data +231 -0
- data/_patches-20160118a/test-vagrantfile-vm1 +167 -0
- data/_patches-20160118a/vagrant-spec-mock-api +137 -0
- data/_patches-20160118a/vagrant-vmware-plugin +233 -0
- data/_patches-20160118a/vagrantfile +403 -0
- data/_patches-20160118a/vagrantfile-for-acceptance-tests +29 -0
- data/_patches-20160118a/vagrantfile-for-nick +95 -0
- data/_patches-20160118a/vagrantfiles-to-forget-what-they-are-for +134 -0
- data/_patches-20160118a/vm-vanished +42 -0
- data/lib/vagrant-skytap/action/clear_forwarded_ports.rb +19 -0
- data/lib/vagrant-skytap/action/forward_ports.rb +42 -0
- data/lib/vagrant-skytap/action/prepare_forwarded_port_collision_params.rb +37 -0
- data/lib/vagrant-skytap/action.rb +18 -0
- data/lib/vagrant-skytap/api/environment.rb +19 -4
- data/lib/vagrant-skytap/api/vm.rb +10 -6
- data/lib/vagrant-skytap/command/up.rb +7 -1
- data/lib/vagrant-skytap/errors.rb +4 -0
- data/lib/vagrant-skytap/hosts/bsd/cap/ssh_tunnel.rb +15 -0
- data/lib/vagrant-skytap/hosts/common/cap/ssh_tunnel.rb +183 -0
- data/lib/vagrant-skytap/hosts/linux/cap/ssh_tunnel.rb +15 -0
- data/lib/vagrant-skytap/hosts/windows/cap/ssh_tunnel.rb +27 -0
- data/lib/vagrant-skytap/model/forwarded_port.rb +78 -0
- data/lib/vagrant-skytap/plugin.rb +15 -0
- data/lib/vagrant-skytap/util/compile_forwarded_ports.rb +35 -0
- data/lib/vagrant-skytap/version.rb +1 -1
- data/locales/en.yml +3 -0
- data/spec/unit/environment_spec.rb +14 -2
- data/spec/unit/forwarded_port_spec.rb +45 -0
- data/spec/unit/hosts/common/cap/ssh_tunnel_spec.rb +180 -0
- data/spec/unit/prepare_collision_params_spec.rb +57 -0
- data/spec/unit/support/forwarded_ports/machines/vm1/skytap/id +1 -0
- data/spec/unit/support/forwarded_ports/machines/vm1/skytap/private_key +4 -0
- data/spec/unit/support/forwarded_ports/machines/vm1/skytap/tcp9000_tcp_9000_80.pid +1 -0
- data/spec/unit/support/forwarded_ports/machines/vm1/skytap/tcp9001_tcp_9001_81.pid +1 -0
- data/spec/unit/support/forwarded_ports/machines/vm1/virtualbox/id +1 -0
- data/spec/unit/support/forwarded_ports/machines/vm2/skytap/id +1 -0
- data/spec/unit/support/forwarded_ports/machines/vm2/skytap/tcp8080_tcp_8080_80.pid +1 -0
- data/spec/unit/support/forwarded_ports/machines/vm3/virtualbox/id +1 -0
- data/spec/unit/support/forwarded_ports/machines/vm4/skytap/id +1 -0
- data/spec/unit/support/forwarded_ports/machines/vm4/skytap/tcp8888_tcp_8888_80.pid +1 -0
- metadata +330 -2
@@ -0,0 +1,598 @@
|
|
1
|
+
# HG changeset patch
|
2
|
+
# Parent 9277259db23ef4e33b90e83fbd16f6624145b338
|
3
|
+
diff -r 9277259db23e -r 1c49fba8823c lib/vagrant-skytap/action.rb
|
4
|
+
--- a/lib/vagrant-skytap/action.rb Fri Jan 08 11:52:01 2016 -0800
|
5
|
+
+++ b/lib/vagrant-skytap/action.rb Tue Jan 12 18:20:38 2016 -0800
|
6
|
+
@@ -16,6 +16,7 @@
|
7
|
+
b1.use MessageNotCreated
|
8
|
+
else
|
9
|
+
b1.use StopVm
|
10
|
+
+ b1.use ClearForwardedPorts
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
@@ -31,6 +32,7 @@
|
15
|
+
b1.use MessageNotCreated
|
16
|
+
else
|
17
|
+
b1.use SuspendVm
|
18
|
+
+ b1.use ClearForwardedPorts
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
@@ -65,6 +67,7 @@
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
+ b.use ClearForwardedPorts
|
27
|
+
b.use PrepareNFSValidIds
|
28
|
+
b.use SyncedFolderCleanup
|
29
|
+
end
|
30
|
+
@@ -251,6 +254,7 @@
|
31
|
+
end
|
32
|
+
end
|
33
|
+
b.use WaitForCommunicator
|
34
|
+
+ b.use action_forward_ports
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
@@ -281,15 +285,29 @@
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
+ def self.action_forward_ports
|
43
|
+
+ Vagrant::Action::Builder.new.tap do |b|
|
44
|
+
+ b.use ClearForwardedPorts
|
45
|
+
+ b.use ReadSSHInfo
|
46
|
+
+ b.use Message, "forwarding ports"
|
47
|
+
+ #b.use EnvSet, port_collision_repair: true # does it just work?
|
48
|
+
+ #b.use PrepareForwardedPortCollisionParams
|
49
|
+
+ #b.use HandleForwardedPortCollisions
|
50
|
+
+ b.use ForwardPorts
|
51
|
+
+ end
|
52
|
+
+ end
|
53
|
+
+
|
54
|
+
# The autoload farm
|
55
|
+
action_root = Pathname.new(File.expand_path("../action", __FILE__))
|
56
|
+
autoload :StoreExtraData, action_root.join("store_extra_data")
|
57
|
+
autoload :AddVmToEnvironment, action_root.join("add_vm_to_environment")
|
58
|
+
+ autoload :ClearForwardedPorts, action_root.join("clear_forwarded_ports")
|
59
|
+
autoload :CreateEnvironment, action_root.join("create_environment")
|
60
|
+
autoload :DeleteEnvironment, action_root.join("delete_environment")
|
61
|
+
autoload :DeleteVm, action_root.join("delete_vm")
|
62
|
+
autoload :ExistenceCheck, action_root.join("existence_check")
|
63
|
+
autoload :FetchEnvironment, action_root.join("fetch_environment")
|
64
|
+
+ autoload :ForwardPorts, action_root.join("forward_ports")
|
65
|
+
autoload :InitializeAPIClient, action_root.join("initialize_api_client")
|
66
|
+
autoload :InitialState, action_root.join("initial_state")
|
67
|
+
autoload :IsParallelized, action_root.join("is_parallelized")
|
68
|
+
@@ -302,6 +320,7 @@
|
69
|
+
autoload :MessageEnvironmentUrl, action_root.join("message_environment_url")
|
70
|
+
autoload :MessageResuming, action_root.join("message_resuming")
|
71
|
+
autoload :MessageWillNotDestroy, action_root.join("message_will_not_destroy")
|
72
|
+
+ autoload :PrepareForwardedPortCollisionParams, action_root.join("prepare_forwarded_port_collision_params")
|
73
|
+
autoload :PrepareNFSSettings, action_root.join("prepare_nfs_settings")
|
74
|
+
autoload :PrepareNFSValidIds, action_root.join("prepare_nfs_valid_ids")
|
75
|
+
autoload :ReadSSHInfo, action_root.join("read_ssh_info")
|
76
|
+
diff -r 9277259db23e -r 1c49fba8823c lib/vagrant-skytap/action/clear_forwarded_ports.rb
|
77
|
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
78
|
+
+++ b/lib/vagrant-skytap/action/clear_forwarded_ports.rb Tue Jan 12 18:20:38 2016 -0800
|
79
|
+
@@ -0,0 +1,39 @@
|
80
|
+
+#require 'byebug'
|
81
|
+
+require "vagrant/util/safe_chdir"
|
82
|
+
+
|
83
|
+
+
|
84
|
+
+module VagrantPlugins
|
85
|
+
+ module Skytap
|
86
|
+
+ module Action
|
87
|
+
+ class ClearForwardedPorts
|
88
|
+
+ def initialize(app, env)
|
89
|
+
+ @app = app
|
90
|
+
+ @env = env
|
91
|
+
+ end
|
92
|
+
+
|
93
|
+
+ def call(env)
|
94
|
+
+ if pidfiles = read_pidfiles.presence
|
95
|
+
+ env[:ui].info I18n.t("vagrant.actions.vm.clear_forward_ports.deleting")
|
96
|
+
+ kill_tunnels(pidfiles)
|
97
|
+
+ end
|
98
|
+
+
|
99
|
+
+ @app.call(env)
|
100
|
+
+ end
|
101
|
+
+
|
102
|
+
+ def read_pidfiles
|
103
|
+
+ pidfiles = []
|
104
|
+
+ Vagrant::Util::SafeChdir.safe_chdir(@env[:machine].data_dir) do
|
105
|
+
+ pidfiles = Dir.glob("*.pid")
|
106
|
+
+ end
|
107
|
+
+ pidfiles
|
108
|
+
+ end
|
109
|
+
+
|
110
|
+
+ def kill_tunnels(pidfiles)
|
111
|
+
+ pidfiles.each do |pidfile|
|
112
|
+
+ @env[:host].capability(:kill_ssh_tunnel, pidfile, @env)
|
113
|
+
+ end
|
114
|
+
+ end
|
115
|
+
+ end
|
116
|
+
+ end
|
117
|
+
+ end
|
118
|
+
+end
|
119
|
+
diff -r 9277259db23e -r 1c49fba8823c lib/vagrant-skytap/action/forward_ports.rb
|
120
|
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
121
|
+
+++ b/lib/vagrant-skytap/action/forward_ports.rb Tue Jan 12 18:20:38 2016 -0800
|
122
|
+
@@ -0,0 +1,51 @@
|
123
|
+
+require 'vagrant-skytap/util/compile_forwarded_ports'
|
124
|
+
+#require 'byebug'
|
125
|
+
+
|
126
|
+
+module VagrantPlugins
|
127
|
+
+ module Skytap
|
128
|
+
+ module Action
|
129
|
+
+ class ForwardPorts
|
130
|
+
+ include Util::CompileForwardedPorts
|
131
|
+
+
|
132
|
+
+ def initialize(app, env)
|
133
|
+
+ @app = app
|
134
|
+
+ end
|
135
|
+
+
|
136
|
+
+ #--------------------------------------------------------------
|
137
|
+
+ # Execution
|
138
|
+
+ #--------------------------------------------------------------
|
139
|
+
+ def call(env)
|
140
|
+
+ @env = env
|
141
|
+
+
|
142
|
+
+ # Get the ports we're forwarding
|
143
|
+
+ env[:forwarded_ports] ||= compile_forwarded_ports(env[:machine].config)
|
144
|
+
+
|
145
|
+
+ # Warn if we're port forwarding to any privileged ports...
|
146
|
+
+ env[:forwarded_ports].each do |fp|
|
147
|
+
+ if fp.host_port <= 1024
|
148
|
+
+ env[:ui].warn I18n.t("vagrant.actions.vm.forward_ports.privileged_ports")
|
149
|
+
+ break
|
150
|
+
+ end
|
151
|
+
+ end
|
152
|
+
+
|
153
|
+
+ env[:ui].output(I18n.t("vagrant.actions.vm.forward_ports.forwarding"))
|
154
|
+
+ forward_ports
|
155
|
+
+
|
156
|
+
+ @app.call(env)
|
157
|
+
+ end
|
158
|
+
+
|
159
|
+
+ def forward_ports
|
160
|
+
+ @env[:forwarded_ports].each do |fp|
|
161
|
+
+ unless fp.guest_port == 22 && fp.host_port == 2222
|
162
|
+
+ @env[:ui].detail(I18n.t("vagrant.actions.vm.forward_ports.forwarding_entry",
|
163
|
+
+ adapter: fp.adapter,
|
164
|
+
+ guest_port: fp.guest_port,
|
165
|
+
+ host_port: fp.host_port))
|
166
|
+
+ @env[:host].capability(:start_ssh_tunnel, fp, @env)
|
167
|
+
+ end
|
168
|
+
+ end
|
169
|
+
+ end
|
170
|
+
+ end
|
171
|
+
+ end
|
172
|
+
+ end
|
173
|
+
+end
|
174
|
+
diff -r 9277259db23e -r 1c49fba8823c lib/vagrant-skytap/action/prepare_forwarded_port_collision_params.rb
|
175
|
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
176
|
+
+++ b/lib/vagrant-skytap/action/prepare_forwarded_port_collision_params.rb Tue Jan 12 18:20:38 2016 -0800
|
177
|
+
@@ -0,0 +1,45 @@
|
178
|
+
+module VagrantPlugins
|
179
|
+
+ module Skytap
|
180
|
+
+ module Action
|
181
|
+
+ class PrepareForwardedPortCollisionParams
|
182
|
+
+ def initialize(app, env)
|
183
|
+
+ @app = app
|
184
|
+
+ end
|
185
|
+
+
|
186
|
+
+ def call(env)
|
187
|
+
+ # Get the forwarded ports used by other virtual machines and
|
188
|
+
+ # consider those in use as well.
|
189
|
+
+ env[:port_collision_extra_in_use] = read_used_ports
|
190
|
+
+
|
191
|
+
+ # Build the remap for any existing collision detections
|
192
|
+
+ remap = {}
|
193
|
+
+ env[:port_collision_remap] = remap
|
194
|
+
+ read_forwarded_ports.each do |_nic, name, hostport, _guestport|
|
195
|
+
+ env[:machine].config.vm.networks.each do |type, options|
|
196
|
+
+ next if type != :forwarded_port
|
197
|
+
+
|
198
|
+
+ # If the ID matches the name of the forwarded port, then
|
199
|
+
+ # remap.
|
200
|
+
+ if options[:id] == name
|
201
|
+
+ remap[options[:host]] = hostport
|
202
|
+
+ break
|
203
|
+
+ end
|
204
|
+
+ end
|
205
|
+
+ end
|
206
|
+
+
|
207
|
+
+ @app.call(env)
|
208
|
+
+ end
|
209
|
+
+
|
210
|
+
+ def read_used_ports
|
211
|
+
+ #env[:machine].provider.driver.read_used_ports
|
212
|
+
+ []
|
213
|
+
+ end
|
214
|
+
+
|
215
|
+
+ def read_forwarded_ports
|
216
|
+
+ #env[:machine].provider.driver.read_forwarded_ports
|
217
|
+
+ []
|
218
|
+
+ end
|
219
|
+
+ end
|
220
|
+
+ end
|
221
|
+
+ end
|
222
|
+
+end
|
223
|
+
diff -r 9277259db23e -r 1c49fba8823c lib/vagrant-skytap/hosts/bsd/cap/ssh_tunnel.rb
|
224
|
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
225
|
+
+++ b/lib/vagrant-skytap/hosts/bsd/cap/ssh_tunnel.rb Tue Jan 12 18:20:38 2016 -0800
|
226
|
+
@@ -0,0 +1,112 @@
|
227
|
+
+require "pathname"
|
228
|
+
+require "tmpdir"
|
229
|
+
+require 'childprocess'
|
230
|
+
+require "vagrant/util/subprocess"
|
231
|
+
+#require 'byebug'
|
232
|
+
+#require 'ap'
|
233
|
+
+require 'log4r'
|
234
|
+
+require "vagrant/util/safe_chdir"
|
235
|
+
+
|
236
|
+
+module VagrantPlugins
|
237
|
+
+ module Skytap
|
238
|
+
+ module HostBSD
|
239
|
+
+ module Cap
|
240
|
+
+ class SSHTunnel
|
241
|
+
+ def self.start_ssh_tunnel(env, fp, env_hash)
|
242
|
+
+ logger = Log4r::Logger.new("vagrant::hosts::bsd")
|
243
|
+
+ port = {
|
244
|
+
+ adapter: fp.adapter,
|
245
|
+
+ guestip: fp.guest_ip,
|
246
|
+
+ guestport: fp.guest_port,
|
247
|
+
+ hostip: fp.host_ip,
|
248
|
+
+ hostport: fp.host_port,
|
249
|
+
+ name: fp.id,
|
250
|
+
+ protocol: fp.protocol
|
251
|
+
+ }
|
252
|
+
+
|
253
|
+
+ pidfile = pidfile_name(port, env_hash)
|
254
|
+
+ pid = read_pid(pidfile)
|
255
|
+
+ if pid && autossh_pid?(pid)
|
256
|
+
+ logger.info("An autossh process already exists with pid #{pid}.")
|
257
|
+
+ else
|
258
|
+
+ args = autossh_args(port, pidfile, env_hash)
|
259
|
+
+ Vagrant::Util::Subprocess.execute("autossh", *args)
|
260
|
+
+ end
|
261
|
+
+ end
|
262
|
+
+
|
263
|
+
+ def self.kill_ssh_tunnel(env, pidfile, env_hash)
|
264
|
+
+ logger = Log4r::Logger.new("vagrant::hosts::bsd")
|
265
|
+
+ pidfile = File.join(env_hash[:machine].data_dir, pidfile)
|
266
|
+
+ pid = read_pid(pidfile)
|
267
|
+
+ if pid && autossh_pid?(pid)
|
268
|
+
+ Vagrant::Util::Subprocess.execute("kill", pid.to_s)
|
269
|
+
+ else
|
270
|
+
+ logger.info("Cleaning up stale autossh pidfile #{pidfile}.")
|
271
|
+
+ Vagrant::Util::Subprocess.execute("rm", pidfile)
|
272
|
+
+ end
|
273
|
+
+ end
|
274
|
+
+
|
275
|
+
+ private
|
276
|
+
+
|
277
|
+
+ def self.pidfile_name(port, env_hash)
|
278
|
+
+ tunnel_name = [port[:hostip], port[:name]].compact.join('_')
|
279
|
+
+ File.join(env_hash[:machine].data_dir, "#{tunnel_name}.pid")
|
280
|
+
+ end
|
281
|
+
+
|
282
|
+
+ def self.read_pid(pidfile)
|
283
|
+
+ File.read(pidfile).presence.try(:to_i) if File.exist?(pidfile)
|
284
|
+
+ end
|
285
|
+
+
|
286
|
+
+ # Checks that the pid is actually an autossh process (and not
|
287
|
+
+ # something else using a recycled pid).
|
288
|
+
+ def self.autossh_pid?(pid)
|
289
|
+
+ # get_comm_for_pid(pid) == 'autossh'
|
290
|
+
+ true
|
291
|
+
+ end
|
292
|
+
+
|
293
|
+
+ # Get the command, minus any arguments, for the given
|
294
|
+
+ # pid. I don't expect this to be compatible cross-platform yet...
|
295
|
+
+ # This could be complicated cross-platform, and Sys::ProcTable
|
296
|
+
+ # could likewise be complicated cross-platform ...
|
297
|
+
+ def self.get_comm_for_pid(pid)
|
298
|
+
+ result = Vagrant::Util::Subprocess.execute("ps", "-p", pid.to_s, "-o", "comm")
|
299
|
+
+ result.stdout.split("\n").last
|
300
|
+
+ end
|
301
|
+
+
|
302
|
+
+ def self.autossh_args(port, pidfile, env_hash)
|
303
|
+
+ ssh_info = env_hash[:machine_ssh_info]
|
304
|
+
+ ssh_options = {
|
305
|
+
+ "ServerAliveInterval" => 10,
|
306
|
+
+ "ServerAliveCountMax" => 3,
|
307
|
+
+ "StrictHostKeyChecking" => "no",
|
308
|
+
+ }
|
309
|
+
+ environment_variables = {
|
310
|
+
+ env: {
|
311
|
+
+ "AUTOSSH_PIDFILE" => pidfile,
|
312
|
+
+ "AUTOSSH_PORT" => 0, # turns off monitoring
|
313
|
+
+ #"AUTOSSH_LOGFILE" => "./autossh.log",
|
314
|
+
+ }
|
315
|
+
+ }
|
316
|
+
+ forward_string = [
|
317
|
+
+ port[:hostport],
|
318
|
+
+ "localhost",
|
319
|
+
+ port[:guestport]
|
320
|
+
+ ].join(':')
|
321
|
+
+
|
322
|
+
+ autossh_args = []
|
323
|
+
+ autossh_args << "-q"
|
324
|
+
+ autossh_args << "-N"
|
325
|
+
+ autossh_args << "-f"
|
326
|
+
+ autossh_args << "-i" << env_hash[:machine].data_dir.join("private_key").to_s
|
327
|
+
+ autossh_args << "-L" << forward_string
|
328
|
+
+ ssh_options.each do |k, v|
|
329
|
+
+ autossh_args << "-o" << "#{k}=#{v}"
|
330
|
+
+ end
|
331
|
+
+ autossh_args << "#{ssh_info[:username]}@#{ssh_info[:host]}"
|
332
|
+
+ autossh_args << environment_variables
|
333
|
+
+ end
|
334
|
+
+ end
|
335
|
+
+ end
|
336
|
+
+ end
|
337
|
+
+ end
|
338
|
+
+end
|
339
|
+
diff -r 9277259db23e -r 1c49fba8823c lib/vagrant-skytap/hosts/linux/cap/ssh_tunnel.rb
|
340
|
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
341
|
+
+++ b/lib/vagrant-skytap/hosts/linux/cap/ssh_tunnel.rb Tue Jan 12 18:20:38 2016 -0800
|
342
|
+
@@ -0,0 +1,112 @@
|
343
|
+
+require "pathname"
|
344
|
+
+require "tmpdir"
|
345
|
+
+require 'childprocess'
|
346
|
+
+require "vagrant/util/subprocess"
|
347
|
+
+#require 'byebug'
|
348
|
+
+#require 'ap'
|
349
|
+
+require 'log4r'
|
350
|
+
+require "vagrant/util/safe_chdir"
|
351
|
+
+
|
352
|
+
+module VagrantPlugins
|
353
|
+
+ module Skytap
|
354
|
+
+ module HostLinux
|
355
|
+
+ module Cap
|
356
|
+
+ class SSHTunnel
|
357
|
+
+ def self.start_ssh_tunnel(env, fp, env_hash)
|
358
|
+
+ logger = Log4r::Logger.new("vagrant::hosts::bsd")
|
359
|
+
+ port = {
|
360
|
+
+ adapter: fp.adapter,
|
361
|
+
+ guestip: fp.guest_ip,
|
362
|
+
+ guestport: fp.guest_port,
|
363
|
+
+ hostip: fp.host_ip,
|
364
|
+
+ hostport: fp.host_port,
|
365
|
+
+ name: fp.id,
|
366
|
+
+ protocol: fp.protocol
|
367
|
+
+ }
|
368
|
+
+
|
369
|
+
+ pidfile = pidfile_name(port, env_hash)
|
370
|
+
+ pid = read_pid(pidfile)
|
371
|
+
+ if pid && autossh_pid?(pid)
|
372
|
+
+ logger.info("An autossh process already exists with pid #{pid}.")
|
373
|
+
+ else
|
374
|
+
+ args = autossh_args(port, pidfile, env_hash)
|
375
|
+
+ Vagrant::Util::Subprocess.execute("autossh", *args)
|
376
|
+
+ end
|
377
|
+
+ end
|
378
|
+
+
|
379
|
+
+ def self.kill_ssh_tunnel(env, pidfile, env_hash)
|
380
|
+
+ logger = Log4r::Logger.new("vagrant::hosts::bsd")
|
381
|
+
+ pidfile = File.join(env_hash[:machine].data_dir, pidfile)
|
382
|
+
+ pid = read_pid(pidfile)
|
383
|
+
+ if pid && autossh_pid?(pid)
|
384
|
+
+ Vagrant::Util::Subprocess.execute("kill", pid.to_s)
|
385
|
+
+ else
|
386
|
+
+ logger.info("Cleaning up stale autossh pidfile #{pidfile}.")
|
387
|
+
+ Vagrant::Util::Subprocess.execute("rm", pidfile)
|
388
|
+
+ end
|
389
|
+
+ end
|
390
|
+
+
|
391
|
+
+ private
|
392
|
+
+
|
393
|
+
+ def self.pidfile_name(port, env_hash)
|
394
|
+
+ tunnel_name = [port[:hostip], port[:name]].compact.join('_')
|
395
|
+
+ File.join(env_hash[:machine].data_dir, "#{tunnel_name}.pid")
|
396
|
+
+ end
|
397
|
+
+
|
398
|
+
+ def self.read_pid(pidfile)
|
399
|
+
+ File.read(pidfile).presence.try(:to_i) if File.exist?(pidfile)
|
400
|
+
+ end
|
401
|
+
+
|
402
|
+
+ # Checks that the pid is actually an autossh process (and not
|
403
|
+
+ # something else using a recycled pid).
|
404
|
+
+ def self.autossh_pid?(pid)
|
405
|
+
+ # get_comm_for_pid(pid) == 'autossh'
|
406
|
+
+ true
|
407
|
+
+ end
|
408
|
+
+
|
409
|
+
+ # Get the command, minus any arguments, for the given
|
410
|
+
+ # pid. I don't expect this to be compatible cross-platform yet...
|
411
|
+
+ # This could be complicated cross-platform, and Sys::ProcTable
|
412
|
+
+ # could likewise be complicated cross-platform ...
|
413
|
+
+ def self.get_comm_for_pid(pid)
|
414
|
+
+ result = Vagrant::Util::Subprocess.execute("ps", "-p", pid.to_s, "-o", "comm")
|
415
|
+
+ result.stdout.split("\n").last
|
416
|
+
+ end
|
417
|
+
+
|
418
|
+
+ def self.autossh_args(port, pidfile, env_hash)
|
419
|
+
+ ssh_info = env_hash[:machine_ssh_info]
|
420
|
+
+ ssh_options = {
|
421
|
+
+ "ServerAliveInterval" => 10,
|
422
|
+
+ "ServerAliveCountMax" => 3,
|
423
|
+
+ "StrictHostKeyChecking" => "no",
|
424
|
+
+ }
|
425
|
+
+ environment_variables = {
|
426
|
+
+ env: {
|
427
|
+
+ "AUTOSSH_PIDFILE" => pidfile,
|
428
|
+
+ "AUTOSSH_PORT" => 0, # turns off monitoring
|
429
|
+
+ #"AUTOSSH_LOGFILE" => "./autossh.log",
|
430
|
+
+ }
|
431
|
+
+ }
|
432
|
+
+ forward_string = [
|
433
|
+
+ port[:hostport],
|
434
|
+
+ "localhost",
|
435
|
+
+ port[:guestport]
|
436
|
+
+ ].join(':')
|
437
|
+
+
|
438
|
+
+ autossh_args = []
|
439
|
+
+ autossh_args << "-q"
|
440
|
+
+ autossh_args << "-N"
|
441
|
+
+ autossh_args << "-f"
|
442
|
+
+ autossh_args << "-i" << env_hash[:machine].data_dir.join("private_key").to_s
|
443
|
+
+ autossh_args << "-L" << forward_string
|
444
|
+
+ ssh_options.each do |k, v|
|
445
|
+
+ autossh_args << "-o" << "#{k}=#{v}"
|
446
|
+
+ end
|
447
|
+
+ autossh_args << "#{ssh_info[:username]}@#{ssh_info[:host]}"
|
448
|
+
+ autossh_args << environment_variables
|
449
|
+
+ end
|
450
|
+
+ end
|
451
|
+
+ end
|
452
|
+
+ end
|
453
|
+
+ end
|
454
|
+
+end
|
455
|
+
diff -r 9277259db23e -r 1c49fba8823c lib/vagrant-skytap/model/forwarded_port.rb
|
456
|
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
457
|
+
+++ b/lib/vagrant-skytap/model/forwarded_port.rb Tue Jan 12 18:20:38 2016 -0800
|
458
|
+
@@ -0,0 +1,70 @@
|
459
|
+
+module VagrantPlugins
|
460
|
+
+ module Skytap
|
461
|
+
+ module Model
|
462
|
+
+ # Represents a single forwarded port for VirtualBox. This has various
|
463
|
+
+ # helpers and defaults for a forwarded port.
|
464
|
+
+ class ForwardedPort
|
465
|
+
+ # The NAT adapter on which to attach the forwarded port.
|
466
|
+
+ #
|
467
|
+
+ # @return [Integer]
|
468
|
+
+ attr_reader :adapter
|
469
|
+
+
|
470
|
+
+ # If true, this port should be auto-corrected.
|
471
|
+
+ #
|
472
|
+
+ # @return [Boolean]
|
473
|
+
+ attr_reader :auto_correct
|
474
|
+
+
|
475
|
+
+ # The unique ID for the forwarded port.
|
476
|
+
+ #
|
477
|
+
+ # @return [String]
|
478
|
+
+ attr_reader :id
|
479
|
+
+
|
480
|
+
+ # The protocol to forward.
|
481
|
+
+ #
|
482
|
+
+ # @return [String]
|
483
|
+
+ attr_reader :protocol
|
484
|
+
+
|
485
|
+
+ # The IP that the forwarded port will connect to on the guest machine.
|
486
|
+
+ #
|
487
|
+
+ # @return [String]
|
488
|
+
+ attr_reader :guest_ip
|
489
|
+
+
|
490
|
+
+ # The port on the guest to be exposed on the host.
|
491
|
+
+ #
|
492
|
+
+ # @return [Integer]
|
493
|
+
+ attr_reader :guest_port
|
494
|
+
+
|
495
|
+
+ # The IP that the forwarded port will bind to on the host machine.
|
496
|
+
+ #
|
497
|
+
+ # @return [String]
|
498
|
+
+ attr_reader :host_ip
|
499
|
+
+
|
500
|
+
+ # The port on the host used to access the port on the guest.
|
501
|
+
+ #
|
502
|
+
+ # @return [Integer]
|
503
|
+
+ attr_reader :host_port
|
504
|
+
+
|
505
|
+
+ def initialize(id, host_port, guest_port, options)
|
506
|
+
+ @id = id
|
507
|
+
+ @guest_port = guest_port
|
508
|
+
+ @host_port = host_port
|
509
|
+
+
|
510
|
+
+ options ||= {}
|
511
|
+
+ @auto_correct = false
|
512
|
+
+ @auto_correct = options[:auto_correct] if options.key?(:auto_correct)
|
513
|
+
+ @adapter = (options[:adapter] || 1).to_i
|
514
|
+
+ @guest_ip = options[:guest_ip] || nil
|
515
|
+
+ @host_ip = options[:host_ip] || nil
|
516
|
+
+ @protocol = options[:protocol] || "tcp"
|
517
|
+
+ end
|
518
|
+
+
|
519
|
+
+ # This corrects the host port and changes it to the given new port.
|
520
|
+
+ #
|
521
|
+
+ # @param [Integer] new_port The new port
|
522
|
+
+ def correct_host_port(new_port)
|
523
|
+
+ @host_port = new_port
|
524
|
+
+ end
|
525
|
+
+ end
|
526
|
+
+ end
|
527
|
+
+ end
|
528
|
+
+end
|
529
|
+
diff -r 9277259db23e -r 1c49fba8823c lib/vagrant-skytap/plugin.rb
|
530
|
+
--- a/lib/vagrant-skytap/plugin.rb Fri Jan 08 11:52:01 2016 -0800
|
531
|
+
+++ b/lib/vagrant-skytap/plugin.rb Tue Jan 12 18:20:38 2016 -0800
|
532
|
+
@@ -49,6 +49,26 @@
|
533
|
+
Cap::PublicAddress
|
534
|
+
end
|
535
|
+
|
536
|
+
+ host_capability("bsd", "start_ssh_tunnel") do
|
537
|
+
+ require_relative "hosts/bsd/cap/ssh_tunnel"
|
538
|
+
+ HostBSD::Cap::SSHTunnel
|
539
|
+
+ end
|
540
|
+
+
|
541
|
+
+ host_capability("bsd", "kill_ssh_tunnel") do
|
542
|
+
+ require_relative "hosts/bsd/cap/ssh_tunnel"
|
543
|
+
+ HostBSD::Cap::SSHTunnel
|
544
|
+
+ end
|
545
|
+
+
|
546
|
+
+ host_capability("linux", "start_ssh_tunnel") do
|
547
|
+
+ require_relative "hosts/linux/cap/ssh_tunnel"
|
548
|
+
+ HostLinux::Cap::SSHTunnel
|
549
|
+
+ end
|
550
|
+
+
|
551
|
+
+ host_capability("linux", "kill_ssh_tunnel") do
|
552
|
+
+ require_relative "hosts/linux/cap/ssh_tunnel"
|
553
|
+
+ HostLinux::Cap::SSHTunnel
|
554
|
+
+ end
|
555
|
+
+
|
556
|
+
# This initializes the internationalization strings.
|
557
|
+
def self.setup_i18n
|
558
|
+
I18n.load_path << File.expand_path("locales/en.yml", Skytap.source_root)
|
559
|
+
diff -r 9277259db23e -r 1c49fba8823c lib/vagrant-skytap/util/compile_forwarded_ports.rb
|
560
|
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
561
|
+
+++ b/lib/vagrant-skytap/util/compile_forwarded_ports.rb Tue Jan 12 18:20:38 2016 -0800
|
562
|
+
@@ -0,0 +1,36 @@
|
563
|
+
+require "vagrant/util/scoped_hash_override"
|
564
|
+
+require 'vagrant-skytap/model/forwarded_port'
|
565
|
+
+module VagrantPlugins
|
566
|
+
+ module Skytap
|
567
|
+
+ module Util
|
568
|
+
+ module CompileForwardedPorts
|
569
|
+
+ include Vagrant::Util::ScopedHashOverride
|
570
|
+
+
|
571
|
+
+ # This method compiles the forwarded ports into {ForwardedPort}
|
572
|
+
+ # models.
|
573
|
+
+ def compile_forwarded_ports(config)
|
574
|
+
+ mappings = {}
|
575
|
+
+
|
576
|
+
+ config.vm.networks.each do |type, options|
|
577
|
+
+# puts type, options
|
578
|
+
+# debugger
|
579
|
+
+ if type == :forwarded_port
|
580
|
+
+ guest_port = options[:guest]
|
581
|
+
+ host_port = options[:host]
|
582
|
+
+ protocol = options[:protocol] || "tcp"
|
583
|
+
+ options = scoped_hash_override(options, :skytap)
|
584
|
+
+ id = options[:id]
|
585
|
+
+
|
586
|
+
+ # If the forwarded port was marked as disabled, ignore.
|
587
|
+
+ next if options[:disabled]
|
588
|
+
+ mappings[host_port.to_s + protocol.to_s] =
|
589
|
+
+ Model::ForwardedPort.new(id, host_port, guest_port, options)
|
590
|
+
+ end
|
591
|
+
+ end
|
592
|
+
+
|
593
|
+
+ mappings.values
|
594
|
+
+ end
|
595
|
+
+ end
|
596
|
+
+ end
|
597
|
+
+ end
|
598
|
+
+end
|