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.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +8 -0
  3. data/CHANGELOG.md +4 -0
  4. data/Gemfile +0 -3
  5. data/lib/vagrant-skytap/action/compose_environment.rb +0 -3
  6. data/lib/vagrant-skytap/action/prepare_forwarded_port_collision_params.rb +0 -1
  7. data/lib/vagrant-skytap/action/prepare_nfs_valid_ids.rb +3 -2
  8. data/lib/vagrant-skytap/action/wait_for_communicator.rb +0 -1
  9. data/lib/vagrant-skytap/action.rb +0 -1
  10. data/lib/vagrant-skytap/api/busyable.rb +1 -1
  11. data/lib/vagrant-skytap/api/client.rb +0 -1
  12. data/lib/vagrant-skytap/api/interface.rb +0 -1
  13. data/lib/vagrant-skytap/api/public_ip.rb +1 -2
  14. data/lib/vagrant-skytap/api/published_service.rb +2 -3
  15. data/lib/vagrant-skytap/api/vpn.rb +1 -2
  16. data/lib/vagrant-skytap/command/publish_url/root.rb +1 -1
  17. data/lib/vagrant-skytap/command/up.rb +10 -4
  18. data/lib/vagrant-skytap/core_ext/object/blank.rb +0 -22
  19. data/lib/vagrant-skytap/core_ext/try.rb +0 -22
  20. data/lib/vagrant-skytap/hosts/common/cap/ssh_tunnel.rb +0 -1
  21. data/lib/vagrant-skytap/plugin.rb +1 -1
  22. data/lib/vagrant-skytap/util/compile_forwarded_ports.rb +1 -1
  23. data/lib/vagrant-skytap/version.rb +1 -1
  24. data/lib/vagrant-skytap.rb +0 -2
  25. data/spec/unit/actions/compose_environment_spec.rb +0 -3
  26. data/spec/unit/actions/update_hardware_spec.rb +0 -1
  27. data/spec/unit/base.rb +1 -8
  28. data/spec/unit/config_spec.rb +0 -4
  29. data/spec/unit/environment_spec.rb +14 -23
  30. data/spec/unit/forwarded_port_spec.rb +0 -2
  31. data/spec/unit/prepare_collision_params_spec.rb +0 -14
  32. data/spec/unit/publish_set_spec.rb +7 -15
  33. data/spec/unit/setup_helper_spec.rb +28 -48
  34. data/spec/unit/support/api_responses/empty_environment.json +1 -1
  35. data/spec/unit/support/shared/rest_api_context.rb +3 -0
  36. data/spec/unit/support/shared/skytap_context.rb +14 -0
  37. data/spec/unit/vm_spec.rb +8 -15
  38. data/vagrant-skytap.gemspec +4 -4
  39. metadata +7 -20
  40. data/.hgignore +0 -22
  41. data/.project +0 -11
  42. data/.rspec +0 -1
  43. data/spec/acceptance/base.rb +0 -24
  44. data/spec/acceptance/provider/halt_spec.rb +0 -25
  45. data/spec/acceptance/provider/up_spec.rb +0 -62
  46. data/spec/acceptance/shared/context_skytap.rb +0 -25
  47. data/spec/support/isolated_environment.rb +0 -67
  48. data/spec/unit/support/dummy_communicator.rb +0 -105
  49. data/spec/unit/support/dummy_provider.rb +0 -63
  50. data/spec/unit/support/isolated_environment.rb +0 -239
  51. data/spec/unit/support/shared/action_synced_folders_context.rb +0 -37
  52. data/spec/unit/support/shared/base_context.rb +0 -138
  53. data/spec/unit/support/shared/capability_helpers_context.rb +0 -51
  54. data/spec/unit/support/shared/plugin_command_context.rb +0 -34
  55. data/vagrant-spec.config.rb +0 -32
@@ -24,8 +24,6 @@ require_relative 'base'
24
24
  require "vagrant-skytap/model/forwarded_port"
25
25
 
26
26
  describe VagrantPlugins::Skytap::Model::ForwardedPort do
