Class: Piculet::EC2Wrapper::SecurityGroupCollection::SecurityGroup::PermissionCollection::Permission

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Logger::ClientHelper
Defined in:
lib/piculet/wrapper/permission.rb

Instance Method Summary collapse

Methods included from Logger::ClientHelper

#log

Constructor Details

#initialize(permission, collection, options) ⇒ Permission

Returns a new instance of Permission.



17
18
19
20
21
# File 'lib/piculet/wrapper/permission.rb', line 17

def initialize(permission, collection, options)
  @permission = permission
  @collection = collection
  @options = options
end

Instance Method Details

#deleteObject



42
43
44
45
46
47
48
49
50
# File 'lib/piculet/wrapper/permission.rb', line 42

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) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
26
# File 'lib/piculet/wrapper/permission.rb', line 23

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) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/piculet/wrapper/permission.rb', line 28

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