Class: Banalize::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/banalize/runner.rb,
lib/banalize/exception.rb

Overview

Executing policy checks against bash file(s). Class instance is single bach file to check and single policy. Result of the check is returned in @result instance variable (and attr_accessor).

Instance attributes

  • @bash - PATH to bash file

  • @policy - [Hash] Policy configuration hash, key :klass contains name of the class for Ruby policy. If Hash does not have :klass key, it's not a Ruby, execute it as shell policy.

  • @result - Currenty returns only Boolean (true - check OK/false check fail). This can change later.

Defined Under Namespace

Classes: Error

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Constructor Details

- (Runner) initialize(bash, policy)

Create new instance of policy check runner and execute it. Result of the check is returned in @result attribute.

Parameters:

  • bash (String)
  • policy (Hash)

    Policy configuration hash.

See Also:



58
59
60
61
62
63
64
65
66
# File 'lib/banalize/runner.rb', line 58

def initialize bash,policy
  @bash, @policy, @result = bash, policy, nil

  if @policy.has_key? :klass
    ruby
  else
    shell
  end
end

Instance Attribute Details

- (Object) bash

Returns the value of attribute bash



68
69
70
# File 'lib/banalize/runner.rb', line 68

def bash
  @bash
end

- (Object) policy

Returns the value of attribute policy



68
69
70
# File 'lib/banalize/runner.rb', line 68

def policy
  @policy
end

- (Object) result

Returns the value of attribute result



68
69
70
# File 'lib/banalize/runner.rb', line 68

def result
  @result
end

Instance Method Details

- (Object) ruby

Execute ruby check



73
74
75
76
77
78
79
80
81
82
83
# File 'lib/banalize/runner.rb', line 73

def ruby
  object = policy[:klass].constantize.new(bash)

  # Policy executed by default unless it explicitly deactivated
  res = object.default[:active] == false ? true : object.run 

  @result = {
    :status => res ? true : false,
    :messages => Errors.to_s(object.errors.messages)
  }
end

- (Object) shell

Execute shell check



88
89
90
91
92
93
94
# File 'lib/banalize/runner.rb', line 88

def shell
  err = %x{ #{policy[:path]} #{bash} }
  @result = {
    :status => ($?.exitstatus == 0),
    :messages => err
  }
end