chef-provisioning-vsphere 2.0.7 → 2.0.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 03c5998bc43727c00125d14f4606ac01a3ee0f20
4
- data.tar.gz: adeb79939b6432484539b9356f131945f3796134
3
+ metadata.gz: 9ac457d36ea3bae1eefdf3dcaba502d925840270
4
+ data.tar.gz: 76a60e37d9861883bc4932074c9f6d80034c2245
5
5
  SHA512:
6
- metadata.gz: 29c3144c3b2456590b965b3de6e6f240170bfa5513d4862f2262ecbf6e7b1d544290e6a6edec657e4835b8fe1bd08ab80dea249c745c804a63c30b904ce30019
7
- data.tar.gz: 8b9956c30bbd487e8649c1a0b76db0b3ae577f7558d9d8ff73313e7c6c93bb70eed88f90a881bc3f899b390c2566e00f4ddac745846735976bb472db10754d89
6
+ metadata.gz: 7996f02f1e180e2375fb790c06a961b8abcd32850085b31adc56e3b7feb12fbc5f6805199112443d143e2404c19c625f133a29922f48afc36d00245aa27bba31
7
+ data.tar.gz: 4e805e07531c27d64143917c094d3037b2e25aa2047ace08b2c2bf2eab8e78529cfc656bce0db161de72ac06d35e8510a14f67015b6ec2817806112be79754ad
data/.rubocop_todo.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2017-04-20 16:38:44 -0500 using RuboCop version 0.47.1.
3
+ # on 2017-10-20 14:57:28 -0700 using RuboCop version 0.49.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
@@ -12,14 +12,13 @@ Lint/AssignmentInCondition:
12
12
  Exclude:
13
13
  - 'lib/chef/provisioning/vsphere_driver/vsphere_helpers.rb'
14
14
 
15
- # Offense count: 2
15
+ # Offense count: 1
16
16
  # Cop supports --auto-correct.
17
17
  # Configuration parameters: EnforcedStyleAlignWith, SupportedStylesAlignWith, AutoCorrect.
18
18
  # SupportedStylesAlignWith: start_of_line, def
19
19
  Lint/DefEndAlignment:
20
20
  Exclude:
21
21
  - 'lib/chef/provisioning/vsphere_driver/driver.rb'
22
- - 'lib/chef/provisioning/vsphere_driver/vsphere_helpers.rb'
23
22
 
24
23
  # Offense count: 1
25
24
  # Cop supports --auto-correct.
@@ -29,21 +28,21 @@ Lint/EndAlignment:
29
28
  Exclude:
30
29
  - 'lib/chef/provisioning/vsphere_driver/driver.rb'
31
30
 
32
- # Offense count: 4
31
+ # Offense count: 6
33
32
  Lint/UselessAssignment:
34
33
  Exclude:
35
34
  - 'lib/chef/provisioning/vsphere_driver/clone_spec_builder.rb'
36
35
  - 'lib/chef/provisioning/vsphere_driver/vsphere_helpers.rb'
37
36
  - 'lib/kitchen/driver/vsphere.rb'
38
37
 
39
- # Offense count: 31
38
+ # Offense count: 34
40
39
  Metrics/AbcSize:
41
40
  Max: 47
42
41
 
43
42
  # Offense count: 1
44
43
  # Configuration parameters: CountComments, ExcludedMethods.
45
44
  Metrics/BlockLength:
46
- Max: 27
45
+ Max: 29
47
46
 
48
47
  # Offense count: 1
49
48
  # Configuration parameters: CountBlocks.
@@ -53,24 +52,24 @@ Metrics/BlockNesting:
53
52
  # Offense count: 3
54
53
  # Configuration parameters: CountComments.
55
54
  Metrics/ClassLength:
56
- Max: 650
55
+ Max: 627
57
56
 
58
- # Offense count: 7
57
+ # Offense count: 11
59
58
  Metrics/CyclomaticComplexity:
60
59
  Max: 12
61
60
 
62
- # Offense count: 89
61
+ # Offense count: 138
63
62
  # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
64
63
  # URISchemes: http, https
65
64
  Metrics/LineLength:
66
65
  Max: 189
67
66
 
68
- # Offense count: 40
67
+ # Offense count: 41
69
68
  # Configuration parameters: CountComments.
70
69
  Metrics/MethodLength:
71
70
  Max: 62
72
71
 
73
- # Offense count: 5
72
+ # Offense count: 8
74
73
  Metrics/PerceivedComplexity:
75
74
  Max: 14
76
75
 
@@ -84,24 +83,13 @@ Style/ClassVars:
84
83
  Exclude:
85
84
  - 'lib/kitchen/driver/vsphere.rb'
86
85
 
87
- # Offense count: 6
88
- Style/Documentation:
89
- Exclude:
90
- - 'spec/**/*'
91
- - 'test/**/*'
92
- - 'lib/chef/provisioning/vsphere_driver.rb'
93
- - 'lib/chef/provisioning/vsphere_driver/clone_spec_builder.rb'
94
- - 'lib/chef/provisioning/vsphere_driver/vsphere_helpers.rb'
95
- - 'lib/chef/provisioning/vsphere_driver/vsphere_url.rb'
96
- - 'lib/kitchen/driver/vsphere.rb'
97
-
98
86
  # Offense count: 5
99
87
  # Configuration parameters: AllowedVariables.
100
88
  Style/GlobalVars:
101
89
  Exclude:
102
90
  - 'lib/chef/provisioning/vsphere_driver/vsphere_helpers.rb'
103
91
 
104
- # Offense count: 12
92
+ # Offense count: 13
105
93
  # Configuration parameters: MinBodyLength.
106
94
  Style/GuardClause:
107
95
  Exclude:
@@ -119,7 +107,7 @@ Style/NestedTernaryOperator:
119
107
  Exclude:
120
108
  - 'lib/chef/provisioning/vsphere_driver/driver.rb'
121
109
 
122
- # Offense count: 5
110
+ # Offense count: 1
123
111
  # Cop supports --auto-correct.
124
112
  # Configuration parameters: AutoCorrect, EnforcedStyle, SupportedStyles.
125
113
  # SupportedStyles: predicate, comparison
@@ -127,7 +115,6 @@ Style/NumericPredicate:
127
115
  Exclude:
128
116
  - 'spec/**/*'
129
117
  - 'lib/chef/provisioning/vsphere_driver/driver.rb'
130
- - 'lib/chef/provisioning/vsphere_driver/vsphere_helpers.rb'
131
118
 
132
119
  # Offense count: 3
133
120
  # Configuration parameters: NamePrefix, NamePrefixBlacklist, NameWhitelist.
data/CHANGELOG.md CHANGED
@@ -1,7 +1,18 @@
1
1
  # Change Log
2
2
 
