puppet-herald 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -15
- data/.gitignore +3 -0
- data/.travis.yml +17 -0
- data/Gemfile +25 -0
- data/Gemfile.local.example +7 -0
- data/README.md +13 -0
- data/Rakefile +9 -2
- data/bin/puppet-herald +1 -1
- data/lib/puppet-herald.rb +18 -6
- data/lib/puppet-herald/app.rb +13 -22
- data/lib/puppet-herald/cli.rb +40 -13
- data/lib/puppet-herald/database.rb +20 -13
- data/lib/puppet-herald/public/bower.json +2 -3
- data/lib/puppet-herald/public/components/artifact/artifact-directive_test.js +1 -1
- data/lib/puppet-herald/version.rb +2 -2
- data/package.json +40 -0
- data/puppet-herald.gemspec +7 -35
- data/spec/integration/app_spec.rb +21 -0
- data/spec/{unit → integration}/fixtures/changed-notify.yaml +0 -0
- data/spec/integration/models/node_spec.rb +26 -0
- data/spec/{unit → integration}/models/report_spec.rb +34 -1
- data/spec/model_helper.rb +1 -1
- data/spec/spec_helper.rb +3 -0
- data/spec/support/active_record.rb +4 -2
- data/spec/unit/puppet-herald/cli_spec.rb +54 -0
- data/spec/unit/puppet-herald/database_spec.rb +57 -0
- data/spec/unit/puppet-herald/javascript_spec.rb +44 -0
- data/spec/unit/puppet-herald/version_spec.rb +14 -0
- data/spec/unit/puppet-herald_spec.rb +56 -0
- data/test/javascript/karma.conf.js +13 -0
- metadata +80 -251
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
|
-
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
ZjVhZjY1ZGYwOGE1ODc1YjcxYzNjMDhjYzFlNTIwY2E1M2VkYjgzNWZkYWQ0
|
10
|
-
NTY4N2M2ZmUxNmVlZDMzN2U0MTZjMDg2MDMzZWI4MjNmY2FhYzNmOTZhMTJl
|
11
|
-
YjZmMTA4MjVlZDk1OTFmNzM2YzM0Yjk0ZWZhMzEyOWIyZjAyMzU=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
NzhhZGI2ZDhmYzFiY2I4MzYzMmY3YzMwMDM1ZTRlM2YwYzU4NWEzNDFhNWE3
|
14
|
-
ZDEzOWU1YmFiNjZhNjE3NDQyNzY0ZmIwYTY0OGExNTc4OTUzZWNlZmE1ZTI0
|
15
|
-
YzFlNDI4NDk4YjExODViYjUzYjZkMDJjZjg0YWMxMTUwODM1YWM=
|
1
|
+
---
|
2
|
+
SHA512:
|
3
|
+
metadata.gz: 78f9a25bcd05308702a4aaab34357dcd95359e1c418d7795fbf46ebea7b2c327a752107952292f121d0ba627feb9c5828a29ca64d22b480097705a1b5b99275c
|
4
|
+
data.tar.gz: e3a4545a971d3c56f7062b98594351899e907828f1ce983386489e340e705a4ed73ae6a8af82b78918926cca3dfc29c78b6407545e545f32cdcf705f31d8594c
|
5
|
+
SHA1:
|
6
|
+
metadata.gz: 0cf69983b2dca3d4c86d2bcb33178563c0d2f1db
|
7
|
+
data.tar.gz: e1a41cbe6c56cce31b299b7002880da7559ddf9d
|
data/.gitignore
CHANGED
data/.travis.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
language: ruby
|
3
|
+
bundler_args: --without development
|
4
|
+
script:
|
5
|
+
- bundle exec rake test
|
6
|
+
# - ./node_modules/karma/bin/karma start --single-run --browsers PhantomJS test/javascript/karma.conf.js
|
7
|
+
before_install: rm -f Gemfile.lock
|
8
|
+
before_script:
|
9
|
+
- npm install
|
10
|
+
matrix:
|
11
|
+
fast_finish: true
|
12
|
+
include:
|
13
|
+
- rvm: 1.9.3
|
14
|
+
- rvm: 2.0.0
|
15
|
+
- rvm: 2.1.0
|
16
|
+
notifications:
|
17
|
+
email: false
|
data/Gemfile
CHANGED
@@ -2,4 +2,29 @@ source ENV['GEM_SOURCE'] || "https://rubygems.org"
|
|
2
2
|
|
3
3
|
gemspec
|
4
4
|
|
5
|
+
group :test do
|
6
|
+
|
7
|
+
gem 'rake', '~> 10.4'
|
8
|
+
gem 'rspec', '~> 3.1'
|
9
|
+
gem 'rspec-its', '~> 1.1'
|
10
|
+
gem 'coveralls', '~> 0.7'
|
11
|
+
gem 'simplecov', '~> 0.9'
|
12
|
+
gem 'sqlite3', '~> 1.3'
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
group :development do
|
17
|
+
|
18
|
+
gem 'inch', '~> 0.5'
|
19
|
+
gem 'travis', '~> 1.6'
|
20
|
+
gem 'pry-byebug', '~> 2.0' if RUBY_VERSION >= '2.0.0'
|
21
|
+
gem 'pry-debugger', '~> 0.2' if RUBY_VERSION < '2.0.0'
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
|
26
|
+
if File.exists?(local_gemfile)
|
27
|
+
eval_gemfile local_gemfile
|
28
|
+
end
|
29
|
+
|
5
30
|
# vim:ft=ruby
|
data/README.md
CHANGED
@@ -1,11 +1,24 @@
|
|
1
1
|
puppet-herald gem
|
2
2
|
========
|
3
3
|
|
4
|
+
##### Status Info
|
5
|
+
[![GitHub Issues](https://img.shields.io/github/issues/wavesoftware/gem-puppet-herald.svg)](https://github.com/wavesoftware/gem-puppet-herald/issues) [![Gem](http://img.shields.io/gem/v/puppet-herald.svg)](https://rubygems.org/gems/puppet-herald) [![GitHub Release](https://img.shields.io/github/release/wavesoftware/gem-puppet-herald.svg)](https://github.com/wavesoftware/gem-puppet-herald/releases) [![Apache 2.0 License](http://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://raw.githubusercontent.com/wavesoftware/gem-puppet-herald/develop/LICENSE)
|
6
|
+
|
7
|
+
##### Master (stable) branch
|
8
|
+
[![Build Status](https://img.shields.io/travis/wavesoftware/gem-puppet-herald/master.svg)](https://travis-ci.org/wavesoftware/gem-puppet-herald) [![Dependency Status](https://gemnasium.com/wavesoftware/gem-puppet-herald.svg)](https://gemnasium.com/wavesoftware/gem-puppet-herald) [![Coverage Status](https://img.shields.io/coveralls/wavesoftware/gem-puppet-herald/master.svg)](https://coveralls.io/r/wavesoftware/gem-puppet-herald?branch=master) [![Code Climate](https://codeclimate.com/github/wavesoftware/gem-puppet-herald/badges/gpa.svg?branch=master)](https://codeclimate.com/github/wavesoftware/gem-puppet-herald) [![Inline docs](http://inch-ci.org/github/wavesoftware/gem-puppet-herald.svg?branch=master)](http://inch-ci.org/github/wavesoftware/gem-puppet-herald)
|
9
|
+
|
10
|
+
##### Development branch
|
11
|
+
[![Build Status](https://img.shields.io/travis/wavesoftware/gem-puppet-herald/develop.svg)](https://travis-ci.org/wavesoftware/gem-puppet-herald) [![Dependency Status](https://gemnasium.com/wavesoftware/gem-puppet-herald.svg)](https://gemnasium.com/wavesoftware/gem-puppet-herald) [![Coverage Status](https://img.shields.io/coveralls/wavesoftware/gem-puppet-herald/develop.svg)](https://coveralls.io/r/wavesoftware/gem-puppet-herald?branch=develop) [![Code Climate](https://codeclimate.com/github/wavesoftware/gem-puppet-herald/badges/gpa.svg?branch=develop)](https://codeclimate.com/github/wavesoftware/gem-puppet-herald) [![Inline docs](http://inch-ci.org/github/wavesoftware/gem-puppet-herald.svg?branch=develop)](http://inch-ci.org/github/wavesoftware/gem-puppet-herald)
|
12
|
+
|
4
13
|
Overview
|
5
14
|
--------
|
6
15
|
|
7
16
|
Herald is a puppet report processor. He provides a gateway for consuming puppet reports, a REST API and a simple Web app to display reports.
|
8
17
|
|
18
|
+
![A reports list](https://raw.githubusercontent.com/wavesoftware/gem-puppet-herald/gh-pages/images/reports.png)
|
19
|
+
|
20
|
+
![A logs of single report](https://raw.githubusercontent.com/wavesoftware/gem-puppet-herald/gh-pages/images/logs.png)
|
21
|
+
|
9
22
|
Puppet module
|
10
23
|
-----
|
11
24
|
|
data/Rakefile
CHANGED
@@ -1,6 +1,13 @@
|
|
1
|
-
|
1
|
+
|
2
2
|
require 'sinatra/activerecord/rake'
|
3
3
|
require 'rspec/core/rake_task'
|
4
4
|
|
5
|
+
desc "Run spec tests."
|
5
6
|
RSpec::Core::RakeTask.new(:spec)
|
6
|
-
|
7
|
+
|
8
|
+
desc "Run lint, and spec tests."
|
9
|
+
task :test => [
|
10
|
+
:spec
|
11
|
+
]
|
12
|
+
|
13
|
+
task :default => :test
|
data/bin/puppet-herald
CHANGED
data/lib/puppet-herald.rb
CHANGED
@@ -9,11 +9,7 @@ module PuppetHerald
|
|
9
9
|
@@root = File.dirname(File.dirname(File.realpath(__FILE__)))
|
10
10
|
|
11
11
|
def self.relative_dir dir
|
12
|
-
File.join @@root, dir
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.port
|
16
|
-
@@port
|
12
|
+
File.realpath(File.join @@root, dir)
|
17
13
|
end
|
18
14
|
|
19
15
|
def self.environment
|
@@ -31,7 +27,23 @@ module PuppetHerald
|
|
31
27
|
def self.is_in_prod?
|
32
28
|
return !is_in_dev?
|
33
29
|
end
|
30
|
+
|
31
|
+
def self.bug ex
|
32
|
+
file = Tempfile.new(['puppet-herald-bug', '.log'])
|
33
|
+
filepath = file.path
|
34
|
+
file.close
|
35
|
+
file.unlink
|
36
|
+
message = "v#{PuppetHerald::VERSION}-#{ex.class.to_s}: #{ex.message}"
|
37
|
+
contents = message + "\n\n" + ex.backtrace.join("\n") + "\n"
|
38
|
+
File.write(filepath, contents)
|
39
|
+
bugo = {
|
40
|
+
:message => message,
|
41
|
+
:homepage => PuppetHerald::HOMEPAGE,
|
42
|
+
:bugfile => filepath,
|
43
|
+
:help => "Please report this bug to #{PuppetHerald::HOMEPAGE} by passing contents of bug file: #{filepath}"
|
44
|
+
}
|
45
|
+
return bugo
|
46
|
+
end
|
34
47
|
end
|
35
48
|
|
36
49
|
require 'puppet-herald/database'
|
37
|
-
require 'puppet-herald/app'
|
data/lib/puppet-herald/app.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'sinatra/base'
|
2
|
-
require
|
2
|
+
require 'sinatra/namespace'
|
3
3
|
require 'sinatra/activerecord'
|
4
4
|
require 'puppet-herald'
|
5
5
|
require 'puppet-herald/javascript'
|
@@ -10,36 +10,27 @@ module PuppetHerald
|
|
10
10
|
class App < Sinatra::Base
|
11
11
|
register Sinatra::Namespace
|
12
12
|
register Sinatra::ActiveRecordExtension
|
13
|
-
|
14
|
-
|
15
|
-
PuppetHerald::Database.setup self
|
16
|
-
end
|
13
|
+
|
14
|
+
set :database, PuppetHerald::Database.spec unless PuppetHerald::Database.spec.nil?
|
17
15
|
if PuppetHerald::is_in_dev?
|
18
16
|
set :environment, :development
|
19
17
|
else
|
20
18
|
set :environment, :production
|
21
19
|
end
|
22
20
|
|
23
|
-
def self.
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
file.unlink
|
28
|
-
message = "v#{PuppetHerald::VERSION}-#{ex.class.to_s}: #{ex.message}"
|
29
|
-
contents = message + "\n\n" + ex.backtrace.join("\n") + "\n"
|
30
|
-
File.write(filepath, contents)
|
31
|
-
bugo = {
|
32
|
-
:message => message,
|
33
|
-
:homepage => PuppetHerald::HOMEPAGE,
|
34
|
-
:bugfile => filepath,
|
35
|
-
:help => "Please report this bug to #{PuppetHerald::HOMEPAGE} by passing contents of bug file: #{filepath}"
|
36
|
-
}
|
37
|
-
return bugo
|
21
|
+
def self.run! options = {}, &block
|
22
|
+
ActiveRecord::Base.establish_connection(PuppetHerald::Database.spec)
|
23
|
+
ActiveRecord::Migrator.up "db/migrate"
|
24
|
+
super options, *block
|
38
25
|
end
|
39
26
|
|
40
27
|
error do
|
41
|
-
@bug = PuppetHerald::
|
42
|
-
|
28
|
+
@bug = PuppetHerald::bug(env['sinatra.error'])
|
29
|
+
if response.content_type == 'application/json'
|
30
|
+
@bug.to_json
|
31
|
+
else
|
32
|
+
erb :err500
|
33
|
+
end
|
43
34
|
end
|
44
35
|
|
45
36
|
get %r{/app\.min\.(js\.map|js)} do |ext|
|
data/lib/puppet-herald/cli.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'micro-optparse'
|
2
|
+
require 'logger'
|
2
3
|
require 'puppet-herald'
|
3
4
|
require 'puppet-herald/version'
|
4
5
|
require 'puppet-herald/database'
|
@@ -6,7 +7,37 @@ require 'puppet-herald/database'
|
|
6
7
|
module PuppetHerald
|
7
8
|
class CLI
|
8
9
|
|
9
|
-
|
10
|
+
@@logger = Logger.new STDOUT
|
11
|
+
@@errlogger = Logger.new STDERR
|
12
|
+
@@retcode = 0
|
13
|
+
|
14
|
+
def self.retcode= val
|
15
|
+
@@retcode = val if @@retcode == 0
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.logger
|
19
|
+
@@logger
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.errlogger
|
23
|
+
@@errlogger
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.run! argv=ARGV
|
27
|
+
@@retcode = 0
|
28
|
+
begin
|
29
|
+
options = parse_options argv
|
30
|
+
require 'puppet-herald/app'
|
31
|
+
PuppetHerald::App.run! options
|
32
|
+
rescue Exception => ex
|
33
|
+
bug = PuppetHerald.bug(ex)
|
34
|
+
errlogger.fatal "Unexpected error occured, mayby a bug?\n\n#{bug[:message]}\n\n#{bug[:help]}"
|
35
|
+
self.retcode = 1
|
36
|
+
end
|
37
|
+
Kernel::exit @@retcode
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.parse_options argv
|
10
41
|
usage = ""
|
11
42
|
banner = <<-eos
|
12
43
|
#{PuppetHerald::NAME} v#{PuppetHerald::VERSION} - #{PuppetHerald::SUMMARY}
|
@@ -30,24 +61,20 @@ CAUTION! For security reasons, don't pass password in connection string, use --p
|
|
30
61
|
p.option :dbconn, "Connection string to database, see info above", :default => defaultdb
|
31
62
|
p.option :passfile, "If using postgresql, this file will be read for password to database", :default => defaultdbpass
|
32
63
|
end
|
33
|
-
options = parser.process!
|
64
|
+
options = parser.process!(argv)
|
34
65
|
|
35
|
-
|
66
|
+
logger.info "Starting #{PuppetHerald::NAME} v#{PuppetHerald::VERSION} in #{PuppetHerald::environment}..."
|
36
67
|
PuppetHerald::Database.dbconn = options[:dbconn]
|
37
68
|
PuppetHerald::Database.passfile = options[:passfile]
|
38
69
|
begin
|
39
|
-
PuppetHerald::Database.
|
70
|
+
PuppetHerald::Database.spec :echo => true
|
40
71
|
rescue Exception => ex
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
begin
|
45
|
-
PuppetHerald::App.run! options
|
46
|
-
rescue Exception => ex
|
47
|
-
bug = PuppetHerald::App.bug(ex)
|
48
|
-
STDERR.puts "FATAL ERROR - Unexpected error occured, mayby a bug?\n\n#{bug[:message]}\n\n#{bug[:help]}"
|
49
|
-
exit 1
|
72
|
+
errlogger.fatal "Database configuration is invalid!\n\n#{ex.message}"
|
73
|
+
self.retcode = 2
|
74
|
+
raise ex
|
50
75
|
end
|
76
|
+
|
77
|
+
return options
|
51
78
|
end
|
52
79
|
end
|
53
80
|
end
|
@@ -1,10 +1,16 @@
|
|
1
1
|
require 'fileutils'
|
2
|
+
require 'logger'
|
2
3
|
|
3
4
|
module PuppetHerald
|
4
5
|
class Database
|
5
6
|
|
6
7
|
@@dbconn = nil
|
7
8
|
@@passfile = nil
|
9
|
+
@@logger = Logger.new STDOUT
|
10
|
+
|
11
|
+
def self.logger
|
12
|
+
@@logger
|
13
|
+
end
|
8
14
|
|
9
15
|
def self.dbconn= dbconn
|
10
16
|
@@dbconn = dbconn
|
@@ -14,18 +20,23 @@ module PuppetHerald
|
|
14
20
|
@@passfile = passfile
|
15
21
|
end
|
16
22
|
|
17
|
-
def self.
|
18
|
-
|
23
|
+
def self.spec echo=false
|
24
|
+
return nil if @@dbconn.nil?
|
19
25
|
connection = {}
|
20
|
-
|
21
|
-
|
26
|
+
match = @@dbconn.match(/^(sqlite3?|postgres(?:ql)?):\/\/(.+)$/)
|
27
|
+
unless match
|
28
|
+
raise "Invalid database connection string given: #{@@dbconn}"
|
22
29
|
end
|
23
|
-
if ['sqlite', 'sqlite3'].include?
|
24
|
-
|
25
|
-
|
30
|
+
if ['sqlite', 'sqlite3'].include? match[1]
|
31
|
+
dbname = match[2]
|
32
|
+
unless dbname.match /^(?:file:)?:mem/
|
33
|
+
dbname = File.expand_path(dbname)
|
34
|
+
FileUtils.touch dbname
|
35
|
+
end
|
26
36
|
connection[:adapter] = 'sqlite3'
|
27
|
-
connection[:database] =
|
37
|
+
connection[:database] = dbname
|
28
38
|
else
|
39
|
+
db = URI.parse @@dbconn
|
29
40
|
dbname = db.path[1..-1]
|
30
41
|
connection[:adapter] = db.scheme == 'postgres' ? 'postgresql' : db.scheme
|
31
42
|
connection[:host] = db.host
|
@@ -38,13 +49,9 @@ module PuppetHerald
|
|
38
49
|
if echo
|
39
50
|
copy = connection.dup
|
40
51
|
copy[:password] = '***' unless copy[:password].nil?
|
41
|
-
|
52
|
+
logger.info "Using #{copy.inspect} for database."
|
42
53
|
end
|
43
54
|
return connection
|
44
55
|
end
|
45
|
-
|
46
|
-
def self.setup app
|
47
|
-
ActiveRecord::Base.establish_connection(validate!)
|
48
|
-
end
|
49
56
|
end
|
50
57
|
end
|
@@ -2,14 +2,13 @@
|
|
2
2
|
"name": "puppet-herald",
|
3
3
|
"description": "Report processor for Puppet",
|
4
4
|
"version": "0.1.0",
|
5
|
-
"homepage": "https://github.com/wavesoftware/puppet-herald",
|
5
|
+
"homepage": "https://github.com/wavesoftware/gem-puppet-herald",
|
6
6
|
"license": "Apache 2.0",
|
7
7
|
"private": false,
|
8
8
|
"dependencies": {
|
9
9
|
"angular": "1.3.x",
|
10
10
|
"angular-route": "1.3.x",
|
11
11
|
"angular-loader": "1.3.x",
|
12
|
-
"angular-mocks": "
|
13
|
-
"html5-boilerplate": "~4.3.0"
|
12
|
+
"angular-mocks": "1.3.x"
|
14
13
|
}
|
15
14
|
}
|
@@ -4,12 +4,12 @@ module PuppetHerald
|
|
4
4
|
version = desired
|
5
5
|
if desired.match(/[^0-9\.]+/)
|
6
6
|
git = `git describe --tags --dirty --always`
|
7
|
-
version += "
|
7
|
+
version += "." + git.gsub('-', '.')
|
8
8
|
end
|
9
9
|
return version.strip
|
10
10
|
end
|
11
11
|
|
12
|
-
VERSION = version_prep '0.1.
|
12
|
+
VERSION = version_prep '0.1.1'
|
13
13
|
LICENSE = 'Apache 2.0'
|
14
14
|
NAME = 'Puppet Herald'
|
15
15
|
PACKAGE = 'puppet-herald'
|
data/package.json
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
{
|
2
|
+
"name": "puppet-herald",
|
3
|
+
"version": "0.1.1",
|
4
|
+
"description": "Provides a gateway for consuming puppet reports, a REST API and a simple Web app to display reports.",
|
5
|
+
"main": "lib/puppet-herald/public/app.js",
|
6
|
+
"directories": {
|
7
|
+
"test": "test"
|
8
|
+
},
|
9
|
+
"dependencies": {
|
10
|
+
"angular": "1.3.x",
|
11
|
+
"angular-route": "1.3.x",
|
12
|
+
"angular-loader": "1.3.x",
|
13
|
+
"angular-mocks": "1.3.x"
|
14
|
+
},
|
15
|
+
"devDependencies": {
|
16
|
+
"jasmine-core": "~2.1.0",
|
17
|
+
"karma-jasmine": "~0.3.0",
|
18
|
+
"karma": "~0.12.0",
|
19
|
+
"phantomjs": "~1.9.0",
|
20
|
+
"karma-phantomjs-launcher": "~0.1"
|
21
|
+
},
|
22
|
+
"scripts": {
|
23
|
+
"test": "test/javascript/karma.conf.js"
|
24
|
+
},
|
25
|
+
"repository": {
|
26
|
+
"type": "git",
|
27
|
+
"url": "https://github.com/wavesoftware/gem-puppet-herald.git"
|
28
|
+
},
|
29
|
+
"keywords": [
|
30
|
+
"puppet",
|
31
|
+
"reports",
|
32
|
+
"herald"
|
33
|
+
],
|
34
|
+
"author": "Krzysztof Suszynski",
|
35
|
+
"license": "Apache 2.0",
|
36
|
+
"bugs": {
|
37
|
+
"url": "https://github.com/wavesoftware/gem-puppet-herald/issues"
|
38
|
+
},
|
39
|
+
"homepage": "https://github.com/wavesoftware/gem-puppet-herald"
|
40
|
+
}
|
data/puppet-herald.gemspec
CHANGED
@@ -20,42 +20,14 @@ Gem::Specification.new do |gem|
|
|
20
20
|
# Dependencies
|
21
21
|
gem.required_ruby_version = '>= 1.9.2'
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
'sinatra-activerecord',
|
30
|
-
'micro-optparse',
|
31
|
-
'uglifier',
|
32
|
-
'sqlite3',
|
33
|
-
'pg',
|
34
|
-
'puma'
|
35
|
-
],
|
36
|
-
:test => [
|
37
|
-
'rspec',
|
38
|
-
'rspec-its',
|
39
|
-
'coveralls',
|
40
|
-
'simplecov'
|
41
|
-
],
|
42
|
-
:developmant => [
|
43
|
-
'inch',
|
44
|
-
'travis',
|
45
|
-
'travis-lint',
|
46
|
-
prydebugger
|
47
|
-
]
|
48
|
-
}
|
23
|
+
# Runtime
|
24
|
+
gem.add_runtime_dependency 'sinatra', '~> 1.4'
|
25
|
+
gem.add_runtime_dependency 'sinatra-contrib', '~> 1.4'
|
26
|
+
gem.add_runtime_dependency 'sinatra-activerecord', '~> 2.0'
|
27
|
+
gem.add_runtime_dependency 'micro-optparse', '~> 1.2'
|
28
|
+
gem.add_runtime_dependency 'uglifier', '~> 2.6'
|
49
29
|
|
50
|
-
dependencies
|
51
|
-
gem.add_runtime_dependency spec
|
52
|
-
end
|
53
|
-
dependencies[:test].each do |spec|
|
54
|
-
gem.add_development_dependency spec
|
55
|
-
end
|
56
|
-
dependencies[:developmant].each do |spec|
|
57
|
-
gem.add_development_dependency spec
|
58
|
-
end
|
30
|
+
# Development and test dependencies specified in Gemfile
|
59
31
|
|
60
32
|
end
|
61
33
|
|
@@ -0,0 +1,21 @@
|
|
1
|
+
ENV['RACK_ENV'] = 'test'
|
2
|
+
|
3
|
+
require 'model_helper'
|
4
|
+
require 'rspec'
|
5
|
+
require 'rack/test'
|
6
|
+
|
7
|
+
xdescribe 'The Herald App', :rollback => true do
|
8
|
+
include Rack::Test::Methods
|
9
|
+
|
10
|
+
def app
|
11
|
+
require 'puppet-herald/app'
|
12
|
+
PuppetHerald::App
|
13
|
+
end
|
14
|
+
|
15
|
+
it "on '/' redirects to '/app.html'" do
|
16
|
+
get '/'
|
17
|
+
expect(last_response).not_to be_ok
|
18
|
+
expect(last_response.status).to eq(301)
|
19
|
+
expect(last_response.header['Location']).to eq('http://example.org/app.html')
|
20
|
+
end
|
21
|
+
end
|
File without changes
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'model_helper'
|
2
|
+
require 'puppet-herald/models/report'
|
3
|
+
require 'puppet-herald/models/log-entry'
|
4
|
+
require 'puppet-herald/models/node'
|
5
|
+
|
6
|
+
describe Node, '.get_with_reports', :rollback => true do
|
7
|
+
let(:yaml) { File.read(File.expand_path("../../fixtures/changed-notify.yaml", __FILE__)) }
|
8
|
+
let(:id) { Report.create_from_yaml(yaml).node_id }
|
9
|
+
|
10
|
+
context 'fetching an existing node' do
|
11
|
+
subject { Node.get_with_reports id }
|
12
|
+
|
13
|
+
it "should return value that isn't nil" do
|
14
|
+
subject.should_not be_nil
|
15
|
+
end
|
16
|
+
it "should return a report object" do
|
17
|
+
subject.class.should eq(Node)
|
18
|
+
end
|
19
|
+
it "should return persisted node" do
|
20
|
+
subject.persisted?.should be_truthy
|
21
|
+
end
|
22
|
+
it "should have status 'changed'" do
|
23
|
+
subject.status.should eq('changed')
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -2,7 +2,7 @@ require 'model_helper'
|
|
2
2
|
require 'puppet-herald/models/report'
|
3
3
|
require 'puppet-herald/models/log-entry'
|
4
4
|
|
5
|
-
describe Report, ".create_from_yaml" do
|
5
|
+
describe Report, ".create_from_yaml", :rollback => true do
|
6
6
|
context 'for valid YAML' do
|
7
7
|
let(:yaml) { File.read(File.expand_path("../../fixtures/changed-notify.yaml", __FILE__)) }
|
8
8
|
it 'that is really not empty' do
|
@@ -35,4 +35,37 @@ describe Report, ".create_from_yaml" do
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe Report, '.get_with_log_entries', :rollback => true do
|
41
|
+
let(:yaml) { File.read(File.expand_path("../../fixtures/changed-notify.yaml", __FILE__)) }
|
42
|
+
let(:id) { Report.create_from_yaml(yaml).id }
|
43
|
+
|
44
|
+
context 'fetching an existing report' do
|
45
|
+
subject { Report.get_with_log_entries id }
|
46
|
+
|
47
|
+
it "should return value that isn't nil" do
|
48
|
+
subject.should_not be_nil
|
49
|
+
end
|
50
|
+
it "should return a report object" do
|
51
|
+
subject.class.should eq(Report)
|
52
|
+
end
|
53
|
+
it "should return persisted report" do
|
54
|
+
subject.persisted?.should be_truthy
|
55
|
+
end
|
56
|
+
it "should have status 'changed'" do
|
57
|
+
subject.status.should eq('changed')
|
58
|
+
end
|
59
|
+
it "should have 3 log entries, also persisted" do
|
60
|
+
subject.log_entries.size.should eq(3)
|
61
|
+
subject.log_entries.each do |log|
|
62
|
+
log.persisted?.should be_truthy
|
63
|
+
end
|
64
|
+
end
|
65
|
+
it "should have parent node, that is persistedand has status 'changed'" do
|
66
|
+
subject.node.should_not be_nil
|
67
|
+
subject.node.status.should eq('changed')
|
68
|
+
subject.node.persisted?.should be_truthy
|
69
|
+
end
|
70
|
+
end
|
38
71
|
end
|
data/spec/model_helper.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -4,10 +4,13 @@ begin
|
|
4
4
|
gem 'simplecov'
|
5
5
|
require 'simplecov'
|
6
6
|
SimpleCov.start do
|
7
|
+
add_filter "/test/"
|
7
8
|
add_filter "/spec/"
|
8
9
|
add_filter "/.vendor/"
|
9
10
|
add_filter "/vendor/"
|
10
11
|
add_filter "/gems/"
|
12
|
+
add_filter "/node_modules/"
|
13
|
+
add_filter "/coverage/"
|
11
14
|
end
|
12
15
|
rescue Gem::LoadError
|
13
16
|
# do nothing
|
@@ -1,14 +1,16 @@
|
|
1
|
+
require 'puppet-herald/database'
|
1
2
|
require 'active_record'
|
2
3
|
require 'stringio' # silence the output
|
3
4
|
$stdout = StringIO.new # from migrator
|
4
5
|
|
5
|
-
|
6
|
+
PuppetHerald::Database.dbconn = 'sqlite3://:memory:'
|
7
|
+
ActiveRecord::Base.establish_connection(PuppetHerald::Database.spec)
|
6
8
|
ActiveRecord::Migrator.up "db/migrate"
|
7
9
|
|
8
10
|
$stdout = STDOUT
|
9
11
|
|
10
12
|
RSpec.configure do |config|
|
11
|
-
config.around do |example|
|
13
|
+
config.around(:example, {:rollback => true}) do |example|
|
12
14
|
ActiveRecord::Base.transaction do
|
13
15
|
example.run
|
14
16
|
raise ActiveRecord::Rollback
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'puppet-herald'
|
3
|
+
require 'puppet-herald/cli'
|
4
|
+
|
5
|
+
context 'With silenced loggers' do
|
6
|
+
|
7
|
+
before :each do
|
8
|
+
PuppetHerald::CLI::logger.level = 100
|
9
|
+
PuppetHerald::CLI::errlogger.level = 100
|
10
|
+
PuppetHerald::Database::logger.level = 100
|
11
|
+
PuppetHerald::Database::dbconn = nil
|
12
|
+
end
|
13
|
+
|
14
|
+
describe PuppetHerald::CLI, '.parse_options' do
|
15
|
+
subject { PuppetHerald::CLI::parse_options argv }
|
16
|
+
|
17
|
+
context 'on defaults' do
|
18
|
+
let(:argv) { [] }
|
19
|
+
its(:class) { should be Hash }
|
20
|
+
it { subject[:port].should eq 11303 }
|
21
|
+
end
|
22
|
+
|
23
|
+
context 'on with invalid DB' do
|
24
|
+
let(:argv) { ['--dbconn', '/non-exist/db.sqlite'] }
|
25
|
+
|
26
|
+
it { expect { subject }.to raise_error(RuntimeError, /Invalid database connection string given/) }
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe PuppetHerald::CLI, '.run!' do
|
31
|
+
subject { PuppetHerald::CLI::run! argv }
|
32
|
+
|
33
|
+
context 'on defaults' do
|
34
|
+
let(:argv) { [] }
|
35
|
+
before :each do
|
36
|
+
require 'puppet-herald/app'
|
37
|
+
expect(Kernel).to receive(:exit).with(0)
|
38
|
+
expect(PuppetHerald::App).to receive(:run!).and_return :none
|
39
|
+
end
|
40
|
+
|
41
|
+
it { expect(subject).to be_nil }
|
42
|
+
end
|
43
|
+
|
44
|
+
context 'on with invalid DB' do
|
45
|
+
let(:argv) { ['--dbconn', '/non-exist/db.sqlite'] }
|
46
|
+
before :each do
|
47
|
+
expect(Kernel).to receive(:exit).with(2)
|
48
|
+
end
|
49
|
+
|
50
|
+
it { expect(subject).to be_nil }
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'puppet-herald'
|
3
|
+
require 'puppet-herald/database'
|
4
|
+
|
5
|
+
describe PuppetHerald::Database, '.spec' do
|
6
|
+
let(:tempdir) { Dir.tmpdir }
|
7
|
+
let(:echo) { false }
|
8
|
+
subject { PuppetHerald::Database::spec echo }
|
9
|
+
context 'with invalid dbconn' do
|
10
|
+
before :each do
|
11
|
+
PuppetHerald::Database::dbconn = "#{tempdir}/non-existing.db"
|
12
|
+
end
|
13
|
+
it { expect { subject }.to raise_error(RuntimeError, /Invalid database connection string given/) }
|
14
|
+
end
|
15
|
+
context 'using sqlite' do
|
16
|
+
context 'with non existing database' do
|
17
|
+
before :each do
|
18
|
+
PuppetHerald::Database::dbconn = 'sqlite:///non-existing/non-existing.db'
|
19
|
+
end
|
20
|
+
it { expect { subject }.to raise_error(Errno::ENOENT, /No such file or directory/) }
|
21
|
+
end
|
22
|
+
context 'with creatable database file' do
|
23
|
+
before :each do
|
24
|
+
PuppetHerald::Database::dbconn = "sqlite://#{tempdir}/non-existing.db"
|
25
|
+
end
|
26
|
+
its(:class) { should be Hash }
|
27
|
+
its(:size) { should eq 2 }
|
28
|
+
context 'while echoing!!' do
|
29
|
+
let(:echo) { true }
|
30
|
+
before :each do
|
31
|
+
PuppetHerald::Database::logger.level = Logger::FATAL
|
32
|
+
end
|
33
|
+
its(:class) { should be Hash }
|
34
|
+
its(:size) { should eq 2 }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
context 'using postgres' do
|
39
|
+
before :each do
|
40
|
+
PuppetHerald::Database::dbconn = "postgres://abc@localhost:6543/adb"
|
41
|
+
end
|
42
|
+
context 'with non existing passfile' do
|
43
|
+
before :each do
|
44
|
+
PuppetHerald::Database::passfile = "/non-existing/passfile"
|
45
|
+
end
|
46
|
+
it { expect { subject }.to raise_error(Errno::ENOENT, /No such file or directory/) }
|
47
|
+
end
|
48
|
+
context 'with existing passfile' do
|
49
|
+
before :each do
|
50
|
+
PuppetHerald::Database::passfile = __FILE__
|
51
|
+
end
|
52
|
+
its(:class) { should be Hash }
|
53
|
+
its(:size) { should eq 7 }
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'puppet-herald'
|
3
|
+
require 'puppet-herald/javascript'
|
4
|
+
|
5
|
+
describe PuppetHerald::Javascript, '.files' do
|
6
|
+
context 'running in dev environment' do
|
7
|
+
before :each do
|
8
|
+
expect(PuppetHerald).to receive(:is_in_dev?).twice.and_return true
|
9
|
+
expect(Dir).to receive(:glob).twice.and_return(['aaa.js', 'a/bbb.js', 'ccc_test.js'])
|
10
|
+
PuppetHerald::Javascript::files
|
11
|
+
end
|
12
|
+
after :each do
|
13
|
+
PuppetHerald::Javascript::class_variable_set '@@files', nil
|
14
|
+
end
|
15
|
+
let(:files) { PuppetHerald::Javascript::files }
|
16
|
+
it { files.size.should eq 2 }
|
17
|
+
it { files.should include 'aaa.js' }
|
18
|
+
it { files.should_not include 'ccc_test.js' }
|
19
|
+
end
|
20
|
+
|
21
|
+
context 'running in prod environment' do
|
22
|
+
before :each do
|
23
|
+
expect(PuppetHerald).to receive(:is_in_dev?).twice.and_return false
|
24
|
+
expect(Dir).to receive(:glob).once.and_return(['aaa.js', 'a/bbb.js', 'ccc_test.js'])
|
25
|
+
PuppetHerald::Javascript::files
|
26
|
+
end
|
27
|
+
after :each do
|
28
|
+
PuppetHerald::Javascript::class_variable_set '@@files', nil
|
29
|
+
end
|
30
|
+
let(:files) { PuppetHerald::Javascript::files }
|
31
|
+
it { files.size.should eq 2 }
|
32
|
+
it { files.should include 'aaa.js' }
|
33
|
+
it { files.should_not include 'ccc_test.js' }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe PuppetHerald::Javascript, '.uglify' do
|
38
|
+
subject { PuppetHerald::Javascript::uglify 'myapp.js.map' }
|
39
|
+
|
40
|
+
it { subject.size.should eq 2 }
|
41
|
+
it { subject['js'].should_not be_empty }
|
42
|
+
it { subject['js.map'].should_not be_empty }
|
43
|
+
it { subject['js'].should include('myapp.js.map') }
|
44
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'puppet-herald'
|
3
|
+
require 'puppet-herald/version'
|
4
|
+
|
5
|
+
describe PuppetHerald, '.version_prep' do
|
6
|
+
context 'on stable version v1.2.3' do
|
7
|
+
subject { PuppetHerald::version_prep '1.2.3' }
|
8
|
+
it { subject.should eq '1.2.3' }
|
9
|
+
end
|
10
|
+
context 'on unstable version v1.2.3.pre' do
|
11
|
+
subject { PuppetHerald::version_prep '1.2.3.pre' }
|
12
|
+
it { subject.should match /^1\.2\.3\.pre\.v\d+\.\d+\.\d+(?:\.\d+\.g[0-9a-f]{7}(?:\.dirty)?)?$/ }
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'puppet-herald'
|
3
|
+
|
4
|
+
describe PuppetHerald, '.relative_dir' do
|
5
|
+
let(:thisfile) { File.realpath(__FILE__) }
|
6
|
+
context 'on directory "."' do
|
7
|
+
subject { PuppetHerald.relative_dir '.' }
|
8
|
+
|
9
|
+
it do
|
10
|
+
subject.should_not be_nil
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should give a common path' do
|
14
|
+
thisfile.should include(subject)
|
15
|
+
end
|
16
|
+
|
17
|
+
it do
|
18
|
+
thisfile.gsub(subject, '').should eq('/spec/unit/puppet-herald_spec.rb')
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'on directory "lib/puppet-herald/public"' do
|
23
|
+
subject { PuppetHerald.relative_dir 'lib/puppet-herald/public' }
|
24
|
+
|
25
|
+
it { Pathname.new(File.join(subject, 'app.js')).should be_file }
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe PuppetHerald do
|
30
|
+
after :each do
|
31
|
+
ENV.delete 'PUPPET_HERALD_ENV'
|
32
|
+
end
|
33
|
+
context 'on unset environment variable' do
|
34
|
+
before :each do
|
35
|
+
ENV.delete 'PUPPET_HERALD_ENV'
|
36
|
+
end
|
37
|
+
describe '.environment' do
|
38
|
+
it { subject::environment.should eq(:production) }
|
39
|
+
end
|
40
|
+
describe '.is_in_prod?' do
|
41
|
+
it { subject.should be_is_in_prod }
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
context 'on environment variable set to dev' do
|
46
|
+
before :each do
|
47
|
+
ENV['PUPPET_HERALD_ENV'] = 'dev'
|
48
|
+
end
|
49
|
+
describe '.environment' do
|
50
|
+
it { subject::environment.should eq(:dev) }
|
51
|
+
end
|
52
|
+
describe '.is_in_prod?' do
|
53
|
+
it { subject.should be_is_in_dev }
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module.exports = function(config) {
|
2
|
+
config.set({
|
3
|
+
frameworks: ['jasmine'],
|
4
|
+
|
5
|
+
files: [
|
6
|
+
'../../node_modules/angular/angular.js',
|
7
|
+
'../../node_modules/angular-loader/angular-loader.js',
|
8
|
+
'../../node_modules/angular-mocks/angular-mocks.js',
|
9
|
+
'../../node_modules/angular-route/angular-route.js',
|
10
|
+
'../../lib/puppet-herald/public/**/*_test.js'
|
11
|
+
]
|
12
|
+
});
|
13
|
+
};
|
metadata
CHANGED
@@ -1,264 +1,80 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-herald
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
|
-
authors:
|
6
|
+
authors:
|
7
7
|
- Krzysztof Suszynski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ! '>='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ! '>='
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
|
12
|
+
date: 2014-12-13 00:00:00 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
28
15
|
name: sinatra
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ! '>='
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ! '>='
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: sinatra-contrib
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ! '>='
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :runtime
|
49
16
|
prerelease: false
|
50
|
-
|
51
|
-
requirements:
|
52
|
-
- -
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: sinatra-activerecord
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ! '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ! '>='
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: micro-optparse
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ! '>='
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
17
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: "1.4"
|
76
22
|
type: :runtime
|
23
|
+
version_requirements: *id001
|
24
|
+
- !ruby/object:Gem::Dependency
|
25
|
+
name: sinatra-contrib
|
77
26
|
prerelease: false
|
78
|
-
|
79
|
-
requirements:
|
80
|
-
- -
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version:
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: uglifier
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ! '>='
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
27
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
|
+
requirements:
|
29
|
+
- - ~>
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: "1.4"
|
90
32
|
type: :runtime
|
33
|
+
version_requirements: *id002
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: sinatra-activerecord
|
91
36
|
prerelease: false
|
92
|
-
|
93
|
-
requirements:
|
94
|
-
- -
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version:
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: sqlite3
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ! '>='
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
37
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ~>
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: "2.0"
|
104
42
|
type: :runtime
|
43
|
+
version_requirements: *id003
|
44
|
+
- !ruby/object:Gem::Dependency
|
45
|
+
name: micro-optparse
|
105
46
|
prerelease: false
|
106
|
-
|
107
|
-
requirements:
|
108
|
-
- -
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version:
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: pg
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ! '>='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
47
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - ~>
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: "1.2"
|
118
52
|
type: :runtime
|
53
|
+
version_requirements: *id004
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: uglifier
|
119
56
|
prerelease: false
|
120
|
-
|
121
|
-
requirements:
|
122
|
-
- -
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version:
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: puma
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - ! '>='
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
57
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: "2.6"
|
132
62
|
type: :runtime
|
133
|
-
|
134
|
-
|
135
|
-
requirements:
|
136
|
-
- - ! '>='
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: rspec
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - ! '>='
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - ! '>='
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0'
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
name: rspec-its
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
156
|
-
requirements:
|
157
|
-
- - ! '>='
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: '0'
|
160
|
-
type: :development
|
161
|
-
prerelease: false
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
164
|
-
- - ! '>='
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: '0'
|
167
|
-
- !ruby/object:Gem::Dependency
|
168
|
-
name: coveralls
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
170
|
-
requirements:
|
171
|
-
- - ! '>='
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: '0'
|
174
|
-
type: :development
|
175
|
-
prerelease: false
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
177
|
-
requirements:
|
178
|
-
- - ! '>='
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: '0'
|
181
|
-
- !ruby/object:Gem::Dependency
|
182
|
-
name: simplecov
|
183
|
-
requirement: !ruby/object:Gem::Requirement
|
184
|
-
requirements:
|
185
|
-
- - ! '>='
|
186
|
-
- !ruby/object:Gem::Version
|
187
|
-
version: '0'
|
188
|
-
type: :development
|
189
|
-
prerelease: false
|
190
|
-
version_requirements: !ruby/object:Gem::Requirement
|
191
|
-
requirements:
|
192
|
-
- - ! '>='
|
193
|
-
- !ruby/object:Gem::Version
|
194
|
-
version: '0'
|
195
|
-
- !ruby/object:Gem::Dependency
|
196
|
-
name: inch
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
198
|
-
requirements:
|
199
|
-
- - ! '>='
|
200
|
-
- !ruby/object:Gem::Version
|
201
|
-
version: '0'
|
202
|
-
type: :development
|
203
|
-
prerelease: false
|
204
|
-
version_requirements: !ruby/object:Gem::Requirement
|
205
|
-
requirements:
|
206
|
-
- - ! '>='
|
207
|
-
- !ruby/object:Gem::Version
|
208
|
-
version: '0'
|
209
|
-
- !ruby/object:Gem::Dependency
|
210
|
-
name: travis
|
211
|
-
requirement: !ruby/object:Gem::Requirement
|
212
|
-
requirements:
|
213
|
-
- - ! '>='
|
214
|
-
- !ruby/object:Gem::Version
|
215
|
-
version: '0'
|
216
|
-
type: :development
|
217
|
-
prerelease: false
|
218
|
-
version_requirements: !ruby/object:Gem::Requirement
|
219
|
-
requirements:
|
220
|
-
- - ! '>='
|
221
|
-
- !ruby/object:Gem::Version
|
222
|
-
version: '0'
|
223
|
-
- !ruby/object:Gem::Dependency
|
224
|
-
name: travis-lint
|
225
|
-
requirement: !ruby/object:Gem::Requirement
|
226
|
-
requirements:
|
227
|
-
- - ! '>='
|
228
|
-
- !ruby/object:Gem::Version
|
229
|
-
version: '0'
|
230
|
-
type: :development
|
231
|
-
prerelease: false
|
232
|
-
version_requirements: !ruby/object:Gem::Requirement
|
233
|
-
requirements:
|
234
|
-
- - ! '>='
|
235
|
-
- !ruby/object:Gem::Version
|
236
|
-
version: '0'
|
237
|
-
- !ruby/object:Gem::Dependency
|
238
|
-
name: pry-debugger
|
239
|
-
requirement: !ruby/object:Gem::Requirement
|
240
|
-
requirements:
|
241
|
-
- - ! '>='
|
242
|
-
- !ruby/object:Gem::Version
|
243
|
-
version: '0'
|
244
|
-
type: :development
|
245
|
-
prerelease: false
|
246
|
-
version_requirements: !ruby/object:Gem::Requirement
|
247
|
-
requirements:
|
248
|
-
- - ! '>='
|
249
|
-
- !ruby/object:Gem::Version
|
250
|
-
version: '0'
|
251
|
-
description: Provides a gateway for consuming puppet reports, a REST API and a simple
|
252
|
-
Web app to display reports.
|
63
|
+
version_requirements: *id005
|
64
|
+
description: Provides a gateway for consuming puppet reports, a REST API and a simple Web app to display reports.
|
253
65
|
email: krzysztof.suszynski@wavesoftware.pl
|
254
|
-
executables:
|
66
|
+
executables:
|
255
67
|
- puppet-herald
|
256
68
|
extensions: []
|
69
|
+
|
257
70
|
extra_rdoc_files: []
|
258
|
-
|
71
|
+
|
72
|
+
files:
|
259
73
|
- .gitignore
|
260
74
|
- .rspec
|
75
|
+
- .travis.yml
|
261
76
|
- Gemfile
|
77
|
+
- Gemfile.local.example
|
262
78
|
- README.md
|
263
79
|
- Rakefile
|
264
80
|
- bin/puppet-herald
|
@@ -298,34 +114,47 @@ files:
|
|
298
114
|
- lib/puppet-herald/version.rb
|
299
115
|
- lib/puppet-herald/views/app.erb
|
300
116
|
- lib/puppet-herald/views/err500.erb
|
117
|
+
- package.json
|
301
118
|
- puppet-herald.gemspec
|
119
|
+
- spec/integration/app_spec.rb
|
120
|
+
- spec/integration/fixtures/changed-notify.yaml
|
121
|
+
- spec/integration/models/node_spec.rb
|
122
|
+
- spec/integration/models/report_spec.rb
|
302
123
|
- spec/model_helper.rb
|
303
124
|
- spec/spec_helper.rb
|
304
125
|
- spec/support/active_record.rb
|
305
|
-
- spec/unit/
|
306
|
-
- spec/unit/
|
126
|
+
- spec/unit/puppet-herald/cli_spec.rb
|
127
|
+
- spec/unit/puppet-herald/database_spec.rb
|
128
|
+
- spec/unit/puppet-herald/javascript_spec.rb
|
129
|
+
- spec/unit/puppet-herald/version_spec.rb
|
130
|
+
- spec/unit/puppet-herald_spec.rb
|
131
|
+
- test/javascript/karma.conf.js
|
307
132
|
homepage: https://github.com/wavesoftware/gem-puppet-herald
|
308
|
-
licenses:
|
133
|
+
licenses:
|
309
134
|
- Apache 2.0
|
310
135
|
metadata: {}
|
136
|
+
|
311
137
|
post_install_message:
|
312
138
|
rdoc_options: []
|
313
|
-
|
139
|
+
|
140
|
+
require_paths:
|
314
141
|
- lib
|
315
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
316
|
-
requirements:
|
317
|
-
- -
|
318
|
-
- !ruby/object:Gem::Version
|
142
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
319
146
|
version: 1.9.2
|
320
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
321
|
-
requirements:
|
322
|
-
- -
|
323
|
-
- !ruby/object:Gem::Version
|
324
|
-
version:
|
147
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: "0"
|
325
152
|
requirements: []
|
153
|
+
|
326
154
|
rubyforge_project:
|
327
|
-
rubygems_version: 2.
|
155
|
+
rubygems_version: 2.0.14
|
328
156
|
signing_key:
|
329
157
|
specification_version: 4
|
330
158
|
summary: a Puppet report processor
|
331
159
|
test_files: []
|
160
|
+
|