27
- include_context "unit"
28
-
29
27
  let(:fp1) { VagrantPlugins::Skytap::Model::ForwardedPort.new("tcp9000", 9000, 80, protocol: 'tcp') }
30
28
  let(:fp2) { VagrantPlugins::Skytap::Model::ForwardedPort.new("tcp80", 80, 80, protocol: 'tcp') }
31
29
  let(:fp3) { VagrantPlugins::Skytap::Model::ForwardedPort.new("tcp2222", 2222, 22, protocol: 'tcp') }
@@ -24,8 +24,6 @@ require_relative 'base'
24
24
  require "vagrant-skytap/model/forwarded_port"
25
25
 
26
26
  describe VagrantPlugins::Skytap::Model::ForwardedPort do
27
- include_context "unit"
28
-
29
27
  let(:fp1) { VagrantPlugins::Skytap::Model::ForwardedPort.new("tcp9000", 9000, 80, protocol: 'tcp') }
30
28
  let(:fp2) { VagrantPlugins::Skytap::Model::ForwardedPort.new("tcp80", 80, 80, protocol: 'tcp') }
31
29
  let(:fp3) { VagrantPlugins::Skytap::Model::ForwardedPort.new("tcp2222", 2222, 22, protocol: 'tcp') }
@@ -65,15 +63,3 @@ describe VagrantPlugins::Skytap::Model::ForwardedPort do
65
63
  end
66
64
  end
67
65
  end
68
-
69
-
70
- #- [ ] Set up a “real" environment & machine
71
- #- [ ] Give it a Vagrantfile with a collision
72
- #- [ ] Provide matching machine folders.
73
- #- [ ] read_used_ports and read_forwarded_ports will have natural return values.
74
- #- [ ] Check that :port_collision_extra_in_use and :port_collision_remap are correct.
75
- #- [ ] Case where read_forwarded_ports returns []. :port_collision_remap should be {}.
76
- #- [ ] Case where read_forwarded_ports returns an object with the same id as something
77
- # in env[:machine].config.vm.networks: :port_collision_remap should be
78
- # {<config hostport> => FP hostport}
79
- # - [ ] observe what virtualbox does
@@ -23,7 +23,6 @@
23
23
  require_relative 'base'
24
24
 
25
25
  describe VagrantPlugins::Skytap::API::PublishSet do
26
- include_context "unit"
27
26
  include_context "rest_api"
28
27
 
29
28
  let(:json_path) { File.join(File.expand_path('..', __FILE__), 'support', 'api_responses') }
@@ -38,14 +37,12 @@ describe VagrantPlugins::Skytap::API::PublishSet do
38
37
  end
39
38
  end
40
39
 
41
- let(:iso_env) do
42
- # We have to create a Vagrantfile so there is a root path
43
- env = isolated_environment
44
- env.vagrantfile("")
45
- env.create_vagrant_env
40
+ let(:provider_config) do
41
+ double(:provider_config, vm_url: "/vms/1", username: "jsmith", api_token: "123123", base_url: base_url)
46
42
  end
47
- let(:machine) { iso_env.machine(iso_env.machine_names[0], :dummy) }
48
- let(:env) {{ machine: machine, api_client: api_client }}
43
+ let(:api_client) { API::Client.new(provider_config) }
44
+ let(:machine) { double(:machine, name: "vm1", id: nil, :id= => nil, provider_config: provider_config) }
45
+ let(:env) { { machine: machine, api_client: api_client } }
49
46
 
50
47
  let(:environment) do
51
48
  VagrantPlugins::Skytap::API::Environment.new(env_attrs, env)
@@ -60,16 +57,11 @@ describe VagrantPlugins::Skytap::API::PublishSet do
60
57
  end
61
58
  let(:instance) { described_class.new(attrs, environment, env) }
62
59
 
63
- let(:api_client) do
64
- # By default, all GET requests will return an environment with VM1, VM2, and 1 network
65
- double('api_client',
66
- get: double('resp', body: JSON.dump(attrs))
67
- )
68
- end
69
-
70
60
  # Ensure tests are not affected by Skytap credential environment variables
71
61
  before :each do
