kitchen-vra 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +1 -0
- data/lib/kitchen/driver/vra.rb +9 -5
- data/lib/kitchen/driver/vra_version.rb +1 -1
- data/spec/vra_spec.rb +17 -8
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 809c8cf566e76098fd34ca3428983d631d4e4170
|
|
4
|
+
data.tar.gz: f4863346038f89134bd1d9de0c60184abfeebed5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dd0290ce381d0adfda2ea38de3d34afcf346e4a28c6692a7ad0f1c29e05ea84323e454ad55d26669f4378284c19d59e4c8f83e2266596f6bba5fd9f0691a8245
|
|
7
|
+
data.tar.gz: 97e02008a31a9a84e0e109b2bc873e18abf9f4bfe791d43f9beec8f563d74ded8c263f6e46e1ff11a645adc11dd986944a84432ed3617d5589b9ec2c44f23b2e
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# kitchen-vra Changelog
|
|
2
|
+
|
|
3
|
+
## v1.1.0 (2015-10-13)
|
|
4
|
+
* New `use_dns` option (defaults to false) for the driver to use the server name instead of the IP address - thanks to @stevehedrick in PR [#3](https://github.com/chef-partners/kitchen-vra/pull/3)
|
|
5
|
+
|
|
6
|
+
## v1.1.0
|
|
7
|
+
* Initial reelase
|
|
8
|
+
|
data/README.md
CHANGED
|
@@ -57,6 +57,7 @@ Other options that you can set include:
|
|
|
57
57
|
* **requested_for**: the vRA login ID to list as the owner of this resource. Defaults to the vRA username configured in the `driver` section.
|
|
58
58
|
* **subtenant_id**: the Business Group ID to list as the owner. This is required if the catalog item is a shared/global item; we are unable to determine the subtenant_id from the catalog, and vRA requires it to be set on every request.
|
|
59
59
|
* **private_key_path**: path to the SSH private key to use when logging in. Defaults to '~/.ssh/id_rsa' or '~/.ssh/id_dsa', preferring the RSA key. Only applies to instances where SSH transport is used (i.e. does not apply to Windows hosts with the WinRM transport configured).
|
|
60
|
+
* **use_dns**: Defaults to `false`. Set to `true` if vRA doesn't manage vm ip addresses. This will cause kitchen to attempt to connect via hostname.
|
|
60
61
|
|
|
61
62
|
These settings can be set globally under the top-level `driver` section, or they can be set on each platform, which allows you to set globals and then override them. For example, this configuration would set the CPU count to 1 except on the "large" platform:
|
|
62
63
|
|
data/lib/kitchen/driver/vra.rb
CHANGED
|
@@ -50,6 +50,7 @@ module Kitchen
|
|
|
50
50
|
file if File.exist?(file)
|
|
51
51
|
end.compact.first
|
|
52
52
|
end
|
|
53
|
+
default_config :use_dns, false
|
|
53
54
|
|
|
54
55
|
def name
|
|
55
56
|
'vRA'
|
|
@@ -60,11 +61,14 @@ module Kitchen
|
|
|
60
61
|
|
|
61
62
|
server = request_server
|
|
62
63
|
state[:resource_id] = server.id
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
64
|
+
if config[:use_dns]
|
|
65
|
+
raise 'No server name returned for the vRA request' if server.name.nil?
|
|
66
|
+
state[:hostname] = server.name
|
|
67
|
+
else
|
|
68
|
+
raise 'No IP address returned for the vRA request' if server.ip_addresses.first.nil?
|
|
69
|
+
state[:hostname] = server.ip_addresses.first
|
|
70
|
+
end
|
|
71
|
+
state[:ssh_key] = config[:private_key_path] unless config[:private_key_path].nil?
|
|
68
72
|
|
|
69
73
|
wait_for_server(state, server)
|
|
70
74
|
info("Server #{server.id} (#{server.name}) ready.")
|
data/spec/vra_spec.rb
CHANGED
|
@@ -41,7 +41,8 @@ describe Kitchen::Driver::Vra do
|
|
|
41
41
|
requested_for: 'override_user@corp.local',
|
|
42
42
|
notes: 'some notes',
|
|
43
43
|
subtenant_id: '160b473a-0ec9-473d-8156-28dd96c0b6b7',
|
|
44
|
-
lease_days: 5
|
|
44
|
+
lease_days: 5,
|
|
45
|
+
use_dns: false
|
|
45
46
|
}
|
|
46
47
|
end
|
|
47
48
|
|
|
@@ -102,16 +103,24 @@ describe Kitchen::Driver::Vra do
|
|
|
102
103
|
expect(state[:resource_id]).to eq('e8706351-cf4c-4c12-acb7-c90cc683b22c')
|
|
103
104
|
end
|
|
104
105
|
|
|
105
|
-
describe '
|
|
106
|
-
context 'when
|
|
107
|
-
|
|
108
|
-
|
|
106
|
+
describe 'setting the hostname in the state hash' do
|
|
107
|
+
context 'when use_dns is true' do
|
|
108
|
+
let(:config) { { use_dns: true } }
|
|
109
|
+
it 'raises an exception if the server name is nil' do
|
|
110
|
+
allow(resource).to receive(:name).and_return(nil)
|
|
109
111
|
expect { driver.create(state) }.to raise_error(RuntimeError)
|
|
110
112
|
end
|
|
113
|
+
it 'uses the server name as the hostname' do
|
|
114
|
+
driver.create(state)
|
|
115
|
+
expect(state[:hostname]).to eq('server1')
|
|
116
|
+
end
|
|
111
117
|
end
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
118
|
+
context 'when use_dns is false' do
|
|
119
|
+
it 'raises an exception if no IP address is available' do
|
|
120
|
+
allow(resource).to receive(:ip_addresses).and_return([])
|
|
121
|
+
expect { driver.create(state) }.to raise_error(RuntimeError)
|
|
122
|
+
end
|
|
123
|
+
it 'uses the IP address as the hostname' do
|
|
115
124
|
driver.create(state)
|
|
116
125
|
expect(state[:hostname]).to eq('1.2.3.4')
|
|
117
126
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kitchen-vra
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Chef Partner Engineering
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-
|
|
11
|
+
date: 2015-10-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: test-kitchen
|
|
@@ -123,6 +123,7 @@ extra_rdoc_files: []
|
|
|
123
123
|
files:
|
|
124
124
|
- ".gitignore"
|
|
125
125
|
- ".rubocop.yml"
|
|
126
|
+
- CHANGELOG.md
|
|
126
127
|
- Gemfile
|
|
127
128
|
- LICENSE.txt
|
|
128
129
|
- README.md
|
|
@@ -152,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
152
153
|
version: '0'
|
|
153
154
|
requirements: []
|
|
154
155
|
rubyforge_project:
|
|
155
|
-
rubygems_version: 2.4.
|
|
156
|
+
rubygems_version: 2.4.8
|
|
156
157
|
signing_key:
|
|
157
158
|
specification_version: 4
|
|
158
159
|
summary: A Test Kitchen driver for VMware vRealize Automation (vRA)
|