Class: Chef::Knife::Cloud::OpenstackGroupList

Inherits:
ResourceListCommand
  • Object
show all
Includes:
OpenstackHelpers, OpenstackServiceOptions
Defined in:
lib/chef/knife/openstack_group_list.rb

Instance Method Summary collapse

Methods included from OpenstackServiceOptions

included

Methods included from OpenstackHelpers

#create_service_instance, #instance_addresses, #primary_network_ip_address, #primary_private_ip_address, #primary_public_ip_address, #validate!

Instance Method Details

#list(security_groups) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# 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_resourceObject



32
33
34
35
36
37
38
# 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