cpee-logging-xes-yaml 1.0 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: da7a05239a1da8c1c5385237edd86c5e416d5890547fd887fa58afcec6964e0f
4
- data.tar.gz: 4af562158950e42d15f8ae2cc109849785601f1f8a13b75714f8f4769f8de584
3
+ metadata.gz: d2a0520ca3fb6ff780ca51eebf84811e8c9fd4df9a111fed58b09ebe63ac747f
4
+ data.tar.gz: 4aa2bb2e70e7944cb41155983dc39651b599ee263c7e2c8d2176b1fa40586741
5
5
  SHA512:
6
- metadata.gz: a05b38fe0f0e2626130393e87d210c9fbe2312583dd1aa9c56953696cbed4d31a59a6989c2e8bab050dac150ef2fefbf87c6dfef6662a245333da5cb9222bcb7
7
- data.tar.gz: c79d798d6a1aa42e4731a8feb637a49027811d7a7509bb47c0ae1af5b2dc1c6b2cf67f8af100e78715fe4506ba9ab92cb6939f54691991dca40ba6e8f1e8d2c0
6
+ metadata.gz: 7e403723fe26acf2b0588db4ecb18e7577cbb57572b2ca38224e0c8bdec7b753ef366142b1b9ae599921c15ab53e8d73cb36d822af2b112054249538cd3781b7
7
+ data.tar.gz: e681120976fbe6308dafbc824eb0fc5787219f071666fe10291d27f98318bed20c584aab4a408f4a23811f4411f08192f4a955ca0ca4f20ccc500628abb1afba
data/README.md CHANGED
@@ -20,7 +20,7 @@ or many of the following yaml keys:
20
20
  :log_dir: /var/log/cpee
21
21
  ```
22
22
 
23
- To connec the cpee to the log, one of two things can be done: (1) add a handler to
23
+ To connect the cpee to the log, one of two things can be done: (1) add a handler to
24
24
  a testset/template:
25
25
 
26
26
  ```xml
@@ -31,6 +31,8 @@ a testset/template:
31
31
  <events topic="endpoints">change</events>
32
32
  <events topic="attributes">change</events>
33
33
  <events topic="task">instantiation</events>
34
+ <events topic="description">change</events>
35
+ <events topic="state">change</events>
34
36
  </handler>
35
37
  </handlers>
36
38
  ```
@@ -46,7 +48,7 @@ Riddl::Server.new(CPEE::SERVER, options) do
46
48
  end.loop!
47
49
  ```
48
50
 
