persistence-providers 0.0.2.1 → 0.0.2.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c76149a5275203cc75b1db6cc9d28abbc7c01358fe7e2bfb8fd450e7d59f170a
4
- data.tar.gz: a58841046f2ef48192a3acc83d5aaadffb49f5e566e298593cf58efd6a3d03b8
3
+ metadata.gz: 8136cc320cf5d2ad265d4a3c966a7838f1c6a1d09d13a1e5aad7143fe510ea2a
4
+ data.tar.gz: b64999cabad79d62721921049e71f8b2e45b0b4c70256aeb8d496e157ae556bb
5
5
  SHA512:
6
- metadata.gz: 36880ebea0df341c7ccfb68c969b0dea6c8b4afc8fa12476466d0e95e9087a3d6120a9d32704a9a247ec774fa27675344105d9015f863809d56c8bbd3d3e01ad
7
- data.tar.gz: 3d676eed98ab33028a7d1ec7cc371474153c1dadeed6c406c5a8bd1a21816d7137f24cd097f1baa56e2d3ffa3f7b8ea7e695edec9896284a61bd5f052550485b
6
+ metadata.gz: c2fea0ace3f115d3c1168952f6664bf1f2618df80c4f7ce6b53dae51a41f81e91c3ae452f9d11afd050e9c5a219d3537d43cadb947155aa55e53a724e11fb5ad
7
+ data.tar.gz: 8e0c57d6e478f9db48e1e548a0ada0a9974e4cf68799d5adf55f00e8f4aeac9c47cd6c26252d030df9bba4c36895c188e098db5881282ae9311861ee1fad230a
@@ -6,9 +6,9 @@ module DTK::State
6
6
 
7
7
  attr_reader :client, :measurement
8
8
 
9
- def initialize
9
+ def initialize(measurement_name)
10
10
  @client = Influxdb::Client.new('dtk')
11
- @measurement = @client.measurement_helper(:attributes)
11
+ @measurement = @client.measurement_helper(measurement_name)
12
12
  end
13
13
 
14
14
  def get(namespace, crd_component_name, component_instance_name, attribute_name, opts = {})
@@ -25,6 +25,55 @@ module DTK::State
25
25
  puts error
26
26
  end
27
27
  end
28
+
29
+ def write_event(event_id, pod_name, pod_namespace, event_source, event_message, component_name, attribute_name, task_id, timestamp)
30
+ begin
31
+ fail "Bad timestamp input, write operation wont be completed" if timestamp > Time.new
32
+ value_to_write = { event_source: event_source, event_message: event_message }
33
+ required_tags = {
34
+ event_id: event_id,
35
+ pod_name: pod_name,
36
+ pod_namespace: pod_namespace,
37
+ component_name: component_name,
38
+ attribute_name: attribute_name,
39
+ task_id: task_id
40
+ }
41
+ measurement.write(value_to_write.to_s, required_tags, timestamp)
42
+ rescue => error
43
+ puts error
44
+ end
45
+ end
46
+
47
+ def get_event(event_id, pod_name, pod_namespace, component_name, attribute_name, task_id)
48
+ required_tags = {
49
+ event_id: event_id,
50
+ pod_name: pod_name,
51
+ pod_namespace: pod_namespace,
52
+ component_name: component_name,
53
+ attribute_name: attribute_name,
54
+ task_id: task_id
55
+ }
56
+ last_point = measurement.get_last_point(required_tags)
57
+ end
58
+
59
+ def write_state(type, name, namespace, object_state, spec, status, component_name, attribute_name, task_id, timestamp)
60
+ begin
61
+ fail "Bad timestamp input, write operation wont be completed" if timestamp > Time.new
62
+ value_to_write = { spec: spec, status: status }
63
+ required_tags = {
64
+ type: type,
65
+ name: name,
66
+ namespace: namespace,
67
+ object_state: object_state,
68
+ component_name: component_name,
69
+ attribute_name: attribute_name,
70
+ task_id: task_id
71
+ }
72
+ measurement.write(value_to_write.to_s, required_tags, timestamp)
73
+ rescue => error
74
+ puts error
75
+ end
76
+ end
28
77
 
29
78
  private
30
79
 
@@ -2,6 +2,8 @@ module DTK::State
2
2
  class Component::Attribute::Influxdb
3
3
  class Measurement
4
4
  require_relative('measurement/attribute_measurement')
5
+ require_relative('measurement/events')
6
+ require_relative('measurement/states')
5
7
 
6
8
  def initialize(name, client)
7
9
  @name = name
@@ -1,7 +1,6 @@
1
1
  module DTK::State
2
2
  class Component::Attribute::Influxdb
3
3
  class Measurement
4
- # DTK Attributes measurement
5
4
  class Attributes < self
6
5
 
7
6
  def write(value, params_hash = {}, timestamp)
@@ -0,0 +1,20 @@
1
+ module DTK::State
2
+ class Component::Attribute::Influxdb
3
+ class Measurement
4
+ class Events < self
5
+
6
+ def write(value, params_hash = {}, timestamp)
7
+ checked_params_hash = check_params_hash(params_hash)
8
+ write_point(value, checked_params_hash, timestamp)
9
+ end
10
+
11
+ protected
12
+
13
+ def required_params
14
+ [:event_id, :pod_name, :pod_namespace, :component_name, :attribute_name, :task_id]
15
+ end
16
+
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ module DTK::State
2
+ class Component::Attribute::Influxdb
3
+ class Measurement
4
+ class States < self
5
+
6
+ def write(value, params_hash = {}, timestamp)
7
+ checked_params_hash = check_params_hash(params_hash)
8
+ write_point(value, checked_params_hash, timestamp)
9
+ end
10
+
11
+ protected
12
+
13
+ def required_params
14
+ [:type, :name, :namespace, :object_state, :component_name, :attribute_name, :task_id]
15
+ end
16
+
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = 'persistence-providers'
3
- spec.version = '0.0.2.1'
3
+ spec.version = '0.0.2.2'
4
4
  spec.author = 'Reactor8'
5
5
  spec.email = 'support@reactor8.com'
6
6
  spec.description = %q{Persistence providers plugin}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: persistence-providers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2.1
4
+ version: 0.0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reactor8
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-20 00:00:00.000000000 Z
11
+ date: 2020-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: kubeclient
@@ -67,6 +67,8 @@ files:
67
67
  - lib/state/component/providers/influxdb/client.rb
68
68
  - lib/state/component/providers/influxdb/measurement.rb
69
69
  - lib/state/component/providers/influxdb/measurement/attribute_measurement.rb
70
+ - lib/state/component/providers/influxdb/measurement/events.rb
71
+ - lib/state/component/providers/influxdb/measurement/states.rb
70
72
  - lib/state/component/providers/kube_crd.rb
71
73
  - lib/state/component_def.rb
72
74
  - lib/state/component_def/attribute_type_info.rb