puppet-herald 0.1.1 → 0.2.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 -7
- data/.rubocop.yml +31 -0
- data/.rubocop_todo.yml +6 -0
- data/.travis.yml +7 -7
- data/Gemfile +5 -9
- data/README.md +152 -16
- data/Rakefile +67 -6
- data/bin/puppet-herald +1 -1
- data/config.ru +2 -2
- data/db/migrate/20141211165540_create_nodes.rb +5 -3
- data/db/migrate/20141211171305_create_reports.rb +12 -10
- data/db/migrate/20141211171326_create_log_entries.rb +9 -7
- data/db/schema.rb +24 -26
- data/lib/puppet-herald.rb +59 -21
- data/lib/puppet-herald/app/api.rb +111 -0
- data/lib/puppet-herald/app/configuration.rb +70 -0
- data/lib/puppet-herald/app/frontend.rb +61 -0
- data/lib/puppet-herald/{views → app/views}/app.erb +5 -8
- data/lib/puppet-herald/{views → app/views}/err500.erb +1 -4
- data/lib/puppet-herald/application.rb +27 -0
- data/lib/puppet-herald/cli.rb +66 -45
- data/lib/puppet-herald/client.rb +33 -0
- data/lib/puppet-herald/database.rb +84 -40
- data/lib/puppet-herald/javascript.rb +23 -17
- data/lib/puppet-herald/models/log-entry.rb +10 -3
- data/lib/puppet-herald/models/node.rb +15 -5
- data/lib/puppet-herald/models/report.rb +70 -63
- data/lib/puppet-herald/public/app.js +9 -8
- data/lib/puppet-herald/public/components/directives/status-button.html +1 -1
- data/lib/puppet-herald/public/components/directives/status-button.js +5 -3
- data/lib/puppet-herald/public/components/filters/filters.js +9 -4
- data/lib/puppet-herald/public/components/page.js +34 -0
- data/lib/puppet-herald/public/node/node.html +3 -1
- data/lib/puppet-herald/public/node/node.js +7 -4
- data/lib/puppet-herald/public/nodes/nodes.js +3 -2
- data/lib/puppet-herald/public/report/report.html +4 -1
- data/lib/puppet-herald/public/report/report.js +5 -3
- data/lib/puppet-herald/stubs/puppet.rb +20 -9
- data/lib/puppet-herald/version.rb +17 -7
- data/package.json +8 -3
- data/puppet-herald.gemspec +3 -6
- data/spec/integration/application_spec.rb +175 -0
- data/spec/integration/models/node_spec.rb +4 -4
- data/spec/integration/models/report_spec.rb +7 -7
- data/spec/spec_helper.rb +12 -7
- data/spec/support/active_record.rb +6 -10
- data/spec/support/reconnectdb.rb +13 -0
- data/spec/unit/puppet-herald/cli_spec.rb +45 -13
- data/spec/unit/puppet-herald/client_spec.rb +23 -0
- data/spec/unit/puppet-herald/database_spec.rb +8 -9
- data/spec/unit/puppet-herald/javascript_spec.rb +8 -13
- data/spec/unit/puppet-herald_spec.rb +4 -4
- data/test/javascript/karma.conf.js +43 -5
- data/test/javascript/src/app_test.js +90 -0
- data/test/javascript/src/components/artifact/artifact-directive_test.js +36 -0
- data/test/javascript/src/components/artifact/artifact_test.js +64 -0
- data/test/javascript/src/components/directives/status-button_test.js +159 -0
- data/test/javascript/src/components/filters/filters_test.js +35 -0
- data/test/javascript/src/node/node_test.js +87 -0
- data/test/javascript/src/nodes/nodes_test.js +56 -0
- data/test/javascript/src/report/report_test.js +94 -0
- metadata +98 -68
- data/lib/puppet-herald/app.rb +0 -103
- data/lib/puppet-herald/public/components/artifact/artifact-directive_test.js +0 -17
- data/spec/integration/app_spec.rb +0 -21
@@ -0,0 +1,35 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
describe('herald.filters module', function() {
|
4
|
+
beforeEach(module('herald.filters'));
|
5
|
+
|
6
|
+
describe('capitalize filter', function() {
|
7
|
+
|
8
|
+
var capitalize;
|
9
|
+
|
10
|
+
beforeEach(inject(function($injector) {
|
11
|
+
var $filter = $injector.get('$filter');
|
12
|
+
capitalize = $filter('capitalize');
|
13
|
+
}));
|
14
|
+
|
15
|
+
it('should returns "" when given null', function() {
|
16
|
+
expect(capitalize(null)).toEqual('');
|
17
|
+
});
|
18
|
+
|
19
|
+
it('should returns "" when given undefined', function() {
|
20
|
+
expect(capitalize(undefined)).toEqual('');
|
21
|
+
});
|
22
|
+
|
23
|
+
it('should returns "Nodes" when given "nodes"', function() {
|
24
|
+
expect(capitalize('nodes')).toEqual('Nodes');
|
25
|
+
});
|
26
|
+
|
27
|
+
it('should returns "Nodes" when given "Nodes"', function() {
|
28
|
+
expect(capitalize('Nodes')).toEqual('Nodes');
|
29
|
+
});
|
30
|
+
|
31
|
+
it('should returns "Nodes" when given "NODES"', function() {
|
32
|
+
expect(capitalize('NODES')).toEqual('NODES');
|
33
|
+
});
|
34
|
+
});
|
35
|
+
});
|
@@ -0,0 +1,87 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
describe('herald.node module', function() {
|
4
|
+
beforeEach(module('herald.node'));
|
5
|
+
describe('NodeController', function() {
|
6
|
+
|
7
|
+
var controller, Page, $httpBackend;
|
8
|
+
var defaultMockValues = {
|
9
|
+
name: 'master.cl.vm',
|
10
|
+
no_of_reports: 2,
|
11
|
+
status: 'unchanged',
|
12
|
+
id: 1,
|
13
|
+
last_run: '2014-01-01T12:34:56',
|
14
|
+
reports: [
|
15
|
+
{ configuration_version: '1234578', status: 'unchanged', environment: 'production', time: '2014-01-01T12:34:56', id: 2 },
|
16
|
+
{ configuration_version: '1234556', status: 'pending', environment: 'production', time: '2014-01-01T12:24:16', id: 1 },
|
17
|
+
]
|
18
|
+
};
|
19
|
+
|
20
|
+
beforeEach(inject(function($injector) {
|
21
|
+
|
22
|
+
// Set up the mock http service responses
|
23
|
+
$httpBackend = $injector.get('$httpBackend');
|
24
|
+
// Get hold of a scope (i.e. the root scope)
|
25
|
+
var $rootScope = $injector.get('$rootScope');
|
26
|
+
// The $controller service is used to create instances of controllers
|
27
|
+
var $controller = $injector.get('$controller');
|
28
|
+
|
29
|
+
var $routeParams = $injector.get('$routeParams');
|
30
|
+
|
31
|
+
Page = $injector.get('Page');
|
32
|
+
|
33
|
+
controller = function(id, mockValues) {
|
34
|
+
if (id == null) { id = 1; }
|
35
|
+
if (typeof(mockValues) === 'undefined') { mockValues = defaultMockValues; }
|
36
|
+
|
37
|
+
$routeParams.nodeId = id;
|
38
|
+
// backend definition common for all tests
|
39
|
+
var handler = $httpBackend.when('GET', '/api/v1/nodes/' + id);
|
40
|
+
if (mockValues != null) {
|
41
|
+
handler.respond(mockValues);
|
42
|
+
} else {
|
43
|
+
handler.respond(404, null);
|
44
|
+
}
|
45
|
+
$httpBackend.expectGET('/api/v1/nodes/' + id);
|
46
|
+
var ctrl = $controller('NodeController', { $scope : $rootScope });
|
47
|
+
$httpBackend.flush();
|
48
|
+
return ctrl;
|
49
|
+
};
|
50
|
+
}));
|
51
|
+
|
52
|
+
afterEach(function() {
|
53
|
+
$httpBackend.verifyNoOutstandingExpectation();
|
54
|
+
$httpBackend.verifyNoOutstandingRequest();
|
55
|
+
});
|
56
|
+
|
57
|
+
describe('fetching data from "/api/v1/nodes/1"', function() {
|
58
|
+
it('there should be node fetched', function() {
|
59
|
+
expect(controller().node).not.toEqual(null);
|
60
|
+
});
|
61
|
+
it('should have fetch 2 reports', function() {
|
62
|
+
var ctrl = controller();
|
63
|
+
expect(ctrl.node.reports.length).toBe(2);
|
64
|
+
expect(ctrl.node.no_of_reports).toBe(2);
|
65
|
+
});
|
66
|
+
it('should set Page.title to "Node: master.cl.vm"', function() {
|
67
|
+
expect(controller()).not.toBe(undefined);
|
68
|
+
expect(Page.actualTitle()).toEqual('Node');
|
69
|
+
expect(Page.actualTarget()).toBe('master.cl.vm');
|
70
|
+
});
|
71
|
+
});
|
72
|
+
describe('fetching data from "/api/v1/nodes/12"', function() {
|
73
|
+
var ctrl;
|
74
|
+
beforeEach(function() {
|
75
|
+
ctrl = controller(12, null);
|
76
|
+
});
|
77
|
+
it('there should not be node fetched', function() {
|
78
|
+
expect(ctrl.node).toEqual(null);
|
79
|
+
});
|
80
|
+
it('should set Page.title to "Node: "', function() {
|
81
|
+
expect(ctrl).not.toBe(undefined);
|
82
|
+
expect(Page.actualTitle()).toEqual('Node');
|
83
|
+
expect(Page.actualTarget()).toBe(undefined);
|
84
|
+
});
|
85
|
+
});
|
86
|
+
});
|
87
|
+
});
|
@@ -0,0 +1,56 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
describe('herald.nodes module', function() {
|
4
|
+
beforeEach(module('herald.nodes'));
|
5
|
+
describe('NodesController', function() {
|
6
|
+
|
7
|
+
var controller, Page, $httpBackend;
|
8
|
+
var defaultMockValues = [
|
9
|
+
{ name: 'master.cl.vm', no_of_reports: 12, status: 'unchanged', id: 1, last_run: '2014-01-01T12:34:56' },
|
10
|
+
{ name: 'db.cl.vm', no_of_reports: 5, status: 'failed', id: 2, last_run: '2014-01-01T12:24:36' },
|
11
|
+
{ name: 'app.cl.vm', no_of_reports: 10, status: 'pending', id: 3, last_run: '2014-01-01T12:14:46' }
|
12
|
+
];
|
13
|
+
|
14
|
+
beforeEach(inject(function($injector) {
|
15
|
+
|
16
|
+
// Set up the mock http service responses
|
17
|
+
$httpBackend = $injector.get('$httpBackend');
|
18
|
+
// Get hold of a scope (i.e. the root scope)
|
19
|
+
var $rootScope = $injector.get('$rootScope');
|
20
|
+
// The $controller service is used to create instances of controllers
|
21
|
+
var $controller = $injector.get('$controller');
|
22
|
+
|
23
|
+
Page = $injector.get('Page');
|
24
|
+
|
25
|
+
controller = function(mockValues) {
|
26
|
+
if (typeof(mockValues) === 'undefined') { mockValues = defaultMockValues; }
|
27
|
+
// backend definition common for all tests
|
28
|
+
$httpBackend.when('GET', '/api/v1/nodes')
|
29
|
+
.respond(mockValues);
|
30
|
+
$httpBackend.expectGET('/api/v1/nodes');
|
31
|
+
var ctrl = $controller('NodesController', { $scope : $rootScope });
|
32
|
+
$httpBackend.flush();
|
33
|
+
return ctrl;
|
34
|
+
};
|
35
|
+
}));
|
36
|
+
|
37
|
+
afterEach(function() {
|
38
|
+
$httpBackend.verifyNoOutstandingExpectation();
|
39
|
+
$httpBackend.verifyNoOutstandingRequest();
|
40
|
+
});
|
41
|
+
|
42
|
+
describe('fetching data from "/api/v1/nodes"', function() {
|
43
|
+
it('there should be 3 nodes fetched', function() {
|
44
|
+
expect(controller().all.length).toBe(3);
|
45
|
+
});
|
46
|
+
it('first should be named "master.cl.vm"', function() {
|
47
|
+
expect(controller().all[0].name).toBe('master.cl.vm');
|
48
|
+
});
|
49
|
+
});
|
50
|
+
it('should set Page.title to "All nodes"', function() {
|
51
|
+
expect(controller()).not.toBe(undefined);
|
52
|
+
expect(Page.actualTitle()).toEqual('All nodes');
|
53
|
+
expect(Page.actualTarget()).toBe(undefined);
|
54
|
+
});
|
55
|
+
});
|
56
|
+
});
|
@@ -0,0 +1,94 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
describe('herald.report module', function() {
|
4
|
+
beforeEach(module('herald.report'));
|
5
|
+
describe('ReportController', function() {
|
6
|
+
|
7
|
+
var controller, Page, $httpBackend;
|
8
|
+
var defaultMockValues = {
|
9
|
+
configuration_version: '1234578',
|
10
|
+
status: 'changed',
|
11
|
+
environment: 'production',
|
12
|
+
time: '2014-01-01T12:34:56',
|
13
|
+
puppet_version: '3.7.3',
|
14
|
+
host: 'master.cl.vm',
|
15
|
+
kind: 'apply',
|
16
|
+
id: 2,
|
17
|
+
log_entries: [
|
18
|
+
{ level: 'debug', message: 'Stating compile', source: 'Puppet' },
|
19
|
+
{ level: 'info', message: 'Compiled configuration version: "1234578" for environment production', source: 'Puppet' },
|
20
|
+
{ level: 'notice', message: 'changed from "abc" to "bcd"', source: 'Stage[main]/Users/User[root]/shell' },
|
21
|
+
{ level: 'notice', message: 'Config processed in 4.32 sec.', source: '' },
|
22
|
+
]
|
23
|
+
};
|
24
|
+
|
25
|
+
beforeEach(inject(function($injector) {
|
26
|
+
|
27
|
+
// Set up the mock http service responses
|
28
|
+
$httpBackend = $injector.get('$httpBackend');
|
29
|
+
// Get hold of a scope (i.e. the root scope)
|
30
|
+
var $rootScope = $injector.get('$rootScope');
|
31
|
+
// The $controller service is used to create instances of controllers
|
32
|
+
var $controller = $injector.get('$controller');
|
33
|
+
|
34
|
+
var $routeParams = $injector.get('$routeParams');
|
35
|
+
|
36
|
+
Page = $injector.get('Page');
|
37
|
+
|
38
|
+
controller = function(id, mockValues) {
|
39
|
+
if (id == null) { id = 1; }
|
40
|
+
if (typeof(mockValues) === 'undefined') { mockValues = defaultMockValues; }
|
41
|
+
|
42
|
+
$routeParams.reportId = id;
|
43
|
+
// backend definition common for all tests
|
44
|
+
var handler = $httpBackend.when('GET', '/api/v1/reports/' + id);
|
45
|
+
if (mockValues != null) {
|
46
|
+
handler.respond(mockValues);
|
47
|
+
} else {
|
48
|
+
handler.respond(404, null);
|
49
|
+
}
|
50
|
+
$httpBackend.expectGET('/api/v1/reports/' + id);
|
51
|
+
var ctrl = $controller('ReportController', { $scope : $rootScope });
|
52
|
+
$httpBackend.flush();
|
53
|
+
return ctrl;
|
54
|
+
};
|
55
|
+
}));
|
56
|
+
|
57
|
+
afterEach(function() {
|
58
|
+
$httpBackend.verifyNoOutstandingExpectation();
|
59
|
+
$httpBackend.verifyNoOutstandingRequest();
|
60
|
+
});
|
61
|
+
|
62
|
+
describe('fetching data from "/api/v1/reports/1"', function() {
|
63
|
+
var ctrl;
|
64
|
+
beforeEach(function() {
|
65
|
+
ctrl = controller();
|
66
|
+
});
|
67
|
+
it('there should be report fetched', function() {
|
68
|
+
expect(ctrl.report).not.toEqual(null);
|
69
|
+
});
|
70
|
+
it('should have fetch report with 4 lines', function() {
|
71
|
+
expect(ctrl.report.log_entries.length).toBe(4);
|
72
|
+
});
|
73
|
+
it('should set Page.title to "Report: 1234578"', function() {
|
74
|
+
expect(ctrl).not.toBe(undefined);
|
75
|
+
expect(Page.actualTitle()).toEqual('Report');
|
76
|
+
expect(Page.actualTarget()).toBe('1234578');
|
77
|
+
});
|
78
|
+
});
|
79
|
+
describe('fetching data from "/api/v1/reports/12"', function() {
|
80
|
+
var ctrl;
|
81
|
+
beforeEach(function() {
|
82
|
+
ctrl = controller(12, null);
|
83
|
+
});
|
84
|
+
it('there should not be report fetched', function() {
|
85
|
+
expect(ctrl.report).toEqual(null);
|
86
|
+
});
|
87
|
+
it('should set Page.title to "Report: "', function() {
|
88
|
+
expect(ctrl).not.toBe(undefined);
|
89
|
+
expect(Page.actualTitle()).toEqual('Report');
|
90
|
+
expect(Page.actualTarget()).toBe(undefined);
|
91
|
+
});
|
92
|
+
});
|
93
|
+
});
|
94
|
+
});
|
metadata
CHANGED
@@ -1,77 +1,97 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-herald
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
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
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2014-12-17 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
15
14
|
name: sinatra
|
16
|
-
|
17
|
-
|
18
|
-
requirements:
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
19
17
|
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version:
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.4'
|
22
20
|
type: :runtime
|
23
|
-
version_requirements: *id001
|
24
|
-
- !ruby/object:Gem::Dependency
|
25
|
-
name: sinatra-contrib
|
26
21
|
prerelease: false
|
27
|
-
|
28
|
-
requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.4'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: sinatra-contrib
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
29
31
|
- - ~>
|
30
|
-
- !ruby/object:Gem::Version
|
31
|
-
version:
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.4'
|
32
34
|
type: :runtime
|
33
|
-
version_requirements: *id002
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: sinatra-activerecord
|
36
35
|
prerelease: false
|
37
|
-
|
38
|
-
requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.4'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: sinatra-activerecord
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
39
45
|
- - ~>
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version:
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.0'
|
42
48
|
type: :runtime
|
43
|
-
version_requirements: *id003
|
44
|
-
- !ruby/object:Gem::Dependency
|
45
|
-
name: micro-optparse
|
46
49
|
prerelease: false
|
47
|
-
|
48
|
-
requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
49
52
|
- - ~>
|
50
|
-
- !ruby/object:Gem::Version
|
51
|
-
version:
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: micro-optparse
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.2'
|
52
62
|
type: :runtime
|
53
|
-
version_requirements: *id004
|
54
|
-
- !ruby/object:Gem::Dependency
|
55
|
-
name: uglifier
|
56
63
|
prerelease: false
|
57
|
-
|
58
|
-
requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
59
66
|
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version:
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.2'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: uglifier
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '2.6'
|
62
76
|
type: :runtime
|
63
|
-
|
64
|
-
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '2.6'
|
83
|
+
description: Provides a gateway for consuming puppet reports, a REST API and a simple
|
84
|
+
Web app to display reports.
|
65
85
|
email: krzysztof.suszynski@wavesoftware.pl
|
66
|
-
executables:
|
86
|
+
executables:
|
67
87
|
- puppet-herald
|
68
88
|
extensions: []
|
69
|
-
|
70
89
|
extra_rdoc_files: []
|
71
|
-
|
72
|
-
files:
|
90
|
+
files:
|
73
91
|
- .gitignore
|
74
92
|
- .rspec
|
93
|
+
- .rubocop.yml
|
94
|
+
- .rubocop_todo.yml
|
75
95
|
- .travis.yml
|
76
96
|
- Gemfile
|
77
97
|
- Gemfile.local.example
|
@@ -85,8 +105,14 @@ files:
|
|
85
105
|
- db/schema.rb
|
86
106
|
- db/seeds.rb
|
87
107
|
- lib/puppet-herald.rb
|
88
|
-
- lib/puppet-herald/app.rb
|
108
|
+
- lib/puppet-herald/app/api.rb
|
109
|
+
- lib/puppet-herald/app/configuration.rb
|
110
|
+
- lib/puppet-herald/app/frontend.rb
|
111
|
+
- lib/puppet-herald/app/views/app.erb
|
112
|
+
- lib/puppet-herald/app/views/err500.erb
|
113
|
+
- lib/puppet-herald/application.rb
|
89
114
|
- lib/puppet-herald/cli.rb
|
115
|
+
- lib/puppet-herald/client.rb
|
90
116
|
- lib/puppet-herald/database.rb
|
91
117
|
- lib/puppet-herald/javascript.rb
|
92
118
|
- lib/puppet-herald/models/log-entry.rb
|
@@ -96,12 +122,12 @@ files:
|
|
96
122
|
- lib/puppet-herald/public/app.js
|
97
123
|
- lib/puppet-herald/public/bower.json
|
98
124
|
- lib/puppet-herald/public/components/artifact/artifact-directive.js
|
99
|
-
- lib/puppet-herald/public/components/artifact/artifact-directive_test.js
|
100
125
|
- lib/puppet-herald/public/components/artifact/artifact.js
|
101
126
|
- lib/puppet-herald/public/components/directives/directives.js
|
102
127
|
- lib/puppet-herald/public/components/directives/status-button.html
|
103
128
|
- lib/puppet-herald/public/components/directives/status-button.js
|
104
129
|
- lib/puppet-herald/public/components/filters/filters.js
|
130
|
+
- lib/puppet-herald/public/components/page.js
|
105
131
|
- lib/puppet-herald/public/css/herald.css
|
106
132
|
- lib/puppet-herald/public/img/shield97.svg
|
107
133
|
- lib/puppet-herald/public/node/node.html
|
@@ -112,49 +138,53 @@ files:
|
|
112
138
|
- lib/puppet-herald/public/report/report.js
|
113
139
|
- lib/puppet-herald/stubs/puppet.rb
|
114
140
|
- lib/puppet-herald/version.rb
|
115
|
-
- lib/puppet-herald/views/app.erb
|
116
|
-
- lib/puppet-herald/views/err500.erb
|
117
141
|
- package.json
|
118
142
|
- puppet-herald.gemspec
|
119
|
-
- spec/integration/
|
143
|
+
- spec/integration/application_spec.rb
|
120
144
|
- spec/integration/fixtures/changed-notify.yaml
|
121
145
|
- spec/integration/models/node_spec.rb
|
122
146
|
- spec/integration/models/report_spec.rb
|
123
147
|
- spec/model_helper.rb
|
124
148
|
- spec/spec_helper.rb
|
125
149
|
- spec/support/active_record.rb
|
150
|
+
- spec/support/reconnectdb.rb
|
126
151
|
- spec/unit/puppet-herald/cli_spec.rb
|
152
|
+
- spec/unit/puppet-herald/client_spec.rb
|
127
153
|
- spec/unit/puppet-herald/database_spec.rb
|
128
154
|
- spec/unit/puppet-herald/javascript_spec.rb
|
129
155
|
- spec/unit/puppet-herald/version_spec.rb
|
130
156
|
- spec/unit/puppet-herald_spec.rb
|
131
157
|
- test/javascript/karma.conf.js
|
158
|
+
- test/javascript/src/app_test.js
|
159
|
+
- test/javascript/src/components/artifact/artifact-directive_test.js
|
160
|
+
- test/javascript/src/components/artifact/artifact_test.js
|
161
|
+
- test/javascript/src/components/directives/status-button_test.js
|
162
|
+
- test/javascript/src/components/filters/filters_test.js
|
163
|
+
- test/javascript/src/node/node_test.js
|
164
|
+
- test/javascript/src/nodes/nodes_test.js
|
165
|
+
- test/javascript/src/report/report_test.js
|
132
166
|
homepage: https://github.com/wavesoftware/gem-puppet-herald
|
133
|
-
licenses:
|
167
|
+
licenses:
|
134
168
|
- Apache 2.0
|
135
169
|
metadata: {}
|
136
|
-
|
137
170
|
post_install_message:
|
138
171
|
rdoc_options: []
|
139
|
-
|
140
|
-
require_paths:
|
172
|
+
require_paths:
|
141
173
|
- lib
|
142
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
143
|
-
requirements:
|
144
|
-
- -
|
145
|
-
- !ruby/object:Gem::Version
|
174
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
175
|
+
requirements:
|
176
|
+
- - ! '>='
|
177
|
+
- !ruby/object:Gem::Version
|
146
178
|
version: 1.9.2
|
147
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
|
-
requirements:
|
149
|
-
- -
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
version:
|
179
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
180
|
+
requirements:
|
181
|
+
- - ! '>='
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
version: '0'
|
152
184
|
requirements: []
|
153
|
-
|
154
185
|
rubyforge_project:
|
155
|
-
rubygems_version: 2.
|
186
|
+
rubygems_version: 2.4.5
|
156
187
|
signing_key:
|
157
188
|
specification_version: 4
|
158
189
|
summary: a Puppet report processor
|
159
190
|
test_files: []
|
160
|
-
|