jets 0.8.18 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitmodules +0 -3
- data/CHANGELOG.md +20 -1
- data/Gemfile.lock +6 -2
- data/README/prerelease.md +6 -0
- data/README/testing.md +41 -0
- data/Rakefile +9 -1
- data/jets.gemspec +1 -0
- data/lib/jets.rb +17 -18
- data/lib/jets/application.rb +26 -3
- data/lib/jets/aws_services.rb +26 -59
- data/lib/jets/aws_services/stack_status.rb +52 -0
- data/lib/jets/builders.rb +3 -2
- data/lib/jets/builders/handler_generator.rb +38 -2
- data/lib/jets/builders/shared_deducer.rb +32 -0
- data/lib/jets/cfn/builders.rb +3 -1
- data/lib/jets/cfn/builders/api_deployment_builder.rb +1 -1
- data/lib/jets/cfn/builders/api_gateway_builder.rb +1 -1
- data/lib/jets/cfn/builders/base_child_builder.rb +37 -7
- data/lib/jets/cfn/builders/controller_builder.rb +6 -1
- data/lib/jets/cfn/builders/function_builder.rb +5 -0
- data/lib/jets/cfn/builders/interface.rb +5 -6
- data/lib/jets/cfn/builders/job_builder.rb +5 -0
- data/lib/jets/cfn/builders/parent_builder.rb +17 -16
- data/lib/jets/cfn/builders/rule_builder.rb +6 -1
- data/lib/jets/cfn/builders/shared_builder.rb +14 -0
- data/lib/jets/commands.rb +9 -8
- data/lib/jets/commands/build.rb +36 -14
- data/lib/jets/commands/console.rb +1 -0
- data/lib/jets/commands/help/runner.md +17 -0
- data/lib/jets/commands/main.rb +7 -0
- data/lib/jets/commands/new.rb +39 -19
- data/lib/jets/commands/runner.rb +18 -0
- data/lib/jets/commands/sequence.rb +27 -1
- data/lib/jets/commands/templates/skeleton/.rspec +3 -0
- data/lib/jets/commands/templates/skeleton/Gemfile.tt +0 -1
- data/lib/jets/commands/templates/skeleton/app/jobs/application_job.rb +2 -0
- data/lib/jets/commands/templates/skeleton/config/application.rb.tt +2 -1
- data/lib/jets/commands/templates/skeleton/config/routes.rb +5 -1
- data/lib/jets/commands/templates/skeleton/spec/spec_helper.rb.tt +5 -4
- data/lib/jets/core.rb +8 -6
- data/lib/jets/default/application.rb +1 -0
- data/lib/jets/generator.rb +1 -1
- data/lib/jets/inflections.rb +23 -0
- data/lib/jets/job/dsl.rb +69 -47
- data/lib/jets/klass.rb +6 -1
- data/lib/jets/lambda/dsl.rb +102 -34
- data/lib/jets/lambda/function_constructor.rb +2 -2
- data/lib/jets/lambda/task.rb +10 -5
- data/lib/jets/naming.rb +13 -2
- data/lib/jets/processors/deducer.rb +13 -2
- data/lib/jets/processors/main_processor.rb +1 -1
- data/lib/jets/rails_overrides.rb +1 -1
- data/lib/jets/resource.rb +20 -5
- data/lib/jets/resource/api_gateway/deployment.rb +0 -1
- data/lib/jets/resource/associated.rb +26 -0
- data/lib/jets/resource/base.rb +12 -0
- data/lib/jets/resource/child_stack.rb +2 -0
- data/lib/jets/resource/child_stack/api_deployment.rb +9 -15
- data/lib/jets/resource/child_stack/api_gateway.rb +8 -8
- data/lib/jets/resource/child_stack/app_class.rb +41 -16
- data/lib/jets/resource/child_stack/base.rb +24 -0
- data/lib/jets/resource/child_stack/shared.rb +90 -0
- data/lib/jets/resource/config.rb +4 -0
- data/lib/jets/resource/config/config_rule.rb +66 -0
- data/lib/jets/resource/config/managed_rule.rb +15 -0
- data/lib/jets/resource/events.rb +3 -0
- data/lib/jets/resource/events/rule.rb +31 -0
- data/lib/jets/resource/iam/application_role.rb +2 -2
- data/lib/jets/resource/iam/base_role_definition.rb +4 -2
- data/lib/jets/resource/iam/class_role.rb +50 -2
- data/lib/jets/resource/iam/function_role.rb +28 -0
- data/lib/jets/resource/iam/policy_document.rb +0 -4
- data/lib/jets/resource/permission.rb +12 -6
- data/lib/jets/resource/replacer.rb +4 -0
- data/lib/jets/resource/sns.rb +3 -0
- data/lib/jets/resource/standardizer.rb +42 -0
- data/lib/jets/router.rb +9 -1
- data/lib/jets/rule/dsl.rb +51 -78
- data/lib/jets/stack.rb +105 -0
- data/lib/jets/stack/builder.rb +38 -0
- data/lib/jets/stack/definition.rb +50 -0
- data/lib/jets/stack/function.rb +60 -0
- data/lib/jets/stack/main.rb +5 -0
- data/lib/jets/stack/main/dsl.rb +33 -0
- data/lib/jets/stack/main/extensions/base.rb +45 -0
- data/lib/jets/stack/main/extensions/cloudwatch.rb +19 -0
- data/lib/jets/stack/main/extensions/lambda.rb +69 -0
- data/lib/jets/stack/main/extensions/sns.rb +12 -0
- data/lib/jets/stack/main/extensions/sqs.rb +8 -0
- data/lib/jets/stack/output.rb +38 -0
- data/lib/jets/stack/output/dsl.rb +19 -0
- data/lib/jets/stack/output/lookup.rb +36 -0
- data/lib/jets/stack/parameter.rb +38 -0
- data/lib/jets/stack/parameter/dsl.rb +42 -0
- data/lib/jets/stack/resource.rb +30 -0
- data/lib/jets/stack/resource/dsl.rb +19 -0
- data/lib/jets/version.rb +1 -1
- metadata +53 -4
- data/support/clean +0 -3
- data/support/console +0 -3
@@ -0,0 +1,38 @@
|
|
1
|
+
# Implements:
|
2
|
+
#
|
3
|
+
# template - uses @definition to build a CloudFormation template section
|
4
|
+
#
|
5
|
+
class Jets::Stack
|
6
|
+
class Parameter
|
7
|
+
autoload :Dsl, "jets/stack/parameter/dsl"
|
8
|
+
include Definition
|
9
|
+
|
10
|
+
def template
|
11
|
+
camelize(add_required(standarize(@definition)))
|
12
|
+
end
|
13
|
+
|
14
|
+
# Type is the only required property: https://amzn.to/2x8W5aD
|
15
|
+
def standarize(definition)
|
16
|
+
first, second, _ = definition
|
17
|
+
if definition.size == 1 && first.is_a?(Hash) # long form
|
18
|
+
first # pass through
|
19
|
+
elsif definition.size == 2 && second.is_a?(Hash) # medium form
|
20
|
+
logical_id, properties = first, second
|
21
|
+
{ logical_id => properties }
|
22
|
+
elsif (definition.size == 2 && second.is_a?(String)) || # short form
|
23
|
+
definition.size == 1
|
24
|
+
logical_id = first
|
25
|
+
properties = second.is_a?(String) ? { default: second } : {}
|
26
|
+
{ logical_id => properties }
|
27
|
+
else # I dont know what form
|
28
|
+
raise "Invalid form provided. definition #{definition.inspect}"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def add_required(attributes)
|
33
|
+
properties = attributes.values.first
|
34
|
+
properties[:type] ||= 'String'
|
35
|
+
attributes
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
class Jets::Stack
|
2
|
+
class Parameter
|
3
|
+
module Dsl
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
extend Memoist
|
6
|
+
|
7
|
+
def parameters
|
8
|
+
add_common_parameters
|
9
|
+
add_depends_on_parameters
|
10
|
+
Parameter.definitions(self.class)
|
11
|
+
end
|
12
|
+
|
13
|
+
def add_common_parameters
|
14
|
+
self.class.parameter(:iam_role)
|
15
|
+
self.class.parameter(:s3_bucket)
|
16
|
+
end
|
17
|
+
|
18
|
+
def add_depends_on_parameters
|
19
|
+
depends_on = self.class.depends_on
|
20
|
+
depends_on.each do |dependency|
|
21
|
+
dependency_outputs(dependency).each do |output|
|
22
|
+
self.class.parameter(output)
|
23
|
+
end
|
24
|
+
end if depends_on
|
25
|
+
end
|
26
|
+
memoize :add_depends_on_parameters # only run once
|
27
|
+
|
28
|
+
# Returns output keys associated with the stack. They are the resource logical ids.
|
29
|
+
def dependency_outputs(dependency)
|
30
|
+
dependency.to_s.classify.constantize.output_keys
|
31
|
+
end
|
32
|
+
|
33
|
+
class_methods do
|
34
|
+
def parameter(*definition)
|
35
|
+
# self is subclass is the stack that inherits from Jets::Stack
|
36
|
+
# IE: ExampleStack < Jets::Stack
|
37
|
+
Parameter.new(self, *definition).register
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Implements:
|
2
|
+
#
|
3
|
+
# template - uses @definition to build a CloudFormation template section
|
4
|
+
#
|
5
|
+
class Jets::Stack
|
6
|
+
class Resource
|
7
|
+
autoload :Dsl, "jets/stack/resource/dsl"
|
8
|
+
include Definition
|
9
|
+
|
10
|
+
def template
|
11
|
+
template = camelize(standarize(@definition))
|
12
|
+
template = replace_placeholers(template)
|
13
|
+
template
|
14
|
+
end
|
15
|
+
|
16
|
+
# CloudFormation Resources reference: https://amzn.to/2NKg6ip
|
17
|
+
def standarize(definition)
|
18
|
+
Jets::Resource::Standardizer.new(definition).template
|
19
|
+
end
|
20
|
+
|
21
|
+
def replace_placeholers(template)
|
22
|
+
attributes = template.values.first
|
23
|
+
s3_key = attributes.dig('Properties','Code','S3Key')
|
24
|
+
if s3_key == "code_s3_key_placeholder"
|
25
|
+
attributes['Properties']['Code']['S3Key'] = Jets::Naming.code_s3_key
|
26
|
+
end
|
27
|
+
template
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class Jets::Stack
|
2
|
+
class Resource
|
3
|
+
module Dsl
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
def resources
|
7
|
+
Resource.definitions(self.class)
|
8
|
+
end
|
9
|
+
|
10
|
+
class_methods do
|
11
|
+
def resource(*definition)
|
12
|
+
# self is subclass is the stack that inherits from Jets::Stack
|
13
|
+
# IE: ExampleStack < Jets::Stack
|
14
|
+
Resource.new(self, *definition).register
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/jets/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-09-
|
11
|
+
date: 2018-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionpack
|
@@ -136,6 +136,20 @@ dependencies:
|
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: aws-sdk-sns
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: colorize
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -409,6 +423,8 @@ files:
|
|
409
423
|
- LICENSE.txt
|
410
424
|
- Procfile
|
411
425
|
- README.md
|
426
|
+
- README/prerelease.md
|
427
|
+
- README/testing.md
|
412
428
|
- Rakefile
|
413
429
|
- bin/release
|
414
430
|
- buildspec.yml
|
@@ -419,6 +435,7 @@ files:
|
|
419
435
|
- lib/jets/application/middleware.rb
|
420
436
|
- lib/jets/aws_info.rb
|
421
437
|
- lib/jets/aws_services.rb
|
438
|
+
- lib/jets/aws_services/stack_status.rb
|
422
439
|
- lib/jets/booter.rb
|
423
440
|
- lib/jets/builders.rb
|
424
441
|
- lib/jets/builders/code_builder.rb
|
@@ -427,6 +444,7 @@ files:
|
|
427
444
|
- lib/jets/builders/handler_generator.rb
|
428
445
|
- lib/jets/builders/node-hello.js
|
429
446
|
- lib/jets/builders/node-shim.js
|
447
|
+
- lib/jets/builders/shared_deducer.rb
|
430
448
|
- lib/jets/camelizer.rb
|
431
449
|
- lib/jets/cfn.rb
|
432
450
|
- lib/jets/cfn/builders.rb
|
@@ -439,6 +457,7 @@ files:
|
|
439
457
|
- lib/jets/cfn/builders/job_builder.rb
|
440
458
|
- lib/jets/cfn/builders/parent_builder.rb
|
441
459
|
- lib/jets/cfn/builders/rule_builder.rb
|
460
|
+
- lib/jets/cfn/builders/shared_builder.rb
|
442
461
|
- lib/jets/cfn/ship.rb
|
443
462
|
- lib/jets/cfn/status.rb
|
444
463
|
- lib/jets/cli.rb
|
@@ -479,6 +498,7 @@ files:
|
|
479
498
|
- lib/jets/commands/help/generate.md
|
480
499
|
- lib/jets/commands/help/new.md
|
481
500
|
- lib/jets/commands/help/routes.md
|
501
|
+
- lib/jets/commands/help/runner.md
|
482
502
|
- lib/jets/commands/help/server.md
|
483
503
|
- lib/jets/commands/help/status.md
|
484
504
|
- lib/jets/commands/help/url.md
|
@@ -491,6 +511,7 @@ files:
|
|
491
511
|
- lib/jets/commands/new.rb
|
492
512
|
- lib/jets/commands/rake_command.rb
|
493
513
|
- lib/jets/commands/rake_tasks.rb
|
514
|
+
- lib/jets/commands/runner.rb
|
494
515
|
- lib/jets/commands/sequence.rb
|
495
516
|
- lib/jets/commands/stack_info.rb
|
496
517
|
- lib/jets/commands/templates/skeleton/.env
|
@@ -498,6 +519,7 @@ files:
|
|
498
519
|
- lib/jets/commands/templates/skeleton/.env.test
|
499
520
|
- lib/jets/commands/templates/skeleton/.gitignore
|
500
521
|
- lib/jets/commands/templates/skeleton/.jetskeep
|
522
|
+
- lib/jets/commands/templates/skeleton/.rspec
|
501
523
|
- lib/jets/commands/templates/skeleton/Gemfile.tt
|
502
524
|
- lib/jets/commands/templates/skeleton/Procfile
|
503
525
|
- lib/jets/commands/templates/skeleton/README.md
|
@@ -562,6 +584,7 @@ files:
|
|
562
584
|
- lib/jets/generator/templates/rails/scaffold/scaffold.css
|
563
585
|
- lib/jets/generator/templates/rails/scaffold_controller/api_controller.rb
|
564
586
|
- lib/jets/generator/templates/rails/scaffold_controller/controller.rb
|
587
|
+
- lib/jets/inflections.rb
|
565
588
|
- lib/jets/internal/app/controllers/jets/public_controller.rb
|
566
589
|
- lib/jets/internal/app/controllers/jets/public_controller/python/show.py
|
567
590
|
- lib/jets/internal/app/controllers/jets/public_controller/python/show.pyc
|
@@ -605,11 +628,19 @@ files:
|
|
605
628
|
- lib/jets/resource/api_gateway/method.rb
|
606
629
|
- lib/jets/resource/api_gateway/resource.rb
|
607
630
|
- lib/jets/resource/api_gateway/rest_api.rb
|
631
|
+
- lib/jets/resource/associated.rb
|
608
632
|
- lib/jets/resource/base.rb
|
609
633
|
- lib/jets/resource/child_stack.rb
|
610
634
|
- lib/jets/resource/child_stack/api_deployment.rb
|
611
635
|
- lib/jets/resource/child_stack/api_gateway.rb
|
612
636
|
- lib/jets/resource/child_stack/app_class.rb
|
637
|
+
- lib/jets/resource/child_stack/base.rb
|
638
|
+
- lib/jets/resource/child_stack/shared.rb
|
639
|
+
- lib/jets/resource/config.rb
|
640
|
+
- lib/jets/resource/config/config_rule.rb
|
641
|
+
- lib/jets/resource/config/managed_rule.rb
|
642
|
+
- lib/jets/resource/events.rb
|
643
|
+
- lib/jets/resource/events/rule.rb
|
613
644
|
- lib/jets/resource/function.rb
|
614
645
|
- lib/jets/resource/iam.rb
|
615
646
|
- lib/jets/resource/iam/application_role.rb
|
@@ -621,6 +652,8 @@ files:
|
|
621
652
|
- lib/jets/resource/permission.rb
|
622
653
|
- lib/jets/resource/replacer.rb
|
623
654
|
- lib/jets/resource/s3.rb
|
655
|
+
- lib/jets/resource/sns.rb
|
656
|
+
- lib/jets/resource/standardizer.rb
|
624
657
|
- lib/jets/route.rb
|
625
658
|
- lib/jets/router.rb
|
626
659
|
- lib/jets/ruby_server.rb
|
@@ -633,12 +666,28 @@ files:
|
|
633
666
|
- lib/jets/server/route_matcher.rb
|
634
667
|
- lib/jets/server/timing_middleware.rb
|
635
668
|
- lib/jets/server/webpacker_setup.rb
|
669
|
+
- lib/jets/stack.rb
|
670
|
+
- lib/jets/stack/builder.rb
|
671
|
+
- lib/jets/stack/definition.rb
|
672
|
+
- lib/jets/stack/function.rb
|
673
|
+
- lib/jets/stack/main.rb
|
674
|
+
- lib/jets/stack/main/dsl.rb
|
675
|
+
- lib/jets/stack/main/extensions/base.rb
|
676
|
+
- lib/jets/stack/main/extensions/cloudwatch.rb
|
677
|
+
- lib/jets/stack/main/extensions/lambda.rb
|
678
|
+
- lib/jets/stack/main/extensions/sns.rb
|
679
|
+
- lib/jets/stack/main/extensions/sqs.rb
|
680
|
+
- lib/jets/stack/output.rb
|
681
|
+
- lib/jets/stack/output/dsl.rb
|
682
|
+
- lib/jets/stack/output/lookup.rb
|
683
|
+
- lib/jets/stack/parameter.rb
|
684
|
+
- lib/jets/stack/parameter/dsl.rb
|
685
|
+
- lib/jets/stack/resource.rb
|
686
|
+
- lib/jets/stack/resource/dsl.rb
|
636
687
|
- lib/jets/timing.rb
|
637
688
|
- lib/jets/timing/report.rb
|
638
689
|
- lib/jets/util.rb
|
639
690
|
- lib/jets/version.rb
|
640
|
-
- support/clean
|
641
|
-
- support/console
|
642
691
|
- vendor/dynomite/CHANGELOG.md
|
643
692
|
- vendor/dynomite/Gemfile
|
644
693
|
- vendor/dynomite/README.md
|
data/support/clean
DELETED
data/support/console
DELETED