puppet-herald 0.1.0
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 +15 -0
- data/.gitignore +22 -0
- data/.rspec +2 -0
- data/Gemfile +5 -0
- data/README.md +73 -0
- data/Rakefile +6 -0
- data/bin/puppet-herald +13 -0
- data/config.ru +2 -0
- data/db/migrate/20141211165540_create_nodes.rb +10 -0
- data/db/migrate/20141211171305_create_reports.rb +16 -0
- data/db/migrate/20141211171326_create_log_entries.rb +13 -0
- data/db/schema.rb +47 -0
- data/db/seeds.rb +0 -0
- data/lib/puppet-herald.rb +37 -0
- data/lib/puppet-herald/app.rb +112 -0
- data/lib/puppet-herald/cli.rb +53 -0
- data/lib/puppet-herald/database.rb +50 -0
- data/lib/puppet-herald/javascript.rb +34 -0
- data/lib/puppet-herald/models/log-entry.rb +3 -0
- data/lib/puppet-herald/models/node.rb +7 -0
- data/lib/puppet-herald/models/report.rb +78 -0
- data/lib/puppet-herald/public/.bowerrc +3 -0
- data/lib/puppet-herald/public/app.js +27 -0
- data/lib/puppet-herald/public/bower.json +15 -0
- data/lib/puppet-herald/public/components/artifact/artifact-directive.js +12 -0
- data/lib/puppet-herald/public/components/artifact/artifact-directive_test.js +17 -0
- data/lib/puppet-herald/public/components/artifact/artifact.js +31 -0
- data/lib/puppet-herald/public/components/directives/directives.js +5 -0
- data/lib/puppet-herald/public/components/directives/status-button.html +7 -0
- data/lib/puppet-herald/public/components/directives/status-button.js +54 -0
- data/lib/puppet-herald/public/components/filters/filters.js +12 -0
- data/lib/puppet-herald/public/css/herald.css +38 -0
- data/lib/puppet-herald/public/img/shield97.svg +17 -0
- data/lib/puppet-herald/public/node/node.html +30 -0
- data/lib/puppet-herald/public/node/node.js +24 -0
- data/lib/puppet-herald/public/nodes/nodes.html +29 -0
- data/lib/puppet-herald/public/nodes/nodes.js +24 -0
- data/lib/puppet-herald/public/report/report.html +24 -0
- data/lib/puppet-herald/public/report/report.js +24 -0
- data/lib/puppet-herald/stubs/puppet.rb +29 -0
- data/lib/puppet-herald/version.rb +20 -0
- data/lib/puppet-herald/views/app.erb +42 -0
- data/lib/puppet-herald/views/err500.erb +31 -0
- data/puppet-herald.gemspec +62 -0
- data/spec/model_helper.rb +2 -0
- data/spec/spec_helper.rb +37 -0
- data/spec/support/active_record.rb +17 -0
- data/spec/unit/fixtures/changed-notify.yaml +278 -0
- data/spec/unit/models/report_spec.rb +38 -0
- metadata +331 -0
@@ -0,0 +1,24 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
angular.module('herald.node', [
|
4
|
+
'ngRoute',
|
5
|
+
'herald.directives'
|
6
|
+
])
|
7
|
+
|
8
|
+
.config(['$routeProvider', function($routeProvider) {
|
9
|
+
$routeProvider.when('/node/:nodeId', {
|
10
|
+
templateUrl: 'node/node.html',
|
11
|
+
controller: 'NodeController'
|
12
|
+
});
|
13
|
+
}])
|
14
|
+
|
15
|
+
.controller('NodeController', ['$http', '$routeParams', function($http, $routeParams) {
|
16
|
+
var ctrl = this;
|
17
|
+
ctrl.node = null;
|
18
|
+
|
19
|
+
this.nodeId = $routeParams.nodeId;
|
20
|
+
|
21
|
+
$http.get('/api/v1/node/' + this.nodeId).success(function(data) {
|
22
|
+
ctrl.node = data;
|
23
|
+
});
|
24
|
+
}]);
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<div class="panel panel-primary" ng-controller="NodesController as nodes">
|
2
|
+
<!-- Default panel contents -->
|
3
|
+
<div class="panel-heading">Nodes <span class="badge">{{ nodes.all.length }}</span></div>
|
4
|
+
|
5
|
+
<!-- Table -->
|
6
|
+
<table class="table table-striped table-hover">
|
7
|
+
<thead>
|
8
|
+
<tr>
|
9
|
+
<th>#</th>
|
10
|
+
<th>Node</th>
|
11
|
+
<th>Status</th>
|
12
|
+
<th># of reports</th>
|
13
|
+
<th>Last run</th>
|
14
|
+
</tr>
|
15
|
+
</thead>
|
16
|
+
<tbody>
|
17
|
+
<tr ng-repeat="node in nodes.all | orderBy:'last_run'">
|
18
|
+
<td>{{ $index + 1 }}</td>
|
19
|
+
<td>{{ node.name }}</td>
|
20
|
+
<td><ng-status-button
|
21
|
+
status="node.status"
|
22
|
+
id="node.id"
|
23
|
+
route="'/node/:id'"></ng-status-button></td>
|
24
|
+
<td>{{ node.no_of_reports }}</td>
|
25
|
+
<td am-time-ago="node.last_run"></td>
|
26
|
+
</tr>
|
27
|
+
</tbody>
|
28
|
+
</table>
|
29
|
+
</div>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
angular.module('herald.nodes', [
|
4
|
+
'ngRoute',
|
5
|
+
'herald.directives',
|
6
|
+
'angularMoment'
|
7
|
+
])
|
8
|
+
|
9
|
+
.config(['$routeProvider', function($routeProvider) {
|
10
|
+
$routeProvider.when('/nodes', {
|
11
|
+
templateUrl: 'nodes/nodes.html',
|
12
|
+
controller: 'NodesController'
|
13
|
+
});
|
14
|
+
}])
|
15
|
+
|
16
|
+
.controller('NodesController', ['$http', 'appService', function($http, appService) {
|
17
|
+
appService.page = 'nodes';
|
18
|
+
var ctrl = this;
|
19
|
+
ctrl.all = [];
|
20
|
+
|
21
|
+
$http.get('/api/v1/nodes').success(function(data) {
|
22
|
+
ctrl.all = data;
|
23
|
+
});
|
24
|
+
}]);
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<div class="panel panel-primary" ng-controller="ReportController as ctrl">
|
2
|
+
<!-- Default panel contents -->
|
3
|
+
<div class="panel-heading">Report for {{ ctrl.report.host }} <span class="badge">{{ ctrl.report.log_entries.length }}</span></div>
|
4
|
+
|
5
|
+
<!-- Table -->
|
6
|
+
<table class="table table-condensed table-hover herald-table-report">
|
7
|
+
<thead>
|
8
|
+
<tr>
|
9
|
+
<th>#</th>
|
10
|
+
<th>Line</th>
|
11
|
+
</tr>
|
12
|
+
</thead>
|
13
|
+
<tbody>
|
14
|
+
<tr>
|
15
|
+
<td></td>
|
16
|
+
<td># puppet {{ ctrl.report.kind }} [...]</td>
|
17
|
+
</tr>
|
18
|
+
<tr ng-repeat="entry in ctrl.report.log_entries | orderBy:'time'">
|
19
|
+
<td>{{ $index + 1 }}</td>
|
20
|
+
<td class="herald-log-{{ entry.level }}">{{ entry.level | capitalize }}: {{ entry.source }}: {{ entry.message }}</td>
|
21
|
+
</tr>
|
22
|
+
</tbody>
|
23
|
+
</table>
|
24
|
+
</div>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
angular.module('herald.report', [
|
4
|
+
'ngRoute',
|
5
|
+
'herald.directives'
|
6
|
+
])
|
7
|
+
|
8
|
+
.config(['$routeProvider', function($routeProvider) {
|
9
|
+
$routeProvider.when('/report/:reportId', {
|
10
|
+
templateUrl: 'report/report.html',
|
11
|
+
controller: 'ReportController'
|
12
|
+
});
|
13
|
+
}])
|
14
|
+
|
15
|
+
.controller('ReportController', ['$http', '$routeParams', function($http, $routeParams) {
|
16
|
+
var ctrl = this;
|
17
|
+
ctrl.report = null;
|
18
|
+
|
19
|
+
this.reportId = $routeParams.reportId;
|
20
|
+
|
21
|
+
$http.get('/api/v1/report/' + this.reportId).success(function(data) {
|
22
|
+
ctrl.report = data;
|
23
|
+
});
|
24
|
+
}]);
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Puppet
|
2
|
+
module Transaction
|
3
|
+
|
4
|
+
class Report
|
5
|
+
attr_accessor :host, :time, :kind, :puppet_version, :configuration_version, :transaction_uuid, :environment, :status, :logs
|
6
|
+
end
|
7
|
+
|
8
|
+
class Event
|
9
|
+
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
class Resource
|
14
|
+
class Status
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
module Util
|
19
|
+
|
20
|
+
class Log
|
21
|
+
attr_accessor :level, :message, :source, :time, :line, :tags
|
22
|
+
end
|
23
|
+
|
24
|
+
class Metric
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module PuppetHerald
|
2
|
+
|
3
|
+
def self.version_prep desired
|
4
|
+
version = desired
|
5
|
+
if desired.match(/[^0-9\.]+/)
|
6
|
+
git = `git describe --tags --dirty --always`
|
7
|
+
version += "-" + git[1..-1]
|
8
|
+
end
|
9
|
+
return version.strip
|
10
|
+
end
|
11
|
+
|
12
|
+
VERSION = version_prep '0.1.0'
|
13
|
+
LICENSE = 'Apache 2.0'
|
14
|
+
NAME = 'Puppet Herald'
|
15
|
+
PACKAGE = 'puppet-herald'
|
16
|
+
SUMMARY = 'a Puppet report processor'
|
17
|
+
DESCRIPTION = "Provides a gateway for consuming puppet reports, a REST API and a simple Web app to display reports."
|
18
|
+
HOMEPAGE = 'https://github.com/wavesoftware/gem-puppet-herald'
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<!--[if lt IE 7]> <html lang="en" ng-app="herald" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
|
3
|
+
<!--[if IE 7]> <html lang="en" ng-app="herald" class="no-js lt-ie9 lt-ie8"> <![endif]-->
|
4
|
+
<!--[if IE 8]> <html lang="en" ng-app="herald" class="no-js lt-ie9"> <![endif]-->
|
5
|
+
<!--[if gt IE 8]><!--> <html lang="en" ng-app="herald" class="no-js"> <!--<![endif]-->
|
6
|
+
<head ng-controller="AppController as app">
|
7
|
+
<meta charset="utf-8">
|
8
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
9
|
+
<title>Herald - a Puppet report processor</title>
|
10
|
+
|
11
|
+
<meta name="description" content="Herald - a Puppet report processor">
|
12
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
13
|
+
<!-- Latest compiled and minified CSS -->
|
14
|
+
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap<%= @minified %>.css">
|
15
|
+
<!-- Optional theme -->
|
16
|
+
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap-theme<%= @minified %>.css">
|
17
|
+
<link rel="stylesheet" href="css/herald.css">
|
18
|
+
</head>
|
19
|
+
<body>
|
20
|
+
|
21
|
+
<section class="container-fluid">
|
22
|
+
|
23
|
+
<h2><img src="/img/shield97.svg" />Herald <small>a Puppet report processor</small></h2>
|
24
|
+
|
25
|
+
<div ng-view></div>
|
26
|
+
|
27
|
+
<address>
|
28
|
+
<hr />
|
29
|
+
<p class="text-muted"><small>Herald v<span app-version></span></small></p>
|
30
|
+
</address>
|
31
|
+
</section>
|
32
|
+
|
33
|
+
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular<%= @minified %>.js"></script>
|
34
|
+
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular-route<%= @minified %>.js"></script>
|
35
|
+
<script src="//cdn.jsdelivr.net/momentjs/2.5.1/moment.min.js"></script>
|
36
|
+
<script src="//cdn.jsdelivr.net/angular.moment/0.6.2/angular-moment.js"></script>
|
37
|
+
|
38
|
+
<!-- Automatic incudes of project files -->
|
39
|
+
<% @files.each do |file| %>
|
40
|
+
<script src="<%= file %>"></script><% end %>
|
41
|
+
</body>
|
42
|
+
</html>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<!--[if lt IE 7]> <html lang="en" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
|
3
|
+
<!--[if IE 7]> <html lang="en" class="no-js lt-ie9 lt-ie8"> <![endif]-->
|
4
|
+
<!--[if IE 8]> <html lang="en" class="no-js lt-ie9"> <![endif]-->
|
5
|
+
<!--[if gt IE 8]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
|
6
|
+
<head>
|
7
|
+
<meta charset="utf-8">
|
8
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
9
|
+
<title>Error 500 | Herald - a Puppet report processor</title>
|
10
|
+
<meta name="description" content="Herald - a Puppet report processor">
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
12
|
+
<!-- Latest compiled and minified CSS -->
|
13
|
+
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
|
14
|
+
<!-- Optional theme -->
|
15
|
+
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap-theme.min.css">
|
16
|
+
</head>
|
17
|
+
<body>
|
18
|
+
|
19
|
+
<section class="container-fluid">
|
20
|
+
<h2><img src="/img/shield97.svg" />Herald <small>a Puppet report processor</small></h2>
|
21
|
+
|
22
|
+
<div class="jumbotron">
|
23
|
+
<h2 class="text-danger glyphicon glyphicon-fire">Internal Server Error (500)</h2>
|
24
|
+
<p>Something realy unpredictable just happend...</p>
|
25
|
+
<div class="well well-lg"><samp><%= @bug[:message] %></samp></div>
|
26
|
+
<p><small><strong>Pro Tip!</strong> Please report this bug by passing contents of bug file: <code><%= @bug[:bugfile] %></code></small></p>
|
27
|
+
<p><a class="btn btn-danger btn-lg" href="<%= @bug[:homepage] %>" role="button">Report a bug</a></p>
|
28
|
+
</div>
|
29
|
+
</section>
|
30
|
+
</body>
|
31
|
+
</html>
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require File.expand_path('../lib/puppet-herald/version', __FILE__)
|
4
|
+
|
5
|
+
Gem::Specification.new do |gem|
|
6
|
+
gem.name = PuppetHerald::PACKAGE
|
7
|
+
gem.version = PuppetHerald::VERSION
|
8
|
+
gem.author = 'Krzysztof Suszynski'
|
9
|
+
gem.email = 'krzysztof.suszynski@wavesoftware.pl'
|
10
|
+
gem.license = PuppetHerald::LICENSE
|
11
|
+
gem.homepage = PuppetHerald::HOMEPAGE
|
12
|
+
gem.summary = PuppetHerald::SUMMARY
|
13
|
+
gem.description = PuppetHerald::DESCRIPTION
|
14
|
+
|
15
|
+
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
16
|
+
gem.files = `git ls-files`.split("\n")
|
17
|
+
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
gem.require_paths = ["lib"]
|
19
|
+
|
20
|
+
# Dependencies
|
21
|
+
gem.required_ruby_version = '>= 1.9.2'
|
22
|
+
|
23
|
+
prydebugger = if RUBY_VERSION >= "2.0.0" then 'pry-byebug' else 'pry-debugger' end
|
24
|
+
dependencies = {
|
25
|
+
:runtime => [
|
26
|
+
'rake',
|
27
|
+
'sinatra',
|
28
|
+
'sinatra-contrib',
|
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
|
+
}
|
49
|
+
|
50
|
+
dependencies[:runtime].each do |spec|
|
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
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
# vim:ft=ruby
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'rspec/its'
|
2
|
+
|
3
|
+
begin
|
4
|
+
gem 'simplecov'
|
5
|
+
require 'simplecov'
|
6
|
+
SimpleCov.start do
|
7
|
+
add_filter "/spec/"
|
8
|
+
add_filter "/.vendor/"
|
9
|
+
add_filter "/vendor/"
|
10
|
+
add_filter "/gems/"
|
11
|
+
end
|
12
|
+
rescue Gem::LoadError
|
13
|
+
# do nothing
|
14
|
+
end
|
15
|
+
|
16
|
+
begin
|
17
|
+
gem 'coveralls'
|
18
|
+
require 'coveralls'
|
19
|
+
if ENV['TRAVIS']
|
20
|
+
Coveralls.wear!
|
21
|
+
end
|
22
|
+
rescue Gem::LoadError
|
23
|
+
# do nothing
|
24
|
+
end
|
25
|
+
|
26
|
+
begin
|
27
|
+
gem 'pry'
|
28
|
+
require 'pry'
|
29
|
+
rescue Gem::LoadError
|
30
|
+
# do nothing
|
31
|
+
end
|
32
|
+
|
33
|
+
RSpec.configure do |c|
|
34
|
+
c.expect_with :rspec do |mock|
|
35
|
+
mock.syntax = [:expect, :should]
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'active_record'
|
2
|
+
require 'stringio' # silence the output
|
3
|
+
$stdout = StringIO.new # from migrator
|
4
|
+
|
5
|
+
ActiveRecord::Base.establish_connection adapter: "sqlite3", database: ":memory:"
|
6
|
+
ActiveRecord::Migrator.up "db/migrate"
|
7
|
+
|
8
|
+
$stdout = STDOUT
|
9
|
+
|
10
|
+
RSpec.configure do |config|
|
11
|
+
config.around do |example|
|
12
|
+
ActiveRecord::Base.transaction do
|
13
|
+
example.run
|
14
|
+
raise ActiveRecord::Rollback
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,278 @@
|
|
1
|
+
--- !ruby/object:Puppet::Transaction::Report
|
2
|
+
metrics:
|
3
|
+
resources: !ruby/object:Puppet::Util::Metric
|
4
|
+
name: resources
|
5
|
+
label: Resources
|
6
|
+
values:
|
7
|
+
- - total
|
8
|
+
- Total
|
9
|
+
- 8
|
10
|
+
- - skipped
|
11
|
+
- Skipped
|
12
|
+
- 0
|
13
|
+
- - failed
|
14
|
+
- Failed
|
15
|
+
- 0
|
16
|
+
- - failed_to_restart
|
17
|
+
- "Failed to restart"
|
18
|
+
- 0
|
19
|
+
- - restarted
|
20
|
+
- Restarted
|
21
|
+
- 0
|
22
|
+
- - changed
|
23
|
+
- Changed
|
24
|
+
- 1
|
25
|
+
- - out_of_sync
|
26
|
+
- "Out of sync"
|
27
|
+
- 1
|
28
|
+
- - scheduled
|
29
|
+
- Scheduled
|
30
|
+
- 0
|
31
|
+
time: !ruby/object:Puppet::Util::Metric
|
32
|
+
name: time
|
33
|
+
label: Time
|
34
|
+
values:
|
35
|
+
- - schedule
|
36
|
+
- Schedule
|
37
|
+
- 0.00021728499999999998
|
38
|
+
- - notify
|
39
|
+
- Notify
|
40
|
+
- 0.000353069
|
41
|
+
- - filebucket
|
42
|
+
- Filebucket
|
43
|
+
- 3.8739e-05
|
44
|
+
- - config_retrieval
|
45
|
+
- "Config retrieval"
|
46
|
+
- 0.080785796
|
47
|
+
- - total
|
48
|
+
- Total
|
49
|
+
- 0.08139488900000001
|
50
|
+
changes: !ruby/object:Puppet::Util::Metric
|
51
|
+
name: changes
|
52
|
+
label: Changes
|
53
|
+
values:
|
54
|
+
- - total
|
55
|
+
- Total
|
56
|
+
- 1
|
57
|
+
events: !ruby/object:Puppet::Util::Metric
|
58
|
+
name: events
|
59
|
+
label: Events
|
60
|
+
values:
|
61
|
+
- - total
|
62
|
+
- Total
|
63
|
+
- 1
|
64
|
+
- - failure
|
65
|
+
- Failure
|
66
|
+
- 0
|
67
|
+
- - success
|
68
|
+
- Success
|
69
|
+
- 1
|
70
|
+
logs:
|
71
|
+
- !ruby/object:Puppet::Util::Log
|
72
|
+
level: !ruby/sym notice
|
73
|
+
tags:
|
74
|
+
- notice
|
75
|
+
message: shit
|
76
|
+
source: Puppet
|
77
|
+
time: 2014-12-11 18:53:34.907868 +01:00
|
78
|
+
- !ruby/object:Puppet::Util::Log
|
79
|
+
level: !ruby/sym notice
|
80
|
+
tags:
|
81
|
+
- notice
|
82
|
+
- notify
|
83
|
+
- shit
|
84
|
+
- class
|
85
|
+
message: "defined 'message' as 'shit'"
|
86
|
+
source: /Stage[main]/Main/Notify[shit]/message
|
87
|
+
time: 2014-12-11 18:53:34.907975 +01:00
|
88
|
+
line: 1
|
89
|
+
- !ruby/object:Puppet::Util::Log
|
90
|
+
level: !ruby/sym notice
|
91
|
+
tags:
|
92
|
+
- notice
|
93
|
+
message: "Finished catalog run in 0.06 seconds"
|
94
|
+
source: Puppet
|
95
|
+
time: 2014-12-11 18:53:34.963966 +01:00
|
96
|
+
resource_statuses:
|
97
|
+
Schedule[daily]: !ruby/object:Puppet::Resource::Status
|
98
|
+
resource: Schedule[daily]
|
99
|
+
file:
|
100
|
+
line:
|
101
|
+
evaluation_time: 6.3008e-05
|
102
|
+
change_count: 0
|
103
|
+
out_of_sync_count: 0
|
104
|
+
tags:
|
105
|
+
- schedule
|
106
|
+
- daily
|
107
|
+
time: 2014-12-11 18:53:34.906911 +01:00
|
108
|
+
events: []
|
109
|
+
out_of_sync: false
|
110
|
+
changed: false
|
111
|
+
resource_type: Schedule
|
112
|
+
title: daily
|
113
|
+
skipped: false
|
114
|
+
failed: false
|
115
|
+
containment_path:
|
116
|
+
- Schedule[daily]
|
117
|
+
Schedule[monthly]: !ruby/object:Puppet::Resource::Status
|
118
|
+
resource: Schedule[monthly]
|
119
|
+
file:
|
120
|
+
line:
|
121
|
+
evaluation_time: 3.0788e-05
|
122
|
+
change_count: 0
|
123
|
+
out_of_sync_count: 0
|
124
|
+
tags:
|
125
|
+
- schedule
|
126
|
+
- monthly
|
127
|
+
time: 2014-12-11 18:53:34.907052 +01:00
|
128
|
+
events: []
|
129
|
+
out_of_sync: false
|
130
|
+
changed: false
|
131
|
+
resource_type: Schedule
|
132
|
+
title: monthly
|
133
|
+
skipped: false
|
134
|
+
failed: false
|
135
|
+
containment_path:
|
136
|
+
- Schedule[monthly]
|
137
|
+
Schedule[hourly]: !ruby/object:Puppet::Resource::Status
|
138
|
+
resource: Schedule[hourly]
|
139
|
+
file:
|
140
|
+
line:
|
141
|
+
evaluation_time: 2.8306e-05
|
142
|
+
change_count: 0
|
143
|
+
out_of_sync_count: 0
|
144
|
+
tags:
|
145
|
+
- schedule
|
146
|
+
- hourly
|
147
|
+
time: 2014-12-11 18:53:34.907141 +01:00
|
148
|
+
events: []
|
149
|
+
out_of_sync: false
|
150
|
+
changed: false
|
151
|
+
resource_type: Schedule
|
152
|
+
title: hourly
|
153
|
+
skipped: false
|
154
|
+
failed: false
|
155
|
+
containment_path:
|
156
|
+
- Schedule[hourly]
|
157
|
+
Notify[shit]: !ruby/object:Puppet::Resource::Status
|
158
|
+
resource: Notify[shit]
|
159
|
+
file:
|
160
|
+
line: 1
|
161
|
+
evaluation_time: 0.000353069
|
162
|
+
change_count: 1
|
163
|
+
out_of_sync_count: 1
|
164
|
+
tags:
|
165
|
+
- notify
|
166
|
+
- shit
|
167
|
+
- class
|
168
|
+
time: 2014-12-11 18:53:34.907680 +01:00
|
169
|
+
events:
|
170
|
+
- !ruby/object:Puppet::Transaction::Event
|
171
|
+
audited: false
|
172
|
+
property: message
|
173
|
+
previous_value: !ruby/sym absent
|
174
|
+
desired_value: shit
|
175
|
+
historical_value:
|
176
|
+
message: "defined 'message' as 'shit'"
|
177
|
+
name: !ruby/sym message_changed
|
178
|
+
status: success
|
179
|
+
time: 2014-12-11 18:53:34.907822 +01:00
|
180
|
+
out_of_sync: true
|
181
|
+
changed: true
|
182
|
+
resource_type: Notify
|
183
|
+
title: shit
|
184
|
+
skipped: false
|
185
|
+
failed: false
|
186
|
+
containment_path:
|
187
|
+
- Stage[main]
|
188
|
+
- Main
|
189
|
+
- Notify[shit]
|
190
|
+
Schedule[never]: !ruby/object:Puppet::Resource::Status
|
191
|
+
resource: Schedule[never]
|
192
|
+
file:
|
193
|
+
line:
|
194
|
+
evaluation_time: 3.5455e-05
|
195
|
+
change_count: 0
|
196
|
+
out_of_sync_count: 0
|
197
|
+
tags:
|
198
|
+
- schedule
|
199
|
+
- never
|
200
|
+
time: 2014-12-11 18:53:34.908164 +01:00
|
201
|
+
events: []
|
202
|
+
out_of_sync: false
|
203
|
+
changed: false
|
204
|
+
resource_type: Schedule
|
205
|
+
title: never
|
206
|
+
skipped: false
|
207
|
+
failed: false
|
208
|
+
containment_path:
|
209
|
+
- Schedule[never]
|
210
|
+
Filebucket[puppet]: !ruby/object:Puppet::Resource::Status
|
211
|
+
resource: Filebucket[puppet]
|
212
|
+
file:
|
213
|
+
line:
|
214
|
+
evaluation_time: 3.8739e-05
|
215
|
+
change_count: 0
|
216
|
+
out_of_sync_count: 0
|
217
|
+
tags:
|
218
|
+
- filebucket
|
219
|
+
- puppet
|
220
|
+
time: 2014-12-11 18:53:34.908274 +01:00
|
221
|
+
events: []
|
222
|
+
out_of_sync: false
|
223
|
+
changed: false
|
224
|
+
resource_type: Filebucket
|
225
|
+
title: puppet
|
226
|
+
skipped: false
|
227
|
+
failed: false
|
228
|
+
containment_path:
|
229
|
+
- Filebucket[puppet]
|
230
|
+
Schedule[weekly]: !ruby/object:Puppet::Resource::Status
|
231
|
+
resource: Schedule[weekly]
|
232
|
+
file:
|
233
|
+
line:
|
234
|
+
evaluation_time: 3.0863e-05
|
235
|
+
change_count: 0
|
236
|
+
out_of_sync_count: 0
|
237
|
+
tags:
|
238
|
+
- schedule
|
239
|
+
- weekly
|
240
|
+
time: 2014-12-11 18:53:34.908373 +01:00
|
241
|
+
events: []
|
242
|
+
out_of_sync: false
|
243
|
+
changed: false
|
244
|
+
resource_type: Schedule
|
245
|
+
title: weekly
|
246
|
+
skipped: false
|
247
|
+
failed: false
|
248
|
+
containment_path:
|
249
|
+
- Schedule[weekly]
|
250
|
+
Schedule[puppet]: !ruby/object:Puppet::Resource::Status
|
251
|
+
resource: Schedule[puppet]
|
252
|
+
file:
|
253
|
+
line:
|
254
|
+
evaluation_time: 2.8865e-05
|
255
|
+
change_count: 0
|
256
|
+
out_of_sync_count: 0
|
257
|
+
tags:
|
258
|
+
- schedule
|
259
|
+
- puppet
|
260
|
+
time: 2014-12-11 18:53:34.908461 +01:00
|
261
|
+
events: []
|
262
|
+
out_of_sync: false
|
263
|
+
changed: false
|
264
|
+
resource_type: Schedule
|
265
|
+
title: puppet
|
266
|
+
skipped: false
|
267
|
+
failed: false
|
268
|
+
containment_path:
|
269
|
+
- Schedule[puppet]
|
270
|
+
host: ksuszynski-gs70.suszynski.org
|
271
|
+
time: 2014-12-11 18:53:34.770130 +01:00
|
272
|
+
kind: apply
|
273
|
+
report_format: 4
|
274
|
+
puppet_version: "3.7.3"
|
275
|
+
configuration_version: 1418320414
|
276
|
+
transaction_uuid: "814b7333-0fb4-4379-a670-dd4a06929643"
|
277
|
+
environment: production
|
278
|
+
status: changed
|