vmpooler-provider-vsphere 1.4.0 → 1.5.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/providers/vsphere.rb +27 -4
- data/lib/vmpooler-provider-vsphere/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb6b64b4cddee3d3d15f032ad1d101a5d56258fa63c233a03315da1cb57fdf89
|
4
|
+
data.tar.gz: 375e0a6c2674eaa73aafda714c4c54c8b0d11d0811c3d25282b91ea0cd0c0641
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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,
|
55
|
-
return true if
|
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
|
-
|
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,
|
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
|
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
|
+
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-
|
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.
|
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.
|
46
|
+
version: '2.1'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: climate_control
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|