Class: Chef::Knife::RightscaleSecuritygroupList

Inherits:
Chef::Knife
  • Object
show all
Includes:
RightscaleBase
Defined in:
lib/chef/knife/rightscale_securitygroup_list.rb

Instance Method Summary collapse

Methods included from RightscaleBase

#connection, included, #locate_config_value, #msg_pair, #right_api_client, #set_log_level

Instance Method Details

#runObject



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/chef/knife/rightscale_securitygroup_list.rb', line 45

def run
  $stdout.sync = true

  validate!
  @clouds = connection.list_clouds(:by_name, config[:cloud_name])
  count = @clouds.size
  puts ui.color("Querying #{count} clouds for security groups.  Could take a minute...", :magenta) if count > 1
  security_group_list = [
    ui.color('Cloud', :bold),
    ui.color('Name', :bold),
    ui.color('Resource UID', :bold)
  ].flatten.compact

  output_column_count = security_group_list.length
  @clouds.each do |cloud|
    next unless connection.requires_security_groups?(cloud)
    @security_groups = connection.list_security_groups(cloud, :by_name, config[:security_group_name])
    @security_groups.each do |security_group|
      security_group_list << cloud.name
      security_group_list << security_group.name
      security_group_list << security_group.resource_uid
    end
  end
  puts ui.list(security_group_list, :uneven_columns_across, output_column_count)
end