vcloud-launcher 1.0.0 → 1.1.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.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## 1.1.0 (2015-07-09)
2
+
3
+ - Add optional MAC address to the schema for a VM
4
+ - Only run guest customization when there is something to customise
5
+ - Fix bug where OpenStruct must be explicity required
6
+ - Bump dependency on vcloud-core from 1.0.0 to 1.1.0
7
+
1
8
  ## 1.0.0 (2015-01-22)
2
9
 
3
10
  - Release 1.0.0 since the public API is now stable.
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2014 HM Government (Government Digital Service)
3
+ Copyright (c) 2014 Crown Copyright (Government Digital Service)
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy of
6
6
  this software and associated documentation files (the "Software"), to deal in
data/README.md CHANGED
@@ -79,22 +79,34 @@ If you want to be sure you are pinning to 5.1, or use 5.5, you can set the API v
79
79
 
80
80
  `export EXCON_DEBUG=true` - this will print out the API requests and responses.
81
81
 
82
- `export DEBUG=true` - this will show you the stack trace when there is an exception instead of just the message.
83
-
84
82
  ## Testing
85
83
 
86
84
  Run the default suite of tests (e.g. lint, unit, features):
87
85
 
88
86
  bundle exec rake
89
87
 
90
- Run the integration tests (slower and requires a real environment):
91
-
92
- bundle exec rake integration
93
-
94
- Run the integration tests minus some that are very slow:
88
+ There are also integration tests. These are slower and require a real environment.
89
+ See the [vCloud Tools website](http://gds-operations.github.io/vcloud-tools/testing/) for details of how to set up and run the integration tests.
90
+
91
+ The parameters required to run the vCloud Launcher integration tests are:
92
+
93
+ ````
94
+ default: # This is the fog credential that refers to your testing environment, e.g. `test_credential`
95
+ vdc_1_name: # The name of a VDC
96
+ vdc_2_name: # The name of another VDC - you need two in your organisation to run these tests
97
+ catalog: # A catalog
98
+ vapp_template: # A vApp Template within that catalog
99
+ network_1: # The name of the primary network
100
+ network_1_ip: # The IP address of the primary network
101
+ network_2: # The name of a secondary network
102
+ network_2_ip: # The IP address of the secondary network
103
+ storage_profile: # The name of a storage profile (not the default)
104
+ default_storage_profile_name: # The name of the default storage profile
105
+ default_storage_profile_href: # The href of the default storage profile
106
+ vdc_1_storage_profile_href: # The href of `storage_profile` in `vdc_1`
107
+ vdc_2_storage_profile_href: # The href of `storage_profile` in `vdc_2`
108
+ ````
109
+
110
+ There is an additional rake task on vCloud Launcher that runs the integration tests minus some that are very slow:
95
111
 
96
112
  bundle exec rake integration:quick
97
-
98
- You need access to a suitable vCloud Director organization to run the
99
- integration tests. See the [integration tests README](/spec/integration/README.md) for
100
- further details.
@@ -1,3 +1,5 @@
1
+ require 'ostruct'
2
+
1
3
  module Vcloud
2
4
  module Launcher
3
5
  class Preamble
@@ -16,6 +16,7 @@ module Vcloud
16
16
  name: { type: 'string', required: true },
17
17
  ip_address: { type: 'ip_address', required: false },
18
18
  allocation_mode: { type: 'string', required: false },
19
+ mac_address: { type: 'string', required: false },
19
20
  },
20
21
  },
21
22
  },
@@ -1,5 +1,5 @@
1
1
  module Vcloud
2
2
  module Launcher
3
- VERSION = '1.0.0'
3
+ VERSION = '1.1.0'
4
4
  end
5
5
  end
@@ -23,7 +23,7 @@ module Vcloud
23
23
 
24
24
  preamble = vm_config[:bootstrap] ? generate_preamble(vm_config) : ''
25
25
 
26
- @vm.configure_guest_customization_section(preamble)
26
+ @vm.configure_guest_customization_section(preamble) unless preamble.nil? || preamble.empty?
27
27
  end
28
28
 
29
29
  private
@@ -136,8 +136,8 @@ describe Vcloud::Launcher::VmOrchestrator do
136
136
  subject.customize(vm_config_without_bootstrap)
137
137
  end
138
138
 
139
- it "uses an empty string as the host preamble" do
140
- expect(vm).to receive(:configure_guest_customization_section).with('')
139
+ it "skips customization if nothing to customize" do
140
+ expect(vm).not_to receive(:configure_guest_customization_section)
141
141
  subject.customize(vm_config_without_bootstrap)
142
142
  end
143
143
  end
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
 
21
21
  s.required_ruby_version = '>= 1.9.3'
22
22
 
23
- s.add_runtime_dependency 'vcloud-core', '~> 1.0.0'
23
+ s.add_runtime_dependency 'vcloud-core', '~> 1.1.0'
24
24
  s.add_development_dependency 'gem_publisher', '1.2.0'
25
25
  s.add_development_dependency 'pry'
