vmpooler 0.6.3 → 0.7.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: 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