49
- to the server (or alternatively to a log.conf with :notification_init
51
+ to the server (or alternatively to a cpee.conf with :notification_init
50
52
  beeing a top-level yaml key). Then add a subscription file to
51
53
  notifications/logging/subscription.xml
52
54
 
@@ -66,6 +68,12 @@ notifications/logging/subscription.xml
66
68
  <topic id="attributes">
67
69
  <event>change</event>
68
70
  </topic>
71
+ <topic id="description">
72
+ <event>change</event>
73
+ </topic>
74
+ <topic id="state">
75
+ <event>change</event>
76
+ </topic>
69
77
  <topic id="task">
70
78
  <event>instantiation</event>
71
79
  </topic>
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "cpee-logging-xes-yaml"
3
- s.version = "1.0"
3
+ s.version = "1.0.4"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "LGPL-3.0"
6
6
  s.summary = "Logging for the cloud process execution engine (cpee.org)"
@@ -15,12 +15,12 @@ Gem::Specification.new do |s|
15
15
 
16
16
  s.required_ruby_version = '>=2.4.0'
17
17
 
18
- s.authors = ['Juergen eTM Mangler']
18
+ s.authors = ['Juergen eTM Mangler','Florian Stertz']
19
19
 
20
20
  s.email = 'juergen.mangler@gmail.com'
21
21
  s.homepage = 'http://cpee.org/'
22
22
 
23
23
  s.add_runtime_dependency 'riddl', '~> 0.99'
24
24
  s.add_runtime_dependency 'json', '~> 2.1'
25
- s.add_runtime_dependency 'cpee', '~> 1', '>= 1.5'
25
+ s.add_runtime_dependency 'cpee', '~> 2.1', '>= 2.1.4'
26
26
  end
@@ -61,6 +61,8 @@ module CPEE
61
61
  event["lifecycle:transition"] = "start"
62
62
  end
63
63
  event["cpee:lifecycle:transition"] = "#{topic}/#{event_name}"
64
+ event["cpee:state"] = content['state'] if content['state']
65
+ event["cpee:description"] = content['dslx'] if content['dslx']
64
66
  data_send = ((parameters["arguments"].nil? ? [] : parameters["arguments"]) rescue [])
65
67
  event["data"] = {"data_send" => data_send} unless data_send.empty?
66
68
  if content['changed']&.any?
@@ -4,15 +4,18 @@ require 'rubygems'
4
4
  require 'optparse'
5
5
  require 'fileutils'
6
6
  require 'xml/smart'
7
+ require 'yaml'
8
+ require 'typhoeus'
9
+ require 'stringio'
7
10
 
8
- def wrap(s, width=78, indent=18)
11
+ def wrap(s, width=78, indent=18, extra_indent=4)
9
12
  lines = []
10
13
  line, s = s[0..indent-2], s[indent..-1]
11
14
  s.split(/\n/).each do |ss|
12
15
  ss.split(/[ \t]+/).each do |word|
13
16
  if line.size + word.size >= width
14
17
  lines << line
15
- line = (" " * (indent)) + word
18
+ line = (" " * (indent + extra_indent)) + word
16
19
  else
17
20
  line << " " << word
18
21
  end
@@ -23,27 +26,88 @@ def wrap(s, width=78, indent=18)
23
26
  return lines.join "\n"
24
27
  end
25
28
 
29
+ def follow(fname,io,copy,deep=0)
30
+ if copy
31
+ File.write(File.basename(fname,'.xes.yaml') + '.xes.yaml',io.read)
32
+ io.rewind
33
+ end
34
+ YAML.load_stream(io) do |e|
35
+ if name = e.dig('log','trace','cpee:name')
36
+ puts " " * deep + name + " (#{File.basename(fname,'.xes.yaml')}) - #{e.dig('log','trace','concept:name')}"
37
+ end
38
+ if e.dig('event','concept:endpoint') == 'https://centurio.work/flow/start/url/' && e.dig('event','cpee:lifecycle:transition') == 'task/instantiation'
39
+ base = e.dig('event','data','data_receiver')
40
+ val = base.dig('CPEE-INSTANCE') rescue nil
41
+ if val.nil?
42
+ val = File.basename(base)
43
+ end
44
+ uuid = base.dig('CPEE-INSTANCE-UUID') rescue nil
45
+ unless uuid
46
+ res = Typhoeus.get(File.join('https://centurio.work/flow/engine/',val,'/properties/values/attributes/uuid/'))
47
+ if res.success?
48
+ uuid = XML::Smart.string(res.body).find('string(/*)')
49
+ end
50
+ end
51
+ react File.dirname(fname) + "/#{uuid}.xes.yaml",copy,deep + 2
52
+ end
53
+ end
54
+ end
55
+
56
+ def react(name,copy=false,deep=0)
57
+ if name.nil?
58
+ help
59
+ elsif name =~ /^https?:\/\//
60
+ res = Typhoeus.get(name)
61
+ if res.success?
62
+ file = Tempfile.new('sic')
63
+ file.write(res.body)
64
+ file.rewind
65
+ follow name, file, copy, deep
66
+ file.close
67
+ file.unlink
68
+ end
69
+ elsif File.exists? name
70
+ follow name, File.open(name), copy, deep
71
+ else
72
+ help
73
+ end
74
+ end
75
+
76
+ exname = File.basename($0)
77
+
26
78
  ARGV.options { |opt|
27
79
  opt.summary_indent = ' ' * 2
28
80
  opt.summary_width = 15
29
- opt.banner = "Usage:\n#{opt.summary_indent}#{File.basename($0)} [DIR]\n"
81
+ opt.banner = "Usage:\n#{opt.summary_indent}#{exname} new [DIR] | view [URI] | copy [URI]\n"
30
82
  opt.on("Options:")
31
83
  opt.on("--help", "-h", "This text") { puts opt; exit }
32
84
  opt.on("")
33
- opt.on(wrap("[DIR] scaffolds a sample logging service. Add a handler to a cpee instance to experience the pleasure."))
85
+ opt.on(wrap("new [DIR] scaffolds a sample logging service. Add a handler to a cpee instance to experience the pleasure.",78,18,0))
86
+ opt.on("")
87
+ opt.on(wrap("view [DIR] view the dependencies between processes and subprocesses.\nWorks for local and remote logs. Examples:\n#{exname} view https://cpee.org/log/123.xes.yaml\n#{exname} view https://cpee.org/log/a.xes.yaml > index.txt\n#{exname} view ~/log/logs/456.xes.yaml"))
88
+ opt.on("")
89
+ opt.on(wrap("copy [DIR] copy dependent processes and subprocesses to the current\ndirectory. Works for local and remote logs. Examples:\n#{exname} copy https://cpee.org/log/123.xes.yaml\n#{exname} copy ~/log/logs/456.xes.yaml"))
34
90
  opt.parse!
35
91
  }
36
- if (ARGV.length != 1)
92
+ if (ARGV.length != 2)
37
93
  puts ARGV.options
38
94
  exit
39
95
  else
40
- p1 = ARGV[0]
96
+ command = ARGV[0]
97
+ dir = ARGV[1]
41
98
  end
42
99
 
43
- if !File.exists?(p1)
44
- FileUtils.cp_r(File.join(curpath,'..','server'),p1)
45
- FileUtils.mkdir(File.join(p1,'logs')) rescue nil
46
-
100
+ if command == 'new'
101
+ if !File.exists?(dir)
102
+ FileUtils.cp_r(File.join(curpath,'..','server'),dir)
103
+ FileUtils.mkdir(File.join(dir,'logs')) rescue nil
104
+ else
105
+ puts 'Directory already exists.'
106
+ end
107
+ elsif command == 'view'
108
+ react dir, false
109
+ elsif command == 'copy'
110
+ react dir, true
47
111
  else
48
- puts 'Directory already exists.'
112
+ puts ARGV.options
49
113
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cpee-logging-xes-yaml
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.0'
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juergen eTM Mangler
8
- autorequire:
8
+ - Florian Stertz
9
+ autorequire:
9
10
  bindir: tools
10
11
  cert_chain: []
11
- date: 2020-10-02 00:00:00.000000000 Z
12
+ date: 2021-11-03 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: riddl
@@ -44,20 +45,20 @@ dependencies:
44
45
  requirements:
45
46
  - - "~>"
46
47
  - !ruby/object:Gem::Version
47
- version: '1'
48
+ version: '2.1'
48
49
  - - ">="
49
50
  - !ruby/object:Gem::Version
50
- version: '1.5'
51
+ version: 2.1.4
51
52
  type: :runtime
52
53
  prerelease: false
53
54
  version_requirements: !ruby/object:Gem::Requirement
54
55
  requirements:
55
56
  - - "~>"
56
57
  - !ruby/object:Gem::Version
57
- version: '1'
58
+ version: '2.1'
58
59
  - - ">="
59
60
  - !ruby/object:Gem::Version
60
- version: '1.5'
61
+ version: 2.1.4
61
62
  description: see http://cpee.org
62
63
  email: juergen.mangler@gmail.com
63
64
  executables:
@@ -76,12 +77,11 @@ files:
76
77
  - lib/cpee-logging-xes-yaml/template.xes_yaml
77
78
  - server/log
78
79
  - tools/cpee-logging-xes-yaml
79
- - tools/sic.rb
80
80
  homepage: http://cpee.org/
81
81
  licenses:
82
82
  - LGPL-3.0
83
83
  metadata: {}
84
- post_install_message:
84
+ post_install_message:
85
85
  rdoc_options: []
86
86
  require_paths:
87
87
  - lib
@@ -96,8 +96,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
98
  requirements: []
99
- rubygems_version: 3.1.2
100
- signing_key:
99
+ rubygems_version: 3.2.22
100
+ signing_key:
101
101
  specification_version: 4
102
102
  summary: Logging for the cloud process execution engine (cpee.org)
103
103
  test_files: []
data/tools/sic.rb DELETED
@@ -1,64 +0,0 @@
1
- #!/usr/bin/ruby
2
- require 'yaml'
3
- require 'typhoeus'
4
- require 'stringio'
5
- require 'xml/smart'
6
-
7
- def follow(fname,io,deep=0)
8
- if ARGV[1] == 'copy'
9
- File.write(File.basename(fname,'.xes.yaml') + '.xes.yaml',io.read)
10
- io.rewind
11
- end
12
- YAML.load_stream(io) do |e|
13
- if name = e.dig('log','trace','cpee:name')
14
- puts " " * deep + name + " (#{File.basename(fname,'.xes.yaml')}) - #{e.dig('log','trace','concept:name')}"
15
- end
16
- if e.dig('event','concept:endpoint') == 'https://centurio.work/flow/start/url/' && e.dig('event','cpee:lifecycle:transition') == 'task/instantiation'
17
- base = e.dig('event','data','data_receiver')
18
- val = base.dig('CPEE-INSTANCE') rescue nil
19
- if val.nil?
20
- val = File.basename(base)
21
- end
22
- uuid = base.dig('CPEE-INSTANCE-UUID') rescue nil
23
- unless uuid
24
- res = Typhoeus.get(File.join('https://centurio.work/flow/engine/',val,'/properties/values/attributes/uuid/'))
25
- if res.success?
26
- uuid = XML::Smart.string(res.body).find('string(/*)')
27
- end
28
- end
29
- react File.dirname(fname) + "/#{uuid}.xes.yaml",deep + 2
30
- end
31
- end
32
- end
33
-
34
- def react(name,deep=0)
35
- if name.nil?
36
- help
37
- elsif name =~ /^https?:\/\//
38
- res = Typhoeus.get(name)
39
- if res.success?
40
- file = Tempfile.new('sic')
41
- file.write(res.body)
42
- file.rewind
43
- follow name, file, deep
44
- file.close
45
- file.unlink
46
- end
47
- elsif File.exists? name
48
- follow name, File.open(name), deep
49
- else
50
- help
51
- end
52
- end
53
-
54
- def help
55
- puts 'Views or copies log file trees to current directory.'
56
- puts
57
- puts ' View: sic.rb https://centurio.work/log/865916c6-2b18-4e9d-81d4-0fab0df248f4.xes.yaml'
58
- puts ' Copy: sic.rb https://centurio.work/log/865916c6-2b18-4e9d-81d4-0fab0df248f4.xes.yaml copy'
59
- puts ' Copy: sic.rb ~/Projects/cpee/log/logs/865916c6-2b18-4e9d-81d4-0fab0df248f4.xes.yaml copy'
60
- puts ' View: sic.rb 865916c6-2b18-4e9d-81d4-0fab0df248f4.xes.yaml'
61
- true
62
- end
63
-
64
- react(ARGV[0]) || help