3
- ## [2.0.7](https://github.com/chef-partners/chef-provisioning-vsphere/tree/2.0.7) (2017-10-19)
4
- [Full Changelog](https://github.com/chef-partners/chef-provisioning-vsphere/compare/v2.0.6...2.0.7)
3
+ ## [2.0.8](https://github.com/chef-partners/chef-provisioning-vsphere/tree/2.0.8) (2017-10-23)
4
+ [Full Changelog](https://github.com/chef-partners/chef-provisioning-vsphere/compare/v2.0.7...2.0.8)
5
+
6
+ **Closed issues:**
7
+
8
+ - Action :destroy fails on powered off VM [\#59](https://github.com/chef-partners/chef-provisioning-vsphere/issues/59)
9
+
10
+ **Merged pull requests:**
11
+
12
+ - rubocop -a && rubocop --auto-gen-config [\#61](https://github.com/chef-partners/chef-provisioning-vsphere/pull/61) ([bemehiser](https://github.com/bemehiser))
13
+
14
+ ## [v2.0.7](https://github.com/chef-partners/chef-provisioning-vsphere/tree/v2.0.7) (2017-10-19)
15
+ [Full Changelog](https://github.com/chef-partners/chef-provisioning-vsphere/compare/v2.0.6...v2.0.7)
5
16
 
6
17
  **Closed issues:**
7
18
 
data/Gemfile CHANGED
@@ -1,4 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  # frozen_string_literal: true
3
- source "https://rubygems.org"
3
+
4
+ source 'https://rubygems.org'
4
5
  gemspec
data/Rakefile CHANGED
@@ -1,40 +1,41 @@
1
1
  # frozen_string_literal: true
2
- require "bundler/gem_tasks"
3
- require "chef/provisioning/vsphere_driver/version"
4
- require "rspec/core/rake_task"
5
- require "rubocop/rake_task"
6
- require "yard"
7
2
 
8
- $LOAD_PATH.unshift(File.dirname(__FILE__) + "/lib")
3
+ require 'bundler/gem_tasks'
4
+ require 'chef/provisioning/vsphere_driver/version'
5
+ require 'rspec/core/rake_task'
6
+ require 'rubocop/rake_task'
7
+ require 'yard'
8
+
9
+ $LOAD_PATH.unshift(File.dirname(__FILE__) + '/lib')
9
10
 
10
11
  RuboCop::RakeTask.new(:style) do |task|
11
- task.options << "--display-cop-names"
12
+ task.options << '--display-cop-names'
12
13
  end
13
14
 
14
15
  RSpec::Core::RakeTask.new(:unit) do |task|
15
- task.pattern = "spec/unit_tests/*_spec.rb"
16
- task.rspec_opts = ["--color", "-f documentation"]
16
+ task.pattern = 'spec/unit_tests/*_spec.rb'
17
+ task.rspec_opts = ['--color', '-f documentation']
17
18
  end
18
19
 
19
20
  RSpec::Core::RakeTask.new(:integration) do |task|
20
- task.pattern = "spec/integration_tests/*_spec.rb"
21
- task.rspec_opts = ["--color", "-f documentation", "--out rspec.txt"]
21
+ task.pattern = 'spec/integration_tests/*_spec.rb'
22
+ task.rspec_opts = ['--color', '-f documentation', '--out rspec.txt']
22
23
  end
23
24
 
24
25
  begin
25
- require "github_changelog_generator/task"
26
+ require 'github_changelog_generator/task'
26
27
 
27
28
  GitHubChangelogGenerator::RakeTask.new :changelog do |config|
28
29
  config.future_release = ChefProvisioningVsphere::VERSION
29
30
  config.issues = true
30
31
  end
31
32
  rescue LoadError
32
- puts "github_changelog_generator is not available. gem install github_changelog_generator to generate changelogs"
33
+ puts 'github_changelog_generator is not available. gem install github_changelog_generator to generate changelogs'
33
34
  end
34
35
 
35
36
  YARD::Rake::YardocTask.new do |t|
36
- t.files = ["lib/**/*.rb"] # optional
37
- t.stats_options = ["--list-undoc"] # optional
37
+ t.files = ['lib/**/*.rb'] # optional
38
+ t.stats_options = ['--list-undoc'] # optional
38
39
  end
39
40
 
40
- task default: [:style, :unit]
41
+ task default: %i[style unit]
@@ -1,37 +1,39 @@
1
1
  # frozen_string_literal: true
2
- $LOAD_PATH.unshift(File.dirname(__FILE__) + "/lib")
3
- require "chef/provisioning/vsphere_driver/version"
4
2
 
3
+ $LOAD_PATH.unshift(File.dirname(__FILE__) + '/lib')
4
+ require 'chef/provisioning/vsphere_driver/version'
5
+
6
+ # rubocop Metrics/ModuleLength
5
7
  Gem::Specification.new do |s|
6
- s.name = "chef-provisioning-vsphere"
8
+ s.name = 'chef-provisioning-vsphere'
7
9
  s.version = ChefProvisioningVsphere::VERSION
8
10
  s.platform = Gem::Platform::RUBY
9
- s.extra_rdoc_files = ["README.md"]
10
- s.summary = "Provisioner for creating vSphere VM instances in Chef Provisioning."
11
+ s.extra_rdoc_files = ['README.md']
12
+ s.summary = 'Provisioner for creating vSphere VM instances in Chef Provisioning.'
11
13
  s.description = s.summary
12
- s.authors = ["CenturyLink Cloud", "JJ Asghar"]
13
- s.email = "jj@chef.io"
14
- s.homepage = "https://github.com/chef-partners/chef-provisioning-vsphere"
15
- s.license = "MIT"
16
- s.bindir = "bin"
17
- s.executables = %w{}
18
- s.require_path = "lib"
14
+ s.authors = ['CenturyLink Cloud', 'JJ Asghar']
15
+ s.email = 'jj@chef.io'
16
+ s.homepage = 'https://github.com/chef-partners/chef-provisioning-vsphere'
17
+ s.license = 'MIT'
18
+ s.bindir = 'bin'
19
+ s.executables = %w[]
20
+ s.require_path = 'lib'
19
21
  s.files = `git ls-files -z`.split("\x0")
20
22
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
21
23
 
22
- s.add_dependency "chef", ">= 12.0", "< 14.0"
23
- s.add_dependency "chef-provisioning", "~> 2.0"
24
- s.add_dependency "cheffish", ">= 4.0", "< 14.0"
25
- s.add_dependency "rbvmomi", "~> 1.10"
24
+ s.add_dependency 'chef', '>= 12.0', '< 14.0'
25
+ s.add_dependency 'chef-provisioning', '~> 2.0'
26
+ s.add_dependency 'cheffish', '>= 4.0', '< 14.0'
27
+ s.add_dependency 'rbvmomi', '~> 1.10'
26
28
 
27
- s.add_development_dependency "chefstyle"
28
- s.add_development_dependency "github_changelog_generator"
29
- s.add_development_dependency "pry"
30
- s.add_development_dependency "pry-byebug"
31
- s.add_development_dependency "pry-stack_explorer"
32
- s.add_development_dependency "rake"
33
- s.add_development_dependency "rb-readline"
34
- s.add_development_dependency "rspec"
35
- s.add_development_dependency "simplecov"
36
- s.add_development_dependency "yard"
29
+ s.add_development_dependency 'chefstyle'
30
+ s.add_development_dependency 'github_changelog_generator'
31
+ s.add_development_dependency 'pry'
32
+ s.add_development_dependency 'pry-byebug'
33
+ s.add_development_dependency 'pry-stack_explorer'
34
+ s.add_development_dependency 'rake'
35
+ s.add_development_dependency 'rb-readline'
36
+ s.add_development_dependency 'rspec'
37
+ s.add_development_dependency 'simplecov'
38
+ s.add_development_dependency 'yard'
37
39
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
- require "chef/provisioning/vsphere_driver"
3
2
 
4
- Chef::Provisioning.register_driver_class("vsphere", ChefProvisioningVsphere::VsphereDriver)
3
+ require 'chef/provisioning/vsphere_driver'
4
+
5
+ Chef::Provisioning.register_driver_class('vsphere', ChefProvisioningVsphere::VsphereDriver)
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
- require "chef/provisioning"
3
- require "chef/provisioning/vsphere_driver/driver"
2
+
3
+ require 'chef/provisioning'
4
+ require 'chef/provisioning/vsphere_driver/driver'
4
5
 
5
6
  # The main Chef class for all the Chef code!
6
7
  class Chef
@@ -78,12 +78,12 @@ module ChefProvisioningVsphere
78
78
  elsif vm_template.config.template && !host.nil?
79
79
  rspec.pool = host.parent.resourcePool # assign to the "invisible" pool root
80
80
  elsif vm_template.config.template
81
- raise "either :host or :resource_pool must be specified when cloning from a VM Template"
81
+ raise 'either :host or :resource_pool must be specified when cloning from a VM Template'
82
82
  end
83
83
 
84
84
  if options[:use_linked_clone]
85
85
  if vm_template.config.template
86
- Chef::Log.warn("Using a VM Template, ignoring use_linked_clone.")
86
+ Chef::Log.warn('Using a VM Template, ignoring use_linked_clone.')
87
87
  else
88
88
  vsphere_helper.create_delta_disk(vm_template)
89
89
  rspec.diskMoveType = :moveChildMostDiskBacking
@@ -105,16 +105,16 @@ module ChefProvisioningVsphere
105
105
  def customization_options_from(vm_template, vm_name, options)
106
106
  if options.key?(:customization_spec)
107
107
  if options[:customization_spec].is_a?(Hash) ||
108
- options[:customization_spec].is_a?(Cheffish::MergedConfig)
108
+ options[:customization_spec].is_a?(Cheffish::MergedConfig)
109
109
  cust_options = options[:customization_spec]
110
110
  ip_settings = cust_options[:ipsettings]
111
111
  cust_domain = cust_options[:domain]
112
112
 
113
- raise ArgumentError, "domain is required" unless cust_domain
113
+ raise ArgumentError, 'domain is required' unless cust_domain
114
114
  cust_ip_settings = nil
115
115
  if ip_settings && ip_settings.key?(:ip)
116
116
  unless cust_options[:ipsettings].key?(:subnetMask)
117
- raise ArgumentError, "subnetMask is required for static ip"
117
+ raise ArgumentError, 'subnetMask is required for static ip'
118
118
  end
119
119
  cust_ip_settings = RbVmomi::VIM::CustomizationIPSettings.new(
120
120
  ip_settings
@@ -145,7 +145,7 @@ module ChefProvisioningVsphere
145
145
  cust_hwclockutc = cust_options[:hw_clock_utc]
146
146
  cust_timezone = cust_options[:time_zone]
147
147
 
148
- cust_prep = if vm_template.config.guestId.start_with?("win")
148
+ cust_prep = if vm_template.config.guestId.start_with?('win')
149
149
  windows_prep_for(options, vm_name)
150
150
  else
151
151
  RbVmomi::VIM::CustomizationLinuxPrep.new(
@@ -158,7 +158,7 @@ module ChefProvisioningVsphere
158
158
  cust_adapter_mapping = [
159
159
  RbVmomi::VIM::CustomizationAdapterMapping.new(
160
160
  adapter: cust_ip_settings
161
- ),
161
+ )
162
162
  ]
163
163
  RbVmomi::VIM::CustomizationSpec.new(
164
164
  identity: cust_prep,
@@ -179,7 +179,7 @@ module ChefProvisioningVsphere
179
179
  hostname = options[:hostname] || vm_name
180
180
  test = /^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])$/
181
181
  unless hostname =~ test
182
- raise "Only letters, numbers or hyphens in hostnames allowed"
182
+ raise 'Only letters, numbers or hyphens in hostnames allowed'
183
183
  end
184
184
  RbVmomi::VIM::CustomizationFixedName.new(name: hostname)
185
185
  end
@@ -200,10 +200,10 @@ module ChefProvisioningVsphere
200
200
  plainText: true,
201
201
  value: options[:ssh][:password]
202
202
  )
203
- if cust_options.key?(:domain) && (cust_options[:domain] != "local")
203
+ if cust_options.key?(:domain) && (cust_options[:domain] != 'local')
204
204
  cust_domain_password = RbVmomi::VIM::CustomizationPassword(
205
205
  plainText: true,
206
- value: ENV["domainAdminPassword"] || cust_options[:domainAdminPassword]
206
+ value: ENV['domainAdminPassword'] || cust_options[:domainAdminPassword]
207
207
  )
208
208
  cust_id = RbVmomi::VIM::CustomizationIdentification.new(
209
209
  joinDomain: cust_options[:domain],
@@ -214,7 +214,7 @@ module ChefProvisioningVsphere
214
214
  with user: #{cust_options[:domainAdmin]}"
215
215
  else
216
216
  cust_id = RbVmomi::VIM::CustomizationIdentification.new(
217
- joinWorkgroup: "WORKGROUP"
217
+ joinWorkgroup: 'WORKGROUP'
218
218
  )
219
219
  end
220
220
  cust_gui_unattended = RbVmomi::VIM::CustomizationGuiUnattended.new(
@@ -1,14 +1,15 @@
1
1
  # frozen_string_literal: true
2
- require "chef"
3
- require "cheffish/merged_config"
4
- require "chef/provisioning/driver"
5
- require "chef/provisioning/machine/windows_machine"
6
- require "chef/provisioning/machine/unix_machine"
7
- require "chef/provisioning/vsphere_driver/clone_spec_builder"
8
- require "chef/provisioning/vsphere_driver/version"
9
- require "chef/provisioning/vsphere_driver/vsphere_helpers"
10
- require "chef/provisioning/vsphere_driver/vsphere_url"
11
- require "chef/provisioning/vsphere_driver/vm_helper"
2
+
3
+ require 'chef'
4
+ require 'cheffish/merged_config'
5
+ require 'chef/provisioning/driver'
6
+ require 'chef/provisioning/machine/windows_machine'
7
+ require 'chef/provisioning/machine/unix_machine'
8
+ require 'chef/provisioning/vsphere_driver/clone_spec_builder'
9
+ require 'chef/provisioning/vsphere_driver/version'
10
+ require 'chef/provisioning/vsphere_driver/vsphere_helpers'
11
+ require 'chef/provisioning/vsphere_driver/vsphere_url'
12
+ require 'chef/provisioning/vsphere_driver/vm_helper'
12
13
 
13
14
  # Provisions machines in vSphere.
14
15
  module ChefProvisioningVsphere
@@ -73,12 +74,12 @@ module ChefProvisioningVsphere
73
74
 
74
75
  uri = URI(driver_url)
75
76
  @connect_options = {
76
- provider: "vsphere",
77
+ provider: 'vsphere',
77
78
  host: uri.host,
78
79
  port: uri.port,
79
80
  use_ssl: uri.use_ssl,
80
81
  insecure: uri.insecure,
81
- path: uri.path,
82
+ path: uri.path
82
83
  }
83
84
 
84
85
  if driver_options
@@ -149,13 +150,13 @@ module ChefProvisioningVsphere
149
150
  )
150
151
  vm = vm_for(machine_spec)
151
152
  if vm
152
- Chef::Log.warn "returning existing machine"
153
+ Chef::Log.warn 'returning existing machine'
153
154
  return vm
154
155
  else
155
156
  Chef::Log.warn machine_msg(
156
157
  machine_spec.name,
157
- machine_spec.location["server_id"],
158
- "no longer exists. Recreating ..."
158
+ machine_spec.location['server_id'],
159
+ 'no longer exists. Recreating ...'
159
160
  )
160
161
  end
161
162
  end
@@ -172,7 +173,7 @@ module ChefProvisioningVsphere
172
173
  action_handler.performed_action(machine_msg(
173
174
  machine_spec.name,
174
175
  vm.config.instanceUuid,
175
- "created"
176
+ 'created'
176
177
  ))
177
178
  vm
178
179
  end
@@ -194,12 +195,12 @@ module ChefProvisioningVsphere
194
195
  # @param [Object] vm taken from Chef provisioning for all the vm state.
195
196
  def add_machine_spec_location(vm, machine_spec)
196
197
  machine_spec.location = {
197
- "driver_url" => driver_url,
198
- "driver_version" => VERSION,
199
- "server_id" => vm.config.instanceUuid,
200
- "is_windows" => is_windows?(vm),
201
- "allocated_at" => Time.now.utc.to_s,
202
- "ipaddress" => vm.guest.ipAddress,
198
+ 'driver_url' => driver_url,
199
+ 'driver_version' => VERSION,
200
+ 'server_id' => vm.config.instanceUuid,
201
+ 'is_windows' => is_windows?(vm),
202
+ 'allocated_at' => Time.now.utc.to_s,
203
+ 'ipaddress' => vm.guest.ipAddress
203
204
  }
204
205
  end
205
206
 
@@ -217,7 +218,7 @@ module ChefProvisioningVsphere
217
218
  Chef::Log.info machine_msg(
218
219
  machine_spec.name,
219
220
  vm.config.instanceUuid,
220
- "already created"
221
+ 'already created'
221
222
  )
222
223
  else
223
224
  vm = clone_vm(
@@ -238,7 +239,7 @@ module ChefProvisioningVsphere
238
239
  bootstrap_options.to_hash.each_pair do |key, value|
239
240
  if value.is_a?(Hash)
240
241
  temp_value = value.clone
241
- temp_value[:password] = "*********" if value.key?(:password)
242
+ temp_value[:password] = '*********' if value.key?(:password)
242
243
  else
243
244
  temp_value = value
244
245
  end
@@ -269,7 +270,7 @@ module ChefProvisioningVsphere
269
270
  vm = start_machine(action_handler, machine_spec, machine_options)
270
271
  if vm.nil?
271
272
  raise "Machine #{machine_spec.name} does not have a server "\
272
- "associated with it, or server does not exist."
273
+ 'associated with it, or server does not exist.'
273
274
  end
274
275
 
275
276
  bootstrap_options = machine_options[:bootstrap_options]
@@ -290,7 +291,7 @@ module ChefProvisioningVsphere
290
291
  end
291
292
 
292
293
  ## Check if true available after added nic
293
- @vm_helper.open_port?(machine_spec.location["ipaddress"], @vm_helper.port) unless machine_spec.location["ipaddress"].nil?
294
+ @vm_helper.open_port?(machine_spec.location['ipaddress'], @vm_helper.port) unless machine_spec.location['ipaddress'].nil?
294
295
  machine
295
296
  end
296
297
 
@@ -311,7 +312,7 @@ module ChefProvisioningVsphere
311
312
  bootstrap_options,
312
313
  vm
313
314
  )
314
- if is_windows?(vm) && !new_nics.nil? && @vm_helper.open_port?(machine_spec.location["ipaddress"], @vm_helper.port)
315
+ if is_windows?(vm) && !new_nics.nil? && @vm_helper.open_port?(machine_spec.location['ipaddress'], @vm_helper.port)
315
316
  new_nics.each do |nic|
316
317
  nic_label = nic.device.deviceInfo.label
317
318
  machine.execute_always(
@@ -340,13 +341,13 @@ module ChefProvisioningVsphere
340
341
  # Customization below may change this to a valid ip
341
342
  wait_until_ready(action_handler, machine_spec, machine_options, vm)
342
343
 
343
- if !machine_spec.location["ipaddress"] || !has_ip?(machine_spec.location["ipaddress"], vm)
344
+ if !machine_spec.location['ipaddress'] || !has_ip?(machine_spec.location['ipaddress'], vm)
344
345
  # find the ip we actually want
345
346
  # this will be the static ip to assign
346
347
  # or the ip reported back by the vm if using dhcp
347
348
  # it *may* be nil if just cloned
348
349
  vm_ip = ip_to_bootstrap(bootstrap_options, vm) || vm.guest.ipAddress
349
- machine_spec.location["ipaddress"] = vm_ip
350
+ machine_spec.location['ipaddress'] = vm_ip
350
351
  transport = nil
351
352
  unless vm_ip.nil?
352
353
  transport = transport_for(machine_spec, bootstrap_options[:ssh], vm_ip)
@@ -355,9 +356,9 @@ module ChefProvisioningVsphere
355
356
  unless !transport.nil? && transport.available? && has_ip?(vm_ip, vm)
356
357
  attempt_ip(machine_options, action_handler, vm, machine_spec)
357
358
  end
358
- machine_spec.location["ipaddress"] = vm_ip # vm.guest.ipAddress vmWare ip_address here can be 0.0.0.0
359
+ machine_spec.location['ipaddress'] = vm_ip # vm.guest.ipAddress vmWare ip_address here can be 0.0.0.0
359
360
  action_handler.report_progress(
360
- "IP address obtained: #{machine_spec.location["ipaddress"]}"
361
+ "IP address obtained: #{machine_spec.location['ipaddress']}"
361
362
  )
362
363
  end
363
364
 
@@ -367,14 +368,14 @@ module ChefProvisioningVsphere
367
368
  wait_for_transport(action_handler, machine_spec, machine_options, vm)
368
369
  rescue Timeout::Error
369
370
  # Only ever reboot once, and only if it's been less than 10 minutes since we stopped waiting
370
- if machine_spec.location["started_at"] ||
371
- remaining_wait_time(machine_spec, machine_options) < -(10 * 60)
371
+ if machine_spec.location['started_at'] ||
372
+ remaining_wait_time(machine_spec, machine_options) < -(10 * 60)
372
373
  raise
373
374
  else
374
375
  Chef::Log.warn(machine_msg(
375
376
  machine_spec.name,
376
377
  vm.config.instanceUuid,
377
- "started but SSH did not come up. Rebooting..."
378
+ 'started but SSH did not come up. Rebooting...'
378
379
  ))
379
380
  restart_server(action_handler, machine_spec, machine_options)
380
381
  wait_until_ready(action_handler, machine_spec, machine_options, vm)
@@ -391,18 +392,18 @@ module ChefProvisioningVsphere
391
392
  # @param [Object] machine_spec The spec required to talk to the VM.
392
393
  def attempt_ip(machine_options, action_handler, vm, machine_spec)
393
394
  vm_ip = ip_to_bootstrap(machine_options[:bootstrap_options], vm)
394
- machine_spec.location["ipaddress"] = vm_ip
395
+ machine_spec.location['ipaddress'] = vm_ip
395
396
 
396
397
  wait_for_ip(vm, machine_options, machine_spec, action_handler)
397
398
 
398
399
  unless has_ip?(vm_ip, vm)
399
- action_handler.report_progress "rebooting..."
400
- if vm.guest.toolsRunningStatus != "guestToolsRunning"
401
- msg = "tools have stopped. current power state is "
400
+ action_handler.report_progress 'rebooting...'
401
+ if vm.guest.toolsRunningStatus != 'guestToolsRunning'
402
+ msg = 'tools have stopped. current power state is '
402
403
  msg << vm.runtime.powerState
403
- msg << " and tools state is "
404
+ msg << ' and tools state is '
404
405
  msg << vm.guest.toolsRunningStatus
405
- msg << ". powering up server..."
406
+ msg << '. powering up server...'
406
407
  action_handler.report_progress(msg)
407
408
  vsphere_helper.start_vm(vm)
408
409
  else
@@ -433,7 +434,7 @@ module ChefProvisioningVsphere
433
434
 
434
435
  return unless domain
435
436
 
436
- if is_windows?(vm) && domain != "local"
437
+ if is_windows?(vm) && domain != 'local'
437
438
  start = Time.now.utc
438
439
  trimmed_name = machine_spec.name.byteslice(0, 15)
439
440
  expected_name = "#{trimmed_name}.#{domain}"
@@ -441,8 +442,8 @@ module ChefProvisioningVsphere
441
442
  "waiting to domain join and be named #{expected_name}"
442
443
  )
443
444
  until (Time.now.utc - start) > 30 ||
444
- (vm.guest.hostName == expected_name)
445
- print "."
445
+ (vm.guest.hostName == expected_name)
446
+ print '.'
446
447
  sleep 5
447
448
  end
448
449
  end
@@ -459,12 +460,12 @@ module ChefProvisioningVsphere
459
460
  ip_to_bootstrap(bootstrap_options, vm)
460
461
  ready_timeout = machine_options[:ready_timeout] || 300
461
462
  msg1 = "waiting up to #{ready_timeout} seconds for customization"
462
- msg2 = " and find #{machine_spec.location["ipaddress"]}" unless machine_spec.location["ipaddress"].nil? # unless vm_ip == vm.guest.ipAddress # RuntimeError: can't modify frozen String
463
+ msg2 = " and find #{machine_spec.location['ipaddress']}" unless machine_spec.location['ipaddress'].nil? # unless vm_ip == vm.guest.ipAddress # RuntimeError: can't modify frozen String
463
464
  msg = [msg1, msg2].join
464
465
  action_handler.report_progress msg
465
466
 
466
467
  vm_ip = ip_to_bootstrap(bootstrap_options, vm) || vm.guest.ipAddress
467
- machine_spec.location["ipaddress"] = vm_ip
468
+ machine_spec.location['ipaddress'] = vm_ip
468
469
  until transport_for(
469
470
  machine_spec,
470
471
  machine_options[:bootstrap_options][:ssh],
@@ -474,7 +475,7 @@ module ChefProvisioningVsphere
474
475
  "IP addresses found: #{all_ips_for(vm)}"
475
476
  )
476
477
  vm_ip = ip_to_bootstrap(bootstrap_options, vm) || vm.guest.ipAddress
477
- machine_spec.location["ipaddress"] = vm_ip
478
+ machine_spec.location['ipaddress'] = vm_ip
478
479
  if has_ip?(vm_ip, vm)
479
480
  transport_for(
480
481
  machine_spec,
@@ -526,7 +527,7 @@ module ChefProvisioningVsphere
526
527
  vsphere_helper.stop_vm(vm, machine_options[:stop_timeout])
527
528
  vm.Destroy_Task.wait_for_completion
528
529
  rescue RbVmomi::Fault => fault
529
- raise fault unless fault.fault.class.wsdl_name == "ManagedObjectNotFound"
530
+ raise fault unless fault.fault.class.wsdl_name == 'ManagedObjectNotFound'
530
531
  ensure
531
532
  machine_spec.location = nil
532
533
  end
@@ -578,7 +579,7 @@ module ChefProvisioningVsphere
578
579
  action_handler.perform_action "restart machine #{machine_spec.name} (#{driver_url})" do
579
580
  stop_machine(action_handler, machine_spec, machine_options)
580
581
  start_machine(action_handler, machine_spec, machine_options)
581
- machine_spec.location["started_at"] = Time.now.utc.to_s
582
+ machine_spec.location['started_at'] = Time.now.utc.to_s
582
583
  end
583
584
  end
584
585
 
@@ -590,24 +591,24 @@ module ChefProvisioningVsphere
590
591
  # @param [Object] _machine_spec The machine spec required to start the VM.
591
592
  # @param [Object] machine Machine object to connect to.
592
593
  def setup_ubuntu_dns(machine, bootstrap_options, _machine_spec)
593
- host_lookup = machine.execute_always("host google.com")
594
+ host_lookup = machine.execute_always('host google.com')
594
595
  if host_lookup.exitstatus != 0
595
- if host_lookup.stdout.include?("setlocale: LC_ALL")
596
- machine.execute_always("locale-gen en_US && update-locale LANG=en_US")
596
+ if host_lookup.stdout.include?('setlocale: LC_ALL')
597
+ machine.execute_always('locale-gen en_US && update-locale LANG=en_US')
597
598
  end
598
599
  distro = machine.execute_always("lsb_release -i | sed -e 's/Distributor ID://g'").stdout.strip
599
600
  Chef::Log.info "Found distro:#{distro}"
600
- if distro == "Ubuntu"
601
- distro_version = machine.execute_always("lsb_release -r | sed -e s/[^0-9.]//g").stdout.strip.to_f
601
+ if distro == 'Ubuntu'
602
+ distro_version = machine.execute_always('lsb_release -r | sed -e s/[^0-9.]//g').stdout.strip.to_f
602
603
  Chef::Log.info "Found distro version:#{distro_version}"
603
604
  if distro_version >= 12.04
604
- Chef::Log.info "Ubuntu version 12.04 or greater. Need to patch DNS."
605
- interfaces_file = "/etc/network/interfaces"
606
- nameservers = bootstrap_options[:customization_spec][:ipsettings][:dnsServerList].join(" ")
605
+ Chef::Log.info 'Ubuntu version 12.04 or greater. Need to patch DNS.'
606
+ interfaces_file = '/etc/network/interfaces'
607
+ nameservers = bootstrap_options[:customization_spec][:ipsettings][:dnsServerList].join(' ')
607
608
  machine.execute_always("if ! cat #{interfaces_file} | grep -q dns-search ; then echo 'dns-search #{bootstrap_options[:customization_spec][:domain]}' >> #{interfaces_file} ; fi")
608
609
  machine.execute_always("if ! cat #{interfaces_file} | grep -q dns-nameservers ; then echo 'dns-nameservers #{nameservers}' >> #{interfaces_file} ; fi")
609
- machine.execute_always("/etc/init.d/networking restart")
610
- machine.execute_always("apt-get -qq update")
610
+ machine.execute_always('/etc/init.d/networking restart')
611
+ machine.execute_always('apt-get -qq update')
611
612
  end
612
613
  end
613
614
  end
@@ -632,22 +633,22 @@ module ChefProvisioningVsphere
632
633
  end
633
634
 
634
635
  def remaining_wait_time(machine_spec, machine_options)
635
- if machine_spec.location["started_at"]
636
+ if machine_spec.location['started_at']
636
637
  (machine_options[:start_timeout] || 600) -
637
- (Time.now.utc - Time.parse(machine_spec.location["started_at"]))
638
+ (Time.now.utc - Time.parse(machine_spec.location['started_at']))
638
639
  else
639
640
  (machine_options[:create_timeout] || 600) -
640
- (Time.now.utc - Time.parse(machine_spec.location["allocated_at"]))
641
+ (Time.now.utc - Time.parse(machine_spec.location['allocated_at']))
641
642
  end
642
643
  end
643
644
 
644
645
  def wait_until_ready(action_handler, machine_spec, machine_options, vm)
645
- if vm.guest.toolsRunningStatus != "guestToolsRunning"
646
+ if vm.guest.toolsRunningStatus != 'guestToolsRunning'
646
647
  if action_handler.should_perform_actions
647
648
  action_handler.report_progress "waiting for #{machine_spec.name} (#{vm.config.instanceUuid} on #{driver_url}) to be ready ..."
648
649
  until remaining_wait_time(machine_spec, machine_options) < 0 ||
649
- (vm.guest.toolsRunningStatus == "guestToolsRunning" && vm.guest.ipAddress && !vm.guest.ipAddress.empty?)
650
- print "."
650
+ (vm.guest.toolsRunningStatus == 'guestToolsRunning' && vm.guest.ipAddress && !vm.guest.ipAddress.empty?)
651
+ print '.'
651
652
  sleep 5
652
653
  end
653
654
  action_handler.report_progress "#{machine_spec.name} is now ready"
@@ -657,7 +658,7 @@ module ChefProvisioningVsphere
657
658
 
658
659
  def vm_for(machine_spec)
659
660
  if machine_spec.location
660
- vsphere_helper.find_vm_by_id(machine_spec.location["server_id"])
661
+ vsphere_helper.find_vm_by_id(machine_spec.location['server_id'])
661
662
  end
662
663
  end
663
664
 
@@ -686,7 +687,7 @@ module ChefProvisioningVsphere
686
687
  size = size.to_i
687
688
  next if size == 0
688
689
  if bootstrap_options[:datastore].to_s.empty?
689
- raise ":datastore must be specified when adding a disk to a cloned vm"
690
+ raise ':datastore must be specified when adding a disk to a cloned vm'
690
691
  end
691
692
  task = vm.ReconfigVM_Task(
692
693
  spec: RbVmomi::VIM.VirtualMachineConfigSpec(
@@ -695,7 +696,7 @@ module ChefProvisioningVsphere
695
696
  vm,
696
697
  bootstrap_options[:datastore],
697
698
  size
698
- ),
699
+ )
699
700
  ]
700
701
  )
701
702
  )
@@ -730,7 +731,7 @@ module ChefProvisioningVsphere
730
731
  )
731
732
  strategy = convergence_strategy_for(machine_spec, machine_options)
732
733
 
733
- if machine_spec.location["is_windows"]
734
+ if machine_spec.location['is_windows']
734
735
  Chef::Provisioning::Machine::WindowsMachine.new(
735
736
  machine_spec, transport, strategy
736
737
  )
@@ -743,13 +744,13 @@ module ChefProvisioningVsphere
743
744
 
744
745
  def is_windows?(vm)
745
746
  return false if vm.nil?
746
- vm.config.guestId.start_with?("win")
747
+ vm.config.guestId.start_with?('win')
747
748
  end
748
749
 
749
750
  def convergence_strategy_for(machine_spec, machine_options)
750
- require "chef/provisioning/convergence_strategy/install_msi"
751
- require "chef/provisioning/convergence_strategy/install_cached"
752
- require "chef/provisioning/convergence_strategy/no_converge"
751
+ require 'chef/provisioning/convergence_strategy/install_msi'
752
+ require 'chef/provisioning/convergence_strategy/install_cached'
753
+ require 'chef/provisioning/convergence_strategy/no_converge'
753
754
 
754
755
  mopts = machine_options[:convergence_options].to_hash.dup
755
756
  if mopts[:chef_server]
@@ -763,7 +764,7 @@ module ChefProvisioningVsphere
763
764
  )
764
765
  end
765
766
 
766
- if machine_spec.location["is_windows"]
767
+ if machine_spec.location['is_windows']
767
768
  Chef::Provisioning::ConvergenceStrategy::InstallMsi.new(
768
769
  mopts, config
769
770
  )
@@ -791,7 +792,7 @@ module ChefProvisioningVsphere
791
792
  action_handler.report_progress "waiting for #{machine_spec.name} (#{vm.config.instanceUuid} on #{driver_url}) to be connectable (transport up and running) ..."
792
793
 
793
794
  until remaining_wait_time(machine_spec, machine_options) < 0 || transport.available?
794
- print "."
795
+ print '.'
795
796
  sleep 5
796
797
  end
797
798
 
@@ -808,9 +809,9 @@ module ChefProvisioningVsphere
808
809
  def transport_for(
809
810
  machine_spec,
810
811
  remoting_options,
811
- ip = machine_spec.location["ipaddress"]
812
+ ip = machine_spec.location['ipaddress']
812
813
  )
813
- if machine_spec.location["is_windows"]
814
+ if machine_spec.location['is_windows']
814
815
  create_winrm_transport(ip, remoting_options)
815
816
  else
816
817
  create_ssh_transport(ip, remoting_options)
@@ -822,7 +823,7 @@ module ChefProvisioningVsphere
822
823
  # @param [String] host The host the VM is connecting to
823
824
  # @param [Object] options Options that are required to connect to the host from Chef-Provisioning
824
825
  def create_winrm_transport(host, options)
825
- require "chef/provisioning/transport/winrm"
826
+ require 'chef/provisioning/transport/winrm'
826
827
  winrm_transport = if options[:port] == 5986
827
828
  :ssl
828
829
  else
@@ -831,7 +832,7 @@ module ChefProvisioningVsphere
831
832
  port = options[:port] || @vm_helper.port
832
833
  winrm_options = {
833
834
  user: (options[:user]).to_s,
834
- pass: options[:password],
835
+ pass: options[:password]
835
836
  }
836
837
  if options[:winrm_opts].nil?
837
838
  opt = options[:user].include?('\\') ? :disable_sspi : :basic_auth_only
@@ -855,14 +856,14 @@ module ChefProvisioningVsphere
855
856
  # @param [String] host The host the VM is connecting to
856
857
  # @param [Object] options Options that are required to connect to the host from Chef-Provisioning
857
858
  def create_ssh_transport(host, options)
858
- require "chef/provisioning/transport/ssh"
859
+ require 'chef/provisioning/transport/ssh'
859
860
  ssh_user = options[:user]
860
861
  options = options.each_with_object({}) { |(k, v), memo| memo[k.to_sym] = v; }
861
862
  Chef::Provisioning::Transport::SSH.new(
862
863
  host,
863
864
  ssh_user,
864
865
  options.to_hash,
865
- @config[:machine_options][:sudo] ? { prefix: "sudo " } : {},
866
+ @config[:machine_options][:sudo] ? { prefix: 'sudo ' } : {},
866
867
  config
867
868
  )
868
869
  end
@@ -881,7 +882,7 @@ module ChefProvisioningVsphere
881
882
  else
882
883
  ## Check if true available
883
884
  vm_ip = bootstrap_options[:customization_spec][:ipsettings][:ip] unless vm_helper.ip?
884
- print "." until @vm_helper.open_port?(vm_ip, @vm_helper.port, 1)
885
+ print '.' until @vm_helper.open_port?(vm_ip, @vm_helper.port, 1)
885
886
  end
886
887
  else
887
888
  if use_ipv4_during_bootstrap?(bootstrap_options)
@@ -920,18 +921,18 @@ module ChefProvisioningVsphere
920
921
  # @param [Object] vm The VM object from Chef-Provisioning
921
922
  def wait_for_ipv4(timeout, vm)
922
923
  sleep_time = 5
923
- print "Waiting for ipv4 address."
924
+ print 'Waiting for ipv4 address.'
924
925
  tries = 0
925
926
  start_search_ip = true
926
927
  max_tries = timeout > sleep_time ? timeout / sleep_time : 1
927
928
  while start_search_ip && (tries += 1) <= max_tries
928
- print "."
929
+ print '.'
929
930
  sleep sleep_time
930
931
  vm_ip = vm.guest.ipAddress if vm_guest_ip?(vm)
931
932
  start_search_ip = false if @vm_helper.open_port?(vm_ip, @vm_helper.port, 1)
932
933
  end
933
- raise "Timed out waiting for ipv4 address!" if tries > max_tries
934
- puts "Found ipv4 address!"
934
+ raise 'Timed out waiting for ipv4 address!' if tries > max_tries
935
+ puts 'Found ipv4 address!'
935
936
  true
936
937
  end
937
938
 
@@ -939,7 +940,7 @@ module ChefProvisioningVsphere
939
940
  #
940
941
  # @param [Object] vm The VM object from Chef-Provisioning
941
942
  def vm_guest_ip?(vm)
942
- vm.guest.guestState == "running" && vm.guest.toolsRunningStatus == "guestToolsRunning" && !vm.guest.ipAddress.nil? && IPAddr.new(vm.guest.ipAddress).ipv4?
943
+ vm.guest.guestState == 'running' && vm.guest.toolsRunningStatus == 'guestToolsRunning' && !vm.guest.ipAddress.nil? && IPAddr.new(vm.guest.ipAddress).ipv4?
943
944
  end
944
945
  end
945
946
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: false
2
+
2
3
  # Provisions machines in vSphere.
3
4
  module ChefProvisioningVsphere
4
5
  # The version of this awesome Gem. BOOM.
5
- VERSION = "2.0.7".freeze
6
+ VERSION = '2.0.8'.freeze
6
7
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
- require "chef/provisioning/driver"
2
+
3
+ require 'chef/provisioning/driver'
3
4
 
4
5
  # Provisions machines in vSphere.
5
6
  module ChefProvisioningVsphere
@@ -36,16 +37,16 @@ module ChefProvisioningVsphere
36
37
  def find_port?(vm, options)
37
38
  @port = options[:ssh][:port]
38
39
  customization_spec = options[:customization_spec]
39
- if vm.config.guestId.start_with?("win")
40
+ if vm.config.guestId.start_with?('win')
40
41
  if customization_spec.is_a?(Hash)
41
42
  winrm_transport =
42
43
  customization_spec[:winrm_transport].nil? ? :negotiate : customization_spec[:winrm_transport].to_sym
43
44
  end
44
45
  winrm_transport ||= :negotiate
45
- default_win_port = winrm_transport == :ssl ? "5986" : "5985"
46
+ default_win_port = winrm_transport == :ssl ? '5986' : '5985'
46
47
  @port = default_win_port if @port.nil?
47
48
  elsif port.nil?
48
- @port = "22"
49
+ @port = '22'
49
50
  end
50
51
  true
51
52
  end
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
- require "rbvmomi"
3
- require "uri"
4
- require "net/http"
2
+
3
+ require 'rbvmomi'
4
+ require 'uri'
5
+ require 'net/http'
5
6
 
6
7
  # Provisions machines in vSphere.
7
8
  module ChefProvisioningVsphere
@@ -70,7 +71,7 @@ module ChefProvisioningVsphere
70
71
  # @param [Object] _wait_on_port Defaults to port 22, to connect and verify it's up.
71
72
  def start_vm(vm, _wait_on_port = 22)
72
73
  state = vm.runtime.powerState
73
- vm.PowerOnVM_Task.wait_for_completion unless state == "poweredOn"
74
+ vm.PowerOnVM_Task.wait_for_completion unless state == 'poweredOn'
74
75
  end
75
76
 
76
77
  # Stops the VM
@@ -79,12 +80,12 @@ module ChefProvisioningVsphere
79
80
  # @param [Object] timeout Defaults to 600 seconds or 10 mins before giving up.
80
81
  def stop_vm(vm, timeout = 600)
81
82
  start = Time.now.utc
82
- return if vm.runtime.powerState == "poweredOff"
83
+ return if vm.runtime.powerState == 'poweredOff'
83
84
  begin
84
85
  vm.ShutdownGuest
85
86
  until (Time.now.utc - start) > timeout ||
86
- vm.runtime.powerState == "poweredOff"
87
- print "."
87
+ vm.runtime.powerState == 'poweredOff'
88
+ print '.'
88
89
  sleep 2
89
90
  end
90
91
  rescue
@@ -99,9 +100,9 @@ module ChefProvisioningVsphere
99
100
  def find_folder(folder_name)
100
101
  base = datacenter.vmFolder
101
102
  unless folder_name.nil?
102
- folder_name.split("/").reject(&:empty?).each do |item|
103
+ folder_name.split('/').reject(&:empty?).each do |item|
103
104
  base = base.find(item, RbVmomi::VIM::Folder) ||
104
- raise("vSphere Folder not found [#{folder_name}]")
105
+ raise("vSphere Folder not found [#{folder_name}]")
105
106
  end
106
107
  end
107
108
  base
@@ -151,7 +152,7 @@ module ChefProvisioningVsphere
151
152
  )
