job_log 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/job_log.rb +60 -0
- metadata +107 -0
- metadata.gz.sig +2 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: afebb08666fc1e6cbc4c592b03c34385b3c162af
|
4
|
+
data.tar.gz: 1b0eff7bb3900094d59479ccb417a7ce35f52512
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 244a4bbde478842d84dc7a48b25fad2d584d08318a894fb812591a26d3ecd9a39f61a5fa20986a4349df3a6b588903e6f682065dc3065ef74dce540299714ccd
|
7
|
+
data.tar.gz: fc6bf3f57ecb082797d849800c81a7c8daf470e90f9e934584174525854fd9c042f3f57c075430d3f109ffbac1be940e6dd93fad27495e0560e45c7129b26382
|
checksums.yaml.gz.sig
ADDED
Binary file
|
data.tar.gz.sig
ADDED
Binary file
|
data/lib/job_log.rb
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# file: job_log.rb
|
4
|
+
|
5
|
+
require 'sps-sub'
|
6
|
+
require 'dynarex'
|
7
|
+
|
8
|
+
|
9
|
+
class JobLog
|
10
|
+
|
11
|
+
def initialize(dxfilepath='joblog.xml', host: 'sps2', port: 59100)
|
12
|
+
|
13
|
+
@dxfilepath = dxfilepath
|
14
|
+
@sps = SPSSub.new host: host, port: port
|
15
|
+
|
16
|
+
@dx = if File.exists? dxfilepath then
|
17
|
+
Dynarex.new(dxfilepath)
|
18
|
+
else
|
19
|
+
Dynarex.new 'jobs/job(title, desc, started, ended, status, tags)'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def listen
|
24
|
+
|
25
|
+
topics = %w(started done aborted).map {|x| "log/+/#{x}/+"}.join(' | ')
|
26
|
+
@sps.subscribe(topic: topics) do |msg, topic|
|
27
|
+
|
28
|
+
title = topic[/(?<=log\/)\w+/]
|
29
|
+
|
30
|
+
case topic
|
31
|
+
when /\/started\//
|
32
|
+
|
33
|
+
desc, raw_tags = msg.split(/(?= +#)/,2)
|
34
|
+
tags = raw_tags.scan(/(?<=#)\w+/).join ' '
|
35
|
+
@dx.create title: title, started: Time.now.to_s, desc: desc, tags: tags
|
36
|
+
|
37
|
+
when /\/done\//
|
38
|
+
|
39
|
+
r = @dx.find_by_title title
|
40
|
+
r.ended = Time.now.to_s if r
|
41
|
+
r.status = 'success'
|
42
|
+
|
43
|
+
when /\/aborted\//
|
44
|
+
|
45
|
+
r = @dx.find_by_title title
|
46
|
+
r.ended = Time.now.to_s if r
|
47
|
+
r.status = msg
|
48
|
+
end
|
49
|
+
|
50
|
+
# write the entry to file
|
51
|
+
@dx.save @dxfilepath
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
|
57
|
+
if __FILE__ == $0 then
|
58
|
+
jl = JobLog.new
|
59
|
+
jl.listen
|
60
|
+
end
|
metadata
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: job_log
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- James Robertson
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
|
14
|
+
YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
|
15
|
+
8ixkARkWAmV1MB4XDTE3MTAzMDExNDAzOVoXDTE4MTAzMDExNDAzOVowSDESMBAG
|
16
|
+
A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
|
17
|
+
EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
18
|
+
ggEBAKt1737THWDNIPvI+wXur6QKFsLPDiJW9Gtf1+VOO7WV6i6ZkFrOrlFTcYRK
|
19
|
+
9XgC8mhVQSOfGPlo4vrqN83le7zTqPLkrGzn0lr2gD89sii4O2KlGPQOFxE73ZcB
|
20
|
+
cau2ZFsn/BTZymwF7FXAoE1NV3gyD92u0l2rRh9neYK4w+vewZmWNfxbqbgfljtS
|
21
|
+
+VJ5wN9X7PbdL/ivYn/vO90+rrET8TJZb44G33yGMn29xKnnX7uuw0NcVNs6SJl7
|
22
|
+
5YDjRz6aWluHcucZBktYxkf/9w6/iAjYwdh5zU7jRUHzG4G6P+vhbBQqfXskw+Lq
|
23
|
+
OTFGvszar7G6VkkA9t+hQZvXI70CAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
|
24
|
+
DwQEAwIEsDAdBgNVHQ4EFgQUlbFfeiff0GMCrHHXyfskZ7lZqRYwJgYDVR0RBB8w
|
25
|
+
HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
|
26
|
+
c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAbSEarO+7
|
27
|
+
Sp5dFaejyCE+0V/wCQ3+hbOGAM8is3WeKElpax60CaUvkj9B7dqNXFIOsh5R7+Q9
|
28
|
+
hvbVIbEf/j2iCgI7MhLkEb1NoWBsiLDo8sBndqg0e+/s7SVkjI6dwJK+adzCYSjQ
|
29
|
+
bitUQ2W+TankC/JBe06l7Qki3ri50yVthDp5VPF6gujenQTqxiWeDksvMJvBGxp4
|
30
|
+
wE0bA5t1O2r3Ko6gnBx13SCjLwjIAIYvJQoQedcdo5yxWVnzyToS+dygE8SbJhJT
|
31
|
+
KYWcqZKgA8qLVcunQeGtvoh4RH26oqZ3L64D91kqO8nVPEQxIgeqIrgYiuVYdwO9
|
32
|
+
WRRQX/+XSywNEQ==
|
33
|
+
-----END CERTIFICATE-----
|
34
|
+
date: 2017-10-30 00:00:00.000000000 Z
|
35
|
+
dependencies:
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: dynarex
|
38
|
+
requirement: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '1.7'
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.7.26
|
46
|
+
type: :runtime
|
47
|
+
prerelease: false
|
48
|
+
version_requirements: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - "~>"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '1.7'
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 1.7.26
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: sps-sub
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0.3'
|
63
|
+
- - ">="
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 0.3.6
|
66
|
+
type: :runtime
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: !ruby/object:Gem::Requirement
|
69
|
+
requirements:
|
70
|
+
- - "~>"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '0.3'
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.3.6
|
76
|
+
description:
|
77
|
+
email: james@jamesrobertson.eu
|
78
|
+
executables: []
|
79
|
+
extensions: []
|
80
|
+
extra_rdoc_files: []
|
81
|
+
files:
|
82
|
+
- lib/job_log.rb
|
83
|
+
homepage: https://github.com/jrobertson/job_log
|
84
|
+
licenses:
|
85
|
+
- MIT
|
86
|
+
metadata: {}
|
87
|
+
post_install_message:
|
88
|
+
rdoc_options: []
|
89
|
+
require_paths:
|
90
|
+
- lib
|
91
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '0'
|
101
|
+
requirements: []
|
102
|
+
rubyforge_project:
|
103
|
+
rubygems_version: 2.6.13
|
104
|
+
signing_key:
|
105
|
+
specification_version: 4
|
106
|
+
summary: Logs the start and end of a job by subscribing to the SPS topic log.
|
107
|
+
test_files: []
|
metadata.gz.sig
ADDED