class Rudy::AWS::EC2::Group

Public Instance Methods

add_address(ipaddress, rule) click to toggle source
  • ipaddress is a String, ipaddress/mask/protocol

  • rule is a Rule object

# File lib/rudy/aws/ec2/group.rb, line 67
def add_address(ipaddress, rule)
  return false unless rule.is_a?(Rule)
  @addresses ||= {}
  (@addresses[ipaddress] ||= []) << rule
  rule
end
add_group(group, rule) click to toggle source
  • group is a String, accountnum:group

  • rule is a Rule object

# File lib/rudy/aws/ec2/group.rb, line 76
def add_group(group, rule)
  return false unless rule.is_a?(Rule)
  @groups ||= {}
  (@groups[group] ||= []) << rule
end
liner_note() click to toggle source
# File lib/rudy/aws/ec2/group.rb, line 27
def liner_note
  info = "(authorized accounts: #{@groups.keys.join(', ')})" 
  info = '' if @groups.empty?
  "%s %s" % [@name.bright, info]
end
pretty() click to toggle source
# File lib/rudy/aws/ec2/group.rb, line 45
def pretty
  lines = [@name.bright]
  field_names.each do |key|
    next unless self.respond_to?(key)
    next if [:addresses, :groups].member?(key)
    val = self.send(key)
    lines << sprintf(" %12s: %s", key, (val.is_a?(Array) ? val.join(', ') : val))
  end
  @addresses.each_pair do |a,r|
    rules = r.collect { |r| r.to_s }.join(', ') if r
    lines << sprintf(" %12s: %s (%s)", 'address', a.to_s, rules)
  end
  @groups.each_pair do |g,r|
    rules = r.collect { |r| r.to_s }.join(', ')
    lines << sprintf(" %12s: %s (%s)", 'group', g.to_s, rules)
  end
  lines.join($/)
end
to_s(with_title=false) click to toggle source

Print info about a security group

# File lib/rudy/aws/ec2/group.rb, line 37
def to_s(with_title=false)
  lines = [liner_note]
  (self.addresses || {}).each_pair do |address,rules|
    lines << "%18s -> %s" % [address.to_s, rules.collect { |p| p.to_s}.join(', ')]
  end
  lines.join($/)
end