Module: Jackal::Stacks::StackCommon

Included in:
Builder, Wrecker
Defined in:
lib/jackal-stacks/stack_common.rb

Instance Method Summary collapse

Instance Method Details

#determine_namespace(payload) ⇒ String

Note:

if not match found, ‘default` will return

Determine namespace key to use for accessing parameters

Parameters:

  • payload (Smash)

Returns:

  • (String)


25
26
27
28
29
# File 'lib/jackal-stacks/stack_common.rb', line 25

def determine_namespace(payload)
  config.fetch(:mappings, Smash.new).map do |ns, glob|
    ns if File.fnmatch?(glob, payload.get(:data, :stacks, :reference).to_s)
  end.compact.first
end

#stack_name(payload) ⇒ String

Generate stack name based on payload

Parameters:

  • payload (Smash)

Returns:

  • (String)

    stack name



35
36
37
38
39
40
41
42
43
# File 'lib/jackal-stacks/stack_common.rb', line 35

def stack_name(payload)
  s_namespace = determine_namespace(payload)
  s_project = payload.fetch(:data, :stacks, :project, SecureRandom.urlsafe_base64)
  [
    s_namespace,
    s_project,
    payload.get(:data, :stacks, :template).sub(/\.[a-z]+$/, '')
  ].join('-').gsub(/[^A-Za-z0-9\-]/, '-')
end

#stacks_apiMiasma::Models::Orchestration

Returns:

  • (Miasma::Models::Orchestration)


8
9
10
11
12
13
14
15
16
17
18
# File 'lib/jackal-stacks/stack_common.rb', line 8

def stacks_api
  memoize(:stacks_api, :direct) do
    Miasma.api(
      config.fetch(
        :orchestration, :api, Smash.new
      ).merge(
        :type => :orchestration
      )
    )
  end
end