152
153
  device = RbVmomi::VIM::VirtualVmxnet3(
153
154
  backing: backing_info,
154
- deviceInfo: RbVmomi::VIM::Description(label: network_label, summary: network_name.split("/").last),
155
+ deviceInfo: RbVmomi::VIM::Description(label: network_label, summary: network_name.split('/').last),
155
156
  key: device_key,
156
157
  connectable: connectable
157
158
  )
@@ -179,10 +180,10 @@ module ChefProvisioningVsphere
179
180
 
180
181
  if deviceAdditions.count > 0
181
182
  current_networks = find_ethernet_cards_for(vm).map { |card| network_id_for(card.backing) }
182
- new_devices = deviceAdditions.select { |device| !current_networks.include?(network_id_for(device.device.backing)) }
183
+ new_devices = deviceAdditions.reject { |device| current_networks.include?(network_id_for(device.device.backing)) }
183
184
 
184
185
  if new_devices.count > 0
185
- action_handler.report_progress "Adding extra NICs"
186
+ action_handler.report_progress 'Adding extra NICs'
186
187
  task = vm.ReconfigVM_Task(spec: RbVmomi::VIM.VirtualMachineConfigSpec(deviceChange: new_devices))
187
188
  task.wait_for_completion
188
189
  new_devices
