Top Level Namespace
Defined Under Namespace
Modules: KnifeVsphere
Classes: Chef
Constant Summary
collapse
- PsOn =
'poweredOn'
- PsOff =
'poweredOff'
- PsSuspended =
'suspended'
- PowerStates =
{
PsOn => 'powered on',
PsOff => 'powered off',
PsSuspended => 'suspended'
}
Instance Method Summary
collapse
Instance Method Details
#find_max_dscluster(folder, max_dscluster, regex) ⇒ Object
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/chef/knife/vsphere_datastorecluster_maxfree.rb', line 33
def find_max_dscluster(folder, max_dscluster, regex)
folder.childEntity.each do |child|
if child.class.to_s == 'Folder'
sub_max = find_max_dscluster(child, max_dscluster, regex)
if is_max_dscluster(sub_max, max_dscluster)
max_dscluster = sub_max
end
elsif child.class.to_s == 'StoragePod'
if is_max_dscluster(child, max_dscluster) && regex.match(child.name)
max_dscluster = child
end
end
end
return max_dscluster
end
|
#is_max_dscluster(dscluster, max_dscluster) ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/chef/knife/vsphere_datastorecluster_maxfree.rb', line 21
def is_max_dscluster(dscluster, max_dscluster)
if ! max_dscluster
return true
end
if dscluster.summary[:freeSpace] > max_dscluster.summary[:freeSpace]
return true
end
return false
end
|
#number_to_human_size(number) ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/chef/knife/vsphere_datastore_list.rb', line 21
def number_to_human_size(number)
number = number.to_f
storage_units_fmt = ["byte", "kB", "MB", "GB", "TB"]
base = 1024
if number.to_i < base
unit = storage_units_fmt[0]
else
max_exp = storage_units_fmt.size - 1
exponent = (Math.log(number) / Math.log(base)).to_i exponent = max_exp if exponent > max_exp number /= base ** exponent
unit = storage_units_fmt[exponent]
end
return sprintf("%0.2f %s", number, unit)
end
|
#print_dsclusters_in_folder(folder) ⇒ Object
47
48
49
50
51
52
53
54
55
|
# File 'lib/chef/knife/vsphere_datastorecluster_list.rb', line 47
def print_dsclusters_in_folder (folder)
folder.childEntity.each do |child|
if child.class.to_s == "StoragePod"
avail = number_to_human_size(child.summary[:freeSpace])
cap = number_to_human_size(child.summary[:capacity])
puts "#{ui.color("DatastoreCluster", :cyan)}: #{child.name} (#{avail} / #{cap})"
end
end
end
|
#traverse_folders_for_dsclusters(folder) ⇒ Object
38
39
40
41
42
43
44
45
|
# File 'lib/chef/knife/vsphere_datastorecluster_list.rb', line 38
def traverse_folders_for_dsclusters(folder)
print_dsclusters_in_folder(folder)
folder.childEntity.each do |child|
if child.class.to_s == 'Folder'
traverse_folders_for_dsclusters(child)
end
end
end
|