vagrant-skytap 0.2.4 → 0.2.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +8 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile +0 -3
- data/lib/vagrant-skytap/action/compose_environment.rb +0 -3
- data/lib/vagrant-skytap/action/prepare_forwarded_port_collision_params.rb +0 -1
- data/lib/vagrant-skytap/action/prepare_nfs_valid_ids.rb +3 -2
- data/lib/vagrant-skytap/action/wait_for_communicator.rb +0 -1
- data/lib/vagrant-skytap/action.rb +0 -1
- data/lib/vagrant-skytap/api/busyable.rb +1 -1
- data/lib/vagrant-skytap/api/client.rb +0 -1
- data/lib/vagrant-skytap/api/interface.rb +0 -1
- data/lib/vagrant-skytap/api/public_ip.rb +1 -2
- data/lib/vagrant-skytap/api/published_service.rb +2 -3
- data/lib/vagrant-skytap/api/vpn.rb +1 -2
- data/lib/vagrant-skytap/command/publish_url/root.rb +1 -1
- data/lib/vagrant-skytap/command/up.rb +10 -4
- data/lib/vagrant-skytap/core_ext/object/blank.rb +0 -22
- data/lib/vagrant-skytap/core_ext/try.rb +0 -22
- data/lib/vagrant-skytap/hosts/common/cap/ssh_tunnel.rb +0 -1
- data/lib/vagrant-skytap/plugin.rb +1 -1
- data/lib/vagrant-skytap/util/compile_forwarded_ports.rb +1 -1
- data/lib/vagrant-skytap/version.rb +1 -1
- data/lib/vagrant-skytap.rb +0 -2
- data/spec/unit/actions/compose_environment_spec.rb +0 -3
- data/spec/unit/actions/update_hardware_spec.rb +0 -1
- data/spec/unit/base.rb +1 -8
- data/spec/unit/config_spec.rb +0 -4
- data/spec/unit/environment_spec.rb +14 -23
- data/spec/unit/forwarded_port_spec.rb +0 -2
- data/spec/unit/prepare_collision_params_spec.rb +0 -14
- data/spec/unit/publish_set_spec.rb +7 -15
- data/spec/unit/setup_helper_spec.rb +28 -48
- data/spec/unit/support/api_responses/empty_environment.json +1 -1
- data/spec/unit/support/shared/rest_api_context.rb +3 -0
- data/spec/unit/support/shared/skytap_context.rb +14 -0
- data/spec/unit/vm_spec.rb +8 -15
- data/vagrant-skytap.gemspec +4 -4
- metadata +7 -20
- data/.hgignore +0 -22
- data/.project +0 -11
- data/.rspec +0 -1
- data/spec/acceptance/base.rb +0 -24
- data/spec/acceptance/provider/halt_spec.rb +0 -25
- data/spec/acceptance/provider/up_spec.rb +0 -62
- data/spec/acceptance/shared/context_skytap.rb +0 -25
- data/spec/support/isolated_environment.rb +0 -67
- data/spec/unit/support/dummy_communicator.rb +0 -105
- data/spec/unit/support/dummy_provider.rb +0 -63
- data/spec/unit/support/isolated_environment.rb +0 -239
- data/spec/unit/support/shared/action_synced_folders_context.rb +0 -37
- data/spec/unit/support/shared/base_context.rb +0 -138
- data/spec/unit/support/shared/capability_helpers_context.rb +0 -51
- data/spec/unit/support/shared/plugin_command_context.rb +0 -34
- data/vagrant-spec.config.rb +0 -32
@@ -1,37 +0,0 @@
|
|
1
|
-
# Copyright (c) 2014-2016 Skytap, Inc.
|
2
|
-
#
|
3
|
-
# The MIT License (MIT)
|
4
|
-
#
|
5
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
-
# of this software and associated documentation files (the "Software"), to deal
|
7
|
-
# in the Software without restriction, including without limitation the rights
|
8
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
-
# copies of the Software, and to permit persons to whom the Software is
|
10
|
-
# furnished to do so, subject to the following conditions:
|
11
|
-
#
|
12
|
-
# The above copyright notice and this permission notice shall be included in
|
13
|
-
# all copies or substantial portions of the Software.
|
14
|
-
#
|
15
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
20
|
-
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
21
|
-
# DEALINGS IN THE SOFTWARE.
|
22
|
-
|
23
|
-
shared_context "synced folder actions" do
|
24
|
-
# This creates a synced folder implementation.
|
25
|
-
def impl(usable, name)
|
26
|
-
Class.new(Vagrant.plugin("2", :synced_folder)) do
|
27
|
-
define_method(:name) do
|
28
|
-
name
|
29
|
-
end
|
30
|
-
|
31
|
-
define_method(:usable?) do |machine, raise_error=false|
|
32
|
-
raise "#{name}: usable" if raise_error && !usable
|
33
|
-
usable
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
@@ -1,138 +0,0 @@
|
|
1
|
-
# Copyright (c) 2014-2016 Skytap, Inc.
|
2
|
-
#
|
3
|
-
# The MIT License (MIT)
|
4
|
-
#
|
5
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
-
# of this software and associated documentation files (the "Software"), to deal
|
7
|
-
# in the Software without restriction, including without limitation the rights
|
8
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
-
# copies of the Software, and to permit persons to whom the Software is
|
10
|
-
# furnished to do so, subject to the following conditions:
|
11
|
-
#
|
12
|
-
# The above copyright notice and this permission notice shall be included in
|
13
|
-
# all copies or substantial portions of the Software.
|
14
|
-
#
|
15
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
20
|
-
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
21
|
-
# DEALINGS IN THE SOFTWARE.
|
22
|
-
|
23
|
-
require "tempfile"
|
24
|
-
require "tmpdir"
|
25
|
-
|
26
|
-
require "unit/support/isolated_environment"
|
27
|
-
|
28
|
-
shared_context "unit" do
|
29
|
-
before(:each) do
|
30
|
-
# State to store the list of registered plugins that we have to
|
31
|
-
# unregister later.
|
32
|
-
@_plugins = []
|
33
|
-
|
34
|
-
# Create a thing to store our temporary files so that they aren't
|
35
|
-
# unlinked right away.
|
36
|
-
@_temp_files = []
|
37
|
-
end
|
38
|
-
|
39
|
-
after(:each) do
|
40
|
-
# Unregister each of the plugins we have may have temporarily
|
41
|
-
# registered for the duration of this test.
|
42
|
-
@_plugins.each do |plugin|
|
43
|
-
Vagrant.plugin("1").manager.unregister(plugin)
|
44
|
-
Vagrant.plugin("2").manager.unregister(plugin)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
# This creates an isolated environment so that Vagrant doesn't
|
49
|
-
# muck around with your real system during unit tests.
|
50
|
-
#
|
51
|
-
# The returned isolated environment has a variety of helper
|
52
|
-
# methods on it to easily create files, Vagrantfiles, boxes,
|
53
|
-
# etc.
|
54
|
-
def isolated_environment
|
55
|
-
env = Unit::IsolatedEnvironment.new
|
56
|
-
yield env if block_given?
|
57
|
-
env
|
58
|
-
end
|
59
|
-
|
60
|
-
# This registers a Vagrant plugin for the duration of a single test.
|
61
|
-
# This will yield a new plugin class that you can then call the
|
62
|
-
# public plugin methods on.
|
63
|
-
#
|
64
|
-
# @yield [plugin] Yields the plugin class for you to call the public
|
65
|
-
# API that you need to.
|
66
|
-
def register_plugin(version=nil)
|
67
|
-
version ||= Vagrant::Config::CURRENT_VERSION
|
68
|
-
plugin = Class.new(Vagrant.plugin(version))
|
69
|
-
plugin.name("Test Plugin #{plugin.inspect}")
|
70
|
-
yield plugin if block_given?
|
71
|
-
@_plugins << plugin
|
72
|
-
plugin
|
73
|
-
end
|
74
|
-
|
75
|
-
# This helper creates a temporary file and returns a Pathname
|
76
|
-
# object pointed to it.
|
77
|
-
#
|
78
|
-
# @return [Pathname]
|
79
|
-
def temporary_file(contents=nil)
|
80
|
-
f = Tempfile.new("vagrant-unit")
|
81
|
-
|
82
|
-
if contents
|
83
|
-
f.write(contents)
|
84
|
-
f.flush
|
85
|
-
end
|
86
|
-
|
87
|
-
# Store the tempfile in an instance variable so that it is not
|
88
|
-
# garbage collected, so that the tempfile is not unlinked.
|
89
|
-
@_temp_files << f
|
90
|
-
|
91
|
-
return Pathname.new(f.path)
|
92
|
-
end
|
93
|
-
|
94
|
-
# This creates a temporary directory and returns a {Pathname}
|
95
|
-
# pointing to it.
|
96
|
-
#
|
97
|
-
# @return [Pathname]
|
98
|
-
def temporary_dir
|
99
|
-
# Create a temporary directory and append it to the instance
|
100
|
-
# variabe so that it isn't garbage collected and deleted
|
101
|
-
d = Dir.mktmpdir("vagrant")
|
102
|
-
@_temp_files << d
|
103
|
-
|
104
|
-
# Return the pathname
|
105
|
-
return Pathname.new(d)
|
106
|
-
end
|
107
|
-
|
108
|
-
# Stub the given environment in ENV, without actually touching ENV. Keys and
|
109
|
-
# values are converted to strings because that's how the real ENV works.
|
110
|
-
def stub_env(hash)
|
111
|
-
allow(ENV).to receive(:[]).and_call_original
|
112
|
-
|
113
|
-
hash.each do |key, value|
|
114
|
-
allow(ENV).to receive(:[])
|
115
|
-
.with(key.to_s)
|
116
|
-
.and_return(value.to_s)
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
# This helper provides temporary environmental variable changes.
|
121
|
-
def with_temp_env(environment)
|
122
|
-
# Build up the new environment, preserving the old values so we
|
123
|
-
# can replace them back in later.
|
124
|
-
old_env = {}
|
125
|
-
environment.each do |key, value|
|
126
|
-
old_env[key] = ENV[key]
|
127
|
-
ENV[key] = value
|
128
|
-
end
|
129
|
-
|
130
|
-
# Call the block, returning its return value
|
131
|
-
return yield
|
132
|
-
ensure
|
133
|
-
# Reset the environment no matter what
|
134
|
-
old_env.each do |key, value|
|
135
|
-
ENV[key] = value
|
136
|
-
end
|
137
|
-
end
|
138
|
-
end
|
@@ -1,51 +0,0 @@
|
|
1
|
-
# Copyright (c) 2014-2016 Skytap, Inc.
|
2
|
-
#
|
3
|
-
# The MIT License (MIT)
|
4
|
-
#
|
5
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
-
# of this software and associated documentation files (the "Software"), to deal
|
7
|
-
# in the Software without restriction, including without limitation the rights
|
8
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
-
# copies of the Software, and to permit persons to whom the Software is
|
10
|
-
# furnished to do so, subject to the following conditions:
|
11
|
-
#
|
12
|
-
# The above copyright notice and this permission notice shall be included in
|
13
|
-
# all copies or substantial portions of the Software.
|
14
|
-
#
|
15
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
20
|
-
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
21
|
-
# DEALINGS IN THE SOFTWARE.
|
22
|
-
|
23
|
-
shared_context "capability_helpers" do
|
24
|
-
def detect_class(result)
|
25
|
-
Class.new do
|
26
|
-
define_method(:detect?) do |*args|
|
27
|
-
result
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def provider_usable_class(result)
|
33
|
-
Class.new do
|
34
|
-
define_singleton_method(:usable?) do |*args|
|
35
|
-
result
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def cap_instance(name, options=nil)
|
41
|
-
options ||= {}
|
42
|
-
|
43
|
-
Class.new do
|
44
|
-
if !options[:corrupt]
|
45
|
-
define_method(name) do |*args|
|
46
|
-
raise "cap: #{name} #{args.inspect}"
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end.new
|
50
|
-
end
|
51
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# Copyright (c) 2014-2016 Skytap, Inc.
|
2
|
-
#
|
3
|
-
# The MIT License (MIT)
|
4
|
-
#
|
5
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
-
# of this software and associated documentation files (the "Software"), to deal
|
7
|
-
# in the Software without restriction, including without limitation the rights
|
8
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
-
# copies of the Software, and to permit persons to whom the Software is
|
10
|
-
# furnished to do so, subject to the following conditions:
|
11
|
-
#
|
12
|
-
# The above copyright notice and this permission notice shall be included in
|
13
|
-
# all copies or substantial portions of the Software.
|
14
|
-
#
|
15
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
20
|
-
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
21
|
-
# DEALINGS IN THE SOFTWARE.
|
22
|
-
|
23
|
-
shared_context "command plugin helpers" do
|
24
|
-
def command_lambda(name, result, **opts)
|
25
|
-
lambda do
|
26
|
-
Class.new(Vagrant.plugin("2", "command")) do
|
27
|
-
define_method(:execute) do
|
28
|
-
raise opts[:exception] if opts[:exception]
|
29
|
-
result
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
data/vagrant-spec.config.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
# Copyright (c) 2014-2016 Skytap, Inc.
|
2
|
-
#
|
3
|
-
# The MIT License (MIT)
|
4
|
-
#
|
5
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
-
# of this software and associated documentation files (the "Software"), to deal
|
7
|
-
# in the Software without restriction, including without limitation the rights
|
8
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
-
# copies of the Software, and to permit persons to whom the Software is
|
10
|
-
# furnished to do so, subject to the following conditions:
|
11
|
-
#
|
12
|
-
# The above copyright notice and this permission notice shall be included in
|
13
|
-
# all copies or substantial portions of the Software.
|
14
|
-
#
|
15
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
20
|
-
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
21
|
-
# DEALINGS IN THE SOFTWARE.
|
22
|
-
|
23
|
-
require_relative "spec/acceptance/base"
|
24
|
-
|
25
|
-
Vagrant::Spec::Acceptance.configure do |c|
|
26
|
-
c.component_paths << File.expand_path("../spec/acceptance", __FILE__)
|
27
|
-
c.skeleton_paths << File.expand_path("../spec/acceptance/skeletons", __FILE__)
|
28
|
-
|
29
|
-
c.provider "skytap",
|
30
|
-
box: File.expand_path("../skytap-dummy.box", __FILE__),
|
31
|
-
contexts: ["provider-context/skytap"]
|
32
|
-
end
|