lono 8.0.0.pre.rc2 → 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/CHANGELOG.md +15 -2
- data/Gemfile +1 -3
- data/lib/lono/app/callable_option/concern.rb +12 -0
- data/lib/lono/app/callable_option.rb +56 -0
- data/lib/lono/app.rb +22 -23
- data/lib/lono/autoloader.rb +1 -0
- data/lib/lono/aws_services/helper.rb +0 -2
- data/lib/lono/blueprint.rb +1 -18
- 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} +12 -4
- 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 +6 -55
- data/lib/lono/builder/dsl/finalizer/base.rb +8 -0
- data/lib/lono/builder/dsl/finalizer/configsets.rb +7 -28
- 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/builder/dsl/finalizer/parameter_groups.rb +4 -3
- data/lib/lono/builder/dsl/finalizer.rb +4 -2
- data/lib/lono/builder/dsl/helpers/files.rb +7 -0
- data/lib/lono/builder/dsl/helpers/partials.rb +48 -53
- data/lib/lono/builder/dsl/helpers/s3.rb +1 -1
- data/lib/lono/builder/dsl/helpers/ssm/fetcher.rb +3 -1
- data/lib/lono/builder/dsl/helpers/template_file.rb +18 -6
- data/lib/lono/builder/dsl/helpers.rb +1 -11
- data/lib/lono/builder/dsl/syntax/core/resource/property_mover.rb +11 -1
- data/lib/lono/builder/dsl/syntax/core/squeezer.rb +16 -2
- data/lib/lono/builder/dsl.rb +1 -1
- data/lib/lono/builder/param.rb +4 -1
- data/lib/lono/builder/template/upload.rb +2 -15
- data/lib/lono/cfn/cancel.rb +5 -5
- data/lib/lono/cfn/deploy/iam.rb +1 -1
- data/lib/lono/cfn/deploy.rb +32 -3
- data/lib/lono/cfn/download.rb +0 -1
- data/lib/lono/cfn/plan/changeset.rb +2 -2
- data/lib/lono/cfn/plan/diff/data.rb +11 -1
- data/lib/lono/cfn/plan/param.rb +1 -1
- data/lib/lono/cfn/plan/template.rb +2 -2
- data/lib/lono/cfn/plan.rb +1 -0
- data/lib/lono/cli/abstract.rb +0 -6
- data/lib/lono/cli/base.rb +5 -3
- data/lib/lono/cli/build.rb +16 -60
- data/lib/lono/cli/clean.rb +3 -2
- data/lib/lono/cli/code.rb +12 -12
- 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/list.rb +3 -6
- data/lib/lono/cli/new/blueprint.rb +3 -7
- data/lib/lono/cli/new/configset.rb +11 -44
- 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 +8 -27
- data/lib/lono/cli/new/sequence.rb +6 -1
- data/lib/lono/cli/new.rb +8 -12
- data/lib/lono/cli/status.rb +18 -0
- data/lib/lono/cli.rb +6 -9
- data/lib/lono/command.rb +0 -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 +17 -0
- data/lib/lono/core.rb +1 -1
- data/lib/lono/ext/bundler.rb +7 -0
- 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 +1 -1
- data/lib/lono/inspector/summary.rb +0 -3
- data/lib/lono/layering/layer.rb +3 -17
- data/lib/lono/logger.rb +1 -3
- data/lib/lono/names.rb +1 -1
- data/lib/lono/s3/uploader.rb +29 -28
- data/lib/lono/seeder.rb +18 -27
- data/lib/lono/user_data.rb +3 -1
- data/lib/lono/version.rb +1 -1
- data/lib/lono/yamler/validator.rb +7 -22
- data/lib/lono.rb +8 -0
- data/lib/templates/configset/configset.rb +2 -16
- data/lib/templates/examples/configset/configset.rb +16 -0
- data/lib/templates/helper/%underscore_name%_helper.rb.tt +1 -1
- data/lono.gemspec +1 -1
- metadata +52 -39
- 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 -79
- 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/builder/context/generic.rb +0 -11
- data/lib/lono/builder/context/loaders/load_files.rb +0 -23
- data/lib/lono/builder/context/loaders.rb +0 -35
- data/lib/lono/builder/context/params.rb +0 -6
- data/lib/lono/builder/context/template.rb +0 -4
- data/lib/lono/configset/builder.rb +0 -59
- data/lib/lono/configset/combiner.rb +0 -164
- data/lib/lono/configset/evaluate_file.rb +0 -8
- data/lib/lono/configset/meta/dsl.rb +0 -12
- data/lib/lono/configset/meta.rb +0 -19
- data/lib/lono/configset/s3_file/build.rb +0 -34
- 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/lookup.rb +0 -12
- data/lib/lono/seeder/service_role.rb +0 -11
- data/lib/lono/utils/contexts.rb +0 -15
- data/lib/lono/utils/item/file_methods.rb +0 -29
- data/lib/lono/utils/item/zip.rb +0 -42
@@ -1,34 +0,0 @@
|
|
1
|
-
module Lono::Configset::S3File
|
2
|
-
class Build < Lono::CLI::Base
|
3
|
-
include Lono::Utils::Item::Zip
|
4
|
-
include Lono::Utils::Logging
|
5
|
-
include Lono::Utils::Rsync
|
6
|
-
|
7
|
-
def run
|
8
|
-
Lono::Configset::S3File::Registry.items.each do |item|
|
9
|
-
build(item)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def build(item)
|
14
|
-
copy_to_output(item)
|
15
|
-
compress_output
|
16
|
-
end
|
17
|
-
|
18
|
-
def copy_to_output(item)
|
19
|
-
src = "#{item.root}/lib/files/#{item.name}"
|
20
|
-
dest = "#{Lono.root}/output/#{@blueprint.name}/configsets/#{item.configset}/files/#{item.name}"
|
21
|
-
rsync(src, dest)
|
22
|
-
end
|
23
|
-
|
24
|
-
def compress_output
|
25
|
-
Registry.items.each do |item|
|
26
|
-
if item.exist?
|
27
|
-
zip(item)
|
28
|
-
else
|
29
|
-
logger.info "WARN: #{item.src_path} does not exist. Double check that the path is correct in the s3_key call.".color(:yellow)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
module Lono::Configset::S3File
|
2
|
-
# Holds metadata about the item in the regsitry.
|
3
|
-
class Item
|
4
|
-
include Lono::Utils::Item::FileMethods
|
5
|
-
|
6
|
-
attr_reader :name, :configset, :root
|
7
|
-
def initialize(name, options={})
|
8
|
-
@name, @options = name, options
|
9
|
-
@blueprint = options[:blueprint]
|
10
|
-
@configset = options[:configset]
|
11
|
-
@root = options[:root]
|
12
|
-
@type = options[:type] || 'file'
|
13
|
-
end
|
14
|
-
|
15
|
-
def src_path
|
16
|
-
"#{@root}/lib/files"
|
17
|
-
end
|
18
|
-
|
19
|
-
def output_path
|
20
|
-
"#{Lono.root}/output/#{@blueprint.name}/configsets/#{@configset}/files/#{@name}"
|
21
|
-
end
|
22
|
-
|
23
|
-
def replacement_value
|
24
|
-
aws_data = AwsData.new
|
25
|
-
#
|
26
|
-
# "https://s3.amazonaws.com/#{Lono::S3::Bucket.name}/#{s3_path}"
|
27
|
-
# "https://lono-bucket-12di8xz5sy72z.s3-us-west-2.amazonaws.com/stuff/s3-antivirus.tgz"
|
28
|
-
#
|
29
|
-
# us-east-1 is special case:
|
30
|
-
#
|
31
|
-
# "https://lono-bucket-12di8xz5sy72z.s3.amazonaws.com/stuff/s3-antivirus.tgz"
|
32
|
-
#
|
33
|
-
region = ""
|
34
|
-
region = "-#{aws_data.region}" unless aws_data.region == "us-east-1"
|
35
|
-
"https://#{Lono::S3::Bucket.name}.s3#{region}.amazonaws.com/#{s3_path}"
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
module Lono::Configset::S3File
|
2
|
-
class Upload < Lono::CLI::Base
|
3
|
-
def upload
|
4
|
-
return unless Registry.items.size > 0
|
5
|
-
logger.info "Uploading configset files..."
|
6
|
-
|
7
|
-
Registry.items.each do |item|
|
8
|
-
Lono::S3::Uploader.new(item.zip_file_path).upload
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
@@ -1,83 +0,0 @@
|
|
1
|
-
# Subclasses must implement:
|
2
|
-
#
|
3
|
-
# find_evaluation_path - use to set @evaluation_path
|
4
|
-
# load
|
5
|
-
#
|
6
|
-
# Notable instance variables:
|
7
|
-
#
|
8
|
-
# @evaluation_path - IE: lib/configset.rb or lib/configset.yml
|
9
|
-
# @root - IE: /path/to/root/of/configset
|
10
|
-
#
|
11
|
-
module Lono::Configset::Strategy
|
12
|
-
class Base
|
13
|
-
extend Memoist
|
14
|
-
include Lono::Configset::EvaluateFile
|
15
|
-
|
16
|
-
# All Lono DSL Helpers and Fn - so configsets have access to instrinic functions like ref
|
17
|
-
# Not including the Lono::Builder::Template::Strategy::Dsl::Evaluator::Syntax since dont need those methods
|
18
|
-
#
|
19
|
-
# Interesting note: must include these modules here so load_project_predefined_variables works.
|
20
|
-
# Since load_project_predefined_variables calls evaluate_file / instance eval which seems to only be
|
21
|
-
# able to access methods from the direct class, not inherited classes like Dsl.
|
22
|
-
#
|
23
|
-
# This allows methods like ref and sub to work in variables files.
|
24
|
-
#
|
25
|
-
include Lono::Builder::Template::Strategy::Dsl::Evaluator::Helpers
|
26
|
-
include Lono::Builder::Template::Strategy::Dsl::Evaluator::Fn
|
27
|
-
|
28
|
-
def initialize(options={})
|
29
|
-
@options = options
|
30
|
-
@configset = options[:configset]
|
31
|
-
@root = options[:root]
|
32
|
-
@resource = options[:resource] || "FakeResource"
|
33
|
-
@blueprin = options[:blueprint]
|
34
|
-
end
|
35
|
-
|
36
|
-
def build
|
37
|
-
@evaluation_path = find_evaluation_path # implemented by subclass
|
38
|
-
copy_instance_variables
|
39
|
-
load_configset_helpers
|
40
|
-
init = load # implemented by subclass
|
41
|
-
finish_full_structure(init)
|
42
|
-
end
|
43
|
-
memoize :build
|
44
|
-
|
45
|
-
def finish_full_structure(init)
|
46
|
-
full = {"Metadata" => {}}
|
47
|
-
full["Metadata"]["AWS::CloudFormation::Init"] = init["AWS::CloudFormation::Init"]
|
48
|
-
full["Metadata"]["AWS::CloudFormation::Authentication"] = authentication if authentication # only on dsl
|
49
|
-
full.deep_stringify_keys!
|
50
|
-
end
|
51
|
-
|
52
|
-
def copy_instance_variables
|
53
|
-
load_blueprint_predefined_variables
|
54
|
-
load_project_predefined_variables
|
55
|
-
end
|
56
|
-
|
57
|
-
def load_blueprint_predefined_variables
|
58
|
-
evaluate_file("#{@root}/lib/variables.rb")
|
59
|
-
end
|
60
|
-
|
61
|
-
def load_project_predefined_variables
|
62
|
-
paths = [
|
63
|
-
"#{Lono.root}/config/#{@blueprint.name}/configsets/variables.rb", # global
|
64
|
-
"#{Lono.root}/config/#{@blueprint.name}/configsets/variables/#{@configset}.rb", # configset specific
|
65
|
-
]
|
66
|
-
paths.each do |path|
|
67
|
-
evaluate_file(path)
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
def load_configset_helpers
|
72
|
-
paths = Dir.glob("#{@root}/lib/helpers/**/*.rb")
|
73
|
-
paths.sort_by! { |p| p.size } # load possible namespaces first
|
74
|
-
paths.each do |path|
|
75
|
-
filename = path.sub(%r{.*/lib/helpers/},'').sub('.rb','')
|
76
|
-
module_name = filename.camelize
|
77
|
-
|
78
|
-
require path
|
79
|
-
self.class.send :include, module_name.constantize
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
data/lib/lono/lookup.rb
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
class Lono::Seeder
|
2
|
-
module ServiceRole
|
3
|
-
def create_service_linked_role(aws_service_name)
|
4
|
-
iam.create_service_linked_role(
|
5
|
-
aws_service_name: aws_service_name
|
6
|
-
)
|
7
|
-
rescue Aws::IAM::Errors::InvalidInput # already exist
|
8
|
-
raise if ENV['LONO_DEBUG_SEED']
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
data/lib/lono/utils/contexts.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
module Lono::Utils
|
2
|
-
module Contexts
|
3
|
-
extend Memoist
|
4
|
-
|
5
|
-
def template_context
|
6
|
-
Lono::Builder::Context::Template.new(@options)
|
7
|
-
end
|
8
|
-
memoize :template_context
|
9
|
-
|
10
|
-
def params_context
|
11
|
-
Lono::Builder::Context::Params.new(@options)
|
12
|
-
end
|
13
|
-
memoize :params_context
|
14
|
-
end
|
15
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
module Lono::Utils::Item
|
2
|
-
module FileMethods
|
3
|
-
def exist?
|
4
|
-
File.exist?(output_path)
|
5
|
-
end
|
6
|
-
|
7
|
-
def directory?
|
8
|
-
File.directory?(output_path)
|
9
|
-
end
|
10
|
-
|
11
|
-
def file?
|
12
|
-
File.file?(output_path)
|
13
|
-
end
|
14
|
-
|
15
|
-
def s3_path
|
16
|
-
path = zip_file_path.gsub("#{Lono.root}/",'') # remove Lono.root
|
17
|
-
"#{Lono.env}/#{path}"
|
18
|
-
end
|
19
|
-
|
20
|
-
# full path
|
21
|
-
def zip_file_path
|
22
|
-
"#{File.dirname(output_path)}/#{zip_file_name}"
|
23
|
-
end
|
24
|
-
|
25
|
-
def zip_file_name
|
26
|
-
"#{File.basename(output_path)}-#{@type}-#{Lono::Md5.sum(output_path)}.zip"
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
data/lib/lono/utils/item/zip.rb
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
|
3
|
-
module Lono::Utils::Item
|
4
|
-
module Zip
|
5
|
-
def zip(item)
|
6
|
-
if item.directory?
|
7
|
-
zip_directory(item)
|
8
|
-
else
|
9
|
-
zip_file(item)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def zip_file(item)
|
14
|
-
path = item.output_path
|
15
|
-
zip_file = item.zip_file_name
|
16
|
-
|
17
|
-
logger.info "Zipping file and generating md5 named file from: #{path}"
|
18
|
-
command = "cd #{File.dirname(path)} && zip -q #{zip_file} #{File.basename(path)}" # create zipfile at same level of file
|
19
|
-
execute_zip(command)
|
20
|
-
end
|
21
|
-
|
22
|
-
def zip_directory(item)
|
23
|
-
path = item.output_path
|
24
|
-
zip_file = item.zip_file_name
|
25
|
-
|
26
|
-
logger.info "Zipping folder and generating md5 named file from: #{path}"
|
27
|
-
command = "cd #{path} && zip --symlinks -rq #{zip_file} ." # create zipfile witih directory
|
28
|
-
execute_zip(command)
|
29
|
-
FileUtils.mv("#{path}/#{zip_file}", "#{File.dirname(path)}/#{zip_file}") # move zip back to the parent directory
|
30
|
-
end
|
31
|
-
|
32
|
-
def execute_zip(command)
|
33
|
-
# logger.info "=> #{command}".color(:green) # uncomment to debug
|
34
|
-
`#{command}`
|
35
|
-
unless $?.success?
|
36
|
-
logger.info "ERROR: Fail to run #{command}".color(:red)
|
37
|
-
logger.info "Maybe zip is not installed or path is incorrect?"
|
38
|
-
exit 1
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|