Class: Sfn::Callback

Inherits:
Object
  • Object
show all
Defined in:
lib/sfn/callback.rb,
lib/sfn/callback/aws_mfa.rb,
lib/sfn/callback/stack_policy.rb,
lib/sfn/callback/aws_assume_role.rb

Overview

Interface for injecting custom functionality

Direct Known Subclasses

AwsAssumeRole, AwsMfa, StackPolicy

Defined Under Namespace

Classes: AwsAssumeRole, AwsMfa, StackPolicy

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ui, config, arguments, api) ⇒ self

Create a new callback instance

Parameters:

  • ui (Bogo::Ui)
  • config (Smash)

    configuration hash

  • arguments (Array<String>)

    arguments from the CLI

  • api (Provider)

    API connection



27
28
29
30
31
32
# File 'lib/sfn/callback.rb', line 27

def initialize(ui, config, arguments, api)
  @ui = ui
  @config = config
  @arguments = arguments
  @api = api
end

Instance Attribute Details

#apiMiasma::Models::Orchestration (readonly)

Returns remote API

Returns:

  • (Miasma::Models::Orchestration)

    remote API



17
18
19
# File 'lib/sfn/callback.rb', line 17

def api
  @api
end

#argumentsArray<String> (readonly)

Returns CLI arguments

Returns:

  • (Array<String>)

    CLI arguments



15
16
17
# File 'lib/sfn/callback.rb', line 15

def arguments
  @arguments
end

#configSmash (readonly)

Returns:

  • (Smash)


13
14
15
# File 'lib/sfn/callback.rb', line 13

def config
  @config
end

#uiBogo::Ui (readonly)

Returns:

  • (Bogo::Ui)


11
12
13
# File 'lib/sfn/callback.rb', line 11

def ui
  @ui
end

Instance Method Details

#run_action(msg) ⇒ Object

Wrap action within status text

Parameters:

  • msg (String)

    action text

Returns:

  • (Object)

    result of yield



39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/sfn/callback.rb', line 39

def run_action(msg)
  ui.info("#{msg}... ", :nonewline)
  begin
    result = yield
    ui.puts ui.color("complete!", :green, :bold)
    result
  rescue => e
    ui.puts ui.color("error!", :red, :bold)
    ui.error "Reason - #{e}"
    raise
  end
end