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.
@@ -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
@@ -1,3 +1,8 @@
1
- ## 0.1.0 / Unreleased
1
+ ## 0.1.0
2
2
 
3
- * Initial release
3
+ * Initial release
4
+
5
+ ## 0.2.0 /unreleased
6
+
7
+ * Wait for public IP address
8
+ * Retry for a good IP address
@@ -19,6 +19,7 @@ Gem::Specification.new do |gem|
19
19
  gem.require_paths = ["lib"]
20
20
 
21
21
  gem.add_dependency 'test-kitchen', '~> 1.0'
22
+ gem.add_dependency 'rbvmomi'
22
23
  gem.add_dependency 'fog'
23
24
 
24
25
  gem.add_development_dependency 'cane'
@@ -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[:hostname] = server.ipaddress
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, server)
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
- info "VSphere instance <#{state[:server_id]}> created."
85
- server.wait_for { print '.'; tools_state != 'toolsNotRunning' }
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, server)
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
@@ -21,6 +21,6 @@ module Kitchen
21
21
  module Driver
22
22
 
23
23
  # Version string for vsphere Test Kitchen driver
24
- VSPHERE_VERSION = '0.1.0.alpha.2'
24
+ VSPHERE_VERSION = '0.2.0.dev'
25
25
  end
26
26
  end
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.1.0.alpha.2
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-05-13 00:00:00.000000000 Z
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: 1.8.28
135
+ rubygems_version: 2.4.1
134
136
  signing_key:
135
- specification_version: 3
137
+ specification_version: 4
136
138
  summary: A Test Kitchen Driver for VMWare vShere
137
139
  test_files: []
138
140
  has_rdoc: