lex-health 0.2.0 → 0.2.1

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: 51bae536ed975da049ebfa332b71974b49d85886afed5f7c631de9c9d7c63265
4
- data.tar.gz: 9e24916e2b2d9229121c89884c7487453dd569b24ae2fb4c277dce33a615d4d5
3
+ metadata.gz: d482b0f36c50c6fb14c9aecdb9accbbc689202f4f2977a6c81cd123379aa1745
4
+ data.tar.gz: 3e980332379f3748c013eb06e22cb5cb20a8b89f028708bbb94ba05b039cf0d6
5
5
  SHA512:
6
- metadata.gz: a38f069ff4658cc951d1b4615e319daaf7e1576a285c37d4b8f3e40649caca8ce1e94e2d447a89be955d49e51238b26c3cab0b516d61caa43701eb61243c4a98
7
- data.tar.gz: e31fd840329ca93fef39026b29dd786a3e12ebd980b8aad64332d6ad30c4bde8d9be66ead9f530416f39719a9de9150646bbc49922efce43d38b6a217a3e1ab2
6
+ metadata.gz: ceb0f962def03f38956dda15300e678262a57d6cfb4e844343ea76a39b03ac49242138f9c3310cf64c10a640acdac60251db2f8d7714907893aa8656815ee29d
7
+ data.tar.gz: e1ce74c59b555aec02f12bfe35f81fa6c31789b754e0b46ac9f53767a291567e5a784f8aa246a02c6db2b4258cd99497612f354c424e020c5ad0dbf4941ad5b1
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.2.1] - 2026-03-22
4
+
5
+ ### Changed
6
+ - Add legion-cache, legion-crypt, legion-data, legion-json, legion-logging, legion-settings, legion-transport as runtime dependencies
7
+ - Replace direct Legion::JSON.dump calls with json_dump helper in runners/health.rb
8
+ - Update spec_helper with real sub-gem helper stubs
9
+
3
10
  ## [0.2.0] - 2026-03-18
4
11
 
5
12
  ### Fixed
data/README.md CHANGED
@@ -15,9 +15,9 @@ gem install lex-health
15
15
 
16
16
  ## How It Works
17
17
 
18
- The Health runner receives heartbeat messages published by `lex-node` and upserts node records in the database. It uses timestamp comparison to prevent out-of-order updates from rolling back newer status.
18
+ The Health runner receives heartbeat messages published by `lex-node` and upserts node records in the database. It uses timestamp comparison to prevent out-of-order updates from rolling back newer status. On each update it also marks all digital workers reported by the node as `online` and any workers no longer reported as `unknown`.
19
19
 
20
- The Watchdog actor runs every 5 seconds and queries for healthy nodes whose last heartbeat timestamp is older than `expire_time` seconds (default: 60 seconds). Those nodes are transitioned to `unknown` by publishing `NodeHealth` messages.
20
+ The Watchdog actor runs every 5 seconds and queries for healthy nodes whose last heartbeat timestamp is older than `expire_time` seconds (default: 60 seconds). Expired nodes are transitioned to `unknown` and all digital workers hosted on that node are marked `offline`.
21
21
 
22
22
  ## Requirements
23
23
 
data/lex-health.gemspec CHANGED
@@ -28,6 +28,14 @@ Gem::Specification.new do |spec|
28
28
  end
29
29
  spec.require_paths = ['lib']
30
30
 
31
+ spec.add_dependency 'legion-cache', '>= 1.3.11'
32
+ spec.add_dependency 'legion-crypt', '>= 1.4.9'
33
+ spec.add_dependency 'legion-data', '>= 1.4.17'
34
+ spec.add_dependency 'legion-json', '>= 1.2.1'
35
+ spec.add_dependency 'legion-logging', '>= 1.3.2'
36
+ spec.add_dependency 'legion-settings', '>= 1.3.14'
37
+ spec.add_dependency 'legion-transport', '>= 1.3.9'
38
+
31
39
  spec.add_development_dependency 'rake'
32
40
  spec.add_development_dependency 'rspec'
33
41
  spec.add_development_dependency 'rubocop'
@@ -27,8 +27,8 @@ module Legion
27
27
  end
28
28
 
29
29
  update_hash = { active: true, status: opts[:status], name: hostname, updated: Sequel::CURRENT_TIMESTAMP }
30
- update_hash[:metrics] = Legion::JSON.dump(opts[:metrics]) if opts[:metrics]
31
- update_hash[:hosted_worker_ids] = Legion::JSON.dump(opts[:hosted_worker_ids]) if opts[:hosted_worker_ids]
30
+ update_hash[:metrics] = json_dump(opts[:metrics]) if opts[:metrics]
31
+ update_hash[:hosted_worker_ids] = json_dump(opts[:hosted_worker_ids]) if opts[:hosted_worker_ids]
32
32
  update_hash[:version] = opts[:version] if opts[:version]
33
33
  item.update(update_hash)
34
34
 
@@ -41,8 +41,8 @@ module Legion
41
41
  insert = { active: true, status: status, name: hostname }
42
42
  insert[:datacenter_id] = opts[:datacenter_id] if opts.key? :datacenter_id
43
43
  insert[:environment_id] = opts[:environment_id] if opts.key? :environment_id
44
- insert[:metrics] = Legion::JSON.dump(opts[:metrics]) if opts[:metrics]
45
- insert[:hosted_worker_ids] = Legion::JSON.dump(opts[:hosted_worker_ids]) if opts[:hosted_worker_ids]
44
+ insert[:metrics] = json_dump(opts[:metrics]) if opts[:metrics]
45
+ insert[:hosted_worker_ids] = json_dump(opts[:hosted_worker_ids]) if opts[:hosted_worker_ids]
46
46
  insert[:version] = opts[:version] if opts[:version]
47
47
 
48
48
  node_id = begin
@@ -3,7 +3,7 @@
3
3
  module Legion
4
4
  module Extensions
5
5
  module Health
6
- VERSION = '0.2.0'
6
+ VERSION = '0.2.1'
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-health
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
@@ -9,6 +9,104 @@ bindir: bin
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: legion-cache
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: 1.3.11
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: 1.3.11
26
+ - !ruby/object:Gem::Dependency
27
+ name: legion-crypt
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.4.9
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 1.4.9
40
+ - !ruby/object:Gem::Dependency
41
+ name: legion-data
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 1.4.17
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 1.4.17
54
+ - !ruby/object:Gem::Dependency
55
+ name: legion-json
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 1.2.1
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: 1.2.1
68
+ - !ruby/object:Gem::Dependency
69
+ name: legion-logging
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 1.3.2
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: 1.3.2
82
+ - !ruby/object:Gem::Dependency
83
+ name: legion-settings
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 1.3.14
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 1.3.14
96
+ - !ruby/object:Gem::Dependency
97
+ name: legion-transport
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 1.3.9
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: 1.3.9
12
110
  - !ruby/object:Gem::Dependency
13
111
  name: rake
14
112
  requirement: !ruby/object:Gem::Requirement