jets 0.7.1 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/Gemfile.lock +1 -1
- data/lib/jets.rb +2 -0
- data/lib/jets/cfn/ship.rb +2 -0
- data/lib/jets/cfn/template_builders/base_child_builder.rb +14 -0
- data/lib/jets/cfn/template_builders/controller_builder.rb +4 -74
- data/lib/jets/cfn/template_builders/interface.rb +5 -0
- data/lib/jets/cfn/template_builders/job_builder.rb +1 -55
- data/lib/jets/cfn/template_builders/rule_builder.rb +7 -58
- data/lib/jets/cfn/template_mappers.rb +1 -4
- data/lib/jets/cfn/template_mappers/child_mapper.rb +1 -1
- data/lib/jets/cfn/template_mappers/gateway_resource_mapper.rb +5 -4
- data/lib/jets/commands/build.rb +2 -2
- data/lib/jets/commands/templates/skeleton/config/application.rb.tt +4 -1
- data/lib/jets/internal/app/jobs/jets/preheat_job.rb +2 -2
- data/lib/jets/job.rb +0 -1
- data/lib/jets/job/dsl.rb +52 -34
- data/lib/jets/lambda/dsl.rb +43 -1
- data/lib/jets/lambda/task.rb +2 -1
- data/lib/jets/pascalize.rb +26 -8
- data/lib/jets/resource.rb +7 -0
- data/lib/jets/resource/attributes.rb +46 -0
- data/lib/jets/resource/creator.rb +17 -0
- data/lib/jets/resource/permission.rb +43 -0
- data/lib/jets/resource/replacer.rb +40 -0
- data/lib/jets/resource/replacer/base.rb +98 -0
- data/lib/jets/resource/replacer/config_rule.rb +18 -0
- data/lib/jets/resource/route.rb +67 -0
- data/lib/jets/resource/route/attributes.rb +8 -0
- data/lib/jets/resource/route/cors.rb +60 -0
- data/lib/jets/rule.rb +0 -2
- data/lib/jets/rule/dsl.rb +71 -31
- data/lib/jets/version.rb +1 -1
- metadata +12 -8
- data/lib/jets/cfn/template_mappers/config_rule_mapper.rb +0 -34
- data/lib/jets/cfn/template_mappers/events_rule_mapper.rb +0 -40
- data/lib/jets/cfn/template_mappers/gateway_method_mapper.rb +0 -56
- data/lib/jets/job/task.rb +0 -17
- data/lib/jets/rule/aws_managed_rule.rb +0 -12
- 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
|
data/lib/jets/rule/task.rb
DELETED
@@ -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
|