@@ -211,7 +212,7 @@ module ChefProvisioningVsphere
211
212
  deviceChange: [
212
213
  {
213
214
  operation: :remove,
214
- device: disk,
215
+ device: disk
215
216
  },
216
217
  {
217
218
  operation: :add,
@@ -220,9 +221,9 @@ module ChefProvisioningVsphere
220
221
  new_disk.backing = new_disk.backing.dup
221
222
  new_disk.backing.fileName = "[#{disk.backing.datastore.name}]"
222
223
  new_disk.backing.parent = disk.backing
223
- end,
224
- },
225
- ],
224
+ end
225
+ }
226
+ ]
226
227
  }
227
228
  vm_template.ReconfigVM_Task(spec: spec).wait_for_completion
228
229
  end
@@ -242,7 +243,7 @@ module ChefProvisioningVsphere
242
243
  key: idx,
243
244
  backing: RbVmomi::VIM.VirtualDiskFlatVer2BackingInfo(
244
245
  fileName: "[#{datastore}]",
245
- diskMode: "persistent",
246
+ diskMode: 'persistent',
246
247
  thinProvisioned: true
247
248
  ),
248
249
  capacityInKB: size_gb * 1024 * 1024,
@@ -271,14 +272,14 @@ module ChefProvisioningVsphere
271
272
  backing_info = backing_info_for(action_handler, networks[i])
