vcloud-launcher 0.6.0 → 0.7.0

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.
@@ -1,3 +1,9 @@
1
+ ## 0.7.0 (2014-12-05)
2
+
3
+ Features:
4
+
5
+ - Supports attaching of independent disks to VMs.
6
+
1
7
  ## 0.6.0 (2014-12-03)
2
8
 
3
9
  Features:
@@ -7,6 +7,7 @@ require 'vcloud/launcher/schema/launcher_vapps'
7
7
 
8
8
  require 'vcloud/launcher/launch'
9
9
  require 'vcloud/launcher/preamble'
10
+ require 'vcloud/launcher/independent_disk_orchestrator'
10
11
  require 'vcloud/launcher/vm_orchestrator'
11
12
  require 'vcloud/launcher/vapp_orchestrator'
12
13
 
@@ -0,0 +1,29 @@
1
+ module Vcloud
2
+ module Launcher
3
+ class IndependentDiskOrchestrator
4
+
5
+ def initialize(vm)
6
+ @vm = vm
7
+ end
8
+
9
+ def attach(independent_disks_config)
10
+ disk_list = find_disks(independent_disks_config)
11
+ @vm.attach_independent_disks(disk_list)
12
+ end
13
+
14
+ def vdc_name
15
+ return @vdc_name if @vdc_name
16
+ parent_vapp = Vcloud::Core::Vapp.get_by_child_vm_id(@vm.id)
17
+ parent_vdc = Vcloud::Core::Vdc.new(parent_vapp.vdc_id)
18
+ @vdc_name = parent_vdc.name
19
+ end
20
+
21
+ def find_disks(independent_disks_config)
22
+ independent_disks_config.map do |disk|
23
+ Vcloud::Core::IndependentDisk.get_by_name_and_vdc_name(disk[:name], vdc_name)
24
+ end
25
+ end
26
+
27
+ end
28
+ end
29
+ end
@@ -40,6 +40,17 @@ module Vcloud
40
40
  },
41
41
  },
42
42
  },