26
26
  s.add_development_dependency 'rake'
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: 1.0.0
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,33 +9,43 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-01-22 00:00:00.000000000 Z
12
+ date: 2015-07-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: vcloud-core
16
- requirement: &18470560 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 1.0.0
21
+ version: 1.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *18470560
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 1.1.0
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: gem_publisher
27
- requirement: &18466940 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
- - - =
35
+ - - '='
31
36
  - !ruby/object:Gem::Version
32
37
  version: 1.2.0
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *18466940
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - '='
44
+ - !ruby/object:Gem::Version
45
+ version: 1.2.0
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: pry
38
- requirement: &18482720 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '0'
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *18482720
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: rake
49
- requirement: &18480680 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: '0'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *18480680
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: rspec
60
- requirement: &18509740 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ~>
@@ -65,10 +85,15 @@ dependencies:
65
85
  version: 2.14.1
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *18509740
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 2.14.1
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: rubocop
71
- requirement: &18506760 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ~>
@@ -76,10 +101,15 @@ dependencies:
76
101
  version: 0.23.0
77
102
  type: :development
78
103
  prerelease: false
79
- version_requirements: *18506760
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 0.23.0
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: simplecov
82
- requirement: &18505720 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
83
113
  none: false
84
114
  requirements:
85
115
  - - ~>
@@ -87,10 +117,15 @@ dependencies:
87
117
  version: 0.7.1
88
118
  type: :development
89
119
  prerelease: false
90
- version_requirements: *18505720
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 0.7.1
91
126
  - !ruby/object:Gem::Dependency
92
127
  name: vcloud-tools-tester
93
- requirement: &18504180 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
94
129
  none: false
95
130
  requirements:
96
131
  - - ~>
@@ -98,7 +133,12 @@ dependencies:
98
133
  version: 1.0.0
99
134
  type: :development
100
135
  prerelease: false
101
- version_requirements: *18504180
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: 1.0.0
102
142
  description:
103
143
  email:
104
144
  - anna.shipman@digital.cabinet-office.gov.uk
@@ -136,7 +176,6 @@ files:
136
176
  - lib/vcloud/launcher/vm_orchestrator.rb
137
177
  - scripts/basic.erb
138
178
  - spec/erb_helper.rb
139
- - spec/integration/README.md
140
179
  - spec/integration/launcher/data/basic_preamble_test.erb
141
180
  - spec/integration/launcher/data/false_cmd
142
181
  - spec/integration/launcher/data/happy_path.yaml.erb
@@ -177,16 +216,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
177
216
  version: '0'
178
217
  segments:
179
218
  - 0
180
- hash: 2975590167556430507
219
+ hash: 3247835755938666789
181
220
  requirements: []
182
221
  rubyforge_project:
183
- rubygems_version: 1.8.11
222
+ rubygems_version: 1.8.23
184
223
  signing_key:
185
224
  specification_version: 3
186
225
  summary: Tool to launch and configure vCloud vApps
187
226
  test_files:
188
227
  - spec/erb_helper.rb
189
- - spec/integration/README.md
190
228
  - spec/integration/launcher/data/basic_preamble_test.erb
191
229
  - spec/integration/launcher/data/false_cmd
192
230
  - spec/integration/launcher/data/happy_path.yaml.erb
@@ -1,40 +0,0 @@
1
- # Running vCloud Launcher Integration Tests
2
-
3
- ## Prerequisites
4
-
5
- - Access to a suitable vCloud Director organisation.
6
-
7
- **NB** It is not safe to run them against an environment that is in use (e.g. production, preview) as
8
- many of the tests clear down all config at the beginning and/or end to ensure the environment is as
9
- the tests expect.
10
-
11
- - A config file with the settings configured.
12
-
13
- There is a [template file](/spec/integration/vcloud_tools_testing_config.yaml.template) to help with this. Copy the template file to `/spec/integration` (i.e. next to the template file) and remove the `.template`. This file will now be ignored by Git and you can safely add the parameters relevant to your environment.
14
-
15
- - You need to include the set-up for your testing environment in your [fog file](https://github.com/gds-operations/vcloud-launcher#credentials).
16
-
17
- - The tests use the [vCloud Tools Tester](http://rubygems.org/gems/vcloud-tools-tester) gem. You do not need to install this, `bundler` will do this for you.
18
-
19
- ## Parameters
20
-
21
- ````
22
- default: # This is the fog credential that refers to your testing environment, e.g. `test_credential`
23
- vdc_1_name: # The name of a VDC
24
- vdc_2_name: # The name of another VDC - you need two in your organisation to run these tests
25
- catalog: # A catalog
26
- vapp_template: # A vApp Template within that catalog
27
- network_1: # The name of the primary network
28
- network_1_ip: # The IP address of the primary network
29
- network_2: # The name of a secondary network
30
- network_2_ip: # The IP address of the secondary network
31
- storage_profile: # The name of a storage profile (not the default)
32
- default_storage_profile_name: # The name of the default storage profile
33
- default_storage_profile_href: # The href of the default storage profile
34
- vdc_1_storage_profile_href: # The href of `storage_profile` in `vdc_1`
35
- vdc_2_storage_profile_href: # The href of `storage_profile` in `vdc_2`
36
- ````
37
-
38
- ## To run the tests
39
-
40
- `FOG_CREDENTIAL=test_credential bundle exec integration`