272
273
  if card = cards.shift
273
274
  key = card.key
274
- operation = RbVmomi::VIM::VirtualDeviceConfigSpecOperation("edit")
275
+ operation = RbVmomi::VIM::VirtualDeviceConfigSpecOperation('edit')
275
276
  action_handler.report_progress "changing template nic for #{networks[i]}"
276
277
  changes.push(
277
278
  network_adapter_for(operation, networks[i], label, key, backing_info)
278
279
  )
279
280
  else
280
281
  key += 1
281
- operation = RbVmomi::VIM::VirtualDeviceConfigSpecOperation("add")
282
+ operation = RbVmomi::VIM::VirtualDeviceConfigSpecOperation('add')
282
283
  action_handler.report_progress "will be adding nic for #{networks[i]}"
283
284
  additions.push(
284
285
  network_adapter_for(operation, networks[i], label, key, backing_info)
@@ -293,7 +294,7 @@ module ChefProvisioningVsphere
293
294
  # @param [Object] action_handler TODO
294
295
  # @param [String] network_name The network name to attach to
295
296
  def backing_info_for(action_handler, network_name)
296
- action_handler.report_progress("finding networks...")
297
+ action_handler.report_progress('finding networks...')
297
298
  network = find_network(network_name)
298
299
  action_handler.report_progress(
299
300
  "network: #{network_name} is a #{network.class}"
@@ -308,7 +309,7 @@ module ChefProvisioningVsphere
308
309
  )
309
310
  else
310
311
  RbVmomi::VIM::VirtualEthernetCardNetworkBackingInfo(
311
- deviceName: network_name.split("/").last
312
+ deviceName: network_name.split('/').last
312
313
  )
313
314
  end
314
315
  end
@@ -325,11 +326,11 @@ module ChefProvisioningVsphere
325
326
  # @param [String] name The name of the "thing."
326
327
  # @param [String] parent_folder The name of the folder to start from.
327
328
  def find_entity(name, parent_folder)
328
- parts = name.split("/").reject(&:empty?)
329
+ parts = name.split('/').reject(&:empty?)
329
330
  parts.each do |item|
330
331
  Chef::Log.debug("Identifying entity part: #{item} in folder type: #{parent_folder.class}")
331
332
  if parent_folder.is_a? RbVmomi::VIM::Folder
332
- Chef::Log.debug("Parent folder is a folder")
333
+ Chef::Log.debug('Parent folder is a folder')
333
334
  parent_folder = parent_folder.childEntity.find { |f| f.name == item }
334
335
  else
335
336
  parent_folder = yield(parent_folder, item)
@@ -393,7 +394,7 @@ module ChefProvisioningVsphere
393
394
  # @param [String] name Name of the Network.
394
395
  def find_network(name)
395
396
  base = datacenter.networkFolder
396
- entity_array = name.split("/").reject(&:empty?)
397
+ entity_array = name.split('/').reject(&:empty?)
397
398
  entity_array.each do |item|
398
399
  case base
399
400
  when RbVmomi::VIM::Folder
@@ -446,8 +447,8 @@ module ChefProvisioningVsphere
446
447
 
447
448
  req = Net::HTTP::Put.new("#{uri.path}?#{uri.query}")
448
449
  req.body_stream = File.open(local)
449
- req["Content-Type"] = "application/octet-stream"
450
- req["Content-Length"] = size
450
+ req['Content-Type'] = 'application/octet-stream'
451
+ req['Content-Length'] = size
451
452
  res = http.request(req)
452
453
  unless res.is_a?(Net::HTTPSuccess)
453
454
  raise "Error: #{res.inspect} :: #{res.body} :: sending #{local} to #{remote} at #{vm.name} via #{endpoint} with a size of #{size}"
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: false
2
- require "uri"
2
+
3
+ require 'uri'
3
4
 
4
5
  # The main URI Module
5
6
  module URI
@@ -8,20 +9,20 @@ module URI
8
9
  # Default port for connecting to the vSphere cluster Webserver
9
10
  DEFAULT_PORT = 443
10
11
  # Default path for connecting to the vSphere cluster URL
11
- DEFAULT_PATH = "/sdk".freeze
12
+ DEFAULT_PATH = '/sdk'.freeze
12
13
 
13
14
  # Creates the URL from options that are decided
14
15
  #
15
16
  def self.from_config(options)
16
17
  parts = []
17
- parts << "vsphere://"
18
+ parts << 'vsphere://'
18
19
  parts << options[:host]
19
- parts << ":"
20
+ parts << ':'
20
21
  parts << (options[:port] || DEFAULT_PORT)
21
22
  parts << (options[:path] || DEFAULT_PATH)
22
- parts << "?use_ssl="
23
+ parts << '?use_ssl='
23
24
  parts << (options[:use_ssl] == false ? false : true)
24
- parts << "&insecure="
25
+ parts << '&insecure='
25
26
  parts << (options[:insecure] || false)
26
27
  URI parts.join
27
28
  end
@@ -30,10 +31,10 @@ module URI
30
31
  #
31
32
  def use_ssl
32
33
  if query
33
- ssl_query = query.split("&").each.select do |q|
34
- q.start_with?("use_ssl=")
34
+ ssl_query = query.split('&').each.select do |q|
35
+ q.start_with?('use_ssl=')
35
36
  end.first
36
- ssl_query == "use_ssl=true"
37
+ ssl_query == 'use_ssl=true'
37
38
  else
38
39
  true
39
40
  end
@@ -43,14 +44,14 @@ module URI
43
44
  #
44
45
  def insecure
45
46
  if query
46
- insecure_query = query.split("&").each.select do |q|
47
- q.start_with?("insecure=")
47
+ insecure_query = query.split('&').each.select do |q|
48
+ q.start_with?('insecure=')
48
49
  end.first
49
- insecure_query == "insecure=true"
50
+ insecure_query == 'insecure=true'
50
51
  else
51
52
  false
52
53
  end
53
54
  end
54
55
  end
55
- @@schemes["VSPHERE"] = VsphereUrl
56
+ @@schemes['VSPHERE'] = VsphereUrl
56
57
  end
@@ -1,8 +1,9 @@
1
1
  # frozen_string_literal: true
2
- require "json"
3
- require "kitchen"
4
- require "chef/provisioning/vsphere_driver"
5
- require "chef/provisioning/machine_spec"
2
+
3
+ require 'json'
4
+ require 'kitchen'
5
+ require 'chef/provisioning/vsphere_driver'
6
+ require 'chef/provisioning/machine_spec'
6
7
 
7
8
  # Main Kitchen Module
8
9
  module Kitchen
@@ -20,14 +21,14 @@ module Kitchen
20
21
  bootstrap_options: {
21
22
  use_linked_clone: true,
22
23
  ssh: {
23
- user: "root",
24
+ user: 'root',
24
25
  paranoid: false,
25
- port: 22,
26
+ port: 22
26
27
  },
27
28
  convergence_options: {},
28
29
  customization_spec: {
29
- domain: "local",
30
- },
30
+ domain: 'local'
31
+ }
31
32
  }