72
62
  ENV.stub(:[] => nil)
63
+ stub_request(:get, /.*/).to_return(body: '{}', status: 200)
64
+ stub_request(:get, %r{/configurations/\d+}).to_return(body: JSON.dump(attrs), status: 200)
73
65
  end
74
66
 
75
67
  describe "vms" do
@@ -25,9 +25,9 @@ require "vagrant-skytap/setup_helper"
25
25
  require "vagrant-skytap/api/environment"
26
26
  require "vagrant-skytap/api/vpn"
27
27
  require "vagrant-skytap/api/vpn_attachment"
28
+ require "vagrant-skytap/config"
28
29
 
29
30
  describe VagrantPlugins::Skytap::SetupHelper do
30
- include_context "unit"
31
31
  include_context "rest_api"
32
32
 
33
33
  let(:instance) { described_class.new }
@@ -39,7 +39,6 @@ describe VagrantPlugins::Skytap::SetupHelper do
39
39
  let(:vpn_attachment1_attrs) { read_json(json_path, 'vpn_attachment1.json') }
40
40
  let(:empty_environment_attrs) { read_json(json_path, 'empty_environment.json')}
41
41
 
42
-
43
42
  let(:network_attrs) do
44
43
  network1_attrs.dup.tap do |ret|
45
44
  ret['vpn_attachments'] = [vpn_attachment1_attrs]
@@ -69,47 +68,39 @@ describe VagrantPlugins::Skytap::SetupHelper do
69
68
 
70
69
  let(:vpn) {VagrantPlugins::Skytap::API::Vpn.new(vpn_attrs, env)}
71
70
 
72
- let(:iso_env) do
73
- # We have to create a Vagrantfile so there is a root path
74
- env = isolated_environment
75
- env.vagrantfile("")
76
- env.create_vagrant_env
71
+ let(:ssh_config) do
72
+ double(:ssh, username: "foo", password: "bar", host: nil, port: nil)
77
73
  end
78
-
79
- let(:machine) { iso_env.machine(iso_env.machine_names[0], :dummy) }
80
- let(:env) {{ machine: machine, api_client: double(post: Net::HTTPOK) }}
81
- let(:instance) { described_class.new(attrs, env) }
82
-
83
- let(:api_client) do
84
- # By default, all GET requests will return an environment with VM1, VM2, and 1 network
85
- double('api_client',
86
- get: double('resp', body: JSON.dump(attrs))
87
- )
74
+ let(:machine_config) do
75
+ double(:machine_config, ssh: ssh_config)
88
76
  end
77
+ let(:provider_config) do
78
+ double(:provider_config, vm_url: "/vms/1", username: "jsmith", api_token: "123123", base_url: base_url)
79
+ end
80
+ let(:api_client) { API::Client.new(provider_config) }
81
+ let(:machine) { double(:machine, name: "vm1", id: "6981850", config: machine_config, provider_config: provider_config) }
82
+ let(:env) { { machine: machine, api_client: api_client, ui: ui } }
83
+ let(:instance) { described_class.new(env, environment) }
89
84
 
90
85
  before :each do
91
86
  # Ensure tests are not affected by Skytap credential environment variables
92
87
  ENV.stub(:[] => nil)
93
-
94
- machine.id = environment.vms.first.id
95
- end
96
-
97
- after(:each) do
98
- allow(machine).to receive(:provider_config).and_call_original
88
+ stub_request(:get, /.*/).to_return(body: '{}', status: 200)
89
+ stub_request(:get, %r{/configurations/\d+}).to_return(body: JSON.dump(environment_attrs), status: 200)
90
+ stub_request(:get, %r{/vpns$}).to_return(body: JSON.dump([vpn_attrs]), status: 200)
99
91
  end
100
92
 
101
93
  describe "ask_routing" do
102
- after(:each) do
103
- allow_any_instance_of(VpnChoice).to receive(:choose).and_call_original
94
+ subject do
95
+ instance
104
96
  end
105
97
 
