52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
# File 'lib/collins_shell/console/filesystem.rb', line 52
def asset_methods exclude_non_scalar = false
non_scalar = [:addresses, :backend_address, :backend_addresses, :backend_ip_addresses,
:backend_netmasks, :cpus, :disks, :extras, :get_attribute, :mac_addresses, :memory, :nics,
:power, :public_address, :public_addresses, :public_ip_addresses]
asset_objects = {:ipmi => Collins::Ipmi, :state => Collins::AssetState}
ex_methods = exclude_methods
ex_methods += non_scalar if exclude_non_scalar
Collins::Asset.public_instance_methods(false).map(&:to_sym).reject do |meth|
ex_methods.include?(meth)
end.map do |meth|
if asset_objects.key?(meth) then
asset_objects[meth].public_instance_methods(false).map(&:to_sym).reject do |meh|
ex_methods.include?(meh) || meh.to_s =~ /=$/
end.map do |meh|
"#{meth}.#{meh}"
end
else
[meth.to_s]
end
end.flatten.sort
end
|