Sha256: 4f1b24b9f35d9939091ff5b03279cfd5d9510e67b44f315761c552dac648fa8c

Contents?: true

Size: 1.52 KB

Versions: 15

Compression:

Stored size: 1.52 KB

Contents

require 'yao/resources/security_group_rule'
module Yao::Resources
  class SecurityGroup < Base
    include TenantAssociationable

    friendly_attributes :name, :description

    def rules
      self[["rules", SecurityGroupRule].join("__")] ||= (case self.class.service
      when "compute"
        self["rules"].map{|r| SecurityGroupRule.new(r) }
      when "network"
        self["security_group_rules"].map{|r| SecurityGroupRule.new(r) }
      end)
    end

    self.service        = "network"
    self.resource_name  = "security-group"
    self.resources_name = "security-groups"
  end
end

Yao.config.param :security_group_service, "compute" do |service|
  case service
  when "compute"
    Yao::Resources::SecurityGroup.service        = service
    Yao::Resources::SecurityGroup.resource_name  = "os-security-group"
    Yao::Resources::SecurityGroup.resources_name = "os-security-groups"

    Yao::Resources::SecurityGroupRule.service        = service
    Yao::Resources::SecurityGroupRule.resource_name  = "os-security-group-rule"
    Yao::Resources::SecurityGroupRule.resources_name = "os-security-group-rules"
  when "network"
    Yao::Resources::SecurityGroup.service        = service
    Yao::Resources::SecurityGroup.resource_name  = "security-group"
    Yao::Resources::SecurityGroup.resources_name = "security-groups"

    Yao::Resources::SecurityGroupRule.service        = service
    Yao::Resources::SecurityGroupRule.resource_name  = "security-group-rule"
    Yao::Resources::SecurityGroupRule.resources_name = "security-group-rules"
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
yao-0.13.4 lib/yao/resources/security_group.rb
yao-0.13.3 lib/yao/resources/security_group.rb
yao-0.13.2 lib/yao/resources/security_group.rb
yao-0.13.1 lib/yao/resources/security_group.rb
yao-0.13.0 lib/yao/resources/security_group.rb
yao-0.12.0 lib/yao/resources/security_group.rb
yao-0.11.3 lib/yao/resources/security_group.rb
yao-0.11.2 lib/yao/resources/security_group.rb
yao-0.11.1 lib/yao/resources/security_group.rb
yao-0.11.0 lib/yao/resources/security_group.rb
yao-0.10.1 lib/yao/resources/security_group.rb
yao-0.10.0 lib/yao/resources/security_group.rb
yao-0.9.1 lib/yao/resources/security_group.rb
yao-0.9.0 lib/yao/resources/security_group.rb
yao-0.8.0 lib/yao/resources/security_group.rb