Sha256: 32a3f2462bdbee7dc563d0d64ddb1de4a472728730363510e1ef090fdccc6cfa

Contents?: true

Size: 1.32 KB

Versions: 22

Compression:

Stored size: 1.32 KB

Contents

require 'sfn'

module Sfn
  # Interface for injecting custom functionality
  class Callback

    autoload :AwsAssumeRole, 'sfn/callback/aws_assume_role'
    autoload :AwsMfa, 'sfn/callback/aws_mfa'
    autoload :StackPolicy, 'sfn/callback/stack_policy'

    # @return [Bogo::Ui]
    attr_reader :ui
    # @return [Smash]
    attr_reader :config
    # @return [Array<String>] CLI arguments
    attr_reader :arguments
    # @return [Miasma::Models::Orchestration] remote API
    attr_reader :api

    # Create a new callback instance
    #
    # @param ui [Bogo::Ui]
    # @param config [Smash] configuration hash
    # @param arguments [Array<String>] arguments from the CLI
    # @param api [Provider] API connection
    #
    # @return [self]
    def initialize(ui, config, arguments, api)
      @ui = ui
      @config = config
      @arguments = arguments
      @api = api
    end

    # Wrap action within status text
    #
    # @param msg [String] action text
    # @yieldblock action to perform
    # @return [Object] result of yield
    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

  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
sfn-3.0.28 lib/sfn/callback.rb
sfn-3.0.26 lib/sfn/callback.rb
sfn-3.0.24 lib/sfn/callback.rb
sfn-3.0.22 lib/sfn/callback.rb
sfn-3.0.20 lib/sfn/callback.rb
sfn-3.0.18 lib/sfn/callback.rb
sfn-3.0.16 lib/sfn/callback.rb
sfn-3.0.14 lib/sfn/callback.rb
sfn-3.0.12 lib/sfn/callback.rb
sfn-3.0.10 lib/sfn/callback.rb
sfn-3.0.8 lib/sfn/callback.rb
sfn-3.0.6 lib/sfn/callback.rb
sfn-3.0.4 lib/sfn/callback.rb
sfn-3.0.2 lib/sfn/callback.rb
sfn-3.0.0 lib/sfn/callback.rb
sfn-2.2.0 lib/sfn/callback.rb
sfn-2.1.12 lib/sfn/callback.rb
sfn-2.1.10 lib/sfn/callback.rb
sfn-2.1.8 lib/sfn/callback.rb
sfn-2.1.6 lib/sfn/callback.rb