class Chef::Knife::Cloud::OpenstackGroupList

Public Instance Methods

list(security_groups) click to toggle source
# File lib/chef/knife/openstack_group_list.rb, line 40
def list(security_groups)
  if config[:format] == "summary"
    group_list = [
      ui.color("Name", :bold),
      ui.color("Protocol", :bold),
      ui.color("From", :bold),
      ui.color("To", :bold),
      ui.color("CIDR", :bold),
      ui.color("Description", :bold),
    ]
    security_groups.sort_by(&:name).each do |group|
      group.security_group_rules.each do |rule|
        unless rule.ip_protocol.nil?
          group_list << group.name
          group_list << rule.ip_protocol
          group_list << rule.from_port.to_s
          group_list << rule.to_port.to_s
          group_list << rule.ip_range["cidr"]
          group_list << group.description
        end
      end
    end

    puts ui.list(group_list, :uneven_columns_across, 6)
  else
    output(format_for_display(security_groups))
  end
end
query_resource() click to toggle source
# File lib/chef/knife/openstack_group_list.rb, line 32
def query_resource
  @service.connection.security_groups
rescue Excon::Errors::BadRequest => e
  response = Chef::JSONCompat.from_json(e.response.body)
  ui.fatal("Unknown server error (#{response["badRequest"]["code"]}): #{response["badRequest"]["message"]}")
  raise e
end