Sha256: 398af8ed96514a40499226100b41518b57ca3f02644385a6a7cb64655a35f0a1
Contents?: true
Size: 1.93 KB
Versions: 4
Compression:
Stored size: 1.93 KB
Contents
module Jets::CLI::Lambda class Lookup class Error < StandardError class ParentStack < self; end class Output < self; end class ChildStack < self; end end class << self def function(name) new(name).lookup end end include Jets::AwsServices def initialize(name) @name = name end MAX_FUNCTION_NAME_SIZE = 64 def function_name name = if @name.starts_with?(Jets.project.namespace) @name # fully qualified function name elsif !ENV["JETS_RESET"] [Jets.project.namespace, @name].join("-") else lookup end (name.size > MAX_FUNCTION_NAME_SIZE) ? lookup : name end def lookup if @name == "controller" class_name, meth = "Controller", "" else # IE: jets-prewarm_event-handle # class_name => "JetsPrewarm" - no colons :: # meth => "Handle" parts = @name.split("-") meth = parts.pop.tr("-", "_").camelize class_name = parts.join("_").camelize end parent_name = Jets::Names.parent_stack_name parent = cfn.describe_stacks(stack_name: parent_name).stacks.first unless parent raise Error::ParentStack, "Unable to find parent stack #{parent_name}" end # Can occur while stack is initially creating for the first time output = parent.outputs.find { |o| o.output_key == class_name } unless output raise Error::Output, "Unable to find output #{class_name} in parent stack #{parent_name}" end # Can occur while stack is initially creating for the first time child_name = output.output_value child = cfn.describe_stacks(stack_name: child_name).stacks.first unless child raise Error::ChildStack, "Unable to find child stack #{parent_name}" end output = child.outputs.find { |o| o.output_key == "#{meth}LambdaFunction" } output.output_value end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
jets-6.0.5 | lib/jets/cli/lambda/lookup.rb |
jets-6.0.4 | lib/jets/cli/lambda/lookup.rb |
jets-6.0.3 | lib/jets/cli/lambda/lookup.rb |
jets-6.0.2 | lib/jets/cli/lambda/lookup.rb |