monosasi 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.