vmpooler 0.6.3 → 0.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3ae2494365a5cecad598897da93f73c7ba874e17
4
- data.tar.gz: 5a9d13f8e6e4ca78c7e0a9f3375fa5f11ada986b
3
+ metadata.gz: c403c53a6038b04983f7e569db7fa023342a122e
4
+ data.tar.gz: d2963647b75462426fdcd06fb72ddace3a9ddc49
5
5
  SHA512:
6
- metadata.gz: 4401a2f81fca41982af4b800f0be09174f1a154ab0a655d0c8386c04ac27b93e222697b317b8e06344743b05f750207c3470a93bac5976ee8489c25eab1fb45b
7
- data.tar.gz: 8d862b2a402fb285bf5a7343db1618a9344df340b1b8abb7e6baf4e5fbe47505bff4cb6df879d6b0ac04be9caca6fd5d1fefc76b793ddc8b5069ac477343f54a
6
+ metadata.gz: 779e193b7410a7eeb3ac7b260cb0f152be63f9331b2be1355d05fdc3051f7c31b5d3f96bd3a445ae82ab52a0e5fd78a3d70090b09adb21942f8ef20dfec782f0
7
+ data.tar.gz: 5fed4e3e8d2f7010a138b44bf39a2346eb58327e713fcf9c6154038c33967f24d7120f8157216747ee98664728f43dc53582d5fddce85f2c14ce7ed31d5e05be
@@ -829,6 +829,10 @@ module Vmpooler
829
829
  if config['domain']
830
830
  result[params[:hostname]]['domain'] = config['domain']
831
831
  end
832
+
833
+ result[params[:hostname]]['host'] = rdata['host'] if rdata['host']
834
+ result[params[:hostname]]['migrated'] = rdata['migrated'] if rdata['migrated']
835
+
832
836
  end
833
837
 
834
838
  JSON.pretty_generate(result)
@@ -312,7 +312,7 @@ module Vmpooler
312
312
  # Put the VM in the specified folder and resource pool
313
313
  relocate_spec = RbVmomi::VIM.VirtualMachineRelocateSpec(
314
314
  datastore: find_datastore(target_datastore, connection, target_datacenter_name),
315
- diskMoveType: :moveChildMostDiskBacking
315
+ diskMoveType: get_disk_backing(pool)
316
316
  )
317
317
 
318
318
  manage_host_selection = @config[:config]['manage_host_selection'] if @config[:config].key?('manage_host_selection')
@@ -939,6 +939,7 @@ module Vmpooler
939
939
  begin
940
940
  connection = ensured_vsphere_connection(pool_object)
941
941
  vm_hash = get_vm_details(pool_name, vm_name, connection)
942
+ $redis.hset("vmpooler__vm__#{vm_name}", 'host', vm_hash['host_name'])
942
943
  migration_limit = @config[:config]['migration_limit'] if @config[:config].key?('migration_limit')
943
944
  migration_count = $redis.scard('vmpooler__migration')
944
945
  if migration_enabled? @config
@@ -965,9 +966,10 @@ module Vmpooler
965
966
  def migrate_vm_to_new_host(pool_name, vm_name, vm_hash, connection)
966
967
  $redis.sadd('vmpooler__migration', vm_name)
967
968
  target_host_name = select_next_host(pool_name, @provider_hosts, vm_hash['architecture'])
969
+ $redis.hset("vmpooler__vm__#{vm_name}", 'host', target_host_name)
970
+ $redis.hset("vmpooler__vm__#{vm_name}", 'migrated', true)
968
971
  target_host_object = find_host_by_dnsname(connection, target_host_name)
969
972
  finish = migrate_vm_and_record_timing(pool_name, vm_name, vm_hash, target_host_object, target_host_name)
970
- #logger.log('s', "Provider_hosts is: #{provider.provider_hosts}")
971
973
  logger.log('s', "[>] [#{pool_name}] '#{vm_name}' migrated from #{vm_hash['host_name']} to #{target_host_name} in #{finish} seconds")
972
974
  ensure
973
975
  $redis.srem('vmpooler__migration', vm_name)
@@ -1028,6 +1030,17 @@ module Vmpooler
1028
1030
  return false if template[-1] == '/'
1029
1031
  return true
1030
1032
  end
1033
+
1034
+ def get_disk_backing(pool)
1035
+ return :moveChildMostDiskBacking if linked_clone?(pool)
1036
+ return :moveAllDiskBackingsAndConsolidate
1037
+ end
1038
+
1039
+ def linked_clone?(pool)
1040
+ return if pool[:create_linked_clone] == false
1041
+ return true if pool[:create_linked_clone]
1042
+ return true if @config[:config]['create_linked_clones']
1043
+ end
1031
1044
  end
1032
1045
  end
1033
1046
  end
@@ -1,3 +1,3 @@
1
1
  module Vmpooler
2
- VERSION = '0.6.3'.freeze
2
+ VERSION = '0.7.0'.freeze
3
3
  end
data/lib/vmpooler.rb CHANGED
@@ -64,6 +64,7 @@ module Vmpooler
64
64
  parsed_config[:config]['retry_factor'] = string_to_int(ENV['RETRY_FACTOR']) if ENV['RETRY_FACTOR']
65
65
  parsed_config[:config]['create_folders'] = ENV['CREATE_FOLDERS'] if ENV['CREATE_FOLDERS']
66
66
  parsed_config[:config]['create_template_delta_disks'] = ENV['CREATE_TEMPLATE_DELTA_DISKS'] if ENV['CREATE_TEMPLATE_DELTA_DISKS']
67
+ set_linked_clone(parsed_config)
67
68
  parsed_config[:config]['experimental_features'] = ENV['EXPERIMENTAL_FEATURES'] if ENV['EXPERIMENTAL_FEATURES']
68
69
  parsed_config[:config]['purge_unconfigured_folders'] = ENV['PURGE_UNCONFIGURED_FOLDERS'] if ENV['PURGE_UNCONFIGURED_FOLDERS']
69
70
  parsed_config[:config]['usage_stats'] = ENV['USAGE_STATS'] if ENV['USAGE_STATS']
@@ -183,4 +184,14 @@ module Vmpooler
183
184
  return unless s =~ /\d/
184
185
  return Integer(s)
185
186
  end
187
+
188
+ def self.true?(obj)
189
+ obj.to_s.downcase == "true"
190
+ end
191
+
192
+ def self.set_linked_clone(parsed_config)
193
+ parsed_config[:config]['create_linked_clones'] = parsed_config[:config]['create_linked_clones'] || true
194
+ parsed_config[:config]['create_linked_clones'] = ENV['CREATE_LINKED_CLONES'] if ENV['CREATE_LINKED_CLONES'] =~ /true|false/
195
+ parsed_config[:config]['create_linked_clones'] = true?(parsed_config[:config]['create_linked_clones']) if parsed_config[:config]['create_linked_clones']
196
+ end
186
197
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vmpooler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-29 00:00:00.000000000 Z
11
+ date: 2019-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pickup