106
- subject do
107
- myenv = env.merge(
108
- ui: double(ask: '')
109
- )
110
- described_class.new(myenv, environment).tap do |ret|
111
- allow(ret).to receive(:vpns).and_return([vpn])
112
- end
98
+ before :each do
99
+ allow(subject).to receive(:vpns).and_return([vpn])
100
+ end
101
+
102
+ after(:each) do
103
+ allow_any_instance_of(VpnChoice).to receive(:choose).and_call_original
113
104
  end
114
105
 
115
106
  it "has connection_choices" do
@@ -120,31 +111,20 @@ describe VagrantPlugins::Skytap::SetupHelper do
120
111
  end
121
112
 
122
113
  it "does not show choices if vpn_url specified" do
123
- allow_any_instance_of(VpnChoice).to receive(:choose).and_return(['1.2.3.4', 22])
124
-
125
- cfg = VagrantPlugins::Skytap::Config.new
126
- cfg.vpn_url = vpn.url
127
- cfg.finalize!
128
- allow(machine).to receive(:provider_config).and_return cfg
129
-
114
+ allow(provider_config).to receive(:vpn_url).and_return(vpn.url)
115
+ vpn_choice = double(:choice, vpn: vpn, choose: ['1.2.3.4', 22], :valid? => true)
116
+ allow(vpn).to receive(:choice_for_setup).and_return(vpn_choice)
130
117
  expect(subject).not_to receive(:ask_from_list)
131
118
  subject.send(:ask_routing)
132
119
  end
133
120
 
134
121
  it "raises DoesNotExist if non-existent vpn_url specified" do
135
- cfg = VagrantPlugins::Skytap::Config.new
136
- cfg.vpn_url = 'bogus'
137
- cfg.finalize!
138
- allow(machine).to receive(:provider_config).and_return cfg
139
-
122
+ allow(provider_config).to receive(:vpn_url).and_return("bogus")
140
123
  expect{subject.send(:ask_routing)}.to raise_error(Errors::DoesNotExist)
141
124
  end
142
125
 
143
126
  it "shows choices if vpn_url unspecified" do
144
- cfg = VagrantPlugins::Skytap::Config.new
145
- cfg.finalize!
146
- allow(machine).to receive(:provider_config).and_return cfg
147
-
127
+ allow(provider_config).to receive(:vpn_url).and_return(nil)
148
128
  expect(subject).to receive(:ask_from_list)
149
129
  subject.send(:ask_routing)
150
130
  end
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "id": "5570024",
3
- "url": "https://example.com/templates/5570024",
3
+ "url": "https://example.com/configurations/5570024",
4
4
  "name": "Environment 1",
5
5
  "error": "",
6
6
  "runstate": "running",
@@ -33,4 +33,7 @@ require "vagrant-skytap/api/vpn"
33
33
 
34
34
  shared_context "rest_api" do
35
35
  include_context "skytap"
36
+
37
+ let(:base_url) {"http://example.com/"}
38
+
36
39
  end
@@ -26,7 +26,21 @@ shared_context "skytap" do
26
26
  Errors = VagrantPlugins::Skytap::Errors
27
27
  API = VagrantPlugins::Skytap::API
28
28
 
29
+ let(:empty_action) {double(call: nil)}
30
+ let(:ui) {Vagrant::UI::Silent.new}
31
+
29
32
  def read_json(*args)
30
33
  JSON.load(File.read(File.join(args)))
31
34
  end
35
+
36
+ # Bypass middleware actions, sort of, by stubbing the #call method
37
+ def stub_actions(*action_names)
38
+ if action_names.count == 1 && action_names.first.is_a?(Array)
39
+ action_names = action_names.first
40
+ end
41
+ action_names.each do |name|
42
+ classname = "VagrantPlugins::Skytap::Action::#{name}"
43
+ stub_const(classname, double(classname, call: nil))
44
+ end
45
+ end
32
46
  end
data/spec/unit/vm_spec.rb CHANGED
@@ -23,7 +23,6 @@
23
23
  require_relative 'base'
24
24
 
25
25
  describe VagrantPlugins::Skytap::API::Vm do
26
- include_context "unit"
27
26
  include_context "rest_api"
28
27
 
