class Kakine::SecurityGroup

Attributes

description[R]
id[R]
name[R]
rules[R]
tenant_name[R]

Public Class Methods

new(tenant_name, params) click to toggle source
# File lib/kakine/security_group.rb, line 6
def initialize(tenant_name, params)
  @name        = params[0]
  @tenant_name = tenant_name
  @id          = params[1]["id"] || ""
  @description = params[1]["description"] || ""
  @rules       = get_rule_instances(params) || []
end

Public Instance Methods

!=(target_sg) click to toggle source
# File lib/kakine/security_group.rb, line 22
def !=(target_sg)
  !(self == target_sg)
end
==(target_sg) click to toggle source
# File lib/kakine/security_group.rb, line 18
def ==(target_sg)
  same_group?(target_sg) && same_rule?(self, target_sg) && same_rule?(target_sg, self)
end
find_by_rule(target_rule) click to toggle source
# File lib/kakine/security_group.rb, line 44
def find_by_rule(target_rule)
  @rules.find { |rule| rule == target_rule }
end
get_rule_instances(params) click to toggle source
# File lib/kakine/security_group.rb, line 38
def get_rule_instances(params)
  params[1]["rules"].map do |rule|
    SecurityRule.new(rule, @tenant_name, @name)
  end unless params[1]["rules"].nil?
end
has_rules?() click to toggle source
# File lib/kakine/security_group.rb, line 48
def has_rules?
  @rules.detect {|v| !v.nil?}
end
same_group?(target_sg) click to toggle source
# File lib/kakine/security_group.rb, line 26
def same_group?(target_sg)
  %i(@name @tenant_name @description).all? do |val|
    instance_variable_get(val) == target_sg.instance_variable_get(val)
  end
end
same_rule?(a, b) click to toggle source
# File lib/kakine/security_group.rb, line 32
def same_rule?(a, b)
  a.rules.all? do |rule|
    b.find_by_rule(rule)
  end
end
tenant_id() click to toggle source
# File lib/kakine/security_group.rb, line 14
def tenant_id
  Yao.current_tenant_id
end