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
data/lib/lono/cfn.rb
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
module Lono
|
|
2
|
-
class Cfn < Command
|
|
3
|
-
opts = Opts.new(self)
|
|
4
|
-
|
|
5
|
-
class_option :verbose, type: :boolean
|
|
6
|
-
class_option :noop, type: :boolean
|
|
7
|
-
|
|
8
|
-
desc "create STACK", "Create a CloudFormation stack using the generated template.", hide: true
|
|
9
|
-
opts.create
|
|
10
|
-
long_desc Lono::Help.text("cfn/create")
|
|
11
|
-
def create(stack)
|
|
12
|
-
Create.new(options.merge(stack: stack)).run
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
desc "update STACK", "Update a CloudFormation stack using the generated template.", hide: true
|
|
16
|
-
long_desc Lono::Help.text("cfn/update")
|
|
17
|
-
opts.update
|
|
18
|
-
def update(stack)
|
|
19
|
-
Update.new(options.merge(stack: stack)).run
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
desc "deploy STACK", "Create or update a CloudFormation stack using the generated template."
|
|
23
|
-
long_desc Lono::Help.text("cfn/deploy")
|
|
24
|
-
opts.deploy
|
|
25
|
-
def deploy(stack)
|
|
26
|
-
Deploy.new(options.merge(stack: stack)).run
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
desc "delete STACK", "Delete CloudFormation stack."
|
|
30
|
-
long_desc Lono::Help.text("cfn/delete")
|
|
31
|
-
opts.delete
|
|
32
|
-
def delete(stack)
|
|
33
|
-
Delete.new(options.merge(stack: stack)).run
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
desc "cancel STACK", "Cancel a CloudFormation stack."
|
|
37
|
-
long_desc Lono::Help.text("cfn/cancel")
|
|
38
|
-
opts.cancel
|
|
39
|
-
def cancel(stack)
|
|
40
|
-
Cancel.new(options.merge(stack: stack)).run
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
desc "preview STACK", "Preview a CloudFormation stack update. This is similar to terraform's plan or puppet's dry-run mode."
|
|
44
|
-
long_desc Lono::Help.text("cfn/preview")
|
|
45
|
-
opts.preview
|
|
46
|
-
def preview(stack)
|
|
47
|
-
Preview::Param.new(options.merge(stack: stack)).run if options[:param_preview]
|
|
48
|
-
Preview::Codediff.new(options.merge(stack: stack)).run if options[:codediff_preview]
|
|
49
|
-
Preview::Changeset.new(options.merge(stack: stack)).run if options[:changeset_preview]
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
desc "download STACK", "Download CloudFormation template from existing stack."
|
|
53
|
-
long_desc Lono::Help.text("cfn/download")
|
|
54
|
-
opts.download
|
|
55
|
-
def download(stack)
|
|
56
|
-
Download.new(options.merge(stack: stack)).run
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
desc "current", "Current stack that you're working with."
|
|
60
|
-
long_desc Lono::Help.text("cfn/current")
|
|
61
|
-
option :rm, type: :boolean, desc: "Remove all current settings. Removes `.lono/current`"
|
|
62
|
-
option :name, desc: "Current stack name."
|
|
63
|
-
def current
|
|
64
|
-
Current.new(options).run
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
desc "status", "Shows current status of stack."
|
|
68
|
-
long_desc Lono::Help.text("cfn/status")
|
|
69
|
-
def status(stack)
|
|
70
|
-
status = Lono::Cfn::Status.new(stack, options)
|
|
71
|
-
success = status.run
|
|
72
|
-
exit 3 unless success
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
end
|
data/lib/lono/clean.rb
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
require "fileutils"
|
|
2
|
-
|
|
3
|
-
class Lono::Clean
|
|
4
|
-
attr_reader :options
|
|
5
|
-
def initialize(options={})
|
|
6
|
-
@options = options
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
def run
|
|
10
|
-
puts "Clean: removing output/ and tmp/ folder"
|
|
11
|
-
FileUtils.rm_rf("#{Lono.config.output_path}")
|
|
12
|
-
FileUtils.rm_rf("#{Lono.root}/tmp")
|
|
13
|
-
end
|
|
14
|
-
end
|
data/lib/lono/code.rb
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
module Lono
|
|
2
|
-
class Code < Lono::Command
|
|
3
|
-
desc "import SOURCE", "Imports CloudFormation template and converts it to Ruby code."
|
|
4
|
-
long_desc Help.text("code/import")
|
|
5
|
-
option :blueprint, default: nil, desc: "final blueprint name"
|
|
6
|
-
option :casing, default: "as-is", desc: "Controls casing of logical ids. IE: as-is, camelcase or underscore"
|
|
7
|
-
option :summary, default: true, type: :boolean, desc: "provide template summary after import"
|
|
8
|
-
option :template, default: nil, desc: "final template name of downloaded template without extension"
|
|
9
|
-
option :template_name_casing, default: "dasherize", desc: "camelcase or dasherize the template name"
|
|
10
|
-
option :type, default: "dsl", desc: "import as a DSL or ERB template"
|
|
11
|
-
def import(source)
|
|
12
|
-
Importer.new(options.merge(source: source)).run
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
desc "convert SOURCE", "Converts snippet of JSON or YAML CloudFormation templates to Ruby code."
|
|
16
|
-
long_desc Help.text("code/convert")
|
|
17
|
-
option :casing, default: "as-is", desc: "Controls casing of logical ids. IE: as-is, camelcase or underscore"
|
|
18
|
-
def convert(source)
|
|
19
|
-
Importer::Converter.new(options.merge(source: source)).run
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
require "yaml"
|
|
2
|
-
|
|
3
|
-
class Lono::Configset
|
|
4
|
-
class Combiner
|
|
5
|
-
def initialize(cfn, options={})
|
|
6
|
-
@cfn, @options = cfn, options
|
|
7
|
-
|
|
8
|
-
@sets = []
|
|
9
|
-
@map = {} # stores resource logical id => metadata cfn-init
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def generator_options(registry, options={})
|
|
13
|
-
o = @options.merge(configset: registry.name, resource: registry.resource)
|
|
14
|
-
o.merge(options)
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def metadata_map
|
|
18
|
-
return {} unless additional_configsets?
|
|
19
|
-
|
|
20
|
-
existing_configsets.each do |data|
|
|
21
|
-
add(data[:registry], data[:metdata_configset])
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
Register::Blueprint.configsets.each do |registry|
|
|
25
|
-
generator = Lono::Configset::Generator.new(generator_options(registry, type: "blueprint"))
|
|
26
|
-
cloudformation_init = generator.build
|
|
27
|
-
add(registry, cloudformation_init)
|
|
28
|
-
end
|
|
29
|
-
Register::Project.configsets.each do |registry|
|
|
30
|
-
generator = Lono::Configset::Generator.new(generator_options(registry, type: "project"))
|
|
31
|
-
cloudformation_init = generator.build
|
|
32
|
-
add(registry, cloudformation_init)
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
combine
|
|
36
|
-
Register::Blueprint.clear! # in case of lono generate for all templates
|
|
37
|
-
Register::Project.clear! # in case of lono generate for all templates
|
|
38
|
-
@map
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def add(registry, metadata)
|
|
42
|
-
@sets << [registry, metadata.dup]
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def additional_configsets?
|
|
46
|
-
!Register::Blueprint.configsets.empty? || !Register::Project.configsets.empty?
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
# Normalized/convert cfn template to mimic the registry format
|
|
50
|
-
def existing_configsets
|
|
51
|
-
configsets = []
|
|
52
|
-
@cfn["Resources"].each do |logical_id, attributes|
|
|
53
|
-
init = attributes.dig("Metadata", "AWS::CloudFormation::Init")
|
|
54
|
-
|
|
55
|
-
next unless init
|
|
56
|
-
|
|
57
|
-
data = {
|
|
58
|
-
registry: Lono::Jade::Registry.new(["#{logical_id}OriginalConfigset"], resource: logical_id),
|
|
59
|
-
metdata_configset: {"Metadata" => attributes["Metadata"]} # # wrap metadata to create right structure
|
|
60
|
-
}
|
|
61
|
-
configsets << data
|
|
62
|
-
end
|
|
63
|
-
configsets
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def combine
|
|
67
|
-
# Remove duplicate configsets. Can happen if same configset is in blueprint and project.
|
|
68
|
-
# Ugly because of the sets structure.
|
|
69
|
-
@sets.uniq! do |array|
|
|
70
|
-
registry, _ = array
|
|
71
|
-
registry.name
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
metadata_map = {}
|
|
75
|
-
configsets_map = {}
|
|
76
|
-
|
|
77
|
-
@sets.each_with_index do |array, i|
|
|
78
|
-
padded_i = "%03d" % i
|
|
79
|
-
registry, metadata = array
|
|
80
|
-
|
|
81
|
-
# metadata example (full structure):
|
|
82
|
-
#
|
|
83
|
-
# {"Metadata"=>
|
|
84
|
-
# {"AWS::CloudFormation::Init"=>
|
|
85
|
-
# {"configSets"=>{"default"=>["aaa1", "aaa2"]},
|
|
86
|
-
# "aaa1"=>{"commands"=>{"test"=>{"command"=>"echo from-aaa1 > test1.txt"}}},
|
|
87
|
-
# "aaa2"=>
|
|
88
|
-
# {"commands"=>{"test"=>{"command"=>"echo from-aaa2 > test1.txt"}}}}}}
|
|
89
|
-
|
|
90
|
-
name, resource = registry.name, registry.resource
|
|
91
|
-
configsets = configsets_map[resource] ||= {}
|
|
92
|
-
|
|
93
|
-
validate_structure!(name, metadata)
|
|
94
|
-
|
|
95
|
-
new_metadata = metadata["Metadata"].dup
|
|
96
|
-
init = new_metadata["AWS::CloudFormation::Init"] # important: adjust data by reference
|
|
97
|
-
|
|
98
|
-
if init.key?("configSets")
|
|
99
|
-
validate_simple!(registry, new_metadata["AWS::CloudFormation::Init"]["configSets"]) # validate original configset for only simple elements
|
|
100
|
-
|
|
101
|
-
# 1. expand each config as its own config, flattening to top-level
|
|
102
|
-
cs = init.delete("configSets") # Only support configSets with simple Array of Strings
|
|
103
|
-
new_config_set = {}
|
|
104
|
-
new_config_set[name] = cs["default"].map {|c| "#{padded_i}_#{c}" }
|
|
105
|
-
init.transform_keys! { |c| "#{padded_i}_#{c}" }
|
|
106
|
-
|
|
107
|
-
# Rebuild default configSet, append the new complex ConfigSet structure with each iteration
|
|
108
|
-
configsets["default"] ||= []
|
|
109
|
-
configsets["default"] << {"ConfigSet" => name}
|
|
110
|
-
configsets.merge!(new_config_set) # add each config from #1 to the top-level
|
|
111
|
-
|
|
112
|
-
init["configSets"] = configsets # replace new configset
|
|
113
|
-
else # simple config
|
|
114
|
-
init["configSets"] = configsets # adjust data by reference
|
|
115
|
-
configsets["default"] ||= []
|
|
116
|
-
configsets["default"] << {"ConfigSet" => name}
|
|
117
|
-
|
|
118
|
-
# build new config
|
|
119
|
-
config_key = "#{padded_i}_single_generated"
|
|
120
|
-
configsets[name] = [config_key]
|
|
121
|
-
new_config = {config_key => init["config"]}
|
|
122
|
-
# replace old config with new one
|
|
123
|
-
init.delete("config") # delete original simple config
|
|
124
|
-
init.merge!(new_config)
|
|
125
|
-
end
|
|
126
|
-
|
|
127
|
-
metadata_map[resource] ||= {"Metadata" => {}}
|
|
128
|
-
metadata_map[resource]["Metadata"].deep_merge!(new_metadata)
|
|
129
|
-
@map[resource] = metadata_map[resource]
|
|
130
|
-
end
|
|
131
|
-
@map
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
def validate_structure!(name, metadata)
|
|
135
|
-
return if metadata.is_a?(Hash) && metadata.dig("Metadata", "AWS::CloudFormation::Init")
|
|
136
|
-
|
|
137
|
-
puts "ERROR: The #{name} configset does not appear to have a AWS::CloudFormation::Init key".color(:red)
|
|
138
|
-
puts "Please double check the #{name} configset.yml structure"
|
|
139
|
-
exit 1
|
|
140
|
-
end
|
|
141
|
-
|
|
142
|
-
def validate_simple!(registry, cs)
|
|
143
|
-
has_complex_type = cs["default"].detect { |s| !s.is_a?(String) }
|
|
144
|
-
if has_complex_type
|
|
145
|
-
message =<<~EOL
|
|
146
|
-
ERROR: The configset #{registry.name} has a configSets property with a complex type.
|
|
147
|
-
configSets:
|
|
148
|
-
|
|
149
|
-
#{cs}
|
|
150
|
-
|
|
151
|
-
lono configsets only supports combining configSets with an Array of Strings.
|
|
152
|
-
EOL
|
|
153
|
-
if ENV['LONO_TEST']
|
|
154
|
-
raise message
|
|
155
|
-
else
|
|
156
|
-
puts message.color(:red)
|
|
157
|
-
exit 1
|
|
158
|
-
end
|
|
159
|
-
end
|
|
160
|
-
end
|
|
161
|
-
end
|
|
162
|
-
end
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
class Lono::Configset
|
|
2
|
-
class Generator
|
|
3
|
-
def initialize(options)
|
|
4
|
-
@options = options
|
|
5
|
-
@configset = options[:configset]
|
|
6
|
-
@type = options[:type] || "project"
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
def run
|
|
10
|
-
check_configset_exist!
|
|
11
|
-
structure = build
|
|
12
|
-
puts YAML.dump(structure)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def check_configset_exist!
|
|
16
|
-
exist = !!Lono::Finder::Configset.find(@configset)
|
|
17
|
-
unless exist
|
|
18
|
-
puts "configset #{@configset.color(:green)} not found."
|
|
19
|
-
exit 1
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def build
|
|
24
|
-
# Examples:
|
|
25
|
-
# Erb.new(options).build
|
|
26
|
-
# Dsl.new(options).build
|
|
27
|
-
generator_class = "Lono::Configset::Strategy::#{strategy.camelize}"
|
|
28
|
-
generator_class = Object.const_get(generator_class)
|
|
29
|
-
full = generator_class.new(@options.merge(root: configset_root)).build
|
|
30
|
-
if @options[:cli]
|
|
31
|
-
full["Metadata"] # contains AWS::CloudFormation::Init and optional AWS::CloudFormation::Authentication
|
|
32
|
-
else
|
|
33
|
-
full # Combiner uses full metadata structure
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def strategy
|
|
38
|
-
jadespec = Lono::Jadespec.new(configset_root, "unknown") # abusing Jadespec to get strategy
|
|
39
|
-
jadespec.lono_strategy
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def configset_root
|
|
43
|
-
finder = finder_class.new
|
|
44
|
-
found = finder.find(@configset, local_only: false)
|
|
45
|
-
found.root if found
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def finder_class
|
|
49
|
-
case @type
|
|
50
|
-
when "project"
|
|
51
|
-
Lono::Finder::Configset
|
|
52
|
-
when "blueprint"
|
|
53
|
-
Lono::Finder::Blueprint::Configset
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
data/lib/lono/configset/list.rb
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
require "text-table"
|
|
2
|
-
|
|
3
|
-
class Lono::Configset
|
|
4
|
-
class List
|
|
5
|
-
def initialize(options={})
|
|
6
|
-
@options = options
|
|
7
|
-
@stack, @blueprint, @template, @param = Lono::Conventions.new(options).values
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def run
|
|
11
|
-
if @blueprint
|
|
12
|
-
blueprint_configsets
|
|
13
|
-
else
|
|
14
|
-
project_configsets
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def project_configsets
|
|
19
|
-
Lono::Finder::Configset.list(filter_materialized: true, message: "Project configsets:")
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def blueprint_configsets
|
|
23
|
-
Lono::Configset::Preparer.new(@options).run # register and materialize gems
|
|
24
|
-
|
|
25
|
-
@final ||= []
|
|
26
|
-
|
|
27
|
-
project = Lono::Configset::Register::Project.new(@options)
|
|
28
|
-
project.register
|
|
29
|
-
finder = Lono::Finder::Configset.new
|
|
30
|
-
finder.list("Configsets available to project and can used with configs:") if @options[:verbose]
|
|
31
|
-
puts "Configsets project is using for the #{@blueprint} blueprint:" if @options[:verbose]
|
|
32
|
-
show(project.configsets, finder.find_all, "project")
|
|
33
|
-
|
|
34
|
-
blueprint = Lono::Configset::Register::Blueprint.new(@options)
|
|
35
|
-
blueprint.register
|
|
36
|
-
finder = Lono::Finder::Blueprint::Configset.new
|
|
37
|
-
finder.list("Configsets available to #{@blueprint} blueprint:") if @options[:verbose]
|
|
38
|
-
puts "Configsets built into the blueprint:" if @options[:verbose]
|
|
39
|
-
show(blueprint.configsets, finder.find_all, "blueprint")
|
|
40
|
-
|
|
41
|
-
table = Text::Table.new
|
|
42
|
-
table.head = ["Name", "Path", "Type", "From"]
|
|
43
|
-
@final.each do |spec|
|
|
44
|
-
pretty_root = spec.root.sub("#{Lono.root}/",'').sub(ENV["HOME"], "~")
|
|
45
|
-
table.rows << [spec.name, pretty_root, spec.source_type, spec.from]
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
if table.rows.empty?
|
|
49
|
-
puts "No configsets being used."
|
|
50
|
-
else
|
|
51
|
-
puts "Configsets used by #{@blueprint.color(:green)} blueprint:"
|
|
52
|
-
puts table
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def show(configsets, all, from)
|
|
57
|
-
configsets.each do |c|
|
|
58
|
-
puts " #{c.name}" if @options[:verbose]
|
|
59
|
-
spec = all.find { |jadespec| jadespec.name == c.name }
|
|
60
|
-
next unless spec
|
|
61
|
-
spec.from = from
|
|
62
|
-
@final << spec
|
|
63
|
-
end
|
|
64
|
-
puts "" if @options[:verbose]
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
end
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
class Lono::Configset::Meta
|
|
2
|
-
module Dsl
|
|
3
|
-
def depends_on(*args)
|
|
4
|
-
options = args.last.is_a?(Hash) ? args.pop : {}
|
|
5
|
-
registry = Lono::Jade::Registry.new(args, options)
|
|
6
|
-
registry.depends_on = args.first
|
|
7
|
-
registry.parent = @jade
|
|
8
|
-
already_has = @jade.depends_ons.detect { |d| d.name == registry.name && d.args == registry.args }
|
|
9
|
-
@jade.depends_ons << registry unless already_has
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
data/lib/lono/configset/meta.rb
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
class Lono::Configset
|
|
2
|
-
class Meta
|
|
3
|
-
extend Memoist
|
|
4
|
-
include EvaluateFile
|
|
5
|
-
include Dsl
|
|
6
|
-
|
|
7
|
-
class_attribute :registries
|
|
8
|
-
self.registries = []
|
|
9
|
-
|
|
10
|
-
def initialize(jade)
|
|
11
|
-
@jade = jade
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def evaluate
|
|
15
|
-
path = "#{@jade.root}/lib/meta.rb"
|
|
16
|
-
evaluate_file(path) # DSL depends_on sets @jade.depends_on decorated options
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
data/lib/lono/configset/new.rb
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
class Lono::Configset
|
|
2
|
-
class New < Lono::Sequence
|
|
3
|
-
include Lono::Blueprint::Helper
|
|
4
|
-
include Lono::Utils::Generators::Tree
|
|
5
|
-
|
|
6
|
-
argument :configset_name
|
|
7
|
-
|
|
8
|
-
def self.source_root
|
|
9
|
-
templates = File.expand_path("../../templates", File.dirname(__FILE__))
|
|
10
|
-
"#{templates}/configset"
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def self.cli_options
|
|
14
|
-
[
|
|
15
|
-
[:demo, type: :boolean, default: true, desc: "Include demo template"],
|
|
16
|
-
[:force, type: :boolean, desc: "Bypass overwrite are you sure prompt for existing files."],
|
|
17
|
-
]
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
cli_options.each do |args|
|
|
21
|
-
class_option(*args)
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
# for specs
|
|
25
|
-
def set_cwd
|
|
26
|
-
@cwd = ENV['LONO_TEST'] ? File.dirname(Lono.root) : "#{Dir.pwd}/app/configsets"
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def set_variables
|
|
30
|
-
@demo = @options[:demo]
|
|
31
|
-
@demo = false if ENV["LONO_ORG"] # overrides --demo CLI option
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def create_project
|
|
35
|
-
puts "=> Creating new configset called #{configset_name}."
|
|
36
|
-
if @demo
|
|
37
|
-
options = {}
|
|
38
|
-
else
|
|
39
|
-
create_file "#{@cwd}/#{configset_name}/lib/configset.rb"
|
|
40
|
-
options = {exclude_pattern: %r{configset\.rb}}
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
directory ".", "#{@cwd}/#{configset_name}", options
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def create_license
|
|
47
|
-
return unless ENV['LONO_LICENSE_FILE']
|
|
48
|
-
copy_file ENV['LONO_LICENSE_FILE'], "#{@cwd}/#{configset_name}/LICENSE.txt"
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
# After this commands are executed with the newly created project
|
|
52
|
-
def set_destination_root
|
|
53
|
-
destination_root = "#{@cwd}/#{configset_name}"
|
|
54
|
-
self.destination_root = destination_root
|
|
55
|
-
@old_dir = Dir.pwd # for reset_current_dir
|
|
56
|
-
FileUtils.cd(self.destination_root)
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def welcome_message
|
|
60
|
-
puts <<~EOL
|
|
61
|
-
#{"="*64}
|
|
62
|
-
Congrats 🎉 You have successfully created a lono configset.
|
|
63
|
-
|
|
64
|
-
Cd into your configset and check things out.
|
|
65
|
-
|
|
66
|
-
cd #{configset_name}
|
|
67
|
-
|
|
68
|
-
More info: https://lono.cloud/docs/core/configsets
|
|
69
|
-
|
|
70
|
-
EOL
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
def tree
|
|
74
|
-
tree_structure("configset")
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
end
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
class Lono::Configset
|
|
2
|
-
class Preparer < Lono::AbstractBase
|
|
3
|
-
def initialize(options={})
|
|
4
|
-
super
|
|
5
|
-
@blueprint = Register::Blueprint.new(options)
|
|
6
|
-
@project = Register::Project.new(options)
|
|
7
|
-
@meta = Meta.new(options)
|
|
8
|
-
@resolver = Resolver.new
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def run
|
|
12
|
-
register
|
|
13
|
-
resolve_dependencies # also calls jade.materialize
|
|
14
|
-
register_dependencies
|
|
15
|
-
materialize
|
|
16
|
-
validate_all! # run after final materializer
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
# Stores configsets registry items
|
|
20
|
-
def register
|
|
21
|
-
@project.register # IE: evaluates configs/BLUEPRINT/configsets/base.rb
|
|
22
|
-
@blueprint.register # IE: evaluates BLUEPRINT/config/configsets.rb
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def resolve_dependencies
|
|
26
|
-
jades = Lono::Jade::Registry.tracked_configsets # at this point only top-level
|
|
27
|
-
@resolver.resolve(jades) # also calls jade.materialize
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def register_dependencies
|
|
31
|
-
@resolver.register
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def materialize
|
|
35
|
-
jades = Lono::Jade::Registry.downloaded_configsets
|
|
36
|
-
Lono::Jade::Materializer::Final.new.build(jades)
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def validate_all!
|
|
40
|
-
@blueprint.validate!
|
|
41
|
-
@project.validate!
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
# Subclasses must implement:
|
|
2
|
-
#
|
|
3
|
-
# evaluate
|
|
4
|
-
#
|
|
5
|
-
module Lono::Configset::Register
|
|
6
|
-
class Base < Lono::AbstractBase
|
|
7
|
-
class_attribute :configsets
|
|
8
|
-
class_attribute :validations
|
|
9
|
-
class_attribute :source
|
|
10
|
-
|
|
11
|
-
include Dsl
|
|
12
|
-
include Lono::Configset::EvaluateFile
|
|
13
|
-
|
|
14
|
-
def register
|
|
15
|
-
evaluate
|
|
16
|
-
jadify
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def jadify
|
|
20
|
-
self.class.configsets.each do |registry|
|
|
21
|
-
jade = Lono::Jade.new(registry.name, jade_type, registry)
|
|
22
|
-
Lono::Jade::Registry.tracked_configsets << jade
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def jade_type
|
|
27
|
-
finder_class.to_s.sub('Lono::Finder::','').underscore
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# Used in Base#validate!
|
|
31
|
-
def finder_class
|
|
32
|
-
case self
|
|
33
|
-
when Lono::Configset::Register::Blueprint
|
|
34
|
-
Lono::Finder::Blueprint::Configset
|
|
35
|
-
when Lono::Configset::Register::Project
|
|
36
|
-
Lono::Finder::Configset
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# Store to be able to provide the validation errors altogether later.
|
|
41
|
-
def store_for_validation(registry)
|
|
42
|
-
# save caller line to use later for pointing to exactly line
|
|
43
|
-
caller_line = caller.grep(/evaluate_file/).first
|
|
44
|
-
registry.caller_line = caller_line
|
|
45
|
-
# huge performance improvement by only validating the first configset registration of duplicate gems
|
|
46
|
-
names = self.class.validations.map {|r| r.name }
|
|
47
|
-
self.class.validations << registry unless names.include?(registry.name)
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
# Validate the configset before building templates. So user finds out about errors early.
|
|
51
|
-
def validate!
|
|
52
|
-
errors = []
|
|
53
|
-
self.class.validations.each do |registry|
|
|
54
|
-
config = finder_class.find(registry.name) # finder_class implemented in subclass
|
|
55
|
-
errors << [:finder_missing, registry] unless config
|
|
56
|
-
|
|
57
|
-
if registry.depends_on.nil? && registry.resource.nil?
|
|
58
|
-
errors << [:resource_missing, registry]
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
return if errors.empty? # all good
|
|
63
|
-
show_errors_and_exit!(errors)
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def show_errors_and_exit!(errors)
|
|
67
|
-
errors.each do |error_type, registry|
|
|
68
|
-
name, caller_line = registry.name, registry.caller_line
|
|
69
|
-
case error_type
|
|
70
|
-
when :finder_missing
|
|
71
|
-
puts "ERROR: Configset with name #{name} not found. Please double check Gemfile and configs/#{@blueprint}/configsets files.".color(:red)
|
|
72
|
-
pretty_trace(caller_line)
|
|
73
|
-
when :resource_missing
|
|
74
|
-
puts "ERROR: Configset with name #{name} does not specify resource. The resource key is required.".color(:red)
|
|
75
|
-
pretty_trace(caller_line)
|
|
76
|
-
raise
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
exit 1
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
def pretty_trace(caller_line)
|
|
83
|
-
md = caller_line.match(/(.*\.rb):(\d+):/)
|
|
84
|
-
path, error_line_number = md[1], md[2].to_i
|
|
85
|
-
|
|
86
|
-
context = 5 # lines of context
|
|
87
|
-
top, bottom = [error_line_number-context-1, 0].max, error_line_number+context-1
|
|
88
|
-
|
|
89
|
-
puts "Showing file: #{path}"
|
|
90
|
-
lines = IO.read(path).split("\n")
|
|
91
|
-
spacing = lines.size.to_s.size
|
|
92
|
-
lines[top..bottom].each_with_index do |line_content, index|
|
|
93
|
-
current_line_number = top+index+1
|
|
94
|
-
if current_line_number == error_line_number
|
|
95
|
-
printf("%#{spacing}d %s\n".color(:red), current_line_number, line_content)
|
|
96
|
-
else
|
|
97
|
-
printf("%#{spacing}d %s\n", current_line_number, line_content)
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
public
|
|
103
|
-
class << self
|
|
104
|
-
def clear!
|
|
105
|
-
self.configsets = []
|
|
106
|
-
self.validations = []
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
def prepend(registry)
|
|
110
|
-
self.configsets.unshift(registry) unless has?(registry)
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
def append(registry)
|
|
114
|
-
self.configsets << registry unless has?(registry)
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
def has?(registry)
|
|
118
|
-
configsets.detect { |r| r.name == registry.name && r.args == registry.args }
|
|
119
|
-
end
|
|
120
|
-
end
|
|
121
|
-
end
|
|
122
|
-
end
|