monosasi 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 59fbb459c9fe2e563a97130ffb73f96668e41efa01219070969d259e2882534a
4
- data.tar.gz: 71240ada08e3ce67acb26c960d72379519f20ede50db4b05511c8a1fb5a092c5
3
+ metadata.gz: b60110d249f0b7a8ac57184b1a398dfa99453c0d2f8219524f7990bb304ced65
4
+ data.tar.gz: c428dbafa7f1b7796cc6df50a32a07efac35854a96ac0a8a3a77da5266ac62b5
5
5
  SHA512:
6
- metadata.gz: 0655ede007497ebd8918e6bccc19a6a7c00a4afc95f8f5470f9dde3a258c885a527555f5bd97388dc81b537ff0d31f98450d0510a13903af437522c2f0ff3c5b
7
- data.tar.gz: 9ae5121d7861b63c1458e107c9210ad5a169b68b2b0ed389a976cd7c7c99d76952cb8b42a032f20870450ee47715f04279885b5dddbfd0f5b4d23e60d6fdeb3b
6
+ metadata.gz: 063bca03baf00957de3c42baf2596076f8430564d5926eacdebb2c83683c56c53e43c658b7df73e710a25e9053746eafce7176dce63d811ea6c1e1faa442f20e
7
+ data.tar.gz: 97f3a6c0949aec6d28f012da71ce4d27364ebea3059365d5afaf03f6507491258e21bc947b96233f854a972cdb850af1334cbd237b9d1a7fed4c525ae003b92a
data/.gitignore CHANGED
@@ -10,3 +10,4 @@
10
10
  test.rb
11
11
  Rulefile
12
12
  *.rule
13
+ /vendor/
@@ -1,5 +1,6 @@
1
- require 'aws-sdk'
1
+ require 'aws-sdk-cloudwatchevents'
2
2
  require 'diffy'
3
+ require 'dslh'
3
4
  require 'hashie'
4
5
  require 'json'
5
6
  require 'logger'
@@ -24,5 +25,7 @@ require 'monosasi/dsl/template_helper'
24
25
  require 'monosasi/dsl/context'
25
26
  require 'monosasi/dsl/context/rule'
26
27
  require 'monosasi/dsl/context/rule/target'
28
+ require 'monosasi/dsl/context/rule/target/batch_parameters'
29
+ require 'monosasi/dsl/context/rule/target/ecs_parameters'
27
30
  require 'monosasi/dsl/converter'
28
31
  require 'monosasi/exporter'
@@ -1,5 +1,6 @@
1
1
  class Monosasi::DSL::Context::Rule::Target
2
2
  include Monosasi::DSL::TemplateHelper
3
+ include Monosasi::Logger::Helper # TODO: remove this line when log() would not been called
3
4
 
4
5
  def initialize(context, id, &block)
5
6
  @id = id
@@ -32,11 +33,21 @@ class Monosasi::DSL::Context::Rule::Target
32
33
  @result[:role_arn] = value.to_s
33
34
  end
34
35
 
35
- def ecs_parameters(*values)
36
- @result[:ecs_parameters] = Hash(*values)
36
+ def ecs_parameters(*values, &block)
37
+ unless values.empty?
38
+ log(:warn, "`ecs_parameter(Hash)` will no longer be available. use ecs_parameter(block)", color: :yellow)
39
+ @result[:ecs_parameters] = Hash(*values)
40
+ else
41
+ @result[:ecs_parameters] = Monosasi::DSL::Context::Rule::Target::EcsParameters.new(@context, &block).result
42
+ end
37
43
  end
38
44
 
39
- def batch_parameters(*values)
40
- @result[:batch_parameters] = Hash(*values)
45
+ def batch_parameters(*values, &block)
46
+ unless values.empty?
47
+ log(:warn, "`batch_parameter(Hash)` will no longer be available. use batch_parameter(block)", color: :yellow)
48
+ @result[:batch_parameters] = Hash(*values)
49
+ else
50
+ @result[:batch_parameters] = Monosasi::DSL::Context::Rule::Target::BatchParameters.new(@context, &block).result
51
+ end
41
52
  end
42
53
  end
