lono 7.5.2 → 8.0.0.pre.rc3
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 +4 -4
- data/.cody/README.md +5 -15
- data/.cody/acceptance/bin/build.sh +52 -0
- data/.cody/acceptance/buildspec.yml +10 -0
- data/.cody/acceptance/project.rb +6 -0
- data/.cody/{role.rb → acceptance/role.rb} +0 -0
- data/.cody/shared/script/install/lono.sh +40 -0
- data/.cody/shared/script/install.sh +5 -0
- data/CHANGELOG.md +46 -5
- data/CONTRIBUTING.md +2 -2
- data/Gemfile +3 -1
- data/LICENSE.txt +201 -1
- data/README.md +6 -11
- data/lib/lono/api/client.rb +3 -2
- data/lib/lono/app/callable_option/concern.rb +12 -0
- data/lib/lono/app/callable_option.rb +56 -0
- data/lib/lono/app/inits.rb +13 -0
- data/lib/lono/app.rb +73 -0
- data/lib/lono/autoloader.rb +3 -2
- data/lib/lono/aws_services/helper.rb +41 -6
- data/lib/lono/aws_services.rb +37 -6
- data/lib/lono/blueprint.rb +3 -11
- data/lib/lono/booter.rb +28 -0
- data/lib/lono/builder/allow/base.rb +54 -0
- data/lib/lono/builder/allow/env.rb +17 -0
- data/lib/lono/builder/allow/region.rb +20 -0
- data/lib/lono/builder/allow.rb +8 -0
- data/lib/lono/builder/configset/combiner.rb +145 -0
- data/lib/lono/builder/configset/definition/base.rb +47 -0
- data/lib/lono/builder/configset/definition/context.rb +29 -0
- data/lib/lono/{configset/strategy/helpers/dsl → builder/configset/definition/dsl/syntax}/auth.rb +1 -1
- data/lib/lono/{configset/strategy/helpers/dsl/core.rb → builder/configset/definition/dsl/syntax/content.rb} +11 -3
- data/lib/lono/{configset/strategy/helpers/dsl/syntax.rb → builder/configset/definition/dsl/syntax/core.rb} +15 -9
- data/lib/lono/{configset/strategy/helpers/dsl → builder/configset/definition/dsl/syntax}/package.rb +1 -1
- data/lib/lono/builder/configset/definition/dsl/syntax.rb +5 -0
- data/lib/lono/{configset/strategy → builder/configset/definition}/dsl.rb +10 -14
- data/lib/lono/{configset/strategy → builder/configset/definition}/erb.rb +13 -16
- data/lib/lono/builder/configset/definition.rb +18 -0
- data/lib/lono/builder/configset/evaluator.rb +10 -0
- data/lib/lono/builder/configset/registration.rb +35 -0
- data/lib/lono/builder/context.rb +40 -0
- data/lib/lono/builder/dsl/evaluator.rb +45 -0
- data/lib/lono/builder/dsl/finalizer/base.rb +8 -0
- data/lib/lono/builder/dsl/finalizer/configsets.rb +20 -0
- data/lib/lono/builder/dsl/finalizer/files/base.rb +4 -0
- data/lib/lono/builder/dsl/finalizer/files/build.rb +58 -0
- data/lib/lono/builder/dsl/finalizer/files/replace.rb +31 -0
- data/lib/lono/builder/dsl/finalizer/files.rb +9 -0
- data/lib/lono/{template/strategy → builder}/dsl/finalizer/parameter_groups.rb +6 -5
- data/lib/lono/builder/dsl/finalizer.rb +15 -0
- data/lib/lono/{template/strategy/dsl/builder/helpers/ec2_helper.rb → builder/dsl/helpers/ec2.rb} +3 -3
- data/lib/lono/builder/dsl/helpers/files.rb +7 -0
- data/lib/lono/builder/dsl/helpers/partials.rb +140 -0
- data/lib/lono/{template/strategy/dsl/builder/helpers/s3_helper.rb → builder/dsl/helpers/s3.rb} +3 -3
- data/lib/lono/{template/context/ssm_fetcher.rb → builder/dsl/helpers/ssm/fetcher.rb} +5 -3
- data/lib/lono/{template/context/helpers.rb → builder/dsl/helpers/ssm.rb} +3 -3
- data/lib/lono/{template/strategy/dsl/builder/helpers/stack_helper.rb → builder/dsl/helpers/stack.rb} +14 -9
- data/lib/lono/{template/strategy/dsl/builder/helpers/tags_helper.rb → builder/dsl/helpers/tags.rb} +2 -2
- data/lib/lono/builder/dsl/helpers/template_file.rb +66 -0
- data/lib/lono/builder/dsl/helpers.rb +5 -0
- data/lib/lono/builder/dsl/syntax/core/base.rb +22 -0
- data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/condition.rb +1 -1
- data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/mapping.rb +1 -1
- data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/output.rb +1 -1
- data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/parameter.rb +1 -1
- data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/resource/property_mover.rb +12 -2
- data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/resource.rb +1 -1
- data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/section.rb +1 -1
- data/lib/lono/builder/dsl/syntax/core/squeezer.rb +38 -0
- data/lib/lono/{template/strategy/dsl/builder/section/methods.rb → builder/dsl/syntax/core.rb} +8 -8
- data/lib/lono/{template/strategy/dsl/builder → builder/dsl/syntax}/fn.rb +2 -2
- data/lib/lono/{template/strategy/dsl/builder → builder/dsl}/syntax/parameter_group.rb +1 -1
- data/lib/lono/builder/dsl/syntax.rb +9 -0
- data/lib/lono/builder/dsl.rb +14 -0
- data/lib/lono/{param/generator.rb → builder/param.rb} +24 -22
- data/lib/lono/builder/template/aws_service.rb +15 -0
- data/lib/lono/builder/template/bashify.rb +43 -0
- data/lib/lono/{output/template.rb → builder/template/output.rb} +14 -7
- data/lib/lono/{template → builder/template}/post_processor.rb +4 -4
- data/lib/lono/builder/template/upload.rb +8 -0
- data/lib/lono/builder/template.rb +55 -0
- data/lib/lono/{template/strategy/dsl/builder → builder/util}/stringify.rb +1 -1
- data/lib/lono/bundler/cli/base.rb +10 -0
- data/lib/lono/bundler/cli/bundle.rb +44 -0
- data/lib/lono/bundler/cli/clean.rb +27 -0
- data/lib/lono/bundler/cli/help/bundle.md +3 -0
- data/lib/lono/bundler/cli/help.rb +11 -0
- data/lib/lono/bundler/cli.rb +7 -0
- data/lib/lono/bundler/component/concerns/local_concern.rb +10 -0
- data/lib/lono/bundler/component/concerns/notation_concern.rb +59 -0
- data/lib/lono/bundler/component/concerns/path_concern.rb +68 -0
- data/lib/lono/bundler/component/concerns/stack_concern.rb +60 -0
- data/lib/lono/bundler/component/fetcher/base.rb +27 -0
- data/lib/lono/bundler/component/fetcher/gcs.rb +69 -0
- data/lib/lono/bundler/component/fetcher/git.rb +69 -0
- data/lib/lono/bundler/component/fetcher/local.rb +15 -0
- data/lib/lono/bundler/component/fetcher/s3.rb +66 -0
- data/lib/lono/bundler/component/fetcher.rb +18 -0
- data/lib/lono/bundler/component/http/concern.rb +45 -0
- data/lib/lono/bundler/component/http/source.rb +19 -0
- data/lib/lono/bundler/component/org_repo.rb +65 -0
- data/lib/lono/bundler/component/props/extension.rb +18 -0
- data/lib/lono/bundler/component/props/typer.rb +41 -0
- data/lib/lono/bundler/component/props.rb +122 -0
- data/lib/lono/bundler/component/registry.rb +136 -0
- data/lib/lono/bundler/component.rb +52 -0
- data/lib/lono/bundler/config.rb +18 -0
- data/lib/lono/bundler/dsl/syntax.rb +46 -0
- data/lib/lono/bundler/dsl.rb +21 -0
- data/lib/lono/bundler/exporter/base.rb +6 -0
- data/lib/lono/bundler/exporter/copy.rb +22 -0
- data/lib/lono/bundler/exporter.rb +50 -0
- data/lib/lono/bundler/extract/tar.rb +33 -0
- data/lib/lono/bundler/extract/zip.rb +16 -0
- data/lib/lono/bundler/info.rb +39 -0
- data/lib/lono/bundler/list.rb +26 -0
- data/lib/lono/bundler/lockfile/version_comparer.rb +56 -0
- data/lib/lono/bundler/lockfile/yamler.rb +36 -0
- data/lib/lono/bundler/lockfile.rb +66 -0
- data/lib/lono/bundler/lonofile.rb +32 -0
- data/lib/lono/bundler/runner.rb +27 -0
- data/lib/lono/bundler/syncer.rb +70 -0
- data/lib/lono/bundler/util/git.rb +37 -0
- data/lib/lono/bundler/util/logging.rb +7 -0
- data/lib/lono/bundler/util/sure.rb +5 -0
- data/lib/lono/{bundle.rb → bundler.rb} +38 -4
- data/lib/lono/cfn/base.rb +9 -195
- data/lib/lono/cfn/cancel.rb +12 -29
- data/lib/lono/cfn/concerns/build.rb +10 -0
- data/lib/lono/cfn/concerns/template_output.rb +10 -0
- data/lib/lono/cfn/concerns.rb +43 -0
- data/lib/lono/cfn/delete.rb +8 -32
- data/lib/lono/cfn/deploy/base.rb +4 -0
- data/lib/lono/cfn/deploy/iam.rb +48 -0
- data/lib/lono/cfn/deploy/notification.rb +8 -0
- data/lib/lono/cfn/deploy/operable.rb +18 -0
- data/lib/lono/cfn/deploy/opts.rb +49 -0
- data/lib/lono/cfn/deploy/rollback.rb +46 -0
- data/lib/lono/cfn/deploy/tags.rb +18 -0
- data/lib/lono/cfn/deploy.rb +100 -5
- data/lib/lono/cfn/download.rb +4 -7
- data/lib/lono/cfn/output.rb +49 -0
- data/lib/lono/cfn/plan/base.rb +19 -0
- data/lib/lono/cfn/plan/changeset/base.rb +19 -0
- data/lib/lono/cfn/plan/changeset/notifications.rb +24 -0
- data/lib/lono/cfn/plan/changeset/outputs.rb +25 -0
- data/lib/lono/cfn/plan/changeset/resources.rb +48 -0
- data/lib/lono/cfn/plan/changeset/tags.rb +16 -0
- data/lib/lono/cfn/plan/changeset.rb +136 -0
- data/lib/lono/cfn/plan/concerns.rb +10 -0
- data/lib/lono/cfn/plan/delete.rb +16 -0
- data/lib/lono/cfn/plan/diff/base.rb +10 -0
- data/lib/lono/cfn/plan/diff/data.rb +62 -0
- data/lib/lono/cfn/plan/diff/file.rb +57 -0
- data/lib/lono/cfn/plan/new.rb +26 -0
- data/lib/lono/cfn/{preview → plan}/param.rb +26 -34
- data/lib/lono/cfn/plan/summary.rb +16 -0
- data/lib/lono/cfn/plan/template.rb +28 -0
- data/lib/lono/cfn/plan.rb +34 -0
- data/lib/lono/cfn/show.rb +30 -0
- data/lib/lono/cfn/status.rb +1 -1
- data/lib/lono/cli/abstract.rb +11 -0
- data/lib/lono/cli/base.rb +11 -0
- data/lib/lono/cli/build.rb +47 -0
- data/lib/lono/cli/bundle.rb +21 -0
- data/lib/lono/cli/cfn/opts.rb +59 -0
- data/lib/lono/cli/cfn.rb +19 -0
- data/lib/lono/cli/clean.rb +23 -0
- data/lib/lono/cli/code.rb +22 -0
- data/lib/lono/{completion.rb → cli/completion.rb} +2 -2
- data/lib/lono/{help → cli/help}/blueprint/new.md +4 -4
- data/lib/lono/{help/generate.md → cli/help/build.md} +6 -6
- data/lib/lono/{help → cli/help}/cfn/cancel.md +0 -0
- data/lib/lono/cli/help/cfn/download.md +3 -0
- data/lib/lono/{help → cli/help}/cfn/preview.md +9 -8
- data/lib/lono/{help → cli/help}/cfn/status.md +0 -1
- data/lib/lono/cli/help/cfn.md +4 -0
- data/lib/lono/{help → cli/help}/code/convert.md +0 -0
- data/lib/lono/{help → cli/help}/code/import.md +2 -2
- data/lib/lono/{help → cli/help}/completion.md +3 -3
- data/lib/lono/{help → cli/help}/completion_script.md +0 -0
- data/lib/lono/{help → cli/help}/configsets.md +0 -0
- data/lib/lono/cli/help/down.md +13 -0
- data/lib/lono/cli/help/new/helper/blueprint.md +17 -0
- data/lib/lono/cli/help/new/helper/project.md +16 -0
- data/lib/lono/cli/help/new/project.md +34 -0
- data/lib/lono/{help → cli/help}/param/generate.md +0 -0
- data/lib/lono/cli/help/param.md +6 -0
- data/lib/lono/{help → cli/help}/pro/blueprints.md +0 -0
- data/lib/lono/{help → cli/help}/pro/configsets.md +0 -0
- data/lib/lono/{help → cli/help}/script/build.md +0 -0
- data/lib/lono/{help → cli/help}/script/upload.md +0 -0
- data/lib/lono/cli/help/seed.md +24 -0
- data/lib/lono/cli/help/summary.md +33 -0
- data/lib/lono/{help → cli/help}/template/bashify.md +0 -0
- data/lib/lono/cli/help/template/generate.md +7 -0
- data/lib/lono/{help → cli/help}/template.md +0 -0
- data/lib/lono/cli/help/up.md +30 -0
- data/lib/lono/{help → cli/help}/user_data.md +3 -3
- data/lib/lono/cli/help.rb +56 -0
- data/lib/lono/cli/list.rb +25 -0
- data/lib/lono/cli/new/blueprint.rb +29 -0
- data/lib/lono/cli/new/concerns.rb +16 -0
- data/lib/lono/cli/new/configset.rb +37 -0
- data/lib/lono/{extension/new.rb → cli/new/extension.rb} +2 -10
- data/lib/lono/cli/new/helper/blueprint.rb +26 -0
- data/lib/lono/cli/new/helper/project.rb +24 -0
- data/lib/lono/cli/new/helper.rb +13 -0
- data/lib/lono/cli/new/project.rb +77 -0
- data/lib/lono/cli/new/sequence.rb +56 -0
- data/lib/lono/cli/new/shim.rb +59 -0
- data/lib/lono/cli/new/test/blueprint.rb +23 -0
- data/lib/lono/cli/new/test/sequence.rb +10 -0
- data/lib/lono/cli/new/test.rb +8 -0
- data/lib/lono/cli/new.rb +27 -0
- data/lib/lono/{opts.rb → cli/opts.rb} +9 -12
- data/lib/lono/{s3.rb → cli/s3.rb} +9 -7
- data/lib/lono/cli/script/base.rb +5 -0
- data/lib/lono/cli/script/build.rb +72 -0
- data/lib/lono/cli/script/upload.rb +49 -0
- data/lib/lono/{script.rb → cli/script.rb} +2 -2
- data/lib/lono/cli/seed.rb +9 -0
- data/lib/lono/cli/status.rb +18 -0
- data/lib/lono/cli/test.rb +35 -0
- data/lib/lono/cli.rb +78 -109
- data/lib/lono/command.rb +27 -1
- data/lib/lono/component.rb +29 -0
- data/lib/lono/concerns/aws_info.rb +14 -0
- data/lib/lono/concerns/names.rb +9 -0
- data/lib/lono/configset.rb +11 -10
- data/lib/lono/core.rb +25 -54
- data/lib/lono/ext/core/module.rb +31 -0
- data/lib/lono/ext/core/object.rb +32 -0
- data/lib/lono/ext/core/string.rb +9 -0
- data/lib/lono/ext.rb +4 -0
- data/lib/lono/files/base.rb +12 -0
- data/lib/lono/files/builder.rb +37 -0
- data/lib/lono/files/compressor.rb +53 -0
- data/lib/lono/files/concerns/post_processing.rb +35 -0
- data/lib/lono/files/concerns/registration.rb +13 -0
- data/lib/lono/files/registry.rb +6 -0
- data/lib/lono/files.rb +37 -0
- data/lib/lono/importer/base.rb +6 -6
- data/lib/lono/importer/download.rb +7 -7
- data/lib/lono/importer/dsl.rb +3 -3
- data/lib/lono/importer/service/coder.rb +67 -63
- data/lib/lono/importer.rb +1 -10
- data/lib/lono/inspector/base.rb +7 -7
- data/lib/lono/inspector/summary.rb +18 -19
- data/lib/lono/layering/layer.rb +112 -0
- data/lib/lono/layering.rb +13 -55
- data/lib/lono/logger/formatter.rb +13 -0
- data/lib/lono/logger.rb +32 -0
- data/lib/lono/names.rb +50 -0
- data/lib/lono/plugin/meta.rb +30 -0
- data/lib/lono/plugin/tester.rb +13 -0
- data/lib/lono/plugin.rb +10 -0
- data/lib/lono/s3/aws_setup.rb +4 -3
- data/lib/lono/s3/bucket.rb +42 -42
- data/lib/lono/s3/rollback.rb +8 -0
- data/lib/lono/s3/uploader.rb +33 -34
- data/lib/lono/script/base.rb +3 -3
- data/lib/lono/script/build.rb +11 -12
- data/lib/lono/script/upload.rb +7 -7
- data/lib/lono/seeder.rb +110 -0
- data/lib/lono/user_data.rb +10 -13
- data/lib/lono/utils/logging.rb +7 -0
- data/lib/lono/utils/{pretty_time.rb → pretty.rb} +6 -2
- data/lib/lono/utils/quit.rb +7 -0
- data/lib/lono/utils/rsync.rb +4 -2
- data/lib/lono/utils/sure.rb +4 -4
- data/lib/lono/version.rb +1 -1
- data/lib/lono/yamler/validator.rb +7 -22
- data/lib/lono.rb +15 -12
- data/lib/templates/blueprint/template.rb +2 -0
- data/lib/templates/configset/configset.rb +2 -0
- data/lib/templates/examples/blueprint/template.rb +9 -0
- data/lib/templates/{configset/lib → examples/configset}/configset.rb +0 -0
- data/lib/templates/helper/%underscore_name%_helper.rb.tt +6 -0
- data/lib/templates/{skeleton → project}/.gitignore +1 -2
- data/lib/templates/project/Gemfile.tt +11 -0
- data/lib/templates/project/README.md +9 -0
- data/lib/templates/project/config/app.rb +3 -0
- data/lib/templates/shim/lono +7 -0
- data/lono.gemspec +51 -44
- metadata +282 -296
- data/.circleci/README.md +0 -3
- data/.circleci/config.yml +0 -58
- data/.cody/acceptance.sh +0 -49
- data/.cody/buildspec.yml +0 -9
- data/.cody/demo.rb +0 -38
- data/.cody/project.rb +0 -6
- data/.gitmodules +0 -3
- data/lib/lono/abstract_base.rb +0 -25
- data/lib/lono/app_file/base.rb +0 -28
- data/lib/lono/app_file/build/lambda_layer/ruby_packager.rb +0 -153
- data/lib/lono/app_file/build/lambda_layer.rb +0 -20
- data/lib/lono/app_file/build.rb +0 -84
- data/lib/lono/app_file/registry/item.rb +0 -24
- data/lib/lono/app_file/registry.rb +0 -16
- data/lib/lono/app_file/upload.rb +0 -12
- data/lib/lono/aws_services/stack.rb +0 -41
- data/lib/lono/aws_services/stack_set.rb +0 -41
- data/lib/lono/blueprint/configset/loader.rb +0 -7
- data/lib/lono/blueprint/helper.rb +0 -24
- data/lib/lono/blueprint/meta.rb +0 -30
- data/lib/lono/blueprint/new.rb +0 -127
- data/lib/lono/blueprint/root.rb +0 -25
- data/lib/lono/cfn/create.rb +0 -41
- data/lib/lono/cfn/opts.rb +0 -88
- data/lib/lono/cfn/preview/changeset.rb +0 -168
- data/lib/lono/cfn/preview/codediff.rb +0 -41
- data/lib/lono/cfn/preview/diff_viewer.rb +0 -23
- data/lib/lono/cfn/rollback.rb +0 -26
- data/lib/lono/cfn/update.rb +0 -71
- data/lib/lono/cfn.rb +0 -75
- data/lib/lono/clean.rb +0 -14
- data/lib/lono/code.rb +0 -22
- data/lib/lono/configset/combiner.rb +0 -162
- data/lib/lono/configset/evaluate_file.rb +0 -8
- data/lib/lono/configset/generator.rb +0 -57
- data/lib/lono/configset/list.rb +0 -67
- data/lib/lono/configset/meta/dsl.rb +0 -12
- data/lib/lono/configset/meta.rb +0 -19
- data/lib/lono/configset/new.rb +0 -77
- data/lib/lono/configset/preparer.rb +0 -44
- data/lib/lono/configset/register/base.rb +0 -122
- data/lib/lono/configset/register/blueprint.rb +0 -16
- data/lib/lono/configset/register/dsl.rb +0 -14
- data/lib/lono/configset/register/project.rb +0 -13
- data/lib/lono/configset/resolver.rb +0 -47
- data/lib/lono/configset/s3_file/build.rb +0 -33
- data/lib/lono/configset/s3_file/item.rb +0 -38
- data/lib/lono/configset/s3_file/registry.rb +0 -12
- data/lib/lono/configset/s3_file/upload.rb +0 -12
- data/lib/lono/configset/strategy/base.rb +0 -83
- data/lib/lono/configset/strategy/helpers/dsl.rb +0 -8
- data/lib/lono/configset/strategy/helpers/erb.rb +0 -9
- data/lib/lono/conventions.rb +0 -23
- data/lib/lono/core/config.rb +0 -22
- data/lib/lono/default/settings.yml +0 -21
- data/lib/lono/extension/helper.rb +0 -13
- data/lib/lono/extension/list.rb +0 -40
- data/lib/lono/extension.rb +0 -9
- data/lib/lono/extensions/dsl.rb +0 -11
- data/lib/lono/extensions/loader.rb +0 -30
- data/lib/lono/extensions/preparer.rb +0 -26
- data/lib/lono/extensions/register.rb +0 -15
- data/lib/lono/extensions.rb +0 -18
- data/lib/lono/file_uploader.rb +0 -21
- data/lib/lono/finder/base.rb +0 -152
- data/lib/lono/finder/blueprint/configset.rb +0 -17
- data/lib/lono/finder/blueprint.rb +0 -11
- data/lib/lono/finder/configset.rb +0 -11
- data/lib/lono/finder/extension.rb +0 -11
- data/lib/lono/generate.rb +0 -111
- data/lib/lono/help/cfn/create.md +0 -26
- data/lib/lono/help/cfn/delete.md +0 -13
- data/lib/lono/help/cfn/deploy.md +0 -21
- data/lib/lono/help/cfn/download.md +0 -3
- data/lib/lono/help/cfn/update.md +0 -49
- data/lib/lono/help/cfn.md +0 -7
- data/lib/lono/help/new.md +0 -57
- data/lib/lono/help/param.md +0 -6
- data/lib/lono/help/seed.md +0 -23
- data/lib/lono/help/set_instances/delete.md +0 -21
- data/lib/lono/help/set_instances/deploy.md +0 -31
- data/lib/lono/help/set_instances/list.md +0 -14
- data/lib/lono/help/set_instances/status.md +0 -15
- data/lib/lono/help/set_instances/sync.md +0 -92
- data/lib/lono/help/sets/delete.md +0 -8
- data/lib/lono/help/sets/deploy.md +0 -76
- data/lib/lono/help/sets/status.md +0 -23
- data/lib/lono/help/summary.md +0 -33
- data/lib/lono/help/template/generate.md +0 -7
- data/lib/lono/help/upgrade.md +0 -1
- data/lib/lono/help/xgraph.md +0 -16
- data/lib/lono/help.rb +0 -15
- data/lib/lono/importer/erb.rb +0 -31
- data/lib/lono/inspector/graph.rb +0 -125
- data/lib/lono/jade/circular.rb +0 -26
- data/lib/lono/jade/materializer/final.rb +0 -10
- data/lib/lono/jade/materializer/gems_builder.rb +0 -81
- data/lib/lono/jade/materializer/source.rb +0 -54
- data/lib/lono/jade/materializer.rb +0 -15
- data/lib/lono/jade/registry.rb +0 -64
- data/lib/lono/jade.rb +0 -110
- data/lib/lono/jadespec.rb +0 -68
- data/lib/lono/new/helper.rb +0 -15
- data/lib/lono/new.rb +0 -95
- data/lib/lono/param.rb +0 -14
- data/lib/lono/pro/base.rb +0 -16
- data/lib/lono/pro/repo.rb +0 -28
- data/lib/lono/pro.rb +0 -15
- data/lib/lono/project_checker.rb +0 -35
- data/lib/lono/registration/base.rb +0 -37
- data/lib/lono/registration/check.rb +0 -15
- data/lib/lono/registration/temp.rb +0 -53
- data/lib/lono/registration/user.rb +0 -60
- data/lib/lono/seed/base.rb +0 -116
- data/lib/lono/seed/service_role.rb +0 -11
- data/lib/lono/seed.rb +0 -39
- data/lib/lono/sequence.rb +0 -35
- data/lib/lono/set_instances/base.rb +0 -30
- data/lib/lono/set_instances/changeable.rb +0 -53
- data/lib/lono/set_instances/create.rb +0 -7
- data/lib/lono/set_instances/delete.rb +0 -47
- data/lib/lono/set_instances/deploy.rb +0 -52
- data/lib/lono/set_instances/list.rb +0 -13
- data/lib/lono/set_instances/opts.rb +0 -37
- data/lib/lono/set_instances/status.rb +0 -12
- data/lib/lono/set_instances/sync.rb +0 -181
- data/lib/lono/set_instances/update.rb +0 -15
- data/lib/lono/set_instances.rb +0 -54
- data/lib/lono/sets/base.rb +0 -50
- data/lib/lono/sets/create.rb +0 -27
- data/lib/lono/sets/delete.rb +0 -43
- data/lib/lono/sets/deploy.rb +0 -11
- data/lib/lono/sets/list.rb +0 -35
- data/lib/lono/sets/opts.rb +0 -18
- data/lib/lono/sets/preview/codediff.rb +0 -35
- data/lib/lono/sets/preview/param.rb +0 -32
- data/lib/lono/sets/status/instance/base.rb +0 -120
- data/lib/lono/sets/status/instance/completed.rb +0 -35
- data/lib/lono/sets/status/instance/deleted.rb +0 -32
- data/lib/lono/sets/status/instance/show.rb +0 -7
- data/lib/lono/sets/status/instance.rb +0 -20
- data/lib/lono/sets/status/instances.rb +0 -136
- data/lib/lono/sets/status.rb +0 -128
- data/lib/lono/sets/summarize.rb +0 -22
- data/lib/lono/sets/time_spent.rb +0 -11
- data/lib/lono/sets/update.rb +0 -74
- data/lib/lono/sets/waiter.rb +0 -23
- data/lib/lono/sets.rb +0 -34
- data/lib/lono/setting.rb +0 -75
- data/lib/lono/template/aws_service.rb +0 -20
- data/lib/lono/template/bashify.rb +0 -39
- data/lib/lono/template/configset_injector.rb +0 -52
- data/lib/lono/template/context/loader/load_files.rb +0 -24
- data/lib/lono/template/context/loader.rb +0 -52
- data/lib/lono/template/context.rb +0 -29
- data/lib/lono/template/evaluate.rb +0 -40
- data/lib/lono/template/generator.rb +0 -23
- data/lib/lono/template/helper.rb +0 -152
- data/lib/lono/template/strategy/base.rb +0 -4
- data/lib/lono/template/strategy/common/helpers.rb +0 -44
- data/lib/lono/template/strategy/dsl/builder/helpers/core_helper.rb +0 -14
- data/lib/lono/template/strategy/dsl/builder/helpers/file_helper.rb +0 -48
- data/lib/lono/template/strategy/dsl/builder/helpers.rb +0 -16
- data/lib/lono/template/strategy/dsl/builder/section/base.rb +0 -30
- data/lib/lono/template/strategy/dsl/builder/squeezer.rb +0 -24
- data/lib/lono/template/strategy/dsl/builder/syntax/extend_with.rb +0 -9
- data/lib/lono/template/strategy/dsl/builder/syntax.rb +0 -11
- data/lib/lono/template/strategy/dsl/builder.rb +0 -59
- data/lib/lono/template/strategy/dsl/finalizer.rb +0 -12
- data/lib/lono/template/strategy/dsl.rb +0 -14
- data/lib/lono/template/strategy/erb.rb +0 -82
- data/lib/lono/template/strategy/source.rb +0 -8
- data/lib/lono/template/template.rb +0 -54
- data/lib/lono/template/upload.rb +0 -23
- data/lib/lono/template/util.rb +0 -8
- data/lib/lono/template.rb +0 -24
- data/lib/lono/upgrade.rb +0 -20
- data/lib/lono/utils/generators/tree.rb +0 -18
- data/lib/lono/utils/item/file_methods.rb +0 -29
- data/lib/lono/utils/item/zip.rb +0 -42
- data/lib/templates/blueprint/%blueprint_name%.gemspec.tt +0 -45
- data/lib/templates/blueprint/.gitignore +0 -11
- data/lib/templates/blueprint/CHANGELOG.md +0 -7
- data/lib/templates/blueprint/Gemfile +0 -4
- data/lib/templates/blueprint/README.md.tt +0 -33
- data/lib/templates/blueprint/Rakefile.tt +0 -9
- data/lib/templates/blueprint/seed/configs.rb +0 -28
- data/lib/templates/blueprint_types/dsl/app/templates/%blueprint_name%.rb +0 -36
- data/lib/templates/blueprint_types/dsl/app/user_data/bootstrap.sh +0 -2
- data/lib/templates/blueprint_types/erb/app/definitions/base.rb.tt +0 -1
- data/lib/templates/blueprint_types/erb/app/templates/%blueprint_name%.yml +0 -67
- data/lib/templates/configset/%configset_name%.gemspec.tt +0 -42
- data/lib/templates/configset/.gitignore +0 -10
- data/lib/templates/configset/CHANGELOG.md +0 -7
- data/lib/templates/configset/Gemfile +0 -4
- data/lib/templates/configset/README.md.tt +0 -3
- data/lib/templates/configset/Rakefile.tt +0 -9
- data/lib/templates/extension/%extension_name%.gemspec.tt +0 -46
- data/lib/templates/extension/.gitignore +0 -11
- data/lib/templates/extension/.rspec +0 -3
- data/lib/templates/extension/CHANGELOG.md +0 -7
- data/lib/templates/extension/Gemfile.tt +0 -4
- data/lib/templates/extension/Rakefile.tt +0 -9
- data/lib/templates/extension/spec/spec_helper.rb.tt +0 -29
- data/lib/templates/skeleton/Gemfile +0 -3
- data/lib/templates/skeleton/README.md +0 -58
- data/lib/templates/skeleton/configs/settings.yml +0 -13
- data/vendor/cfn-status/CHANGELOG.md +0 -14
- data/vendor/cfn-status/Gemfile +0 -4
- data/vendor/cfn-status/Gemfile.lock +0 -49
- data/vendor/cfn-status/LICENSE.txt +0 -21
- data/vendor/cfn-status/README.md +0 -58
- data/vendor/cfn-status/Rakefile +0 -6
- data/vendor/cfn-status/bin/console +0 -14
- data/vendor/cfn-status/bin/setup +0 -8
- data/vendor/cfn-status/cfn-status.gemspec +0 -30
- data/vendor/cfn-status/lib/cfn-status.rb +0 -1
- data/vendor/cfn-status/lib/cfn_status/aws_service.rb +0 -51
- data/vendor/cfn-status/lib/cfn_status/version.rb +0 -3
- data/vendor/cfn-status/lib/cfn_status.rb +0 -245
- data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-1.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-2.json +0 -1104
- data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-3.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-1.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-2.json +0 -1104
- data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-3.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/stack-events-complete.json +0 -1080
- data/vendor/cfn-status/spec/fixtures/cfn/stack-events-in-progress.json +0 -1080
- data/vendor/cfn-status/spec/fixtures/cfn/stack-events-update-rollback-complete.json +0 -1086
- data/vendor/cfn-status/spec/lib/cfn_status_spec.rb +0 -153
- data/vendor/cfn-status/spec/spec_helper.rb +0 -14
|
@@ -1,29 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
class Lono::Builder::Configset::Definition
|
|
2
2
|
class Dsl < Base
|
|
3
|
-
|
|
4
|
-
include Helpers::Dsl
|
|
3
|
+
include Syntax
|
|
5
4
|
|
|
6
5
|
def initialize(options={})
|
|
7
6
|
super
|
|
8
|
-
@structure = {} # holds in memory the configset hash structure to build AWS::CloudFormation::Init
|
|
9
7
|
@current = "main" # current configset
|
|
10
|
-
@command_counts = Hash.new(0)
|
|
11
8
|
@tracked = []
|
|
9
|
+
@structure = {} # holds in memory the configset hash structure to build AWS::CloudFormation::Init
|
|
10
|
+
@command_counts = Hash.new(0)
|
|
12
11
|
# Also support ability to add AWS::CloudFormation::Authentication
|
|
13
12
|
@authentication = nil # holds IAM policy info to build AWS::CloudFormation::Authentication
|
|
14
13
|
end
|
|
15
14
|
|
|
16
|
-
def
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def load
|
|
21
|
-
evaluate_file(@evaluation_path)
|
|
22
|
-
configsets = @configsets || @tracked.uniq
|
|
15
|
+
def evaluate
|
|
16
|
+
load_context
|
|
17
|
+
evaluate_file(@configset.path)
|
|
18
|
+
configsets = configsets || @tracked.uniq
|
|
23
19
|
configsets = ["main"] if configsets.empty?
|
|
24
20
|
configsets_structure = {"configSets" => {"default" => configsets}}.merge(@structure)
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
cloudformation_init = { "AWS::CloudFormation::Init" => configsets_structure }
|
|
22
|
+
wrap_with_metadata(cloudformation_init)
|
|
27
23
|
end
|
|
28
24
|
end
|
|
29
25
|
end
|
|
@@ -1,29 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
module Lono::Configset::Strategy
|
|
1
|
+
class Lono::Builder::Configset::Definition
|
|
4
2
|
class Erb < Base
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
paths.find { |p| File.exist?(p) }
|
|
3
|
+
def evaluate
|
|
4
|
+
load_context
|
|
5
|
+
cloudformation_init = build
|
|
6
|
+
wrap_with_metadata(cloudformation_init)
|
|
10
7
|
end
|
|
11
8
|
|
|
12
|
-
def
|
|
13
|
-
content = RenderMePretty.result(@
|
|
14
|
-
|
|
15
|
-
if File.extname(@evaluation_path) == ".yml"
|
|
9
|
+
def build
|
|
10
|
+
content = RenderMePretty.result(@configset.path, context: self)
|
|
11
|
+
if File.extname(@configset.path) == ".yml"
|
|
16
12
|
load_yaml(content)
|
|
17
13
|
else
|
|
18
14
|
JSON.load(content)
|
|
19
15
|
end
|
|
20
16
|
end
|
|
21
17
|
|
|
22
|
-
def authentication
|
|
23
|
-
# noop
|
|
24
|
-
end
|
|
25
|
-
|
|
26
18
|
def load_yaml(content)
|
|
19
|
+
# init structure
|
|
27
20
|
# Write to file so can use Yamler::Validator
|
|
28
21
|
path = "/tmp/lono/configset.yml"
|
|
29
22
|
FileUtils.mkdir_p(File.dirname(path))
|
|
@@ -31,5 +24,9 @@ module Lono::Configset::Strategy
|
|
|
31
24
|
Lono::Yamler::Validator.new(path).validate!
|
|
32
25
|
Lono::Yamler::Loader.new(content).load
|
|
33
26
|
end
|
|
27
|
+
|
|
28
|
+
def authentication
|
|
29
|
+
# noop
|
|
30
|
+
end
|
|
34
31
|
end
|
|
35
32
|
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module Lono::Builder::Configset
|
|
2
|
+
class Definition < Lono::CLI::Base
|
|
3
|
+
attr_reader :configset
|
|
4
|
+
def initialize(options={})
|
|
5
|
+
super
|
|
6
|
+
@meta = options[:meta]
|
|
7
|
+
@configset = Lono::Configset.new(@meta)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def evaluate
|
|
11
|
+
strategy_class = configset.path.include?('.rb') ? Dsl : Erb
|
|
12
|
+
strategy = strategy_class.new(@options.merge(path: configset.path))
|
|
13
|
+
metadata = strategy.evaluate
|
|
14
|
+
@configset.metadata = metadata
|
|
15
|
+
@configset
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
module Lono::Builder::Configset
|
|
2
|
+
class Registration
|
|
3
|
+
include DslEvaluator
|
|
4
|
+
|
|
5
|
+
def initialize(blueprint)
|
|
6
|
+
@blueprint = blueprint
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
cattr_accessor :metas, default: []
|
|
10
|
+
def metas
|
|
11
|
+
self.class.metas
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def evaluate
|
|
15
|
+
path = "#{@blueprint.root}/configsets.rb" # plural
|
|
16
|
+
evaluate_file(path)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Only one syntax method so not in separate module.
|
|
20
|
+
#
|
|
21
|
+
# Register configset for later processing.
|
|
22
|
+
# By registering them all up front, can aggregate errors and show them together
|
|
23
|
+
# for a user-friendly experience.
|
|
24
|
+
#
|
|
25
|
+
# The configset method is different with configset registration vs configset definition
|
|
26
|
+
#
|
|
27
|
+
# definition: app/configsets/httpd/configset.rb
|
|
28
|
+
# registration: app/blueprints/demo/configsets.rb
|
|
29
|
+
#
|
|
30
|
+
def configset(name, options={})
|
|
31
|
+
found = metas.detect { |i| i[:name] == name && i[:resource] == options[:resource] }
|
|
32
|
+
metas << options.merge(name: name) unless found
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
module Lono::Builder
|
|
2
|
+
module Context
|
|
3
|
+
include DslEvaluator
|
|
4
|
+
|
|
5
|
+
def load_context
|
|
6
|
+
load_variables
|
|
7
|
+
load_helpers
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# Variables in base.rb are overridden by their environment specific variables
|
|
11
|
+
# file. Example, file LONO_ENV=dev:
|
|
12
|
+
#
|
|
13
|
+
# config/vars/base.rb
|
|
14
|
+
# config/vars/dev.rb - will override any variables in base.rb
|
|
15
|
+
# config/vars/base.rb
|
|
16
|
+
# config/vars/dev.rb - will override any variables in base.rb
|
|
17
|
+
#
|
|
18
|
+
def load_variables
|
|
19
|
+
return if seed?
|
|
20
|
+
layers = Lono::Layering::Layer.new(@blueprint, "vars").paths
|
|
21
|
+
layers.each do |layer|
|
|
22
|
+
evaluate_file(layer)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Load blueprint helpers
|
|
27
|
+
# blueprint helpers override extension helpers
|
|
28
|
+
def load_helpers
|
|
29
|
+
load_helper_files("#{Lono.root}/vendor/helpers", type: :project)
|
|
30
|
+
load_helper_files("#{Lono.root}/app/helpers", type: :project)
|
|
31
|
+
load_helper_files("#{@blueprint.root}/helpers", type: :blueprint) # takes higher precedence
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Dont want any existing files to prevent building the blueprint.
|
|
35
|
+
# This means that parameters cannot be based on vars. It's a trade-off.
|
|
36
|
+
def seed?
|
|
37
|
+
ARGV[0] == "seed"
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
class Lono::Builder::Dsl
|
|
2
|
+
class Evaluator < Lono::CLI::Base
|
|
3
|
+
include DslEvaluator
|
|
4
|
+
include Lono::Builder::Context
|
|
5
|
+
include Lono::Builder::Dsl::Syntax
|
|
6
|
+
include Lono::Utils::Pretty
|
|
7
|
+
|
|
8
|
+
def initialize(options={})
|
|
9
|
+
super
|
|
10
|
+
@template_path = "#{@blueprint.root}/template.rb"
|
|
11
|
+
@parameters = [] # built by parameter_groups.rb
|
|
12
|
+
@cfn = {}
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def evaluate
|
|
16
|
+
load_context
|
|
17
|
+
evaluate_template_paths(@template_path) # modifies @cfn
|
|
18
|
+
finalize
|
|
19
|
+
to_yaml
|
|
20
|
+
@cfn
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def finalize
|
|
24
|
+
o = @options.merge(parameters: @parameters)
|
|
25
|
+
@cfn = Finalizer.new(@cfn, o).run
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def to_yaml
|
|
29
|
+
# https://stackoverflow.com/questions/24508364/how-to-emit-yaml-in-ruby-expanding-aliases
|
|
30
|
+
# Trick to prevent YAML from emitting aliases
|
|
31
|
+
@cfn = YAML.load(@cfn.to_json)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Example path: /full/path/to/project/app/blueprints/demo/template.rb
|
|
35
|
+
def evaluate_template_paths(path)
|
|
36
|
+
ext = File.extname(path)
|
|
37
|
+
folder = path.sub(ext, '')
|
|
38
|
+
expr = "#{folder}/**/*.rb"
|
|
39
|
+
evaluate_file(path) # process top-level template.rb first
|
|
40
|
+
Dir.glob(expr).each do |path|
|
|
41
|
+
evaluate_file(path)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
class Lono::Builder::Dsl::Finalizer
|
|
2
|
+
class Configsets < Base
|
|
3
|
+
# Replaces metadata under each logical id resource.
|
|
4
|
+
def run
|
|
5
|
+
dsl = Lono::Builder::Configset::Evaluator.new(@options.merge(cfn: @cfn))
|
|
6
|
+
metadata_map = dsl.evaluate
|
|
7
|
+
metadata_map.each do |logical_id, cs|
|
|
8
|
+
resource = @cfn["Resources"][logical_id]
|
|
9
|
+
unless resource
|
|
10
|
+
puts "WARN: Resources.#{logical_id} not found in the template. Are you sure you specified the correct resource logical id in your configsets.rb?".color(:yellow)
|
|
11
|
+
next
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
resource["Metadata"] = cs["Metadata"]
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
@cfn
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
class Lono::Builder::Dsl::Finalizer::Files
|
|
2
|
+
class Build < Base
|
|
3
|
+
def initialize(options={})
|
|
4
|
+
super
|
|
5
|
+
@output_path = "#{Lono.root}/.output/files"
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def run
|
|
9
|
+
return if Lono::Files.empty?
|
|
10
|
+
logger.debug "Building files"
|
|
11
|
+
clean
|
|
12
|
+
validate!
|
|
13
|
+
build_files
|
|
14
|
+
# build_layers
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def build_files
|
|
18
|
+
Lono::Files.files.each do |file| # using singular file, but is like a "file_list"
|
|
19
|
+
file.build
|
|
20
|
+
file.compress
|
|
21
|
+
# Note: Uploading files happen right before create_stack or execute_change_set
|
|
22
|
+
# after user confirms action, instead of part of the build process
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# TODO: LambdaLayer support
|
|
27
|
+
# def build_layers
|
|
28
|
+
# layer_items = Registry.layers
|
|
29
|
+
# layer_items.each do |item|
|
|
30
|
+
# LambdaLayer.new(@blueprint, item).build
|
|
31
|
+
# end
|
|
32
|
+
# end
|
|
33
|
+
#
|
|
34
|
+
|
|
35
|
+
def clean
|
|
36
|
+
FileUtils.rm_rf(@output_path)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def validate!
|
|
40
|
+
missing = Lono::Files.files.select do |file|
|
|
41
|
+
!File.exist?(file.full_path)
|
|
42
|
+
end
|
|
43
|
+
return if missing.empty?
|
|
44
|
+
|
|
45
|
+
logger.info "ERROR: These files are missing".color(:red)
|
|
46
|
+
logger.info <<~EOL
|
|
47
|
+
The file helper is calling them.
|
|
48
|
+
They need to exist to be uploaded to s3.
|
|
49
|
+
EOL
|
|
50
|
+
missing.each do |file|
|
|
51
|
+
logger.info " #{pretty_path(file.full_path)}"
|
|
52
|
+
logger.info " Called at #{file.call_line}"
|
|
53
|
+
end
|
|
54
|
+
logger.info "Please double check that they exist."
|
|
55
|
+
exit 1
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
class Lono::Builder::Dsl::Finalizer::Files
|
|
2
|
+
class Replace < Base
|
|
3
|
+
def run
|
|
4
|
+
replacements.each do |placeholder, replacement|
|
|
5
|
+
update_template!(@cfn)
|
|
6
|
+
end
|
|
7
|
+
@cfn
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def replacements
|
|
11
|
+
Lono::Files.files.inject({}) do |result, file|
|
|
12
|
+
result.merge(file.marker => file.s3_key)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def update_template!(hash)
|
|
17
|
+
hash.each do |k, v|
|
|
18
|
+
if v.is_a?(String)
|
|
19
|
+
if v =~ %r{^LONO://}
|
|
20
|
+
v.replace(replacements[v]) # replace the placeholder
|
|
21
|
+
end
|
|
22
|
+
elsif v.is_a?(Hash)
|
|
23
|
+
update_template!(v) # recurse
|
|
24
|
+
elsif v.is_a?(Array)
|
|
25
|
+
v.each { |x| update_template!(x) if x.is_a?(Hash) }
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
hash
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
class Lono::
|
|
2
|
-
class ParameterGroups
|
|
1
|
+
class Lono::Builder::Dsl::Finalizer
|
|
2
|
+
class ParameterGroups < Base
|
|
3
3
|
extend Memoist
|
|
4
|
-
include Lono::
|
|
4
|
+
include Lono::Builder::Util::Stringify
|
|
5
5
|
|
|
6
|
-
def initialize(
|
|
7
|
-
|
|
6
|
+
def initialize(options={})
|
|
7
|
+
super
|
|
8
|
+
@parameters = options[:parameters]
|
|
8
9
|
end
|
|
9
10
|
|
|
10
11
|
def run
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
class Lono::Builder::Dsl
|
|
2
|
+
class Finalizer
|
|
3
|
+
def initialize(cfn, options={})
|
|
4
|
+
@cfn, @options = cfn, options
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def run
|
|
8
|
+
o = @options.merge(cfn: @cfn)
|
|
9
|
+
@cfn = ParameterGroups.new(o).run
|
|
10
|
+
@cfn = Configsets.new(o).run
|
|
11
|
+
@cfn = Files.new(o).run
|
|
12
|
+
@cfn
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
data/lib/lono/{template/strategy/dsl/builder/helpers/ec2_helper.rb → builder/dsl/helpers/ec2.rb}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
module Lono::
|
|
2
|
-
module
|
|
1
|
+
module Lono::Builder::Dsl::Helpers
|
|
2
|
+
module Ec2
|
|
3
3
|
extend Memoist
|
|
4
4
|
|
|
5
5
|
def default_vpc
|
|
@@ -20,7 +20,7 @@ module Lono::Template::Strategy::Dsl::Builder::Helpers
|
|
|
20
20
|
def key_pairs(regexp=nil)
|
|
21
21
|
resp = ec2.describe_key_pairs
|
|
22
22
|
key_names = resp.key_pairs.map(&:key_name)
|
|
23
|
-
key_names.select! { |k| k =~ regexp }
|
|
23
|
+
key_names.select! { |k| k =~ regexp } if regexp
|
|
24
24
|
key_names
|
|
25
25
|
end
|
|
26
26
|
end
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
require "aws-sdk-core"
|
|
2
|
+
|
|
3
|
+
module Lono::Builder::Dsl::Helpers
|
|
4
|
+
module Partials
|
|
5
|
+
def template_s3_path(template_name)
|
|
6
|
+
# hi-jacking Uploader for https_url
|
|
7
|
+
template_path = "output/#{@blueprint.name}/templates/#{template_name}.yml"
|
|
8
|
+
Lono::S3::Uploader.new(template_path).s3_https_url
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def template_params(param_name)
|
|
12
|
+
o = @options.dup
|
|
13
|
+
o["param"] = param_name
|
|
14
|
+
generator = Lono::CLI::Param::Generator.new(o)
|
|
15
|
+
# do not generate because lono cfn calling logic already generated it we only need the values
|
|
16
|
+
parameters = generator.parameters # Returns Array in underscore keys format
|
|
17
|
+
# convert Array to simplified hash structure
|
|
18
|
+
parameters.inject({}) do |h, param|
|
|
19
|
+
h.merge(param[:parameter_key] => param[:parameter_value])
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# The partial's path is a relative path.
|
|
24
|
+
#
|
|
25
|
+
# Example:
|
|
26
|
+
# Given file in app/partials/iam/docker.yml
|
|
27
|
+
#
|
|
28
|
+
# <%= partial("iam/docker", {}, indent: 10) %>
|
|
29
|
+
# <%= partial("iam/docker.yml", {}, indent: 10) %>
|
|
30
|
+
#
|
|
31
|
+
# If the user specifies the extension then use that instead of auto-adding
|
|
32
|
+
# the detected format.
|
|
33
|
+
def partial(path,vars={}, options={})
|
|
34
|
+
path = partial_path_for(path)
|
|
35
|
+
path = auto_add_format(path)
|
|
36
|
+
|
|
37
|
+
instance_variables!(vars)
|
|
38
|
+
result = render_path(path)
|
|
39
|
+
|
|
40
|
+
result = indent(result, options[:indent]) if options[:indent]
|
|
41
|
+
result + "\n"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Take a hash and makes them instance variables in the current scope.
|
|
45
|
+
# Use this in custom helper methods to make variables accessible to ERB templates.
|
|
46
|
+
def instance_variables!(variables)
|
|
47
|
+
variables.each do |key, value|
|
|
48
|
+
instance_variable_set('@' + key.to_s, value)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# add indentation
|
|
53
|
+
def indent(text, indentation_amount)
|
|
54
|
+
text.split("\n").map do |line|
|
|
55
|
+
" " * indentation_amount + line
|
|
56
|
+
end.join("\n")
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def partial_exist?(path)
|
|
60
|
+
path = partial_path_for(path)
|
|
61
|
+
path = auto_add_format(path)
|
|
62
|
+
path && File.exist?(path)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def region
|
|
66
|
+
AwsData.region
|
|
67
|
+
end
|
|
68
|
+
alias_method :current_region, :region
|
|
69
|
+
|
|
70
|
+
private
|
|
71
|
+
def auto_add_format(path)
|
|
72
|
+
# Return immediately if user provided explicit extension
|
|
73
|
+
extension = File.extname(path) # current extension
|
|
74
|
+
return path if !extension.empty?
|
|
75
|
+
|
|
76
|
+
# Else let's auto detect
|
|
77
|
+
paths = Dir.glob("#{path}.*")
|
|
78
|
+
|
|
79
|
+
if paths.size == 1 # non-ambiguous match
|
|
80
|
+
return paths.first
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
if paths.size > 1 # ambiguous match
|
|
84
|
+
logger.info "ERROR: Multiple possible partials found:".color(:red)
|
|
85
|
+
paths.each do |path|
|
|
86
|
+
logger.info " #{path}"
|
|
87
|
+
end
|
|
88
|
+
logger.info "Please specify an extension in the name to remove the ambiguity.".color(:green)
|
|
89
|
+
exit 1
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# Account for case when user wants to include a file with no extension at all
|
|
93
|
+
return path if File.exist?(path) && !File.directory?(path)
|
|
94
|
+
|
|
95
|
+
path # original path if this point is reached
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# Bash code that is meant to included in user-data
|
|
99
|
+
def extract_scripts(options={})
|
|
100
|
+
# defaults also here in case they are removed from settings
|
|
101
|
+
path = options[:path]
|
|
102
|
+
to = options[:to] || "/opt"
|
|
103
|
+
user = options[:as] || "ec2-user"
|
|
104
|
+
|
|
105
|
+
if Dir.glob("#{@bluepint.root}/#{path}*").empty?
|
|
106
|
+
logger.info "WARN: you are using the extract_scripts helper method but you do not have any scripts.".color(:yellow)
|
|
107
|
+
calling_line = caller[0].split(':')[0..1].join(':')
|
|
108
|
+
logger.info "Called from1: #{calling_line}"
|
|
109
|
+
return ""
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
<<~BASH_CODE
|
|
113
|
+
# Generated from the lono extract_scripts helper.
|
|
114
|
+
# Downloads scripts from s3, extract them, and setup.
|
|
115
|
+
mkdir -p #{to}
|
|
116
|
+
aws s3 cp #{scripts_s3_path} #{to}/
|
|
117
|
+
(
|
|
118
|
+
cd #{to}
|
|
119
|
+
tar zxf #{to}/#{scripts_name}
|
|
120
|
+
chown -R #{user}:#{user} #{to}/scripts
|
|
121
|
+
)
|
|
122
|
+
BASH_CODE
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def scripts_name
|
|
126
|
+
File.basename(scripts_s3_path)
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
def scripts_s3_path
|
|
130
|
+
upload = Lono::Script::Upload.new(@options)
|
|
131
|
+
upload.s3_dest
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
def indent(text, indentation_amount)
|
|
135
|
+
text.split("\n").map do |line|
|
|
136
|
+
" " * indentation_amount + line
|
|
137
|
+
end.join("\n")
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
end
|
data/lib/lono/{template/strategy/dsl/builder/helpers/s3_helper.rb → builder/dsl/helpers/s3.rb}
RENAMED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
module Lono::
|
|
2
|
-
module
|
|
1
|
+
module Lono::Builder::Dsl::Helpers
|
|
2
|
+
module S3
|
|
3
3
|
def s3_bucket
|
|
4
4
|
Lono::S3::Bucket.name
|
|
5
5
|
end
|
|
6
6
|
alias_method :lono_bucket_name, :s3_bucket
|
|
7
|
+
alias_method :files_bucket, :s3_bucket
|
|
7
8
|
|
|
8
9
|
def s3_key(name, options={})
|
|
9
10
|
default = {type: "file"}
|
|
10
11
|
options.reverse_merge!(default)
|
|
11
|
-
Lono::AppFile::Registry.register(name, @blueprint, options)
|
|
12
12
|
"file://app/files/#{options[:type]}/#{name}" # placeholder for post processing
|
|
13
13
|
end
|
|
14
14
|
alias_method :file_s3_key, :s3_key
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
require 'aws-sdk-ssm'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
class
|
|
3
|
+
module Lono::Builder::Dsl::Helpers::Ssm
|
|
4
|
+
class Fetcher
|
|
5
5
|
extend Memoist
|
|
6
|
+
include Lono::Utils::Logging
|
|
6
7
|
|
|
7
8
|
def get(name)
|
|
8
9
|
fetch_ssm_value(name)
|
|
@@ -12,7 +13,8 @@ class Lono::Template::Context
|
|
|
12
13
|
resp = ssm.get_parameter(name: name, with_decryption: true)
|
|
13
14
|
resp.parameter.value
|
|
14
15
|
rescue Aws::SSM::Errors::ParameterNotFound
|
|
15
|
-
'SSM-PARAM-NOT-FOUND'
|
|
16
|
+
logger.warn 'WARN: SSM-PARAM-NOT-FOUND'
|
|
17
|
+
nil
|
|
16
18
|
end
|
|
17
19
|
|
|
18
20
|
def ssm
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
module
|
|
1
|
+
module Lono::Builder::Dsl::Helpers
|
|
2
|
+
module Ssm
|
|
3
3
|
extend Memoist
|
|
4
4
|
|
|
5
5
|
def ssm(name)
|
|
@@ -7,7 +7,7 @@ class Lono::Template::Context
|
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
def ssm_fetcher
|
|
10
|
-
|
|
10
|
+
Fetcher.new
|
|
11
11
|
end
|
|
12
12
|
memoize :ssm_fetcher
|
|
13
13
|
end
|