29
28
  let(:json_path) { File.join(File.expand_path('..', __FILE__), 'support', 'api_responses') }
@@ -33,14 +32,13 @@ describe VagrantPlugins::Skytap::API::Vm do
33
32
  let(:network1_attrs) { read_json(json_path, 'network1.json') }
34
33
  let(:empty_environment_attrs) { read_json(json_path, 'empty_environment.json') }
35
34
 
36
- let(:iso_env) do
37
- # We have to create a Vagrantfile so there is a root path
38
- env = isolated_environment
39
- env.vagrantfile("")
40
- env.create_vagrant_env
35
+ let(:provider_config) do
36
+ double(:provider_config, vm_url: "/vms/1", username: "jsmith", api_token: "123123", base_url: base_url)
41
37
  end
42
- let(:machine) { iso_env.machine(iso_env.machine_names[0], :dummy) }
43
- let(:env) {{ machine: machine, api_client: api_client }}
38
+ let(:api_client) { API::Client.new(provider_config) }
39
+ let(:machine) { double(:machine, name: "vm1", id: nil, :id= => nil, provider_config: provider_config) }
40
+ let(:env) { { machine: machine, api_client: api_client } }
41
+ let(:instance) { described_class.new(attrs, env) }
44
42
 
45
43
  let(:environment) do
46
44
  env_attrs = empty_environment_attrs
@@ -50,16 +48,11 @@ describe VagrantPlugins::Skytap::API::Vm do
50
48
  let(:attrs) { vm1_attrs }
51
49
  let(:instance) { described_class.new(attrs, environment, env) }
52
50
 
53
- let(:api_client) do
54
- # By default, all GET requests will return VM1
55
- double('api_client',
56
- get: double('resp', body: JSON.dump(attrs))
57
- )
58
- end
59
-
60
51
  # Ensure tests are not affected by Skytap credential environment variables
61
52
  before :each do
62
53
  ENV.stub(:[] => nil)
54
+ stub_request(:get, /.*/).to_return(body: '{}', status: 200)
55
+ stub_request(:get, %r{/vms/\d+}).to_return(body: JSON.dump(attrs), status: 200)
63
56
  end
64
57
 
65
58
  describe "reload" do
@@ -28,10 +28,10 @@ Gem::Specification.new do |s|
28
28
  s.version = VagrantPlugins::Skytap::VERSION
29
29
  s.platform = Gem::Platform::RUBY
30
30
  s.license = "MIT"
31
- s.authors = "Nick Astete"
32
- s.email = "nastete@skytap.com"
31
+ s.authors = ["Eric True", "Nick Astete"]
32
+ s.email = ["etrue@skytap.com", "nastete@skytap.com"]
33
33
  s.homepage = "http://www.skytap.com"
34
- s.summary = "Enables Vagrant to manage Skytap machines."
34
+ s.summary = "Vagrant provider plugin for Skytap."
35
35
  s.description = "Enables Vagrant to manage Skytap machines."
36
36
 
37
37
  s.required_rubygems_version = ">= 1.3.6"
@@ -54,7 +54,7 @@ Gem::Specification.new do |s|
54
54
  root_path = File.dirname(__FILE__)
55
55
  all_files = Dir.chdir(root_path) { Dir.glob("**/{*,.*}") }
56
56
  all_files.reject! { |file| [".", ".."].include?(File.basename(file)) }
57
- #TODO:NLA:
57
+
58
58
  gitignore_path = File.join(root_path, ".gitignore")
59
59
  gitignore = File.readlines(gitignore_path)
60
60
  gitignore.map! { |line| line.chomp.strip }
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-skytap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
+ - Eric True
7
8
  - Nick Astete
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2016-02-03 00:00:00.000000000 Z
12
+ date: 2016-02-04 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: json_pure
@@ -109,7 +110,9 @@ dependencies:
109
110
  - !ruby/object:Gem::Version
110
111
  version: '1.20'
111
112
  description: Enables Vagrant to manage Skytap machines.
112
- email: nastete@skytap.com
113
+ email:
114
+ - etrue@skytap.com
115
+ - nastete@skytap.com
113
116
  executables: []
