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 +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
|