apiotics 0.1.138 → 0.1.139
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/apiotics/server.rb +43 -2
- data/lib/apiotics/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 22055fe4401e0b436332e2cd3d52ae87e4cef3c0
|
4
|
+
data.tar.gz: 95d717c41a50f1d9f6e176495d29eaad844d54f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d4e76ca5970cbfb3be6746231165c11a6d29627996386751d0d53cdf358a8949a046d57609cd47047483c574ea3ff8f0d87776057e00e6cd76f92acb15879448
|
7
|
+
data.tar.gz: 9f403ce33aff3867699e5ddea4a8f67441fed980b600ed25fc94af71ee120a4d9f1fa3edaf441dc04bc09e2fe219348a85acd659fa364e704321d76ebab8b45c
|
data/lib/apiotics/server.rb
CHANGED
@@ -73,6 +73,7 @@ module Apiotics
|
|
73
73
|
else
|
74
74
|
@server = TCPSocket.open(rgs, rgs_port)
|
75
75
|
end
|
76
|
+
Server.sync_devices(nil)
|
76
77
|
@localport = Apiotics.configuration.local_port
|
77
78
|
listen_remote
|
78
79
|
@heartbeat_state = Hash.new
|
@@ -113,7 +114,7 @@ module Apiotics
|
|
113
114
|
puts "Message received: " + msg
|
114
115
|
msg_hash = Apiotics::Parse.message(msg)
|
115
116
|
#puts "Driver: " + msg_hash["driver"]
|
116
|
-
unless msg_hash["driver"] == "Core::Heartbeat" || msg_hash["error"] != nil
|
117
|
+
unless msg_hash["driver"] == "Core::Heartbeat" || msg_hash["action"] == "sync" || msg_hash["error"] != nil
|
117
118
|
r = Apiotics::Insert.new(msg_hash)
|
118
119
|
if r.valid == true
|
119
120
|
if r.action == "set-request-ack" || r.action == "set-complete" || r.action == "get-ack"
|
@@ -123,8 +124,24 @@ module Apiotics
|
|
123
124
|
end
|
124
125
|
end
|
125
126
|
end
|
126
|
-
|
127
|
+
end
|
128
|
+
if msg_hash["driver"] == "Core::Heartbeat"
|
127
129
|
monitor_heartbeat(msg_hash)
|
130
|
+
elsif msg_hash["action"] == "sync"
|
131
|
+
if Server.sync_devices(msg_hash["worker"])
|
132
|
+
sync_msg = {
|
133
|
+
"action" => "sync-ack",
|
134
|
+
"worker" => msg_hash["worker"],
|
135
|
+
"status" => "ok"
|
136
|
+
}
|
137
|
+
else
|
138
|
+
sync_msg = {
|
139
|
+
"action" => "sync-ack",
|
140
|
+
"worker" => msg_hash["worker"],
|
141
|
+
"status" => "error"
|
142
|
+
}
|
143
|
+
end
|
144
|
+
self.send(sync_msg.to_json)
|
128
145
|
end
|
129
146
|
end
|
130
147
|
rescue => e
|
@@ -214,6 +231,30 @@ module Apiotics
|
|
214
231
|
end
|
215
232
|
end
|
216
233
|
|
234
|
+
def self.sync_devices(model_name)
|
235
|
+
value = false
|
236
|
+
if model_name == nil
|
237
|
+
unless Rails.env.production?
|
238
|
+
Rails.application.eager_load!
|
239
|
+
end
|
240
|
+
models = ApplicationRecord.descendants.collect(&:name)
|
241
|
+
else
|
242
|
+
model_name = model_name + "::" + model_name
|
243
|
+
models = [model_name]
|
244
|
+
end
|
245
|
+
workers = []
|
246
|
+
models.each do |m|
|
247
|
+
if Apiotics.configuration.targets.keys.include?(m.deconstantize)
|
248
|
+
workers << m.deconstantize
|
249
|
+
end
|
250
|
+
end
|
251
|
+
workers.each do |w|
|
252
|
+
w.deconstantize.sync_devices
|
253
|
+
value = true
|
254
|
+
end
|
255
|
+
return value
|
256
|
+
end
|
257
|
+
|
217
258
|
def self.lookup
|
218
259
|
if Apiotics.configuration.tls == true
|
219
260
|
socket = TCPSocket.new(Apiotics.configuration.server, Apiotics.configuration.server_port)
|
data/lib/apiotics/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: apiotics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.139
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MicroArx Corporation
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-04-
|
11
|
+
date: 2018-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|