imperituroard 0.2.5 → 0.2.7
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 +4 -4
- data/lib/imperituroard/projects/iot/add_functions.rb +3 -0
- data/lib/imperituroard/projects/iot/hua_oceanconnect_adapter.rb +57 -6
- data/lib/imperituroard/projects/iot/mongoconnector.rb +46 -4
- data/lib/imperituroard/version.rb +1 -1
- data/lib/imperituroard.rb +132 -77
- 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: 82ccb8c3495b39d57508a73c4a7d8fbdb773dda8
|
4
|
+
data.tar.gz: b9b50d62346f67480c4f25529cc05bc3857c467e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a1c07bf801f14556025427da6b5cc9de7fc72fa138735da13442314ec2ed185eb234b826e4cf0032d975c3d18f1dba1a31f95bf37447ec6b35ec212c93478b8
|
7
|
+
data.tar.gz: 2a0eddeb80e167ccfe33b1d2b25dd1281cbea7f5fda5f02da99cc714e830bb7d044efcb5d74237bd4b1259fd28716ec4881f2e9e77658fd3a61d624977ccd909
|
@@ -10,6 +10,7 @@ class AdditionalFunc
|
|
10
10
|
def initialize(telegram_api_url, telegram_chat_id)
|
11
11
|
@telegram_api_url = telegram_api_url
|
12
12
|
@telegram_chat_id = telegram_chat_id
|
13
|
+
|
13
14
|
end
|
14
15
|
|
15
16
|
#procedure for send log to telegram chat
|
@@ -113,4 +114,6 @@ class AdditionalFunc
|
|
113
114
|
end
|
114
115
|
|
115
116
|
end
|
117
|
+
|
118
|
+
|
116
119
|
end
|
@@ -11,11 +11,10 @@ class HuaIot
|
|
11
11
|
|
12
12
|
attr_accessor :platformip, :platformport, :client, :database, :cert_file, :key_file
|
13
13
|
|
14
|
-
def initialize(platformip, platformport,
|
14
|
+
def initialize(platformip, platformport, cert_file, key_file)
|
15
15
|
@database = database
|
16
16
|
@platformip = platformip
|
17
17
|
@platformport = platformport
|
18
|
-
@iotip = iotip
|
19
18
|
@cert_file = cert_file
|
20
19
|
@key_file = key_file
|
21
20
|
#client_host = [mongoip + ":" + mongoport]
|
@@ -89,10 +88,33 @@ class HuaIot
|
|
89
88
|
{:code => res.code, :message => res.message, :body => JSON.parse(res.body.to_s)}
|
90
89
|
end
|
91
90
|
|
91
|
+
#2.2.4 Registering a Directly Connected Device (Password Mode) (V2)
|
92
|
+
def dev_register_passw_code_mode2(app_id, secret, node_id, name_p, description_p, device_type, profile)
|
93
|
+
token = get_token(app_id, secret)[:body]["accessToken"]
|
94
|
+
path = "/iocm/app/reg/v2.0.0/deviceCredentials?appId=" + app_id
|
95
|
+
url_string = "https://" + platformip + ":" + platformport + path
|
96
|
+
uri = URI.parse url_string
|
97
|
+
https = Net::HTTP.new(uri.host, uri.port)
|
98
|
+
https.use_ssl = true
|
99
|
+
https.cert = OpenSSL::X509::Certificate.new(File.read(cert_file))
|
100
|
+
https.key = OpenSSL::PKey::RSA.new(File.read(key_file))
|
101
|
+
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
102
|
+
request = Net::HTTP::Post.new(uri.path)
|
103
|
+
request.content_type = 'application/json'
|
104
|
+
request['Authorization'] = 'Bearer ' + token
|
105
|
+
request['app_key'] = app_id
|
106
|
+
request.body = {deviceInfo: {nodeId: node_id, name: name_p, description: description_p, deviceType: device_type}}.to_json
|
107
|
+
res = https.request(request)
|
108
|
+
p res.body.to_s
|
109
|
+
{:code => res.code, :message => res.message, :body => JSON.parse(res.body.to_s)}
|
110
|
+
end
|
111
|
+
|
112
|
+
|
92
113
|
|
93
|
-
|
114
|
+
#2.2.12 Deleting a Directly Connected Device
|
115
|
+
def dev_delete(app_id, secret, dev_id)
|
94
116
|
token = get_token(app_id, secret)[:body]["accessToken"]
|
95
|
-
path = "/iocm/app/dm/v1.1.0/devices/" +
|
117
|
+
path = "/iocm/app/dm/v1.1.0/devices/" + dev_id + "?app_Id=" + app_id + "&cascade=true"
|
96
118
|
url_string = "https://" + platformip + ":" + platformport + path
|
97
119
|
uri = URI.parse url_string
|
98
120
|
https = Net::HTTP.new(uri.host, uri.port)
|
@@ -105,13 +127,21 @@ class HuaIot
|
|
105
127
|
request['Authorization'] = 'Bearer ' + token
|
106
128
|
request['app_key'] = app_id
|
107
129
|
res = https.request(request)
|
108
|
-
|
130
|
+
p res.code
|
131
|
+
p res.body
|
132
|
+
if res.body != nil
|
133
|
+
{:code => res.code, :message => res.message, :body => {:answ => JSON.parse(res.body.to_s)}}
|
134
|
+
else
|
135
|
+
{:code => res.code, :message => res.message, :body => {:answ => "no data"}}
|
136
|
+
end
|
137
|
+
|
109
138
|
end
|
110
139
|
|
111
140
|
|
112
141
|
#2.2.44 Querying the Device ID
|
113
142
|
def querying_device_id(app_id, secret, node_id)
|
114
143
|
token = get_token(app_id, secret)[:body]["accessToken"]
|
144
|
+
p token
|
115
145
|
path = "/iocm/app/dm/v1.1.0/queryDeviceIdByNodeId?nodeId=" + node_id
|
116
146
|
p path
|
117
147
|
p path
|
@@ -127,9 +157,9 @@ class HuaIot
|
|
127
157
|
request.content_type = 'application/json'
|
128
158
|
request['Authorization'] = 'Bearer ' + token
|
129
159
|
request['app_key'] = app_id
|
130
|
-
p request.body
|
131
160
|
res = https.request(request)
|
132
161
|
p res.body.to_s
|
162
|
+
p res.code
|
133
163
|
{:code => res.code, :message => res.message, :body => JSON.parse(res.body.to_s)}
|
134
164
|
end
|
135
165
|
|
@@ -216,8 +246,10 @@ class HuaIot
|
|
216
246
|
#2.9.6 Querying Directly Connected Devices and Their Mounted Devices in Batches
|
217
247
|
def quer_dev_direct_conn_batches(app_id, secret, dev_list)
|
218
248
|
token = get_token(app_id, secret)[:body]["accessToken"]
|
249
|
+
p token
|
219
250
|
path = "/iocm/app/dm/v1.1.0/queryDevicesByIds"
|
220
251
|
url_string = "https://" + platformip + ":" + platformport + path
|
252
|
+
p url_string
|
221
253
|
uri = URI.parse url_string
|
222
254
|
https = Net::HTTP.new(uri.host, uri.port)
|
223
255
|
https.use_ssl = true
|
@@ -235,6 +267,25 @@ class HuaIot
|
|
235
267
|
|
236
268
|
|
237
269
|
|
270
|
+
##2.10.7 Adding Members to a Device Group
|
271
|
+
|
272
|
+
|
273
|
+
##############################################################3
|
274
|
+
|
275
|
+
|
276
|
+
########final procedures###############
|
277
|
+
def add_new_device_on_huawei(app_id, secret, node_id, name_p, description_p, device_type, profile)
|
278
|
+
dev_register_passw_code_mode2(app_id, secret, node_id, name_p, description_p, device_type, profile)
|
279
|
+
end
|
280
|
+
|
281
|
+
|
282
|
+
def remove_one_device_from_iot(app_id, secret, dev_id)
|
283
|
+
dev_delete(app_id, secret, dev_id)
|
284
|
+
end
|
285
|
+
|
286
|
+
|
287
|
+
#######################################
|
288
|
+
|
238
289
|
def test()
|
239
290
|
|
240
291
|
url_string = "https://134.17.93.4:8743/iocm/app/sec/v1.1.0/login"
|
@@ -18,7 +18,7 @@ class MongoIot
|
|
18
18
|
@client = Mongo::Client.new(client_host, :database => mongo_database)
|
19
19
|
end
|
20
20
|
|
21
|
-
def audit_logger(proc_name, src_ip, input_json, output_json)
|
21
|
+
def audit_logger(proc_name, src_ip, input_json, output_json, real_ip)
|
22
22
|
begin
|
23
23
|
d = DateTime.now
|
24
24
|
current = d.strftime("%d/%m/%Y %H:%M:%S")
|
@@ -26,7 +26,7 @@ class MongoIot
|
|
26
26
|
doc = {
|
27
27
|
:proc_name => proc_name,
|
28
28
|
:date => current,
|
29
|
-
:sender => {:src_ip => src_ip},
|
29
|
+
:sender => {:src_ip => src_ip, :real_ip => real_ip},
|
30
30
|
:input_params => input_json,
|
31
31
|
:output_params => output_json
|
32
32
|
}
|
@@ -207,8 +207,32 @@ class MongoIot
|
|
207
207
|
for l in imei_list
|
208
208
|
doc = {
|
209
209
|
imei: l,
|
210
|
-
imsi: "",
|
211
|
-
msisdn: "",
|
210
|
+
imsi: "unknown",
|
211
|
+
msisdn: "unknown",
|
212
|
+
description: "test imei",
|
213
|
+
note: "second description",
|
214
|
+
profile: 0,
|
215
|
+
type: 0,
|
216
|
+
address: "unknown"
|
217
|
+
}
|
218
|
+
result = collection.insert_one(l)
|
219
|
+
p result
|
220
|
+
end
|
221
|
+
rescue
|
222
|
+
continue
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
|
227
|
+
def imei_insert_list2(imei_list)
|
228
|
+
begin
|
229
|
+
collection = client[:device_imei]
|
230
|
+
p imei_list
|
231
|
+
for l in imei_list
|
232
|
+
doc = {
|
233
|
+
imei: l,
|
234
|
+
imsi: "unknown",
|
235
|
+
msisdn: "unknown",
|
212
236
|
description: "test imei",
|
213
237
|
note: "second description",
|
214
238
|
profile: 0,
|
@@ -308,6 +332,24 @@ class MongoIot
|
|
308
332
|
end
|
309
333
|
|
310
334
|
|
335
|
+
def get_iot_oceanconnect_credent(login)
|
336
|
+
begin
|
337
|
+
result_ps = []
|
338
|
+
collection = client[:users]
|
339
|
+
collection.find({"login" => login}).each {|row|
|
340
|
+
result_ps.append(row)
|
341
|
+
}
|
342
|
+
p result_ps[0]
|
343
|
+
app_id = result_ps[0][:iot_data][:app_id]
|
344
|
+
secret = result_ps[0][:iot_data][:secret]
|
345
|
+
return {:code => 200, :result => "get_iot_oceanconnect_credent: Request completed successfully", :body => {:app_id => app_id, :secret => secret}}
|
346
|
+
rescue
|
347
|
+
{:code => 500, :result => "get_iot_oceanconnect_credent: Process failed"}
|
348
|
+
end
|
349
|
+
|
350
|
+
end
|
351
|
+
|
352
|
+
|
311
353
|
def ttt
|
312
354
|
p "111111"
|
313
355
|
begin
|
data/lib/imperituroard.rb
CHANGED
@@ -88,17 +88,19 @@ class Iot
|
|
88
88
|
attr_accessor :mongoip,
|
89
89
|
:mongoport,
|
90
90
|
:iotip,
|
91
|
-
:iottoken,
|
92
91
|
:mongo_database,
|
93
92
|
:iotplatform_ip,
|
94
93
|
:iotplatform_port,
|
95
94
|
:cert_path,
|
96
95
|
:key_path,
|
97
96
|
:mongo_client,
|
98
|
-
:add_functions_connector
|
97
|
+
:add_functions_connector,
|
98
|
+
:real_ip, #real ip address of procedure caller
|
99
|
+
:remote_ip, #ip address of balancer
|
100
|
+
:hua_aceanconnect_connector
|
99
101
|
|
100
102
|
def initialize(mongoip, mongoport, iotip, mongo_database,
|
101
|
-
iotplatform_ip, iotplatform_port, cert_path, key_path, telegram_api_url, telegram_chat_id)
|
103
|
+
iotplatform_ip, iotplatform_port, cert_path, key_path, telegram_api_url, telegram_chat_id, real_ip, remote_ip)
|
102
104
|
@mongoip = mongoip
|
103
105
|
@mongoport = mongoport
|
104
106
|
@iotip = iotip
|
@@ -109,6 +111,9 @@ class Iot
|
|
109
111
|
@key_path = key_path
|
110
112
|
@mongo_client = MongoIot.new(mongoip, mongoport, mongo_database)
|
111
113
|
@add_functions_connector = AdditionalFunc.new(telegram_api_url, telegram_chat_id)
|
114
|
+
@real_ip = real_ip
|
115
|
+
@remote_ip = remote_ip
|
116
|
+
@hua_aceanconnect_connector = HuaIot.new(iotplatform_ip, iotplatform_port, cert_path, key_path)
|
112
117
|
end
|
113
118
|
|
114
119
|
#error list
|
@@ -117,15 +122,16 @@ class Iot
|
|
117
122
|
#{:code => 200, :result => "Request completed successfully", :body => result_ps}
|
118
123
|
|
119
124
|
|
120
|
-
|
125
|
+
#!!1. Add device to profile (only for new device)
|
121
126
|
#login - login for client identification
|
122
127
|
#profile - profile for device
|
123
128
|
#imei_list - device identificator
|
124
|
-
#imei_list = [{"imei" => 131234123412341233, "description" => "dfdsf", "note"=>"second description", "profile"=>0},
|
129
|
+
#imei_list = [{"imei" => 131234123412341233, "description" => "dfdsf", "note"=>"second description", "profile"=>0, "device_type"=>"phone"},
|
125
130
|
#{"imei" => 56213126347645784, "description" => "dfdsf", "note"=>"second description", "profile"=>0}]
|
126
131
|
#massive commands
|
127
|
-
|
128
|
-
|
132
|
+
#+++
|
133
|
+
#iot logic added
|
134
|
+
def add_device_to_profile(login, imei_list)
|
129
135
|
input_json = {:login => login, :imei_list => imei_list}
|
130
136
|
resp_out = {}
|
131
137
|
begin
|
@@ -150,8 +156,6 @@ class Iot
|
|
150
156
|
begin
|
151
157
|
get_login_info = mongo_client.check_login_prof_perm_id_one(login, list1[jj]["profile"])[:code]
|
152
158
|
if get_login_info==200
|
153
|
-
|
154
|
-
|
155
159
|
for_insert.append(list1[jj])
|
156
160
|
else
|
157
161
|
not_processed_list.append({:imei => list1[jj], :error => "Permission denied for this profile"})
|
@@ -162,15 +166,40 @@ class Iot
|
|
162
166
|
end
|
163
167
|
|
164
168
|
begin
|
169
|
+
added_on_iot_platf = []
|
165
170
|
if for_insert!=[]
|
166
171
|
##Logic for IOT Platform connection###
|
167
172
|
|
168
|
-
|
173
|
+
credentials = mongo_client.get_iot_oceanconnect_credent(login)
|
174
|
+
|
175
|
+
if credentials[:code]==200
|
176
|
+
for aaa in for_insert
|
177
|
+
begin
|
178
|
+
dev_name = aaa["imei"].to_s
|
179
|
+
resss = hua_aceanconnect_connector.add_new_device_on_huawei(credentials[:body][:app_id], credentials[:body][:secret], aaa["imei"], dev_name, aaa["description"], aaa["device_type"], aaa["profile"])
|
180
|
+
if resss[:code]=="200"
|
181
|
+
s1 = aaa
|
182
|
+
s1[:huadata] = resss
|
183
|
+
added_on_iot_platf.append(s1)
|
184
|
+
else
|
185
|
+
not_processed_list.append({:imei => aaa["imei"], :error => resss})
|
186
|
+
end
|
187
|
+
rescue
|
188
|
+
not_processed_list.append({:imei => aaa["imei"], :error => "Unknown error with insertion imei on IOT platform"})
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
#########end iot platform logic#######
|
193
|
+
|
194
|
+
mongo_client.imei_insert_list(added_on_iot_platf)
|
195
|
+
resp_out = {:code => 200, :result => "Data processed", :body => {:imei_processed => added_on_iot_platf, :error_list => not_processed_list}}
|
196
|
+
else
|
197
|
+
resp_out = {:code => 400, :result => "IOT platform credentials not found"}
|
198
|
+
end
|
199
|
+
|
169
200
|
|
170
|
-
mongo_client.imei_insert_list(for_insert)
|
171
|
-
resp_out = {:code => 200, :result => "Data processed", :body => {:imei_processed => for_insert, :error_list => not_processed_list}}
|
172
201
|
else
|
173
|
-
resp_out = {:code => 202, :result => "Nothing for insertion", :body => {:imei_processed =>
|
202
|
+
resp_out = {:code => 202, :result => "Nothing for insertion", :body => {:imei_processed => added_on_iot_platf, :error_list => not_processed_list}}
|
174
203
|
|
175
204
|
end
|
176
205
|
rescue
|
@@ -181,19 +210,19 @@ class Iot
|
|
181
210
|
resp_out = {:code => 507, :result => "Unknown SDK error"}
|
182
211
|
end
|
183
212
|
thr1.join
|
184
|
-
mongo_client.audit_logger("add_device_to_profile", remote_ip, input_json, resp_out)
|
213
|
+
mongo_client.audit_logger("add_device_to_profile", remote_ip, input_json, resp_out, real_ip)
|
185
214
|
resp_out
|
186
215
|
end
|
187
216
|
|
188
217
|
|
189
|
-
|
218
|
+
#!!2 Find device (only mongo datebase. IOT platform not need)
|
190
219
|
# procedure for data selection from mongo database.
|
191
220
|
# for this function IOT platform not need
|
192
221
|
# login
|
193
222
|
# imei
|
194
223
|
# imei_list =[41234,23452345,132412]
|
195
224
|
#++
|
196
|
-
def device_find(login, imei_list
|
225
|
+
def device_find(login, imei_list)
|
197
226
|
input_json = {:login => login, :imei_list => imei_list}
|
198
227
|
ime_list_approved = []
|
199
228
|
ime_list_notapproved = []
|
@@ -236,7 +265,7 @@ class Iot
|
|
236
265
|
resp = {:code => 507, :result => "Unknown SDK error"}
|
237
266
|
end
|
238
267
|
thr2.join
|
239
|
-
mongo_client.audit_logger("device_find", remote_ip, input_json, resp)
|
268
|
+
mongo_client.audit_logger("device_find", remote_ip, input_json, resp, real_ip)
|
240
269
|
resp
|
241
270
|
end
|
242
271
|
|
@@ -247,7 +276,7 @@ class Iot
|
|
247
276
|
#massive commands
|
248
277
|
#im_list = [{"imei_old"=>7967843245667, "imei_new"=>7967843245665}]
|
249
278
|
#++
|
250
|
-
def imei_replace(login, im_list
|
279
|
+
def imei_replace(login, im_list)
|
251
280
|
input_json = {:login => login, :imei_list => im_list}
|
252
281
|
|
253
282
|
li_new_imei = []
|
@@ -296,6 +325,8 @@ class Iot
|
|
296
325
|
|
297
326
|
##Logic for IOT Platform connection###
|
298
327
|
|
328
|
+
remove_one_device_from_iot(app_id, secret, dev_id)
|
329
|
+
|
299
330
|
#########end iot platform logic#######
|
300
331
|
|
301
332
|
mongo_client.device_modify_any_attr_mongo(list1[a], {:imei => a})
|
@@ -328,56 +359,79 @@ class Iot
|
|
328
359
|
end
|
329
360
|
|
330
361
|
thr3.join
|
331
|
-
mongo_client.audit_logger("imei_replace", remote_ip, input_json, resp_out)
|
362
|
+
mongo_client.audit_logger("imei_replace", remote_ip, input_json, resp_out, real_ip)
|
332
363
|
|
333
364
|
resp_out
|
334
365
|
|
335
366
|
end
|
336
367
|
|
337
368
|
|
338
|
-
|
369
|
+
#!!4 remove device
|
339
370
|
#login
|
340
371
|
#imei
|
341
372
|
# not massive commands
|
342
373
|
#imei=11341341234
|
343
374
|
#login="test"
|
344
|
-
|
345
|
-
|
375
|
+
#+++
|
376
|
+
#IOT logic added
|
377
|
+
def device_remove(login, imei)
|
346
378
|
|
347
379
|
input_json = {:login => login, :imei_list => imei}
|
348
380
|
resp_out = {}
|
349
381
|
|
350
382
|
begin
|
351
383
|
thr4 = Thread.new do
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
384
|
+
prof_name = mongo_client.get_profile_name_from_imei(imei)
|
385
|
+
if prof_name[:code]==200
|
386
|
+
permiss = mongo_client.check_login_profile_permiss(login, prof_name[:body]["profile"])
|
387
|
+
if permiss[:code]==200
|
388
|
+
|
389
|
+
##Logic for IOT Platform connection###
|
390
|
+
|
391
|
+
|
392
|
+
credentials = mongo_client.get_iot_oceanconnect_credent(login)
|
393
|
+
resp = {}
|
356
394
|
|
357
|
-
|
395
|
+
if credentials[:code]==200
|
358
396
|
|
359
|
-
|
397
|
+
imei_data = mongo_client.get_imei_info_from_db([imei])
|
398
|
+
if imei_data[:body]!=[]
|
399
|
+
ans = hua_aceanconnect_connector.remove_one_device_from_iot(credentials[:body][:app_id], credentials[:body][:secret], imei_data[:body][0]["huadata"]["body"]["deviceId"])
|
400
|
+
p ans
|
401
|
+
if ans[:code]=="204" or ans[:code]=="200"
|
402
|
+
resp = mongo_client.device_remove_single_mongo(imei)
|
403
|
+
else
|
404
|
+
resp = {:code => 500, :result => "Unknown IOT platform error", :body => ans}
|
405
|
+
end
|
406
|
+
else
|
407
|
+
resp_out = {:code => 404, :result => "Data not found"}
|
408
|
+
end
|
360
409
|
|
361
|
-
|
410
|
+
#########end iot platform logic#######
|
411
|
+
|
412
|
+
if resp[:code]==200
|
413
|
+
resp_out = {:code => 200, :result => "Request completed successfully"}
|
414
|
+
else
|
415
|
+
resp_out=resp
|
416
|
+
end
|
417
|
+
|
418
|
+
else
|
419
|
+
resp_out = {:code => 400, :result => "IOT platform credentials not found"}
|
420
|
+
end
|
362
421
|
|
363
|
-
if resp[:code]==200
|
364
|
-
resp_out = {:code => 200, :result => "Request completed successfully"}
|
365
422
|
else
|
366
|
-
resp_out=
|
423
|
+
resp_out=permiss
|
367
424
|
end
|
368
425
|
else
|
369
|
-
resp_out=
|
426
|
+
resp_out=prof_name
|
370
427
|
end
|
371
|
-
else
|
372
|
-
resp_out=prof_name
|
373
|
-
end
|
374
428
|
end
|
375
429
|
|
376
430
|
rescue
|
377
431
|
resp_out = {:code => 507, :result => "Unknown SDK error"}
|
378
432
|
end
|
379
433
|
thr4.join
|
380
|
-
mongo_client.audit_logger("device_remove", remote_ip, input_json, resp_out)
|
434
|
+
mongo_client.audit_logger("device_remove", remote_ip, input_json, resp_out, real_ip)
|
381
435
|
resp_out
|
382
436
|
end
|
383
437
|
|
@@ -388,7 +442,7 @@ class Iot
|
|
388
442
|
#address = newdevice_list
|
389
443
|
#newdevice_list=[{:imei=>7967843245665, :address=>"Golubeva51"}]
|
390
444
|
#++
|
391
|
-
def device_add_address(login, newdevice_list
|
445
|
+
def device_add_address(login, newdevice_list)
|
392
446
|
#add_functions_connector.telegram_message(newdevice_list.to_s)
|
393
447
|
p newdevice_list
|
394
448
|
p "gas"
|
@@ -400,43 +454,43 @@ class Iot
|
|
400
454
|
processed = []
|
401
455
|
begin
|
402
456
|
thr5 = Thread.new do
|
403
|
-
|
404
|
-
|
457
|
+
for p in newdevice_list
|
458
|
+
prof_name = mongo_client.get_profile_name_from_imei(p[:imei])
|
405
459
|
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
460
|
+
if prof_name[:code]==200
|
461
|
+
p "prof_name"
|
462
|
+
p prof_name
|
463
|
+
permiss = mongo_client.check_login_profile_permiss(login, prof_name[:body]["profile"])
|
464
|
+
if permiss[:code]==200
|
411
465
|
|
412
|
-
|
466
|
+
##Logic for IOT Platform connection###
|
413
467
|
|
414
|
-
|
468
|
+
#########end iot platform logic#######
|
415
469
|
|
416
470
|
|
417
|
-
|
418
|
-
|
419
|
-
|
471
|
+
resp = mongo_client.device_modify_attr_mongo(p[:imei], p[:address])
|
472
|
+
if resp[:code]==200
|
473
|
+
processed.append({:imei => p[:imei]})
|
474
|
+
end
|
475
|
+
else
|
476
|
+
not_processed.append({:imei => p[:imei], :address => p[:address], :error => permiss})
|
420
477
|
end
|
421
478
|
else
|
422
|
-
not_processed.append({:imei=>p[:imei], :address=>p[:address], :error=>
|
479
|
+
not_processed.append({:imei => p[:imei], :address => p[:address], :error => prof_name})
|
423
480
|
end
|
424
|
-
else
|
425
|
-
not_processed.append({:imei=>p[:imei], :address=>p[:address], :error=>prof_name})
|
426
481
|
end
|
427
|
-
end
|
428
482
|
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
483
|
+
if processed!=[]
|
484
|
+
resp_out = {:code => 200, :result => "Request completed successfully", :body => {:imei_processed => processed, :error_list => not_processed}}
|
485
|
+
else
|
486
|
+
resp_out = {:code => 202, :result => "Nothing processed", :body => {:imei_processed => processed, :error_list => not_processed}}
|
487
|
+
end
|
434
488
|
end
|
435
489
|
rescue
|
436
490
|
resp_out = {:code => 507, :result => "Unknown SDK error"}
|
437
491
|
end
|
438
492
|
thr5.join
|
439
|
-
mongo_client.audit_logger("device_add_address", remote_ip, input_json, resp_out)
|
493
|
+
mongo_client.audit_logger("device_add_address", remote_ip, input_json, resp_out, real_ip)
|
440
494
|
resp_out
|
441
495
|
end
|
442
496
|
|
@@ -448,7 +502,7 @@ class Iot
|
|
448
502
|
#msisdn
|
449
503
|
#newdevice_list=[{:imei=>7967843245665, :attributes=>{:address=>"Golubeva51", :profile=>"wqeqcqeqwev", :msisdn=>375298766719, :imsi=>25702858586756875}}]
|
450
504
|
#+
|
451
|
-
def add_service(login, device_list
|
505
|
+
def add_service(login, device_list)
|
452
506
|
resp_out = {}
|
453
507
|
not_processed = []
|
454
508
|
processed = []
|
@@ -493,7 +547,7 @@ class Iot
|
|
493
547
|
processed.append(g["imei"])
|
494
548
|
|
495
549
|
else
|
496
|
-
not_processed.append({:imei=>g["imei"], :description=> "New profile permission error", :error=>permiss2
|
550
|
+
not_processed.append({:imei => g["imei"], :description => "New profile permission error", :error => permiss2})
|
497
551
|
end
|
498
552
|
|
499
553
|
else
|
@@ -503,14 +557,12 @@ class Iot
|
|
503
557
|
processed.append(g["imei"])
|
504
558
|
|
505
559
|
end
|
506
|
-
|
507
|
-
|
508
560
|
else
|
509
|
-
not_processed.append({:imei=>g["imei"], :description=> "Old profile permission error", :error=>permiss1
|
561
|
+
not_processed.append({:imei => g["imei"], :description => "Old profile permission error", :error => permiss1})
|
510
562
|
end
|
511
563
|
|
512
564
|
else
|
513
|
-
not_processed.append({:imei=>g["imei"]
|
565
|
+
not_processed.append({:imei => g["imei"], :error => prof_name1})
|
514
566
|
end
|
515
567
|
|
516
568
|
end
|
@@ -519,7 +571,7 @@ class Iot
|
|
519
571
|
rescue
|
520
572
|
resp_out = {:code => 507, :result => "Unknown SDK error"}
|
521
573
|
end
|
522
|
-
mongo_client.audit_logger("device_remove", remote_ip, input_json, resp_out)
|
574
|
+
mongo_client.audit_logger("device_remove", remote_ip, input_json, resp_out, real_ip)
|
523
575
|
resp_out
|
524
576
|
end
|
525
577
|
|
@@ -529,8 +581,8 @@ class Iot
|
|
529
581
|
end
|
530
582
|
|
531
583
|
|
532
|
-
def logger_to_audit_database(proc_name, src_ip, input_json, output_json)
|
533
|
-
mongo_client.audit_logger(proc_name, src_ip, input_json, output_json)
|
584
|
+
def logger_to_audit_database(proc_name, src_ip, input_json, output_json, real_ip)
|
585
|
+
mongo_client.audit_logger(proc_name, src_ip, input_json, output_json, real_ip)
|
534
586
|
end
|
535
587
|
|
536
588
|
|
@@ -541,14 +593,15 @@ class Iot
|
|
541
593
|
ff = [131234123412341233, 131234123127341233]
|
542
594
|
#ddd.get_imsi_info_from_db(ff)
|
543
595
|
|
544
|
-
p ddd.get_profile_id_by_name("1341241")
|
596
|
+
#p ddd.get_profile_id_by_name("1341241")
|
597
|
+
p ddd.get_iot_oceanconnect_credent("test")
|
545
598
|
end
|
546
599
|
|
547
600
|
|
548
601
|
def testhua()
|
549
602
|
cert_file = cert_path
|
550
603
|
key_file = key_path
|
551
|
-
ddd1 = HuaIot.new(iotplatform_ip, iotplatform_port,
|
604
|
+
ddd1 = HuaIot.new(iotplatform_ip, iotplatform_port, cert_file, key_file)
|
552
605
|
#p ddd1.dev_register_verif_code_mode("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", "7521234165452")
|
553
606
|
#ddd1.querying_device_id("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", "a8834c5e-4b4d-4f0f-ad87-14e916f3d0bb")
|
554
607
|
#ddd1.querying_device_activ_status("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", "7521234165452")
|
@@ -556,14 +609,16 @@ class Iot
|
|
556
609
|
list = ["41c0ba82-d771-4669-b766-fcbfbedc17f4", "7521234165452", "feb9c4d1-4944-4b04-a717-df87dfde30f7", "9868e121-c309-4f4f-8ab3-0aa69072caff", "b3b82f35-0723-4a83-90af-d4ea40017194"]
|
557
610
|
#p ddd1.querying_device_direct_conn("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", list)
|
558
611
|
#p ddd1.querying_device_type_list("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa")
|
559
|
-
#
|
560
|
-
#p ddd1.dev_register_verif_code_mode("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", "
|
561
|
-
|
562
|
-
p ddd1.quer_dev_direct_conn_batches("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", ["62c5f5ef-dead-48bf-9f09-292ca5e41577", "4c763ea1-be51-4eff-81db-863bc04791bb"])
|
612
|
+
# ddd1.querying_device_id("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", "7521234165452")
|
613
|
+
#p ddd1.dev_register_verif_code_mode("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", "45324523452345")
|
563
614
|
|
564
|
-
|
615
|
+
p devtestid = ddd1.dev_register_passw_code_mode2("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", "24235455", "test", "test", "phone", "0")
|
616
|
+
p ddd1.quer_dev_direct_conn_batches("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", [devtestid[:body]["deviceId"], "4c763ea1-be51-4eff-81db-863bc04791bb"])
|
565
617
|
|
566
|
-
#ddd1.
|
618
|
+
#p ddd1.querying_device_info("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", "c6e0dfb1-8042-472a-a35d-e984f118d2a6")
|
619
|
+
p "delete start"
|
620
|
+
p ddd1.dev_delete("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", devtestid[:body]["deviceId"])
|
621
|
+
#p ddd1.dev_delete("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", "2881a9cc-cb2a-4b59-8fac-de3aace2324d")
|
567
622
|
end
|
568
623
|
|
569
624
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: imperituroard
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dzmitry Buynovskiy
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-04-
|
11
|
+
date: 2020-04-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|