kitchen-vsphere 0.1.0.alpha.2 → 0.2.0.dev
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 +7 -0
- data/CHANGELOG.md +7 -2
- data/kitchen-vsphere.gemspec +1 -0
- data/lib/kitchen/driver/vsphere.rb +25 -7
- data/lib/kitchen/driver/vsphere_version.rb +1 -1
- metadata +34 -32
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: df4f18e157e77b6791c40d11da505a8ab10c2041
|
|
4
|
+
data.tar.gz: 6864359fe65db00d50cd829f705f6d4a3d8079ab
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: c2c6abd45a9c27fb2baa49dea1952b43fb329841640465b9325d20f6e9aa4ccefc58549115a5593913e7b04ce6f17273bb5886ac25220c8159b75419fa0e0718
|
|
7
|
+
data.tar.gz: 5e0d7bc21597160b9530aadcbca3f3f3f9633df1079dfab119f961d6632186ad44fb3a505c5f374cd34def9db2c28809abeac7e3d6766497125c7656e3331344
|
data/CHANGELOG.md
CHANGED
data/kitchen-vsphere.gemspec
CHANGED
|
@@ -22,6 +22,7 @@ require 'kitchen'
|
|
|
22
22
|
require 'etc'
|
|
23
23
|
require 'ipaddr'
|
|
24
24
|
require 'socket'
|
|
25
|
+
require 'timeout'
|
|
25
26
|
|
|
26
27
|
module Kitchen
|
|
27
28
|
module Driver
|
|
@@ -33,14 +34,27 @@ module Kitchen
|
|
|
33
34
|
default_config :use_ipv6, false
|
|
34
35
|
default_config :upload_public_ssh_key, true
|
|
35
36
|
|
|
37
|
+
def wait_for_sshd_updating_ip(state, server)
|
|
38
|
+
begin
|
|
39
|
+
state[:hostname] = server.public_ip_address
|
|
40
|
+
timeout(5) {
|
|
41
|
+
wait_for_sshd(state[:hostname], config[:username],
|
|
42
|
+
{ :port => config[:port] })
|
|
43
|
+
info "SSH connected to #{state[:hostname]}:#{config[:port]}"
|
|
44
|
+
}
|
|
45
|
+
rescue Timeout::Error
|
|
46
|
+
server = compute.servers.get(state[:server_id])
|
|
47
|
+
retry if server
|
|
48
|
+
raise ActionFailed, 'Server deleted'
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
36
52
|
def create(state)
|
|
37
53
|
config[:server_name] ||= generate_name(instance.name)
|
|
38
54
|
server = create_server(state)
|
|
39
|
-
state
|
|
40
|
-
wait_for_sshd(state[:hostname], config[:username],
|
|
41
|
-
{ :port => config[:port] }) ; info '(ssh ready)'
|
|
55
|
+
wait_for_sshd_updating_ip(state, server)
|
|
42
56
|
if config[:upload_public_ssh_key]
|
|
43
|
-
upload_public_ssh_key(state, config
|
|
57
|
+
upload_public_ssh_key(state, config)
|
|
44
58
|
end
|
|
45
59
|
rescue ::Fog::Errors::Error, Excon::Errors::Error => ex
|
|
46
60
|
raise ActionFailed, ex.message
|
|
@@ -81,8 +95,12 @@ module Kitchen
|
|
|
81
95
|
clone_results = compute.vm_clone(server_configed)
|
|
82
96
|
server = compute.servers.get(clone_results['new_vm']['id'])
|
|
83
97
|
state[:server_id] = server.id
|
|
84
|
-
|
|
85
|
-
|
|
98
|
+
state[:server_vmname] = server.name
|
|
99
|
+
info "VSphere instance <#{server.id}>, '#{server.name}' created."
|
|
100
|
+
server.wait_for {
|
|
101
|
+
print '.'
|
|
102
|
+
tools_state != 'toolsNotRunning' && public_ip_address
|
|
103
|
+
}
|
|
86
104
|
puts "\n(server ready)"
|
|
87
105
|
server
|
|
88
106
|
end
|
|
@@ -108,7 +126,7 @@ module Kitchen
|
|
|
108
126
|
pieces.join sep
|
|
109
127
|
end
|
|
110
128
|
|
|
111
|
-
def upload_public_ssh_key(state, config
|
|
129
|
+
def upload_public_ssh_key(state, config)
|
|
112
130
|
ssh = ::Fog::SSH.new(state[:hostname], config[:username],
|
|
113
131
|
{ :password => config[:password] })
|
|
114
132
|
pub_key = open(config[:public_key_path]).read
|
metadata
CHANGED
|
@@ -1,94 +1,97 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kitchen-vsphere
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
5
|
-
prerelease: 6
|
|
4
|
+
version: 0.2.0.dev
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Matt Wrock
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date: 2014-
|
|
11
|
+
date: 2014-12-10 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: test-kitchen
|
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
none: false
|
|
18
16
|
requirements:
|
|
19
|
-
- - ~>
|
|
17
|
+
- - "~>"
|
|
20
18
|
- !ruby/object:Gem::Version
|
|
21
19
|
version: '1.0'
|
|
22
20
|
type: :runtime
|
|
23
21
|
prerelease: false
|
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
-
none: false
|
|
26
23
|
requirements:
|
|
27
|
-
- - ~>
|
|
24
|
+
- - "~>"
|
|
28
25
|
- !ruby/object:Gem::Version
|
|
29
26
|
version: '1.0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: rbvmomi
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0'
|
|
30
41
|
- !ruby/object:Gem::Dependency
|
|
31
42
|
name: fog
|
|
32
43
|
requirement: !ruby/object:Gem::Requirement
|
|
33
|
-
none: false
|
|
34
44
|
requirements:
|
|
35
|
-
- -
|
|
45
|
+
- - ">="
|
|
36
46
|
- !ruby/object:Gem::Version
|
|
37
47
|
version: '0'
|
|
38
48
|
type: :runtime
|
|
39
49
|
prerelease: false
|
|
40
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
-
none: false
|
|
42
51
|
requirements:
|
|
43
|
-
- -
|
|
52
|
+
- - ">="
|
|
44
53
|
- !ruby/object:Gem::Version
|
|
45
54
|
version: '0'
|
|
46
55
|
- !ruby/object:Gem::Dependency
|
|
47
56
|
name: cane
|
|
48
57
|
requirement: !ruby/object:Gem::Requirement
|
|
49
|
-
none: false
|
|
50
58
|
requirements:
|
|
51
|
-
- -
|
|
59
|
+
- - ">="
|
|
52
60
|
- !ruby/object:Gem::Version
|
|
53
61
|
version: '0'
|
|
54
62
|
type: :development
|
|
55
63
|
prerelease: false
|
|
56
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
-
none: false
|
|
58
65
|
requirements:
|
|
59
|
-
- -
|
|
66
|
+
- - ">="
|
|
60
67
|
- !ruby/object:Gem::Version
|
|
61
68
|
version: '0'
|
|
62
69
|
- !ruby/object:Gem::Dependency
|
|
63
70
|
name: tailor
|
|
64
71
|
requirement: !ruby/object:Gem::Requirement
|
|
65
|
-
none: false
|
|
66
72
|
requirements:
|
|
67
|
-
- -
|
|
73
|
+
- - ">="
|
|
68
74
|
- !ruby/object:Gem::Version
|
|
69
75
|
version: '0'
|
|
70
76
|
type: :development
|
|
71
77
|
prerelease: false
|
|
72
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
73
|
-
none: false
|
|
74
79
|
requirements:
|
|
75
|
-
- -
|
|
80
|
+
- - ">="
|
|
76
81
|
- !ruby/object:Gem::Version
|
|
77
82
|
version: '0'
|
|
78
83
|
- !ruby/object:Gem::Dependency
|
|
79
84
|
name: countloc
|
|
80
85
|
requirement: !ruby/object:Gem::Requirement
|
|
81
|
-
none: false
|
|
82
86
|
requirements:
|
|
83
|
-
- -
|
|
87
|
+
- - ">="
|
|
84
88
|
- !ruby/object:Gem::Version
|
|
85
89
|
version: '0'
|
|
86
90
|
type: :development
|
|
87
91
|
prerelease: false
|
|
88
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
89
|
-
none: false
|
|
90
93
|
requirements:
|
|
91
|
-
- -
|
|
94
|
+
- - ">="
|
|
92
95
|
- !ruby/object:Gem::Version
|
|
93
96
|
version: '0'
|
|
94
97
|
description: A Test Kitchen Driver for VMWare vShere
|
|
@@ -98,9 +101,9 @@ executables: []
|
|
|
98
101
|
extensions: []
|
|
99
102
|
extra_rdoc_files: []
|
|
100
103
|
files:
|
|
101
|
-
- .gitignore
|
|
102
|
-
- .tailor
|
|
103
|
-
- .travis.yml
|
|
104
|
+
- ".gitignore"
|
|
105
|
+
- ".tailor"
|
|
106
|
+
- ".travis.yml"
|
|
104
107
|
- CHANGELOG.md
|
|
105
108
|
- Gemfile
|
|
106
109
|
- LICENSE
|
|
@@ -112,27 +115,26 @@ files:
|
|
|
112
115
|
homepage: https://github.com/mwrock/kitchen-vsphere
|
|
113
116
|
licenses:
|
|
114
117
|
- Apache 2.0
|
|
118
|
+
metadata: {}
|
|
115
119
|
post_install_message:
|
|
116
120
|
rdoc_options: []
|
|
117
121
|
require_paths:
|
|
118
122
|
- lib
|
|
119
123
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
120
|
-
none: false
|
|
121
124
|
requirements:
|
|
122
|
-
- -
|
|
125
|
+
- - ">="
|
|
123
126
|
- !ruby/object:Gem::Version
|
|
124
127
|
version: '0'
|
|
125
128
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
126
|
-
none: false
|
|
127
129
|
requirements:
|
|
128
|
-
- -
|
|
130
|
+
- - ">"
|
|
129
131
|
- !ruby/object:Gem::Version
|
|
130
132
|
version: 1.3.1
|
|
131
133
|
requirements: []
|
|
132
134
|
rubyforge_project:
|
|
133
|
-
rubygems_version:
|
|
135
|
+
rubygems_version: 2.4.1
|
|
134
136
|
signing_key:
|
|
135
|
-
specification_version:
|
|
137
|
+
specification_version: 4
|
|
136
138
|
summary: A Test Kitchen Driver for VMWare vShere
|
|
137
139
|
test_files: []
|
|
138
140
|
has_rdoc:
|