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 +4 -4
- data/lib/vmpooler/api/v1.rb +4 -0
- data/lib/vmpooler/providers/vsphere.rb +15 -2
- data/lib/vmpooler/version.rb +1 -1
- data/lib/vmpooler.rb +11 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c403c53a6038b04983f7e569db7fa023342a122e
|
4
|
+
data.tar.gz: d2963647b75462426fdcd06fb72ddace3a9ddc49
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 779e193b7410a7eeb3ac7b260cb0f152be63f9331b2be1355d05fdc3051f7c31b5d3f96bd3a445ae82ab52a0e5fd78a3d70090b09adb21942f8ef20dfec782f0
|
7
|
+
data.tar.gz: 5fed4e3e8d2f7010a138b44bf39a2346eb58327e713fcf9c6154038c33967f24d7120f8157216747ee98664728f43dc53582d5fddce85f2c14ce7ed31d5e05be
|
data/lib/vmpooler/api/v1.rb
CHANGED
@@ -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:
|
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
|
data/lib/vmpooler/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2019-08-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pickup
|