chef-provisioning-vsphere 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 12ba7fbf37a51f31c3b8b68e89f3a51e34bf4f0d
4
- data.tar.gz: 9b9811130753d077b67621f679c6270bab93599f
3
+ metadata.gz: 289ce4f36eb3464e0dee8507d8dce304be531298
4
+ data.tar.gz: 8ee5162a4546e66817898e591863afdfae034b3a
5
5
  SHA512:
6
- metadata.gz: 308c22bf77b75fc8edb36110ebc200cdc1df69efa690ab56290f616323b1b7d19e071e644ae3cb18510457778b6d3afbcfbe6cb3b6502e9cb21a8766176b667a
7
- data.tar.gz: dbdac821a238acf564e0902a9c352ab97dfd9a70942986d4c3530a8c51edd1ee4f93a82a8dbff496c4e47f6bddab5962df84153922cdd224dd35952737924615
6
+ metadata.gz: 8bd7374ef470c24daf2eb2145b6243a93794b6c40a454c9995e75c497dd5f8acdf0d0723259a901c71c42b31a0d2383878bd35a08457192390c45fab7d7ccb1a
7
+ data.tar.gz: b350176f887d25256b507ba0f66ef38a87a6b856854a471d9c694e305481d59587e9b83a7925d0c4f00b88830e5a4045fcdb13fd21e98b87aff40636c28820d6
@@ -1,6 +1,6 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2017-04-17 14:46:47 -0500 using RuboCop version 0.47.1.
3
+ # on 2017-04-20 16:38:44 -0500 using RuboCop version 0.47.1.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
@@ -36,10 +36,15 @@ Lint/UselessAssignment:
36
36
  - 'lib/chef/provisioning/vsphere_driver/vsphere_helpers.rb'
37
37
  - 'lib/kitchen/driver/vsphere.rb'
38
38
 
39
- # Offense count: 30
39
+ # Offense count: 31
40
40
  Metrics/AbcSize:
41
41
  Max: 47
42
42
 
43
+ # Offense count: 1
44
+ # Configuration parameters: CountComments, ExcludedMethods.
45
+ Metrics/BlockLength:
46
+ Max: 27
47
+
43
48
  # Offense count: 1
44
49
  # Configuration parameters: CountBlocks.
45
50
  Metrics/BlockNesting:
@@ -48,19 +53,19 @@ Metrics/BlockNesting:
48
53
  # Offense count: 3
49
54
  # Configuration parameters: CountComments.
50
55
  Metrics/ClassLength:
51
- Max: 571
56
+ Max: 599
52
57
 
53
- # Offense count: 6
58
+ # Offense count: 7
54
59
  Metrics/CyclomaticComplexity:
55
60
  Max: 12
56
61
 
57
- # Offense count: 87
62
+ # Offense count: 89
58
63
  # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
59
64
  # URISchemes: http, https
60
65
  Metrics/LineLength:
61
66
  Max: 189
62
67
 
63
- # Offense count: 38
68
+ # Offense count: 40
64
69
  # Configuration parameters: CountComments.
65
70
  Metrics/MethodLength:
66
71
  Max: 62
@@ -5,4 +5,6 @@ branches:
5
5
  - master
6
6
  rvm:
7
7
  - 2.3.2
8
- script: bundle exec rake style
8
+ script:
9
+ - bundle exec rake style
10
+ - bundle exec rake spec
@@ -1,10 +1,25 @@
1
1
  # Change Log
2
2
 
