Move vSphere specific methods out of VMPooler

VMPooler has the vSphere provider taken out, moving some vSphere related
methods to the provider:

1) pool_folders
2) get_base_folders

And the related spec tests.
At the same time renaming some configuration and code items
to remove harmful terminology.
Note this version of the vsphere provider needs to run on vmpooler
that also contain the renaming changes (version >2.1)
This commit is contained in:
Samuel Beaulieu 2021-12-07 14:54:16 -06:00 committed by Gene Liverman
parent 9b452472f0
commit 81d71b8a13
No known key found for this signature in database
GPG key ID: 3AF83985B6C857C6
5 changed files with 118 additions and 107 deletions

View file

@ -51,8 +51,8 @@ module Vmpooler
'vsphere'
end
def folder_configured?(folder_title, base_folder, configured_folders, whitelist)
return true if whitelist&.include?(folder_title)
def folder_configured?(folder_title, base_folder, configured_folders, allowlist)
return true if allowlist&.include?(folder_title)
return false unless configured_folders.keys.include?(folder_title)
return false unless configured_folders[folder_title] == base_folder
@ -119,7 +119,30 @@ module Vmpooler
try >= max_tries ? raise : retry
end
def purge_unconfigured_folders(base_folders, configured_folders, whitelist)
# Return a list of pool folders
def pool_folders(provider_name)
folders = {}
$config[:pools].each do |pool|
next unless pool['provider'] == provider_name.to_s
folder_parts = pool['folder'].split('/')
datacenter = get_target_datacenter_from_config(pool['name'])
folders[folder_parts.pop] = "#{datacenter}/vm/#{folder_parts.join('/')}"
end
folders
end
def get_base_folders(folders)
base = []
folders.each do |_key, value|
base << value
end
base.uniq
end
def purge_unconfigured_resources(allowlist)
configured_folders = pool_folders(name)
base_folders = get_base_folders(configured_folders)
@connection_pool.with_metrics do |pool_object|
connection = ensured_vsphere_connection(pool_object)
@ -129,7 +152,7 @@ module Vmpooler
folder_children.each do |folder_hash|
folder_hash.each do |folder_title, folder_object|
destroy_folder_and_children(folder_object) unless folder_configured?(folder_title, base_folder, configured_folders, whitelist)
destroy_folder_and_children(folder_object) unless folder_configured?(folder_title, base_folder, configured_folders, allowlist)
end
end
end