114
117
  extensions: []
115
118
  extra_rdoc_files: []
@@ -208,12 +211,7 @@ files:
208
211
  - locales/en.yml
209
212
  - Rakefile
210
213
  - README.md
211
- - spec/acceptance/base.rb
212
- - spec/acceptance/provider/halt_spec.rb
213
- - spec/acceptance/provider/up_spec.rb
214
- - spec/acceptance/shared/context_skytap.rb
215
214
  - spec/spec_helper.rb
216
- - spec/support/isolated_environment.rb
217
215
  - spec/unit/actions/compose_environment_spec.rb
218
216
  - spec/unit/actions/update_hardware_spec.rb
219
217
  - spec/unit/base.rb
@@ -230,8 +228,6 @@ files:
230
228
  - spec/unit/support/api_responses/vm1.json
231
229
  - spec/unit/support/api_responses/vpn1.json
232
230
  - spec/unit/support/api_responses/vpn_attachment1.json
233
- - spec/unit/support/dummy_communicator.rb
234
- - spec/unit/support/dummy_provider.rb
235
231
  - spec/unit/support/forwarded_ports/machines/vm1/skytap/id
236
232
  - spec/unit/support/forwarded_ports/machines/vm1/skytap/private_key
237
233
  - spec/unit/support/forwarded_ports/machines/vm1/skytap/tcp9000_tcp_9000_80.pid
@@ -242,11 +238,6 @@ files:
242
238
  - spec/unit/support/forwarded_ports/machines/vm3/virtualbox/id
243
239
  - spec/unit/support/forwarded_ports/machines/vm4/skytap/id
244
240
  - spec/unit/support/forwarded_ports/machines/vm4/skytap/tcp8888_tcp_8888_80.pid
245
- - spec/unit/support/isolated_environment.rb
246
- - spec/unit/support/shared/action_synced_folders_context.rb
247
- - spec/unit/support/shared/base_context.rb
248
- - spec/unit/support/shared/capability_helpers_context.rb
249
- - spec/unit/support/shared/plugin_command_context.rb
250
241
  - spec/unit/support/shared/rest_api_context.rb
251
242
  - spec/unit/support/shared/skytap_context.rb
252
243
  - spec/unit/vm_spec.rb
@@ -254,11 +245,7 @@ files:
254
245
  - tasks/bundler.rake
255
246
  - tasks/test.rake
256
247
  - vagrant-skytap.gemspec
257
- - vagrant-spec.config.rb
258
248
  - .gitignore
259
- - .hgignore
260
- - .project
261
- - .rspec
262
249
  homepage: http://www.skytap.com
263
250
  licenses:
264
251
  - MIT
@@ -282,5 +269,5 @@ rubyforge_project: vagrant-skytap
282
269
  rubygems_version: 2.0.14
283
270
  signing_key:
284
271
  specification_version: 4
285
- summary: Enables Vagrant to manage Skytap machines.
272
+ summary: Vagrant provider plugin for Skytap.
286
273
  test_files: []
data/.hgignore DELETED
@@ -1,22 +0,0 @@
1
- Syntax: regexp
2
-
3
- # OS-specific
4
- ^\.DS_Store$
5
-
6
- # editors
7
- \.swp$
8
-
9
- # Bundler/Rubygems
10
- \.gem$
11
- ^\.bundle$
12
- pkg/
13
- ^tags$
14
- ^Gemfile\.lock$
15
-
16
- # Vagrant
17
- ^\.vagrant$
18
- ^Vagrantfile$
19
- #!example_box/Vagrantfile
20
-
21
- # RVM files for gemset/ruby setting
22
- \.ruby-version$
data/.project DELETED
@@ -1,11 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <projectDescription>
3
- <name>vagrant_skytap</name>
4
- <comment></comment>
5
- <projects>
6
- </projects>
7
- <buildSpec>
8
- </buildSpec>
9
- <natures>
10
- </natures>
11
- </projectDescription>
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --format doc --order random --color --fail-fast
@@ -1,24 +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 "vagrant-spec/acceptance"
24
- require_relative "shared/context_skytap"