vmpooler-provider-vsphere 1.4.0 → 1.5.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
  SHA256:
3
- metadata.gz: c8065ff117266c13945c80a47fd98b0b7a8a4fe3ec8018b4ea2edd384cc733de
4
- data.tar.gz: 7f6ef47c263526a44208b36dbbaed4fca5b9c6985d68ab968d9bf258a133c96e
3
+ metadata.gz: cb6b64b4cddee3d3d15f032ad1d101a5d56258fa63c233a03315da1cb57fdf89
4
+ data.tar.gz: 375e0a6c2674eaa73aafda714c4c54c8b0d11d0811c3d25282b91ea0cd0c0641
5
5
  SHA512:
6
- metadata.gz: 4c774b0ffd019c106b1d69cb11aafd0c8acddb566e339b195d8a3bad373844855c9943823268b6ac34b5ea312d39b237093c707aaa46b72d22208fa25005ecb7
7
- data.tar.gz: aaaa1c54f356a1039a13c6c2b59b509f7a070349eeb02fe900acf527ae2b9bbd13f7819ec9a9283d53429137ec279c3f2dbcb24719fcbce058d3a71894283372
6
+ metadata.gz: 6461719858338514dbed59feacf869daf9ad6bc45c1fcd87308f8faf445ca2fd378d57aaa97fa53cf51257cbe2fd0189ad7efd081e27c7b0a3719d47a3a5357b
7
+ data.tar.gz: 45333798cbf46841c28f07abea7c10deedd9424a3f036c85d1b81b4e69c2b99532daa4be69c373ecbb9d33579342a7d9663a13d8431589e4073fad08a1499ef6
@@ -51,8 +51,8 @@ module Vmpooler
51
51
  'vsphere'
52
52
  end
53
53
 
54
- def folder_configured?(folder_title, base_folder, configured_folders, whitelist)
55
- return true if whitelist&.include?(folder_title)
54
+ def folder_configured?(folder_title, base_folder, configured_folders, allowlist)
55
+ return true if allowlist&.include?(folder_title)
56
56
  return false unless configured_folders.keys.include?(folder_title)
57
57
  return false unless configured_folders[folder_title] == base_folder
58
58
 
@@ -119,7 +119,30 @@ module Vmpooler
119
119
  try >= max_tries ? raise : retry
120
120
  end
121
121
 
122
- def purge_unconfigured_folders(base_folders, configured_folders, whitelist)
122
+ # Return a list of pool folders
123
+ def pool_folders(provider_name)
124
+ folders = {}
125
+ $config[:pools].each do |pool|
126
+ next unless pool['provider'] == provider_name.to_s
127
+
128
+ folder_parts = pool['folder'].split('/')
129
+ datacenter = get_target_datacenter_from_config(pool['name'])
130
+ folders[folder_parts.pop] = "#{datacenter}/vm/#{folder_parts.join('/')}"
131
+ end
132
+ folders
133
+ end
134
+
135
+ def get_base_folders(folders)
136
+ base = []
137
+ folders.each do |_key, value|
138
+ base << value
139
+ end
140
+ base.uniq
141
+ end
142
+
143
+ def purge_unconfigured_resources(allowlist)
144
+ configured_folders = pool_folders(name)
145
+ base_folders = get_base_folders(configured_folders)
123
146
  @connection_pool.with_metrics do |pool_object|
124
147
  connection = ensured_vsphere_connection(pool_object)
125
148
 
@@ -129,7 +152,7 @@ module Vmpooler
129
152
 
130
153
  folder_children.each do |folder_hash|
131
154
  folder_hash.each do |folder_title, folder_object|
132
- destroy_folder_and_children(folder_object) unless folder_configured?(folder_title, base_folder, configured_folders, whitelist)
155
+ destroy_folder_and_children(folder_object) unless folder_configured?(folder_title, base_folder, configured_folders, allowlist)
133
156
  end
134
157
  end
135
158
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module VmpoolerProviderVsphere
4
- VERSION = '1.4.0'
4
+ VERSION = '1.5.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vmpooler-provider-vsphere
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-08 00:00:00.000000000 Z
11
+ date: 2021-12-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rbvmomi
@@ -36,14 +36,14 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '2.0'
39
+ version: '2.1'
40
40
  type: :development
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '2.0'
46
+ version: '2.1'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: climate_control
49
49
  requirement: !ruby/object:Gem::Requirement