log/elasticsearch.rb in cpee-1.4.8 vs log/elasticsearch.rb in cpee-1.4.10
- old
+ new
@@ -1,112 +1,7 @@
#!/usr/bin/ruby
-require 'pp'
-require 'json'
-require 'yaml'
-require 'rubygems'
-require 'riddl/server'
-require 'riddl/utils/fileserve'
-require 'json'
-require 'time'
+require_relative 'elasticsearch_logging'
-require 'faraday'
-require 'elasticsearch'
-require 'logger'
-
-class Logging < Riddl::Implementation #{{{
- def doc(topic,event_name,esc,template,instancenr,notification)
- uuid = notification['instance_uuid']
- return unless uuid
-
- activity = notification['activity']
- parameters = notification['parameters']
- receiving = notification['received']
-
- log = YAML::load(File.read(template))
- log["log"]["trace"]["concept:name"] ||= instancenr.to_i
- log["log"]["trace"]["cpee:name"] ||= notification['instance_name'] if notification["instance_name"]
- log["log"]["trace"]["cpee:uuid"] ||= notification['instance_uuid'] if notification["instance_uuid"]
- unless esc.indices.exists? index: 'trace'
- esc.indices.create index: 'trace', body: {
- "mappings" => {
- "entry" => {
- "properties" => {
- "concept:name" => {
- "type" => "integer"
- },
- "cpee:name" => {
- "type" => "text"
- },
- "cpee:uuid": {
- "type" => "text"
- }
- }
- }
- }
- }
- end
-
- esc.index index: 'trace', type: 'entry', id: log["log"]["trace"]["cpee:uuid"], body: log["log"]["trace"]
- p notification['attributes']
-
- event = {}
- event["trace:id"] = instancenr
- event["concept:name"] = notification["label"] if notification["label"]
- if notification["endpoint"]
- event["concept:endpoint"] = notification["endpoint"]
- end
- event["id:id"] = (activity.nil? || activity == "") ? 'external' : activity
- event["cpee:uuid"] = notification['instance_uuid'] if notification["instance_uuid"]
- case event_name
- when 'receiving', 'change'
- event["lifecycle:transition"] = "unknown"
- when 'done'
- event["lifecycle:transition"] = "complete"
- else
- event["lifecycle:transition"] = "start"
- end
- event["cpee:lifecycle:transition"] = "#{topic}/#{event_name}"
- data_send = ((parameters["arguments"].nil? ? [] : parameters["arguments"]) rescue [])
- event["list"] = {"data_send" => data_send} unless data_send.empty?
- if notification['changed']&.any?
- if event.has_key? "list"
- event["list"]["data_changed"] ||= notification['changed']
- else
- event["list"] = {"data_changer" => notification['changed']}
- end
- end
- if notification['values']&.any?
- if event.has_key? "list"
- event["list"]["data_values"] ||= notification['values']
- else
- event["list"] = {"data_values" => notification['values']}
- end
- end
- if receiving&.any?
- if event.has_key? "list"
- event["list"]["data_received"] ||= receiving
- else
- event["list"] = {"data_receiver" => receiving}
- end
- end
- event["time:timestamp"]= Time.now.iso8601
-
- iname = "instance_" + notification['instance_name'].downcase.gsub(/[^a-z]/,'_')
- esc.indices.create index: iname rescue nil
- esc.index index: iname, type: 'entry', body: event
- nil
- end
-
- def response
- topic = @p[1].value
- event_name = @p[2].value
- esc = @a[0]
- template = @a[1]
- instancenr = @h['CPEE_INSTANCE'].split('/').last
- notification = JSON.parse(@p[3].value)
- doc topic, event_name, esc, template, instancenr, notification
- end
-end #}}}
Riddl::Server.new(File.join(__dir__,'/log.xml'), :host => 'localhost', :port => 9307) do
accessible_description true
cross_site_xhr true
@riddl_opts[:template] ||= File.join(__dir__,'template.xes_yaml')