From 8f664a8b47a6335ac6f731d73bb48096fdb779df Mon Sep 17 00:00:00 2001 From: toshihisa Date: Tue, 13 Dec 2016 17:16:21 +0900 Subject: [PATCH] WARNING over 50 rules per securitygroup. --- lib/piculet/dsl/security-group.rb | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/lib/piculet/dsl/security-group.rb b/lib/piculet/dsl/security-group.rb index 4eeb6ef..9403e84 100644 --- a/lib/piculet/dsl/security-group.rb +++ b/lib/piculet/dsl/security-group.rb @@ -2,6 +2,7 @@ module Piculet class DSL class EC2 class SecurityGroup + include Logger::ClientHelper include Piculet::TemplateHelper def initialize(context, name, vpc, &block) @@ -51,6 +52,15 @@ def ingress(&block) end @result.ingress = Permissions.new(@context, @name, :ingress, &block).result + rule_cnt = @result.ingress.reduce(0) { + |sum , o| + sum + + (o.ip_ranges.nil? ? 0 : o.ip_ranges.length()) + + (o.groups.nil? ? 0 : o.groups.length()) + } + if rule_cnt > 50 + log(:warn, "`#{@vpc}.#{@name}`: ingress too many #{rule_cnt} " , :yellow) + end @ingress_is_defined = true end @@ -64,7 +74,15 @@ def egress(&block) end @result.egress = Permissions.new(@context, @name, :egress, &block).result - + rule_cnt = @result.egress.reduce(0) { + |sum , o| + sum + + (o.ip_ranges.nil? ? 0 : o.ip_ranges.length()) + + (o.groups.nil? ? 0 : o.groups.length()) + } + if rule_cnt > 50 + log(:warn, "`#{@vpc}.#{@name}`: egress too many #{rule_cnt} " , :yellow) + end @egress_is_defined = true end end # SecurityGroup