@@ -0,0 +1,39 @@
1
+ class Monosasi::DSL::Context::Rule::Target::BatchParameters
2
+ include Monosasi::DSL::TemplateHelper
3
+
4
+ def initialize(context, &block)
5
+ @context = context
6
+ @result = {}
7
+ instance_eval(&block)
8
+ end
9
+
10
+ attr_reader :result
11
+
12
+ private
13
+
14
+ def job_definition(value)
15
+ @result[:job_definition] = value.to_s
16
+ end
17
+
18
+ def job_name(value)
19
+ @result[:job_name] = value.to_s
20
+ end
21
+
22
+ class BatchRetryStrategy
23
+ include Monosasi::DSL::TemplateHelper
24
+
25
+ def initialize(context, &block)
26
+ @context = context
27
+ @result = {}
28
+ instance_eval(&block)
29
+ end
30
+
31
+ attr_reader :result
32
+
33
+ private
34
+
35
+ def attempts(value)
36
+ @result[:attempts] = value
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,81 @@
1
+ class Monosasi::DSL::Context::Rule::Target::EcsParameters
2
+ include Monosasi::DSL::TemplateHelper
3
+
4
+ def initialize(context, &block)
5
+ @context = context
6
+ @result = {}
7
+ instance_eval(&block)
8
+ end
9
+
10
+ attr_reader :result
11
+
12
+ private
13
+
14
+ def task_definition_arn(value)
15
+ @result[:task_definition_arn] = value.to_s
16
+ end
17
+
18
+ def task_count(value)
19
+ @result[:task_count] = value
20
+ end
21
+
22
+ def launch_type(value)
23
+ @result[:launch_type] = value.to_s
24
+ end
25
+
26
+ def network_configuration(&block)
27
+ @result[:network_configuration] = NetworkConfiguration.new(@context, &block).result
28
+ end
29
+
30
+ def platform_version(value)
31
+ @result[:platform_version] = value.to_s
32
+ end
33
+
34
+ def group(value)
35
+ @result[:group] = value.to_s
36
+ end
37
+
38
+ class NetworkConfiguration
39
+ include Monosasi::DSL::TemplateHelper
40
+
41
+ def initialize(context, &block)
42
+ @context = context
43
+ @result = {}
44
+ instance_eval(&block)
45
+ end
46
+
47
+ attr_reader :result
48
+
49
+ private
50
+
51
+ def awsvpc_configuration(&block)
52
+ @result[:awsvpc_configuration] = AwsvpcConfiguration.new(@context, &block).result
53
+ end
54
+
55
+ class AwsvpcConfiguration
56
+ include Monosasi::DSL::TemplateHelper
57
+
58
+ def initialize(context, &block)
59
+ @context = context
60
+ @result = {}
61
+ instance_eval(&block)
62
+ end
63
+
64
+ attr_reader :result
65
+
66
+ private
67
+
68
+ def subnets(values)
69
+ @result[:subnets] = values
70
+ end
71
+
72
+ def security_groups(values)
73
+ @result[:security_groups] = values
74
+ end
75
+
76
+ def assign_public_ip(value)
77
+ @result[:assign_public_ip] = value.to_s
78
+ end
79
+ end
80
+ end
81
+ end
@@ -96,9 +96,8 @@ end
96
96
  end
97
97
 
98
98
  if target[:ecs_parameters]
99
- body += <<-EOS
100
- ecs_parameters #{target[:ecs_parameters].inspect}
101
- EOS
99
+ body += output_ecs_parameters(target[:ecs_parameters])
100
+ body += "\n"
102
101
  end
103
102
 
104
103
  if target[:role_arn]
@@ -108,9 +107,8 @@ end
108
107
  end
109
108
 
110
109
  if target[:batch_parameters]
111
- body += <<-EOS
112
- batch_parameters #{target[:batch_parameters].inspect}
113
- EOS
110
+ body += output_batch_parameters(target[:batch_parameters])
111
+ body += "\n"
114
112
  end
115
113
 
116
114
  <<-EOS.chomp
@@ -119,4 +117,12 @@ end
119
117
  end
120
118
  EOS
121
119
  end
120
+
121
+ def output_ecs_parameters(params)
122
+ Dslh.deval({"ecs_parameters" => params}, initial_depth: 2, force_dump_braces: true)
123
+ end
124
+
125
+ def output_batch_parameters(params)
126
+ Dslh.deval({"batch_parameters" => params}, initial_depth: 2, force_dump_braces: true)
127
+ end
122
128
  end
@@ -1,3 +1,3 @@
1
1
  module Monosasi
2
- VERSION = '0.1.4'
2
+ VERSION = '0.1.5'
3
3
  end
@@ -19,8 +19,9 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ['lib']
21
21
 
22
- spec.add_dependency 'aws-sdk', '>= 2.11.118'
22
+ spec.add_dependency 'aws-sdk-cloudwatchevents', '~> 1.13'
23
23
  spec.add_dependency 'diffy'
24
+ spec.add_dependency 'dslh'
24
25
  spec.add_dependency 'hashie'
25
26
  spec.add_dependency 'parallel'
26
27
  spec.add_dependency 'pp_sort_hash'
metadata CHANGED
@@ -1,31 +1,45 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: monosasi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - winebarrel
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-08 00:00:00.000000000 Z
11
+ date: 2019-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: aws-sdk
14
+ name: aws-sdk-cloudwatchevents
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.13'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.13'
27
+ - !ruby/object:Gem::Dependency
28
+ name: diffy
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - ">="
18
32
  - !ruby/object:Gem::Version
19
- version: 2.11.118
33
+ version: '0'
20
34
  type: :runtime
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - ">="
25
39
  - !ruby/object:Gem::Version
26
- version: 2.11.118
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
- name: diffy
42
+ name: dslh
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - ">="
@@ -161,6 +175,8 @@ files:
161
175
  - lib/monosasi/dsl/context.rb
162
176
  - lib/monosasi/dsl/context/rule.rb
163
177
  - lib/monosasi/dsl/context/rule/target.rb
178
+ - lib/monosasi/dsl/context/rule/target/batch_parameters.rb
179
+ - lib/monosasi/dsl/context/rule/target/ecs_parameters.rb
164
180
  - lib/monosasi/dsl/converter.rb
165
181
  - lib/monosasi/dsl/template_helper.rb
166
182
  - lib/monosasi/exporter.rb
@@ -191,7 +207,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
191
207
  version: '0'
192
208
  requirements: []
193
209
  rubyforge_project:
194
- rubygems_version: 2.7.6
210
+ rubygems_version: 2.7.3
195
211
  signing_key:
196
212
  specification_version: 4
197
213
  summary: Monosasi is a tool to manage Cloudwatch Events rules.