simnos 0.1.2 → 0.1.3.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +4 -0
- data/lib/simnos/cli.rb +8 -0
- data/lib/simnos/client.rb +25 -2
- data/lib/simnos/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0f059e245208fe4b7cf670b9e439c551fb5f7474942f1018b6af99a45404a977
|
4
|
+
data.tar.gz: ae316c74adc659d468743006c5f801a48989ac8e1ed3804a9e4f021728baab0a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfad7d4cde421b3834ba41fb5af57eeddd1d77732c085089a6472d125bff718e24622380d7ed5336b7abadd4b0c8e6a64c1e6c6e273241f3a0a787a8e4c365b8
|
7
|
+
data.tar.gz: 062f8f935d05fb2ed4eb1a2ee7004422d32874bf5b2844de33150b7e7f62c761c18d6403184a4e733ad9d8046b898367cf6cc34fb95e774144a0076042e21b41
|
data/README.md
CHANGED
@@ -54,6 +54,10 @@ Usage: simnos [options]
|
|
54
54
|
use secret value expansion
|
55
55
|
-i, --include-names NAMES include SNS names
|
56
56
|
-x, --exclude-names NAMES exclude SNS names by regex
|
57
|
+
--include-endpoints NAMES
|
58
|
+
include SNS subscriptions by endpoint
|
59
|
+
--exclude-endpoints NAMES
|
60
|
+
exclude SNS subscriptions by endpoint
|
57
61
|
```
|
58
62
|
|
59
63
|
## SNSfile
|
data/lib/simnos/cli.rb
CHANGED
@@ -16,6 +16,8 @@ module Simnos
|
|
16
16
|
color: true,
|
17
17
|
includes: [],
|
18
18
|
excludes: [],
|
19
|
+
include_endpoints: [],
|
20
|
+
exclude_endpoints: [],
|
19
21
|
}
|
20
22
|
parser.order!(@argv)
|
21
23
|
end
|
@@ -53,6 +55,12 @@ module Simnos
|
|
53
55
|
name =~ /\A\/(.*)\/\z/ ? Regexp.new($1) : Regexp.new("\A#{Regexp.escape(name)}\z")
|
54
56
|
end
|
55
57
|
end
|
58
|
+
opts.on('', '--include-endpoints NAMES', 'include SNS subscriptions by endpoint', Array) { |v| @options[:include_endpoints] = v }
|
59
|
+
opts.on('', '--exclude-endpoints NAMES', 'exclude SNS subscriptions by endpoint', Array) do |v|
|
60
|
+
@options[:exclude_endpoints] = v.map! do |name|
|
61
|
+
name =~ /\A\/(.*)\/\z/ ? Regexp.new($1) : Regexp.new("\A#{Regexp.escape(name)}\z")
|
62
|
+
end
|
63
|
+
end
|
56
64
|
end
|
57
65
|
end
|
58
66
|
|
data/lib/simnos/client.rb
CHANGED
@@ -73,6 +73,23 @@ module Simnos
|
|
73
73
|
|
74
74
|
private
|
75
75
|
|
76
|
+
def target_subscription?(endpoint)
|
77
|
+
unless @options[:include_endpoints].empty?
|
78
|
+
unless @options[:include_endpoints].include?(endpoint)
|
79
|
+
Simnos.logger.debug("skip subscription(with include-endpoints option) #{endpoint}")
|
80
|
+
return false
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
unless @options[:exclude_endpoints].empty?
|
85
|
+
if @options[:exclude_endpoints].any? { |regex| endpoint =~ regex }
|
86
|
+
Simnos.logger.debug("skip subscription(with exclude-endpoints option) #{endpoint}")
|
87
|
+
return false
|
88
|
+
end
|
89
|
+
end
|
90
|
+
true
|
91
|
+
end
|
92
|
+
|
76
93
|
def delete_subscriptions(aws_topic, aws_sub_by_key)
|
77
94
|
aws_sub_by_key.each do |key, aws_sub|
|
78
95
|
Simnos.logger.info("Delete Topic(#{aws_topic[:topic].topic_arn.split(':').last}) Subscription. protocol: #{key[0].inspect}, endpoint: #{key[1].inspect}.#{@options[:dry_run] ? ' [dry-run]' : ''}".colorize(:red))
|
@@ -87,8 +104,14 @@ module Simnos
|
|
87
104
|
end
|
88
105
|
|
89
106
|
def traverse_subscriptions(aws_topic, dsl_subscriptions, aws_subscriptions)
|
90
|
-
dsl_sub_by_key = dsl_subscriptions.each_with_object({})
|
91
|
-
|
107
|
+
dsl_sub_by_key = dsl_subscriptions.each_with_object({}) do |dsl_sub, h|
|
108
|
+
next unless target_subscription?(dsl_sub.endpoint)
|
109
|
+
h[[dsl_sub.protocol, dsl_sub.masked_endpoint]] = dsl_sub
|
110
|
+
end
|
111
|
+
aws_sub_by_key = aws_subscriptions.each_with_object({}) do |aws_sub, h|
|
112
|
+
next unless target_subscription?(aws_sub.endpoint)
|
113
|
+
h[[aws_sub.protocol, aws_sub.endpoint]] = aws_sub
|
114
|
+
end
|
92
115
|
|
93
116
|
if @options[:recreate_subscriptions]
|
94
117
|
Simnos.logger.info("Subscription recreation flag is on.#{@options[:dry_run] ? ' [dry-run]' : ''}")
|
data/lib/simnos/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simnos
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- wata
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-06
|
11
|
+
date: 2018-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -186,12 +186,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
186
186
|
version: '0'
|
187
187
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
188
188
|
requirements:
|
189
|
-
- - "
|
189
|
+
- - ">"
|
190
190
|
- !ruby/object:Gem::Version
|
191
|
-
version:
|
191
|
+
version: 1.3.1
|
192
192
|
requirements: []
|
193
193
|
rubyforge_project:
|
194
|
-
rubygems_version: 2.
|
194
|
+
rubygems_version: 2.7.6
|
195
195
|
signing_key:
|
196
196
|
specification_version: 4
|
197
197
|
summary: Codenize AWS SNS
|