class Chef::Knife::ClcTemplateList
Public Instance Methods
cloud_templates()
click to toggle source
# File lib/chef/knife/clc_template_list.rb, line 28 def cloud_templates if config[:clc_datacenter] connection.list_templates(config[:clc_datacenter]) elsif config[:clc_all] datacenters = connection.list_datacenters datacenters.map do |dc| connection.list_templates(dc['id']) end.flatten end end
execute()
click to toggle source
# File lib/chef/knife/clc_template_list.rb, line 23 def execute context[:templates] = cloud_templates render end
fields()
click to toggle source
# File lib/chef/knife/clc_template_list.rb, line 63 def fields # TODO AS: Displaying shortened list of fields for now # %w(name osType description storageSizeGB capabilities apiOnly) %w(name storageSizeGB capabilities) end
filters()
click to toggle source
# File lib/chef/knife/clc_template_list.rb, line 46 def filters { 'storageSizeGB' => ->(size) { (size.zero? ? '-' : "#{size} GB").rjust(7) }, 'apiOnly' => ->(api_flag) { (api_flag ? '+' : '-').center(9) }, 'capabilities' => ->(capabilities) { capabilities.empty? ? '-' : capabilities.join(', ') } } end
headers()
click to toggle source
# File lib/chef/knife/clc_template_list.rb, line 69 def headers { 'name' => 'Name', 'osType' => 'OS Type', 'description' => 'Description', 'storageSizeGB' => 'Storage', 'capabilities' => 'Capabilities', 'apiOnly' => 'API Only' } end
parse_and_validate_parameters()
click to toggle source
# File lib/chef/knife/clc_template_list.rb, line 40 def parse_and_validate_parameters if config[:clc_datacenter].nil? && !config[:clc_all] errors << 'Datacenter ID is required' end end
render()
click to toggle source
# File lib/chef/knife/clc_template_list.rb, line 80 def render ui.info Hirb::Helpers::AutoTable.render(context[:templates], :headers => headers, :fields => fields, :filters => filters, :max_fields => width_limits, :resize => false, :description => false) end
width_limits()
click to toggle source
# File lib/chef/knife/clc_template_list.rb, line 54 def width_limits { 'description' => 0.2, 'storageSizeGB' => 7, 'capabilities' => 15, 'apiOnly' => 9 } end