jets 0.7.1 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/Gemfile.lock +1 -1
  4. data/lib/jets.rb +2 -0
  5. data/lib/jets/cfn/ship.rb +2 -0
  6. data/lib/jets/cfn/template_builders/base_child_builder.rb +14 -0
  7. data/lib/jets/cfn/template_builders/controller_builder.rb +4 -74
  8. data/lib/jets/cfn/template_builders/interface.rb +5 -0
  9. data/lib/jets/cfn/template_builders/job_builder.rb +1 -55
  10. data/lib/jets/cfn/template_builders/rule_builder.rb +7 -58
  11. data/lib/jets/cfn/template_mappers.rb +1 -4
  12. data/lib/jets/cfn/template_mappers/child_mapper.rb +1 -1
  13. data/lib/jets/cfn/template_mappers/gateway_resource_mapper.rb +5 -4
  14. data/lib/jets/commands/build.rb +2 -2
  15. data/lib/jets/commands/templates/skeleton/config/application.rb.tt +4 -1
  16. data/lib/jets/internal/app/jobs/jets/preheat_job.rb +2 -2
  17. data/lib/jets/job.rb +0 -1
  18. data/lib/jets/job/dsl.rb +52 -34
  19. data/lib/jets/lambda/dsl.rb +43 -1
  20. data/lib/jets/lambda/task.rb +2 -1
  21. data/lib/jets/pascalize.rb +26 -8
  22. data/lib/jets/resource.rb +7 -0
  23. data/lib/jets/resource/attributes.rb +46 -0
  24. data/lib/jets/resource/creator.rb +17 -0
  25. data/lib/jets/resource/permission.rb +43 -0
  26. data/lib/jets/resource/replacer.rb +40 -0
  27. data/lib/jets/resource/replacer/base.rb +98 -0
  28. data/lib/jets/resource/replacer/config_rule.rb +18 -0
  29. data/lib/jets/resource/route.rb +67 -0
  30. data/lib/jets/resource/route/attributes.rb +8 -0
  31. data/lib/jets/resource/route/cors.rb +60 -0
  32. data/lib/jets/rule.rb +0 -2
  33. data/lib/jets/rule/dsl.rb +71 -31
  34. data/lib/jets/version.rb +1 -1
  35. metadata +12 -8
  36. data/lib/jets/cfn/template_mappers/config_rule_mapper.rb +0 -34
  37. data/lib/jets/cfn/template_mappers/events_rule_mapper.rb +0 -40
  38. data/lib/jets/cfn/template_mappers/gateway_method_mapper.rb +0 -56
  39. data/lib/jets/job/task.rb +0 -17
  40. data/lib/jets/rule/aws_managed_rule.rb +0 -12
  41. data/lib/jets/rule/task.rb +0 -44
@@ -1,56 +0,0 @@
1
- class Jets::Cfn::TemplateMappers
2
- class GatewayMethodMapper
3
- def initialize(route)
4
- @route = route # {to: "posts#index", path: "posts", method: :get}
5
- end
6
-
7
- def logical_id
8
- if @route.homepage?
9
- "RootPathHomepageGetApiGatewayMethod"
10
- else
11
- "#{path_method_id}ApiGatewayMethod"
12
- end
13
- end
14
-
15
- def path_method_id
16
- path = @route.path.gsub(':','_').gsub('/','_').gsub('*','')
17
- method = @route.method.downcase
18
- "#{path}_#{method}".camelize
19
- end
20
-
21
- # Example returns:
22
- # ApiGatewayResourcePostsIdEdit or
23
- # ApiGatewayResourcePostsId or
24
- # ApiGatewayResourcePosts
25
- def gateway_resource_logical_id
26
- resource_map.logical_id
27
- end
28
-
29
- def cors_logical_id
30
- resource_map.cors_logical_id
31
- end
32
-
33
- def resource_map
34
- @resource_map ||= GatewayResourceMapper.new(@route.path)
35
- end
36
-
37
- def lambda_function_logical_id
38
- "#{controller_action_logical_id}LambdaFunction"
39
- end
40
-
41
- def permission_logical_id
42
- "#{controller_action_logical_id}ApiGatewayPermission"
43
- end
44
-
45
- # Example: PostsControllerIndex
46
- def controller_action_logical_id
47
- controller, action = @route.to.split('#')
48
- "#{controller}_controller_#{action}".camelize.gsub('::','')
49
- end
50
-
51
- def controller
52
- controller, action = @route.to.split('#')
53
- "#{controller}_controller".camelize
54
- end
55
- end
56
- end
data/lib/jets/job/task.rb DELETED
@@ -1,17 +0,0 @@
1
- class Jets::Job::Task < Jets::Lambda::Task
2
- attr_reader :state
3
- def initialize(class_name, meth, options={})
4
- super
5
- @rate = options[:rate]
6
- @cron = options[:cron]
7
- @state = options[:state] || 'ENABLED'
8
- end
9
-
10
- def schedule_expression
11
- if @rate
12
- "rate(#{@rate})"
13
- elsif @cron
14
- "cron(#{@cron})"
15
- end
16
- end
17
- end
@@ -1,12 +0,0 @@
1
- class Jets::Rule::AwsManagedRule < Jets::Rule::Task
2
- def config_rule_defaults
3
- source_identifier = meth.to_s.upcase
4
- {
5
- "ConfigRuleName" => config_rule_name,
6
- "Source" => {
7
- "Owner" => "AWS",
8
- "SourceIdentifier" => source_identifier
9
- }
10
- }
11
- end
12
- end
@@ -1,44 +0,0 @@
1
- class Jets::Rule::Task < Jets::Lambda::Task
2
- attr_reader :config_rule
3
- def initialize(class_name, meth, options={})
4
- super
5
- @config_rule = options[:config_rule] || {}
6
- end
7
-
8
- def config_rule_name
9
- @properties[:config_rule_name] || conventional_config_rule_name
10
- end
11
-
12
- def conventional_config_rule_name
13
- name_without_rule = @class_name.underscore.gsub(/_rule$/,'')
14
- "#{name_without_rule}_#{@meth}".dasherize
15
- end
16
-
17
- def config_rule_properties
18
- props = Jets::Pascalize.pascalize(@config_rule)
19
- props = config_rule_defaults.merge(props)
20
- props
21
- end
22
-
23
- def config_rule_defaults
24
- map = Jets::Cfn::TemplateMappers::ConfigRuleMapper.new(self)
25
- source_identifier = "!GetAtt #{map.lambda_function_logical_id}.Arn"
26
- {
27
- "ConfigRuleName" => config_rule_name,
28
- "Source" => {
29
- "Owner" => "CUSTOM_LAMBDA",
30
- "SourceIdentifier" => source_identifier,
31
- "SourceDetails" => [
32
- {
33
- "EventSource" => "aws.config",
34
- "MessageType" => "ConfigurationItemChangeNotification"
35
- },
36
- {
37
- "EventSource" => "aws.config",
38
- "MessageType" => "OversizedConfigurationItemChangeNotification"
39
- }
40
- ]
41
- }
42
- }
43
- end
44
- end