class Piculet::EC2Wrapper::SecurityGroupCollection::SecurityGroup::PermissionCollection::Permission
Public Class Methods
new(permission, collection, options)
click to toggle source
# File lib/piculet/wrapper/permission.rb, line 14 def initialize(permission, collection, options) @permission = permission @collection = collection @options = options end
Public Instance Methods
delete()
click to toggle source
# File lib/piculet/wrapper/permission.rb, line 39 def delete log(:info, 'Delete Permission', :red, log_id) self_ip_ranges, self_groups = normalize_self_attrs([]) unless (self_ip_ranges + self_groups).empty? @collection.revoke(protocol, port_range, (self_ip_ranges + self_groups), :log_color => :red) end end
eql?(dsl)
click to toggle source
# File lib/piculet/wrapper/permission.rb, line 20 def eql?(dsl) dsl_ip_ranges, dsl_groups, self_ip_ranges, self_groups = normalize_attrs(dsl) (self_ip_ranges == dsl_ip_ranges) and (self_groups == dsl_groups) end
update(dsl)
click to toggle source
# File lib/piculet/wrapper/permission.rb, line 25 def update(dsl) log(:info, 'Update Permission', :green, log_id) plus_ip_ranges, minus_ip_ranges, plus_groups, minus_groups = diff(dsl) unless (plus_ip_ranges + plus_groups).empty? @collection.authorize(protocol, port_range, (plus_ip_ranges + plus_groups), :log_color => :green) end unless (minus_ip_ranges + minus_groups).empty? @collection.revoke(protocol, port_range, (minus_ip_ranges + minus_groups), :log_color => :green) end end
Private Instance Methods
diff(dsl)
click to toggle source
# File lib/piculet/wrapper/permission.rb, line 54 def diff(dsl) dsl_ip_ranges, dsl_groups, self_ip_ranges, self_groups = normalize_attrs(dsl) [ dsl_ip_ranges - self_ip_ranges, self_ip_ranges - dsl_ip_ranges, dsl_groups - self_groups, self_groups - dsl_groups, ] end
log_id()
click to toggle source
# File lib/piculet/wrapper/permission.rb, line 50 def log_id "#{@collection.log_id} > #{protocol} #{port_range}" end
normalize_attrs(dsl)
click to toggle source
# File lib/piculet/wrapper/permission.rb, line 65 def normalize_attrs(dsl) dsl_ip_ranges = (dsl.ip_ranges || []).sort dsl_groups = (dsl.groups || []).map {|i| if i.kind_of?(Array) i elsif AWS::EC2::SecurityGroup.elb?(i) [AWS::EC2::SecurityGroup::ELB_OWNER, AWS::EC2::SecurityGroup::ELB_NAME] else [@options.ec2.owner_id, i] end }.sort self_ip_ranges, self_groups = normalize_self_attrs(dsl_groups.map { |g| g[1] }) [dsl_ip_ranges, dsl_groups, self_ip_ranges, self_groups] end
normalize_self_attrs(dsl_group_names)
click to toggle source
# File lib/piculet/wrapper/permission.rb, line 82 def normalize_self_attrs(dsl_group_names) self_ip_ranges = (@permission.ip_ranges || []).sort self_groups = (@permission.groups || []).map {|i| if dsl_group_names.include?(i.security_group_id) [i.owner_id, i.security_group_id] else [i.owner_id, i.name] end }.sort [self_ip_ranges, self_groups] end