43
+ independent_disks: {
44
+ type: 'array',
45
+ required: false,
46
+ allowed_empty: true,
47
+ each_element_is: {
48
+ type: 'hash',
49
+ internals: {
50
+ name: { type: 'string', required: true },
51
+ },
52
+ },
53
+ },
43
54
  bootstrap: {
44
55
  type: 'hash',
45
56
  required: false,
@@ -1,5 +1,5 @@
1
1
  module Vcloud
2
2
  module Launcher
3
- VERSION = '0.6.0'
3
+ VERSION = '0.7.0'
4
4
  end
5
5
  end
@@ -17,6 +17,9 @@ module Vcloud
17
17
  end
18
18
  @vm.add_extra_disks(vm_config[:extra_disks])
19
19
  @vm.update_metadata(vm_config[:metadata])
20
+ if vm_config.key?(:independent_disks)
21
+ Vcloud::Launcher::IndependentDiskOrchestrator.new(@vm).attach(vm_config.fetch(:independent_disks))
22
+ end
20
23
 
21
24
  preamble = vm_config[:bootstrap] ? generate_preamble(vm_config) : ''
22
25
 
@@ -20,6 +20,8 @@ vapps:
20
20
  name: Hard disk 2
21
21
  - size: '2048'
22
22
  name: Hard disk 3
23
+ independent_disks:
24
+ - name: <%= independent_disk_name %>
23
25
  network_connections:
24
26
  - name: <%= network_1 %>
25
27
  ip_address: <%= network_1_ip %>
@@ -81,6 +81,11 @@ describe Vcloud::Launcher::Launch do
81
81
  context "happy path" do
82
82
  before(:all) do
83
83
  @test_data = define_test_data
84
+ @test_case_independent_disks = IntegrationHelper.create_test_case_independent_disks(
85
+ 1, @test_data[:vdc_name], '100MB')
86
+ @test_independent_disk = @test_case_independent_disks.first
87
+ @test_data[:independent_disk_name] = @test_independent_disk.name
88
+
84
89
  @config_yaml = ErbHelper.convert_erb_template_to_yaml(@test_data, File.join(File.dirname(__FILE__), 'data/happy_path.yaml.erb'))
85
90
  @api_interface = Vcloud::Core::ApiInterface.new
86
91
  Vcloud::Launcher::Launch.new(@config_yaml, { "dont-power-on" => true }).run
@@ -125,14 +130,22 @@ describe Vcloud::Launcher::Launch do
125
130
  expect(@vm_metadata[:is_string]).to eq('Hello World')
126
131
  end
127
132
 
128
- it "should attach extra hard disks to vm" do
129
- disks = extract_disks(@vm)
133
+ it "should attach extra local hard disks to vm" do
134
+ disks = extract_local_disks(@vm)
130
135
  expect(disks.count).to eq(3)
131
136
  [{:name => 'Hard disk 2', :size => '1024'}, {:name => 'Hard disk 3', :size => '2048'}].each do |new_disk|
132
137
  expect(disks).to include(new_disk)
133
138
  end
134
139
  end
135
140
 
141
+ it "should attach extra independent disks to vm" do
142
+ disks = extract_independent_disks(@vm)
143
+ expect(disks.count).to eq(1)
144
+ [{:name => 'Hard disk 4'}].each do |new_disk|
145
+ expect(disks).to include(new_disk)
146
+ end
147
+ end
148
+
136
149
  it "should configure the vm network interface" do
137
150
  vm_network_connection = @vm[:NetworkConnectionSection][:NetworkConnection]
138
151
  expect(vm_network_connection).not_to be_nil
@@ -167,12 +180,25 @@ describe Vcloud::Launcher::Launch do
167
180
  after(:all) do
168
181
  unless ENV['VCLOUD_TOOLS_RSPEC_NO_DELETE_VAPP']
169
182
  File.delete @config_yaml
170
- expect(@api_interface.delete_vapp(@vapp_id)).to eq(true)
183
+ @api_interface.delete_vapp(@vapp_id)
184
+ wait_for_disks_to_detach
185
+ IntegrationHelper.delete_independent_disks(@test_case_independent_disks)
171
186
  end
172
187
  end
173
188
 
174
189
  end
175
190
 
191
+ def wait_for_disks_to_detach
192
+ # There is an annoying delay after a vapp is deleted before any attached
193
+ # independent disks are registered as detached in vCD. The
194
+ # disk#attached_vms call lies during this period too, so cannot be used to
195
+ # ascertain that the disk is completely detached.
196
+ #
197
+ # As a result, just wait for a sufficiently long time for vCD to get its
198
+ # act together.
199
+ sleep(20)
200
+ end
201
+
176
202
  def extract_memory(vm)
177
203
  vm[:'ovf:VirtualHardwareSection'][:'ovf:Item'].detect { |i| i[:'rasd:ResourceType'] == '4' }[:'rasd:VirtualQuantity']
178
204
  end
@@ -181,9 +207,26 @@ describe Vcloud::Launcher::Launch do
181
207
  vm[:'ovf:VirtualHardwareSection'][:'ovf:Item'].detect { |i| i[:'rasd:ResourceType'] == '3' }[:'rasd:VirtualQuantity']
182
208
  end
183
209
 
184
- def extract_disks(vm)
210
+ def extract_local_disks(vm)
185
211
  vm[:'ovf:VirtualHardwareSection'][:'ovf:Item'].collect { |d|
186
- {:name => d[:"rasd:ElementName"], :size => (d[:"rasd:HostResource"][:ns12_capacity] || d[:"rasd:HostResource"][:vcloud_capacity])} if d[:'rasd:ResourceType'] == '17'
212
+ if d[:'rasd:ResourceType'] == '17' && ! d[:'rasd:HostResource'].key?(:vcloud_disk)
213
+ {
214
+ :name => d[:"rasd:ElementName"],
215
+ :size => (
216
+ d[:"rasd:HostResource"][:ns12_capacity] || d[:"rasd:HostResource"][:vcloud_capacity]
217
+ )
218
+ }
219
+ end
220
+ }.compact
221
+ end
222
+
223
+ def extract_independent_disks(vm)
224
+ vm[:'ovf:VirtualHardwareSection'][:'ovf:Item'].collect { |d|
225
+ if d[:'rasd:ResourceType'] == '17' && d[:'rasd:HostResource'].key?(:vcloud_disk)
226
+ {
227
+ :name => d[:"rasd:ElementName"]
228
+ }
229
+ end
187
230
  }.compact
188
231
  end
189
232
 
@@ -22,6 +22,7 @@ if ENV['COVERAGE']
22
22
  end
23
23
 
24
24
  require 'erb_helper'
25
+ require 'support/integration_helper'
25
26
  require 'vcloud/launcher'
26
27
 
27
28
  RSpec.configure do |config|
@@ -0,0 +1,28 @@
1
+ module IntegrationHelper
2
+
3
+ def self.create_test_case_independent_disks(number_of_disks,
4
+ vdc_name,
5
+ size,
6
+ prefix = "vcloud-launcher-tests"
7
+ )
8
+ timestamp_in_s = Time.new.to_i
9
+ base_disk_name = "#{prefix}-#{timestamp_in_s}-"
10
+ disk_list = []
11
+ vdc = Vcloud::Core::Vdc.get_by_name(vdc_name)
12
+ number_of_disks.times do |index|
13
+ disk_list << Vcloud::Core::IndependentDisk.create(
14
+ vdc,
15
+ base_disk_name + index.to_s,
16
+ size,
17
+ )
18
+ end
19
+ disk_list
20
+ end
21
+
22
+ def self.delete_independent_disks(disk_list)
23
+ disk_list.each do |disk|
24
+ disk.destroy
25
+ end
26
+ end
27
+
28
+ end
@@ -0,0 +1,95 @@
1
+ require 'spec_helper'
2
+
3
+ describe Vcloud::Launcher::IndependentDiskOrchestrator do
4
+
5
+ let(:mock_vm) {
6
+ double(
7
+ :vm,
8
+ :id => 'vm-12341234-1234-1234-1234-123412340001',
9
+ :vapp_name => 'web-app1',
10
+ :name => 'test-vm-1'
11
+ )
12
+ }
13
+
14
+ let(:mock_parent_vapp) {
15
+ double(
16
+ :vapp,
17
+ :id => 'vapp-12341234-1234-1234-1234-123412340000',
18
+ :name => 'web-app1',
19
+ :vdc_id => '12341234-1234-1234-1234-123412349999',
20
+ )
21
+ }
22
+
23
+ let(:mock_parent_vdc) {
24
+ double(
25
+ :vdc,
26
+ :id => '12341234-1234-1234-1234-123412349999',
27
+ :name => 'test-vdc-1',
28
+ )
29
+ }
30
+
31
+ let(:independent_disk_config) {
32
+ [
33
+ {:name => 'test-independent-disk-1' },
34
+ {:name => 'test-independent-disk-2' },
35
+ ]
36
+ }
37
+
38
+ let(:mock_disk_1) {
39
+ double(
40
+ :independent_disk_1,
41
+ :id => '12341234-1234-1234-123411110001',
42
+ :name => 'test-independent-disk-1'
43
+ )
44
+ }
45
+
46
+ let(:mock_disk_2) {
47
+ double(
48
+ :independent_disk_2,
49
+ :id => '12341234-1234-1234-123411110002',
50
+ :name => 'test-independent-disk-2'
51
+ )
52
+ }
53
+
54
+ subject { Vcloud::Launcher::IndependentDiskOrchestrator.new(mock_vm) }
55
+
56
+ describe "#vdc_name" do
57
+ end
58
+
59
+ describe "#find_disks" do
60
+
61
+ before(:each) do
62
+ expect(Vcloud::Core::Vapp).to receive(:get_by_child_vm_id).with(mock_vm.id).
63
+ and_return(mock_parent_vapp)
64
+ expect(Vcloud::Core::Vdc).to receive(:new).with(mock_parent_vapp.vdc_id).
65
+ and_return(mock_parent_vdc)
66
+ end
67
+
68
+ it "finds Vcloud::Core::IndependentDisk objects from our configuration" do
69
+ expect(Vcloud::Core::IndependentDisk).
70
+ to receive(:get_by_name_and_vdc_name).
71
+ with(independent_disk_config[0][:name], mock_parent_vdc.name).
72
+ ordered.
73
+ and_return(mock_disk_1)
74
+ expect(Vcloud::Core::IndependentDisk).
75
+ to receive(:get_by_name_and_vdc_name).
76
+ with(independent_disk_config[1][:name], mock_parent_vdc.name).
77
+ ordered.
78
+ and_return(mock_disk_2)
79
+ expect(subject.find_disks(independent_disk_config)).
80
+ to eq([mock_disk_1, mock_disk_2])
81
+ end
82
+
83
+ end
84
+
85
+ describe "#attach" do
86
+ it "orchestrates attachment of independent disks to a VM" do
87
+ expect(subject).to receive(:find_disks).and_return([mock_disk_1, mock_disk_2])
88
+ expect(mock_vm).to receive(:attach_independent_disks).
89
+ with([mock_disk_1, mock_disk_2]).
90
+ and_return(true)
91
+ expect(subject.attach(independent_disk_config)).to be_true
92
+ end
93
+ end
94
+
95
+ end
@@ -0,0 +1,111 @@
1
+ require 'spec_helper'
2
+
3
+ describe Vcloud::Launcher::Schema::LAUNCHER_VAPPS do
4
+
5
+ let(:schema) { Vcloud::Launcher::Schema::LAUNCHER_VAPPS }
6
+
7
+ context "independent_disks section is present" do
8
+
9
+ let(:config) do
10
+ { vapps: [
11
+ {
12
+ name: "test_vapp_name",
13
+ vdc_name: "Test VDC",
14
+ catalog_name: "default",
15
+ vapp_template_name: "ubuntu-precise",
16
+ vm: {
17
+ independent_disks: [ { name: 'indydisk-1' }, { name: 'indydisk-2' } ],
18
+ }
19
+ }
20
+ ]
21
+ }
22
+ end
23
+
24
+ it "validates successfully" do
25
+ validation = Vcloud::Core::ConfigValidator.new(:base, config, schema)
26
+ expect(validation.valid?).to be_true
27
+ end
28
+
29
+ end
30
+
31
+ context "independent_disks section is present but not an array" do
32
+
33
+ let(:config) do
34
+ { vapps: [
35
+ {
36
+ name: "test_vapp_name",
37
+ vdc_name: "Test VDC",
38
+ catalog_name: "default",
39
+ vapp_template_name: "ubuntu-precise",
40
+ vm: {
41
+ independent_disks: 'indydisk-1'
42
+ }
43
+ }
44
+ ]
45
+ }
46
+ end
47
+
48
+ it "does not validate successfully" do
49
+ validation = Vcloud::Core::ConfigValidator.new(:base, config, schema)
50
+ expect(validation.valid?).to be_false
51
+ expect(validation.errors).to eq(['independent_disks is not an array'])
52
+ end
53
+
54
+ end
55
+
56
+ context "independent_disks section is present but not an array of hashes" do
57
+
58
+ let(:config) do
59
+ { vapps: [
60
+ {
61
+ name: "test_vapp_name",
62
+ vdc_name: "Test VDC",
63
+ catalog_name: "default",
64
+ vapp_template_name: "ubuntu-precise",
65
+ vm: {
66
+ independent_disks: [ 'indydisk-1', 'indydisk-2' ]
67
+ }
68
+ }
69
+ ]
70
+ }
71
+ end
72
+
73
+ it "does not validate successfully" do
74
+ validation = Vcloud::Core::ConfigValidator.new(:base, config, schema)
75
+ expect(validation.valid?).to be_false
76
+ expect(validation.errors).to eq(
77
+ ['independent_disks: is not a hash', 'independent_disks: is not a hash']
78
+ )
79
+ end
80
+
81
+ end
82
+
83
+ context "independent_disks section is present and a hash, but not contain a :name parameter" do
84
+
85
+ let(:config) do
86
+ { vapps: [
87
+ {
88
+ name: "test_vapp_name",
89
+ vdc_name: "Test VDC",
90
+ catalog_name: "default",
91
+ vapp_template_name: "ubuntu-precise",
92
+ vm: {
93
+ independent_disks: [ { nametypo: 'indydisk-1'} ]
94
+ }
95
+ }
96
+ ]
97
+ }
98
+ end
99
+
100
+ it "does not validate successfully" do
101
+ validation = Vcloud::Core::ConfigValidator.new(:base, config, schema)
102
+ expect(validation.valid?).to be_false
103
+ expect(validation.errors).to eq([
104
+ "independent_disks: parameter 'nametypo' is invalid",
105
+ "independent_disks: missing 'name' parameter"
106
+ ])
107
+ end
108
+
109
+ end
110
+
111
+ end
@@ -12,6 +12,10 @@ describe Vcloud::Launcher::VmOrchestrator do
12
12
  let(:vapp) {
13
13
  double(:vapp, :name => 'web-app1')
14
14
  }
15
+ let(:mock_disk_orchestrator) {
16
+ double(:mock_disk_orchestrator)
17
+ }
18
+
15
19
  subject {
16
20
  Vcloud::Launcher::VmOrchestrator.new(vcloud_vm, vapp)
17
21
  }
@@ -29,6 +33,10 @@ describe Vcloud::Launcher::VmOrchestrator do
29
33
  {:name => 'Hard disk 2', :size => '1024'},
30
34
  {:name => 'Hard disk 3', :size => '2048'},
31
35
  ],