3
- ## [1.0.0](https://github.com/chef-partners/chef-provisioning-vsphere/tree/1.0.0) (2017-04-17)
4
- [Full Changelog](https://github.com/chef-partners/chef-provisioning-vsphere/compare/v0.8.1...1.0.0)
3
+ ## [1.1.0](https://github.com/chef-partners/chef-provisioning-vsphere/tree/1.1.0) (2017-04-20)
4
+ [Full Changelog](https://github.com/chef-partners/chef-provisioning-vsphere/compare/v1.0.0...1.1.0)
5
+
6
+ **Closed issues:**
7
+
8
+ - Skip bootstrap after provisioning [\#6](https://github.com/chef-partners/chef-provisioning-vsphere/issues/6)
9
+
10
+ **Merged pull requests:**
11
+
12
+ - document reqd fields for sysprep [\#11](https://github.com/chef-partners/chef-provisioning-vsphere/pull/11) ([nealbrown](https://github.com/nealbrown))
13
+ - Updated some depenant gems [\#10](https://github.com/chef-partners/chef-provisioning-vsphere/pull/10) ([jjasghar](https://github.com/jjasghar))
14
+ - Metalseargolid feature/ipv4 bootstrap [\#8](https://github.com/chef-partners/chef-provisioning-vsphere/pull/8) ([jjasghar](https://github.com/jjasghar))
15
+ - Add proxy support [\#7](https://github.com/chef-partners/chef-provisioning-vsphere/pull/7) ([jjasghar](https://github.com/jjasghar))
16
+
17
+ ## [v1.0.0](https://github.com/chef-partners/chef-provisioning-vsphere/tree/v1.0.0) (2017-04-17)
18
+ [Full Changelog](https://github.com/chef-partners/chef-provisioning-vsphere/compare/v0.8.1...v1.0.0)
5
19
 
6
20
  **Merged pull requests:**
7
21
 
22
+ - v1.0.0 release [\#4](https://github.com/chef-partners/chef-provisioning-vsphere/pull/4) ([jjasghar](https://github.com/jjasghar))
8
23
  - Added links to the README [\#3](https://github.com/chef-partners/chef-provisioning-vsphere/pull/3) ([jjasghar](https://github.com/jjasghar))
9
24
  - Cleanup for new release [\#2](https://github.com/chef-partners/chef-provisioning-vsphere/pull/2) ([jjasghar](https://github.com/jjasghar))
10
25
  - ensure machine\_options and configs are symbolised for chef13 [\#1](https://github.com/chef-partners/chef-provisioning-vsphere/pull/1) ([jjlimepoint](https://github.com/jjlimepoint))
data/README.md CHANGED
@@ -87,6 +87,8 @@ This will use chef-zero and needs no chef server (only works for ssh). Note that
87
87
  - `[:host]` - `{cluster}`/`{host}` to use during provisioning
88
88
  - `[:resource_pool]` - `{cluster}`/`{resource pool}` to use during provisioning
89
89
  - `[:additional_disk_size_gb]` - an array of numbers, each signifying the number of gigabytes to assign to an additional disk (*this requires a datastore to be specified*)
90
+ - `[:bootstrap_ipv4]` - `true` / `false`, set to `true` to wait for an IPv4 address to become available before bootstrapping.
91
+ - `[:ipv4_timeout]` - use with `[:bootstrap_ipv4]`, set the time in seconds to wait before an IPv4 address is received (defaults to 30)
90
92
  - `[:ssh][:user]` user to use for ssh/winrm (defaults to root on linux/administrator on windows)
91
93
  - `[:ssh][:password]` - password to use for ssh/winrm
92
94
  - `[:ssh][:paranoid]` - specifies the strictness of the host key verification checking
@@ -149,6 +151,7 @@ with_machine_options :bootstrap_options => {
149
151
  ```
150
152
 
151
153
  ### Domain joined windows machine
154
+ NOTE: customization_spec `org_name` and `product_id` are required for sysprep Windows machines.
152
155
 
153
156
  ```ruby
154
157
  with_machine_options :bootstrap_options => {
@@ -21,11 +21,17 @@ Gem::Specification.new do |s|
21
21
  s.files = `git ls-files -z`.split("\x0")
22
22
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
23
23
 
24
- s.add_dependency 'rbvmomi', '~> 1.8.0', '>= 1.8.2'
25
- s.add_dependency 'chef-provisioning', '~>2.0', '>= 2.0.1'
24
+ s.add_dependency 'rbvmomi', '~> 1.10'
25
+ s.add_dependency 'chef-provisioning', '~> 2.0'
26
26
  s.add_dependency 'github_changelog_generator'
27
+ s.add_dependency 'chef', '~> 12'
28
+ s.add_dependency 'cheffish', '~> 4'
27
29
 
28
30
  s.add_development_dependency 'rspec'
29
31
  s.add_development_dependency 'rake'
30
32
  s.add_development_dependency 'chefstyle'
33
+ s.add_development_dependency 'pry'
34
+ s.add_development_dependency 'pry-byebug'
35
+ s.add_development_dependency 'pry-stack_explorer'
36
+ s.add_development_dependency 'rb-readline'
31
37
  end
@@ -730,8 +730,39 @@ module ChefProvisioningVsphere
730
730
  bootstrap_options[:customization_spec][:ipsettings][:ip]
731
731
  end
732
732
  else
733
+ if use_ipv4_during_bootstrap?(bootstrap_options)
734
+ wait_for_ipv4(bootstrap_ip_timeout(bootstrap_options), vm)
735
+ end
733
736
  vm.guest.ipAddress
734
737
  end
735
738
  end
739
+
740
+ def use_ipv4_during_bootstrap?(bootstrap_options)
741
+ if bootstrap_options.key?(:bootstrap_ipv4)
742
+ return bootstrap_options[:bootstrap_ipv4] == true
743
+ end
744
+ false
745
+ end
746
+
747
+ def bootstrap_ip_timeout(bootstrap_options)
748
+ if bootstrap_options.key?(:ipv4_timeout)
749
+ return bootstrap_options[:ipv4_timeout].to_i
750
+ end
751
+ 30
752
+ end
753
+
754
+ def wait_for_ipv4(timeout, vm)
755
+ sleep_time = 5
756
+ print 'Waiting for ipv4 address.'
757
+ tries = 0
758
+ max_tries = timeout > sleep_time ? timeout / sleep_time : 1
759
+ while (vm.guest.ipAddress.nil? || !IPAddr.new(vm.guest.ipAddress).ipv4?) && (tries += 1) <= max_tries
760
+ print '.'
761
+ sleep sleep_time
762
+ end
763
+ raise 'Timed out waiting for ipv4 address!' if tries > max_tries && !IPAddr.new(vm.guest.ipAddress).ipv4?
764
+ puts 'Found ipv4 address!'
765
+ true
766
+ end
736
767
  end
737
768
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module ChefProvisioningVsphere
3
- VERSION = '1.0.0'.freeze
3
+ VERSION = '1.1.0'
4
4
  end
@@ -1,11 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
  require 'rbvmomi'
3
+ require 'uri'
4
+ require 'net/http'
3
5
 
4
6
  module ChefProvisioningVsphere
5
7
  class VsphereHelper
6
8
  $guest_op_managers = {} unless $guest_op_managers
7
9
 
8
10
  def initialize(connect_options, datacenter_name)
11
+ http = Net::HTTP.new(connect_options[:host], connect_options[:port])
12
+ if http.proxy?
13
+ connect_options[:proxyHost] = http.proxy_address
14
+ connect_options[:proxyPort] = http.proxy_port
15
+ end
9
16
  @connect_options = connect_options
10
17
  @datacenter_name = datacenter_name
11
18
  end
@@ -4,7 +4,7 @@ require 'uri'
4
4
  module URI
5
5
  class VsphereUrl < Generic
6
6
  DEFAULT_PORT = 443
7
- DEFAULT_PATH = '/sdk'.freeze
7
+ DEFAULT_PATH = '/sdk'
8
8
 
9
9
  def self.from_config(options)
10
10
  parts = []
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef-provisioning-vsphere
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - CenturyLink Cloud
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-04-17 00:00:00.000000000 Z
12
+ date: 2017-04-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rbvmomi
@@ -17,20 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: 1.8.0
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 1.8.2
20
+ version: '1.10'
24
21
  type: :runtime
25
22
  prerelease: false
26
23
  version_requirements: !ruby/object:Gem::Requirement
27
24
  requirements:
28
25
  - - "~>"
29
26
  - !ruby/object:Gem::Version
30
- version: 1.8.0
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 1.8.2
27
+ version: '1.10'
34
28
  - !ruby/object:Gem::Dependency
35
29
  name: chef-provisioning
36
30
  requirement: !ruby/object:Gem::Requirement
@@ -38,9 +32,6 @@ dependencies:
38
32
  - - "~>"
39
33
  - !ruby/object:Gem::Version
40
34
  version: '2.0'
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: 2.0.1
44
35
  type: :runtime
45
36
  prerelease: false
46
37
  version_requirements: !ruby/object:Gem::Requirement
@@ -48,9 +39,6 @@ dependencies:
48
39
  - - "~>"
49
40
  - !ruby/object:Gem::Version
50
41
  version: '2.0'
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: 2.0.1
54
42
  - !ruby/object:Gem::Dependency
55
43
  name: github_changelog_generator
56
44
  requirement: !ruby/object:Gem::Requirement
@@ -65,6 +53,34 @@ dependencies:
65
53
  - - ">="
66
54
  - !ruby/object:Gem::Version
67
55
  version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: chef
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '12'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '12'
70
+ - !ruby/object:Gem::Dependency
71
+ name: cheffish
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '4'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '4'
68
84
  - !ruby/object:Gem::Dependency
69
85
  name: rspec
70
86
  requirement: !ruby/object:Gem::Requirement
@@ -107,6 +123,62 @@ dependencies:
107
123
  - - ">="
108
124
  - !ruby/object:Gem::Version
109
125
  version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: pry
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ - !ruby/object:Gem::Dependency
141
+ name: pry-byebug
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ - !ruby/object:Gem::Dependency
155
+ name: pry-stack_explorer
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ - !ruby/object:Gem::Dependency
169
+ name: rb-readline
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ type: :development
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
110
182
  description: Provisioner for creating vSphere VM instances in Chef Provisioning.
111
183
  email: jj@chef.io
112
184
  executables: []