32
33
 
33
34
  default_config(:vsphere_name) do |driver|
@@ -46,8 +47,8 @@ module Kitchen
46
47
  machine = with_provisioning_driver(state) do |action_handler, driver, machine_spec|
47
48
  driver.allocate_machine(action_handler, machine_spec, config[:machine_options])
48
49
  driver.ready_machine(action_handler, machine_spec, config[:machine_options])
49
- state[:server_id] = machine_spec.location["server_id"]
50
- state[:hostname] = machine_spec.location["ipaddress"]
50
+ state[:server_id] = machine_spec.location['server_id']
51
+ state[:hostname] = machine_spec.location['ipaddress']
51
52
  machine_spec.save(action_handler)
52
53
  end
53
54
  end
@@ -59,8 +60,8 @@ module Kitchen
59
60
  return if state[:server_id].nil?
60
61
 
61
62
  with_provisioning_driver(state) do |action_handler, driver, machine_spec|
62
- machine_spec.location = { "driver_url" => driver.driver_url,
63
- "server_id" => state[:server_id] }
63
+ machine_spec.location = { 'driver_url' => driver.driver_url,
64
+ 'server_id' => state[:server_id] }
64
65
  driver.destroy_machine(action_handler, machine_spec, config[:machine_options])
65
66
  end
66
67
 
@@ -93,7 +94,7 @@ module Kitchen
93
94
  unless @@chef_zero_server
94
95
  Chef::Config.local_mode = true
95
96
  Chef::Config.chef_repo_path = Chef::Config.find_chef_repo_path(Dir.pwd)
96
- require "chef/local_mode"
97
+ require 'chef/local_mode'
97
98
  Chef::LocalMode.setup_server_connectivity
98
99
  @@chef_zero_server = true
99
100
  end
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: 2.0.7
4
+ version: 2.0.8
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-10-19 00:00:00.000000000 Z
12
+ date: 2017-10-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: chef