36
+ :independent_disks => [
37
+ {:name => 'test-independent-disk-1' },
38
+ {:name => 'test-independent-disk-2' },
39
+ ],
32
40
  :network_connections => [
33
41
  {:name => "network1", :ip_address => "198.12.1.21"},
34
42
  ],
@@ -47,6 +55,9 @@ describe Vcloud::Launcher::VmOrchestrator do
47
55
  expect(vm).to receive(:update_memory_size_in_mb).with(4096)
48
56
  expect(vm).to receive(:add_extra_disks).with(vm_config[:extra_disks])
49
57
  expect(vm).to receive(:update_metadata).with(vm_config[:metadata])
58
+ expect(Vcloud::Launcher::IndependentDiskOrchestrator).
59
+ to receive(:new).with(vm).and_return(mock_disk_orchestrator)
60
+ expect(mock_disk_orchestrator).to receive(:attach).with(vm_config[:independent_disks])
50
61
 
51
62
  allow(vm).to receive(:configure_guest_customization_section).with('')
52
63
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vcloud-launcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-12-03 00:00:00.000000000 Z
12
+ date: 2014-12-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: vcloud-core
16
- requirement: &7246000 !ruby/object:Gem::Requirement
16
+ requirement: &16107320 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.16.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *7246000
24
+ version_requirements: *16107320
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: gem_publisher
27
- requirement: &7244900 !ruby/object:Gem::Requirement
27
+ requirement: &16106340 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - =
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.2.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *7244900
35
+ version_requirements: *16106340
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: pry
38
- requirement: &7243800 !ruby/object:Gem::Requirement
38
+ requirement: &16105780 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *7243800
46
+ version_requirements: *16105780
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &7242280 !ruby/object:Gem::Requirement
49
+ requirement: &16104580 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *7242280
57
+ version_requirements: *16104580
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rspec
60
- requirement: &7240360 !ruby/object:Gem::Requirement
60
+ requirement: &16103800 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 2.14.1
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *7240360
68
+ version_requirements: *16103800
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rubocop
71
- requirement: &7239760 !ruby/object:Gem::Requirement
71
+ requirement: &16102180 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 0.23.0
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *7239760
79
+ version_requirements: *16102180
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: simplecov
82
- requirement: &7239120 !ruby/object:Gem::Requirement
82
+ requirement: &16192900 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 0.7.1
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *7239120
90
+ version_requirements: *16192900
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: vcloud-tools-tester
93
- requirement: &7137660 !ruby/object:Gem::Requirement
93
+ requirement: &16192100 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,7 +98,7 @@ dependencies:
98
98
  version: 0.2.0
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *7137660
101
+ version_requirements: *16192100
102
102
  description:
103
103
  email:
104
104
  - anna.shipman@digital.cabinet-office.gov.uk
@@ -125,6 +125,7 @@ files:
125
125
  - jenkins_tests.sh
126
126
  - lib/vcloud/launcher.rb
127
127
  - lib/vcloud/launcher/cli.rb
128
+ - lib/vcloud/launcher/independent_disk_orchestrator.rb
128
129
  - lib/vcloud/launcher/launch.rb
129
130
  - lib/vcloud/launcher/preamble.rb
130
131
  - lib/vcloud/launcher/schema/launcher_vapps.rb
@@ -146,9 +147,12 @@ files:
146
147
  - spec/integration/launcher/storage_profile_integration_spec.rb
147
148
  - spec/integration/vcloud_tools_testing_config.yaml.template
148
149
  - spec/spec_helper.rb
150
+ - spec/support/integration_helper.rb
149
151
  - spec/vcloud/launcher/cli_spec.rb
152
+ - spec/vcloud/launcher/independent_disk_orchestrator_spec.rb
150
153
  - spec/vcloud/launcher/launch_spec.rb
151
154
  - spec/vcloud/launcher/preamble_spec.rb
155
+ - spec/vcloud/launcher/schema/launcher_vapps_spec.rb
152
156
  - spec/vcloud/launcher/vapp_orchestrator_spec.rb
153
157
  - spec/vcloud/launcher/vm_orchestrator_spec.rb
154
158
  - vcloud-launcher.gemspec
@@ -173,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
173
177
  version: '0'
174
178
  segments:
175
179
  - 0
176
- hash: 646331227041677497
180
+ hash: 2886844518648342452
177
181
  requirements: []
178
182
  rubyforge_project:
179
183
  rubygems_version: 1.8.11
@@ -193,8 +197,11 @@ test_files:
193
197
  - spec/integration/launcher/storage_profile_integration_spec.rb
194
198
  - spec/integration/vcloud_tools_testing_config.yaml.template
195
199
  - spec/spec_helper.rb
200
+ - spec/support/integration_helper.rb
196
201
  - spec/vcloud/launcher/cli_spec.rb
202
+ - spec/vcloud/launcher/independent_disk_orchestrator_spec.rb
197
203
  - spec/vcloud/launcher/launch_spec.rb
198
204
  - spec/vcloud/launcher/preamble_spec.rb
205
+ - spec/vcloud/launcher/schema/launcher_vapps_spec.rb
199
206
  - spec/vcloud/launcher/vapp_orchestrator_spec.rb
200
207
  - spec/vcloud/launcher/vm_orchestrator_spec.rb