puppet-herald 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|