Module: PuppetHerald

Defined in:
lib/puppet-herald.rb,
lib/puppet-herald/cli.rb,
lib/puppet-herald/client.rb,
lib/puppet-herald/models.rb,
lib/puppet-herald/app/api.rb,
lib/puppet-herald/version.rb,
lib/puppet-herald/database.rb,
lib/puppet-herald/javascript.rb,
lib/puppet-herald/application.rb,
lib/puppet-herald/models/node.rb,
lib/puppet-herald/app/frontend.rb,
lib/puppet-herald/purgecronjob.rb,
lib/puppet-herald/models/report.rb,
lib/puppet-herald/models/log-entry.rb,
lib/puppet-herald/app/configuration.rb

Overview

A module for Herald

Defined Under Namespace

Modules: App, Models Classes: Application, CLI, Client, Database, Javascript, PurgeCronJob

Constant Summary collapse

VERSION =

Version for Herald

version_prep '0.8.1'
LICENSE =

Lincense for Herald

'Apache-2.0'
NAME =

Project name

'Puppet Herald'
PACKAGE =

Package (gem) for Herald

'puppet-herald'
SUMMARY =

A summary info

'a Puppet report processor'
DESCRIPTION =

A description info

'Provides a gateway for consuming puppet reports, a REST API and a simple Web app to display reports.'
HOMEPAGE =

A homepage for Herald

'https://github.com/wavesoftware/gem-puppet-herald'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.errloggerLogger (readonly)

Logger for CLI interface (error)

Returns:

  • (Logger)

    logger for CLI



20
21
22
# File 'lib/puppet-herald.rb', line 20

def errlogger
  @errlogger
end

.loggerLogger (readonly)

Logger for CLI interface

Returns:

  • (Logger)

    logger for CLI



24
25
26
# File 'lib/puppet-herald.rb', line 24

def logger
  @logger
end

Class Method Details

.bug(ex) ⇒ Hash

Reports a bug in desired format

Parameters:

  • ex (Exception)

    an exception that was thrown

Returns:

  • (Hash)

    a hash with info about bug to be displayed to user



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/puppet-herald.rb', line 98

def bug(ex)
  file = Tempfile.new(['puppet-herald-bug', '.log'])
  filepath = file.path
  file.close
  file.unlink
  message = "v#{PuppetHerald::VERSION}-#{ex.class}: #{ex.message}"
  contents = message + "\n\n" + ex.backtrace.join("\n") + "\n"
  File.write(filepath, contents)
  bugo = {
    message: message,
    homepage: PuppetHerald::HOMEPAGE,
    bugfile: filepath,
    help: "Please report this bug to #{PuppetHerald::HOMEPAGE} by passing contents of bug file: #{filepath}"
  }
  bugo
end

.databasePuppetHerald::Database

A database object

Returns:



28
29
30
# File 'lib/puppet-herald.rb', line 28

def database  # rubocop:disable Style/TrivialAccessors
  @database
end

.environmentSymbol

Gets the environment set for Herald

Returns:

  • (Symbol)

    an environment



59
60
61
62
# File 'lib/puppet-herald.rb', line 59

def environment
  ENV['PUPPET_HERALD_ENV'] = :production.to_s if ENV['PUPPET_HERALD_ENV'].nil?
  ENV['PUPPET_HERALD_ENV'].to_sym
end

.environment=(newenv) ⇒ Object



40
41
42
43
44
45
# File 'lib/puppet-herald.rb', line 40

def environment=(newenv)
  envsymbol = newenv.to_s.to_sym
  ENV['PUPPET_HERALD_ENV'] = envsymbol.to_s
  rackenv
  setup_logger
end

.in_dev?Boolean

Checks is running in DEVELOPMENT kind of environment (dev, ci, test)

Returns:

  • (Boolean)

    true if runs in development



83
84
85
# File 'lib/puppet-herald.rb', line 83

def in_dev?
  [:development, :dev, :test, :ci].include? environment
end

.in_prod?Boolean

Checks is running in production environment

Returns:

  • (Boolean)

    true if runs in production



90
91
92
# File 'lib/puppet-herald.rb', line 90

def in_prod?
  !in_dev?
end

.rackenvSymbol

Rack environment

Returns:

  • (Symbol)

    Rack environment



67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/puppet-herald.rb', line 67

def rackenv
  case environment
  when :dev, :development
    rackenv = :development
  when :test, :ci
    rackenv = :test
  else
    rackenv = :production
  end
  ENV['RACK_ENV'] = rackenv.to_s
  rackenv
end

.relative_dir(dir) ⇒ String

Calculates a replative directory inside the project

Parameters:

  • dir (String)

    a sub directory

Returns:

  • (String)

    a full path to replative dir



36
37
38
# File 'lib/puppet-herald.rb', line 36

def relative_dir(dir)
  File.realpath(File.join @root, dir)
end

.setup_loggernil

Setups logger’s level

Returns:

  • (nil)


50
51
52
53
54
# File 'lib/puppet-herald.rb', line 50

def setup_logger
  logger.level = self.in_dev? ? Logger::DEBUG : Logger::INFO
  errlogger.level = logger.level
  nil
end

.version_prep(desired) ⇒ String

Prepare version

Parameters:

  • desired (String)

    a desired version

Returns:

  • (String)

    a prepared version



7
8
9
10
11
12
13
14
# File 'lib/puppet-herald/version.rb', line 7

def self.version_prep(desired)
  version = desired
  if desired.match(/[^0-9\.]+/)
    git = `git describe --tags --dirty --always`
    version += '.' + git.gsub('-', '.')
  end
  version.strip
end