puppet-herald 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
[](https://github.com/wavesoftware/gem-puppet-herald/issues) [](https://rubygems.org/gems/puppet-herald) [](https://github.com/wavesoftware/gem-puppet-herald/releases) [](https://raw.githubusercontent.com/wavesoftware/gem-puppet-herald/develop/LICENSE)
|
6
|
+
|
7
|
+
##### Master (stable) branch
|
8
|
+
[](https://travis-ci.org/wavesoftware/gem-puppet-herald) [](https://gemnasium.com/wavesoftware/gem-puppet-herald) [](https://coveralls.io/r/wavesoftware/gem-puppet-herald?branch=master) [](https://codeclimate.com/github/wavesoftware/gem-puppet-herald) [](http://inch-ci.org/github/wavesoftware/gem-puppet-herald)
|
9
|
+
|
10
|
+
##### Development branch
|
11
|
+
[](https://travis-ci.org/wavesoftware/gem-puppet-herald) [](https://gemnasium.com/wavesoftware/gem-puppet-herald) [](https://coveralls.io/r/wavesoftware/gem-puppet-herald?branch=develop) [](https://codeclimate.com/github/wavesoftware/gem-puppet-herald) [](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
|
+

|
19
|
+
|
20
|
+

|
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
|
+
|