imperituroard 0.5.4 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/imperituroard.gemspec +3 -0
- data/lib/.DS_Store +0 -0
- data/lib/imperituroard.rb +103 -72
- data/lib/imperituroard/.DS_Store +0 -0
- data/lib/imperituroard/platforms/cps/cps_multiple_thread_req.rb +0 -0
- data/lib/imperituroard/platforms/staros/get_data_ssh.rb +54 -0
- data/lib/imperituroard/platforms/staros/staros_automation.rb +95 -0
- data/lib/imperituroard/platforms/staros/staros_automation_fun.rb +37 -0
- data/lib/imperituroard/platforms/staros/staros_parser.rb +141 -0
- data/lib/imperituroard/projects/dns.rb +1 -1
- data/lib/imperituroard/projects/iot.rb +189 -30
- data/lib/imperituroard/projects/iot/hua_oceanconnect_adapter.rb +22 -8
- data/lib/imperituroard/projects/iot/mongoconnector.rb +177 -2
- data/lib/imperituroard/projects/mhub.rb +2 -0
- data/lib/imperituroard/projects/mhub/infobip.rb +1 -1
- data/lib/imperituroard/projects/mhub/sk.rb +171 -157
- data/lib/imperituroard/projects/mhub/subs/dabrab/dabrab_proced.rb +124 -12
- data/lib/imperituroard/projects/ukaz60.rb +140 -0
- data/lib/imperituroard/projects/{dns/ukaz60 → ukaz60}/belgim.rb +48 -9
- data/lib/imperituroard/projects/{dns/ukaz60 → ukaz60}/dns.rb +0 -0
- data/lib/imperituroard/projects/{dns/ukaz60 → ukaz60}/dns_update.rb +2 -0
- data/lib/imperituroard/projects/{dns/ukaz60 → ukaz60}/fortigate.rb +43 -4
- data/lib/imperituroard/projects/ukaz60/staros.rb +141 -0
- data/lib/imperituroard/projects/{dns/ukaz60 → ukaz60}/ukaz60_add_func.rb +159 -4
- data/lib/imperituroard/version.rb +1 -1
- metadata +28 -8
- data/lib/imperituroard/projects/dns/ukaz60.rb +0 -85
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 281f0e9ae37d21c88b14fc21bbb23b7d80534b6a
|
4
|
+
data.tar.gz: 5b98866616ea7d1e15f4cffbafa47cdc09cedfff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 592995920474f0879d5844f0d1390ba666754e741c13e6268d49ff1ba48d9015991e0b9c851620aefd625c48f9cbf1842a521cf01fddaffa11b837d4fa949661
|
7
|
+
data.tar.gz: 3b77fac313a17855d2e03d7d3004aab342c1dba4647d0ac4b2693189a743fd3b324aa604d6594df33b014bb8345a21defaca0ecc2d2e8ce6a5a933c447ec17aa
|
data/imperituroard.gemspec
CHANGED
@@ -10,6 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.description = %q{Gem from imperituroard for different actions}
|
11
11
|
spec.homepage = "https://rubygems.org/"
|
12
12
|
spec.license = "MIT"
|
13
|
+
|
13
14
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
|
14
15
|
|
15
16
|
spec.metadata["allowed_push_host"] = "https://rubygems.org/"
|
@@ -51,4 +52,6 @@ Gem::Specification.new do |spec|
|
|
51
52
|
spec.add_dependency "simpleidn", "0.1.1"
|
52
53
|
spec.add_dependency "net-scp", "3.0.0"
|
53
54
|
|
55
|
+
spec.add_dependency "rails", "5.0.7.2"
|
56
|
+
|
54
57
|
end
|
data/lib/.DS_Store
CHANGED
Binary file
|
data/lib/imperituroard.rb
CHANGED
@@ -5,6 +5,7 @@ $LOAD_PATH.unshift File.expand_path("../projects/mhub/subs/dabrab", __dir__)
|
|
5
5
|
$LOAD_PATH.unshift File.expand_path("../platforms/cps", __dir__)
|
6
6
|
$LOAD_PATH.unshift File.expand_path("../platforms/public", __dir__)
|
7
7
|
$LOAD_PATH.unshift File.expand_path("../projects", __dir__)
|
8
|
+
$LOAD_PATH.unshift File.expand_path("../projects/dns", __dir__)
|
8
9
|
|
9
10
|
|
10
11
|
require "imperituroard/version"
|
@@ -23,6 +24,8 @@ require 'imperituroard/projects/iot'
|
|
23
24
|
require 'imperituroard/projects/dns'
|
24
25
|
require 'imperituroard/platforms/cps/qps_connector'
|
25
26
|
require 'imperituroard/platforms/public/telegram'
|
27
|
+
require 'imperituroard/projects/ukaz60'
|
28
|
+
|
26
29
|
require 'json'
|
27
30
|
require 'ipaddr'
|
28
31
|
require 'date'
|
@@ -104,42 +107,47 @@ class Pipam
|
|
104
107
|
end
|
105
108
|
|
106
109
|
class Iot
|
107
|
-
attr_accessor :
|
108
|
-
:mongoport,
|
109
|
-
:iotip,
|
110
|
-
:mongo_database,
|
111
|
-
:iotplatform_ip,
|
112
|
-
:iotplatform_port,
|
113
|
-
:cert_path,
|
114
|
-
:key_path,
|
110
|
+
attr_accessor :param_all,
|
115
111
|
:mongo_client,
|
116
112
|
:add_functions_connector,
|
117
|
-
|
118
|
-
|
113
|
+
#:real_ip, #real ip address of procedure caller
|
114
|
+
#:remote_ip, #ip address of balancer
|
119
115
|
:hua_aceanconnect_connector,
|
120
116
|
:internal_func,
|
121
117
|
:iot_connector
|
122
118
|
|
123
|
-
def initialize(mongoip,
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
119
|
+
def initialize(mongoip,
|
120
|
+
mongoport,
|
121
|
+
iotip,
|
122
|
+
mongo_database,
|
123
|
+
iotplatform_ip,
|
124
|
+
iotplatform_port,
|
125
|
+
cert_path,
|
126
|
+
key_path,
|
127
|
+
telegram_api_url,
|
128
|
+
telegram_chat_id
|
129
|
+
#real_ip,
|
130
|
+
#remote_ip
|
131
|
+
)
|
132
|
+
@param_all = {:mongoip => mongoip,
|
133
|
+
:mongoport => mongoport,
|
134
|
+
:iotip => iotip,
|
135
|
+
:mongo_database => mongo_database,
|
136
|
+
:iotplatform_ip => iotplatform_ip,
|
137
|
+
:cert_path => cert_path,
|
138
|
+
:key_path => key_path
|
139
|
+
}
|
140
|
+
@mongo_client = MongoIot.new(param_all[:mongoip], param_all[:mongoport], param_all[:mongo_database])
|
134
141
|
@add_functions_connector = AdditionalFunc.new(telegram_api_url, telegram_chat_id)
|
135
|
-
|
136
|
-
|
137
|
-
@hua_aceanconnect_connector = HuaIot.new(iotplatform_ip, iotplatform_port, cert_path, key_path)
|
142
|
+
#@real_ip = real_ip
|
143
|
+
#@remote_ip = remote_ip
|
144
|
+
@hua_aceanconnect_connector = HuaIot.new(iotplatform_ip, iotplatform_port, cert_path, key_path, param_all[:mongoip], param_all[:mongoport], param_all[:mongo_database])
|
138
145
|
@internal_func = InternalFunc.new
|
139
|
-
@iot_connector = IotFunctions_2.new(mongoip, mongoport, iotip, mongo_database,
|
140
|
-
iotplatform_ip, iotplatform_port, cert_path, key_path, telegram_api_url, telegram_chat_id
|
146
|
+
@iot_connector = IotFunctions_2.new(param_all[:mongoip], param_all[:mongoport], iotip, param_all[:mongo_database],
|
147
|
+
iotplatform_ip, iotplatform_port, cert_path, key_path, telegram_api_url, telegram_chat_id)
|
141
148
|
end
|
142
149
|
|
150
|
+
|
143
151
|
#error list
|
144
152
|
|
145
153
|
#:code => 507, :result => "Unknown SDK error"
|
@@ -154,8 +162,8 @@ class Iot
|
|
154
162
|
#massive commands
|
155
163
|
#+++
|
156
164
|
#iot logic added
|
157
|
-
def add_device_to_profile(login, imei_list)
|
158
|
-
iot_connector.add_device_to_prof_2(login, imei_list)
|
165
|
+
def add_device_to_profile(login, imei_list, real_ip, remote_ip)
|
166
|
+
iot_connector.add_device_to_prof_2(login, imei_list, real_ip, remote_ip)
|
159
167
|
end
|
160
168
|
|
161
169
|
|
@@ -166,8 +174,8 @@ class Iot
|
|
166
174
|
# imei
|
167
175
|
# imei_list =[41234,23452345,132412]
|
168
176
|
#++
|
169
|
-
def device_find(login, imei_list)
|
170
|
-
iot_connector.device_find_2(login, imei_list)
|
177
|
+
def device_find(login, imei_list, real_ip, remote_ip)
|
178
|
+
iot_connector.device_find_2(login, imei_list, real_ip, remote_ip)
|
171
179
|
end
|
172
180
|
|
173
181
|
#!3 device modify, change imei
|
@@ -177,8 +185,8 @@ class Iot
|
|
177
185
|
#massive commands
|
178
186
|
#im_list = [{"imei_old"=>7967843245667, "imei_new"=>7967843245665}]
|
179
187
|
#++
|
180
|
-
def imei_replace(login, im_list)
|
181
|
-
iot_connector.imei_replace_2(login, im_list)
|
188
|
+
def imei_replace(login, im_list, real_ip, remote_ip)
|
189
|
+
iot_connector.imei_replace_2(login, im_list, real_ip, remote_ip)
|
182
190
|
end
|
183
191
|
|
184
192
|
#!!4 remove device
|
@@ -189,8 +197,8 @@ class Iot
|
|
189
197
|
#login="test"
|
190
198
|
#+++
|
191
199
|
#IOT logic added
|
192
|
-
def device_remove(login, imei)
|
193
|
-
iot_connector.device_remove_2(login, imei)
|
200
|
+
def device_remove(login, imei, real_ip, remote_ip)
|
201
|
+
iot_connector.device_remove_2(login, imei, real_ip, remote_ip)
|
194
202
|
end
|
195
203
|
|
196
204
|
|
@@ -201,8 +209,8 @@ class Iot
|
|
201
209
|
#newdevice_list=[{:imei=>7967843245665, :address=>"Golubeva51"}]
|
202
210
|
#+++
|
203
211
|
#iot platform integration completed
|
204
|
-
def device_add_address(login, newdevice_list)
|
205
|
-
iot_connector.device_add_address_2(login, newdevice_list)
|
212
|
+
def device_add_address(login, newdevice_list, real_ip, remote_ip)
|
213
|
+
iot_connector.device_add_address_2(login, newdevice_list, real_ip, remote_ip)
|
206
214
|
end
|
207
215
|
|
208
216
|
#6 add service by SPA
|
@@ -212,38 +220,42 @@ class Iot
|
|
212
220
|
#msisdn
|
213
221
|
#newdevice_list=[{:imei=>7967843245665, :attributes=>{:address=>"Golubeva51", :profile=>"wqeqcqeqwev", :msisdn=>375298766719, :imsi=>25702858586756875}}]
|
214
222
|
#+
|
215
|
-
def add_service(login, device_list)
|
216
|
-
iot_connector.add_service_2(login, device_list)
|
223
|
+
def add_service(login, device_list, real_ip, remote_ip)
|
224
|
+
iot_connector.add_service_2(login, device_list, real_ip, remote_ip)
|
217
225
|
end
|
218
226
|
|
219
|
-
|
220
227
|
#7 procedure for subscriber autorization
|
221
|
-
def autorize_subscriber(login, password)
|
222
|
-
iot_connector.autorize_subscriber_2(login, password)
|
228
|
+
def autorize_subscriber(login, password, real_ip, remote_ip)
|
229
|
+
iot_connector.autorize_subscriber_2(login, password, real_ip, remote_ip)
|
223
230
|
end
|
224
231
|
|
225
|
-
|
226
232
|
#8 get available profiles for login
|
227
|
-
def get_available_profiles(login)
|
228
|
-
iot_connector.get_available_prof_2(login)
|
233
|
+
def get_available_profiles(login, real_ip, remote_ip)
|
234
|
+
iot_connector.get_available_prof_2(login, real_ip, remote_ip)
|
229
235
|
end
|
230
236
|
|
231
|
-
|
232
237
|
#9 get available types for login
|
233
|
-
def get_available_types(login)
|
234
|
-
iot_connector.get_available_types_2(login)
|
238
|
+
def get_available_types(login, real_ip, remote_ip)
|
239
|
+
iot_connector.get_available_types_2(login, real_ip, remote_ip)
|
235
240
|
end
|
236
241
|
|
237
|
-
|
238
242
|
#10 get info for device type
|
239
|
-
def get_info_data_type(type)
|
240
|
-
iot_connector.get_info_data_type_2(type)
|
243
|
+
def get_info_data_type(type, real_ip, remote_ip)
|
244
|
+
iot_connector.get_info_data_type_2(type, real_ip, remote_ip)
|
241
245
|
end
|
242
246
|
|
243
|
-
|
244
247
|
#11 get info for profile
|
245
|
-
def get_info_data_profile(profile)
|
246
|
-
iot_connector.get_info_data_profile_2(profile)
|
248
|
+
def get_info_data_profile(profile, real_ip, remote_ip)
|
249
|
+
iot_connector.get_info_data_profile_2(profile, real_ip, remote_ip)
|
250
|
+
end
|
251
|
+
|
252
|
+
#13 replace data for imei. Replace Type and Profile
|
253
|
+
#new procedure 2020-06-06
|
254
|
+
#params =
|
255
|
+
# {"autorization"=>{"login"=>"test", "token"=>"token"}, "datalist"=>[{"imei"=>"524523654366", "new_profile"=>"3", "new_type"=>"1000001"}, {"imei"=>"53623413423", "new_profile"=>"1", "new_type"=>"1000003"}]}
|
256
|
+
# answer = {:code=>200, :result=>"Success", :body=>{:processednum=>1, :failednum=>1, :deviceserr=>[{:failedimei=>524523654366}]}}
|
257
|
+
def set_data_replace(soapgw_params, real_ip, remote_ip)
|
258
|
+
iot_connector.set_data_replace_2(soapgw_params, real_ip, remote_ip)
|
247
259
|
end
|
248
260
|
|
249
261
|
|
@@ -252,10 +264,9 @@ class Iot
|
|
252
264
|
end
|
253
265
|
|
254
266
|
def test111
|
255
|
-
iot_connector.
|
267
|
+
iot_connector.test1278493
|
256
268
|
end
|
257
269
|
|
258
|
-
|
259
270
|
end
|
260
271
|
|
261
272
|
|
@@ -342,12 +353,25 @@ class Ukaz60Automation_2
|
|
342
353
|
belgim_login,
|
343
354
|
belgim_password,
|
344
355
|
belgim_url,
|
345
|
-
|
346
|
-
|
356
|
+
|
357
|
+
###########for fortigate############
|
358
|
+
ansible_tmp_folder, #folder on fortigate ansible server where url list uploaded
|
359
|
+
local_tmp_directory, #folder on local mashin where script work
|
347
360
|
ansible_ssh_user,
|
348
361
|
ansible_ssh_password,
|
349
|
-
ansible_host,
|
350
|
-
url_backup_dir
|
362
|
+
ansible_host, #fortigate ansible server
|
363
|
+
url_backup_dir,
|
364
|
+
####################################
|
365
|
+
|
366
|
+
#########for STAROS#############
|
367
|
+
staros_login,
|
368
|
+
staros_password,
|
369
|
+
ukaz60_http_groups,
|
370
|
+
ukaz60_https_groups,
|
371
|
+
staros_hosts
|
372
|
+
|
373
|
+
)
|
374
|
+
=begin
|
351
375
|
@ukaz69_dns_func = Dns_2.new(telegram_api_url,
|
352
376
|
telegram_chat_id,
|
353
377
|
work_directory,
|
@@ -361,22 +385,29 @@ class Ukaz60Automation_2
|
|
361
385
|
belgim_login,
|
362
386
|
belgim_password,
|
363
387
|
belgim_url)
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
388
|
+
=end
|
389
|
+
|
390
|
+
@ukaz60_func = Ukaz60All_2.new(telegram_api_url,
|
391
|
+
telegram_chat_id,
|
392
|
+
belgim_login,
|
393
|
+
belgim_password,
|
394
|
+
belgim_url,
|
395
|
+
ansible_tmp_folder,
|
396
|
+
local_tmp_directory,
|
397
|
+
ansible_ssh_user,
|
398
|
+
ansible_ssh_password,
|
399
|
+
ansible_host,
|
400
|
+
url_backup_dir,
|
401
|
+
staros_login,
|
402
|
+
staros_password,
|
403
|
+
ukaz60_http_groups,
|
404
|
+
ukaz60_https_groups,
|
405
|
+
staros_hosts)
|
376
406
|
end
|
377
407
|
|
408
|
+
#1 block all devices by belgim list
|
378
409
|
def no_pasaran
|
379
410
|
ukaz60_func.no_pasaran
|
380
411
|
end
|
381
412
|
|
382
|
-
end
|
413
|
+
end
|
data/lib/imperituroard/.DS_Store
CHANGED
Binary file
|
File without changes
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'net/ssh'
|
2
|
+
|
3
|
+
require 'imperituroard/platforms/staros/staros_parser'
|
4
|
+
|
5
|
+
class StarosGet_2
|
6
|
+
|
7
|
+
attr_accessor :staros_parser, :staros_login, :staros_password
|
8
|
+
|
9
|
+
def initialize(staros_login, staros_password)
|
10
|
+
@staros_parser = StarosParser_2.new
|
11
|
+
@staros_login = staros_login
|
12
|
+
@staros_password = staros_password
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
#get all active-charging data
|
17
|
+
#host - staros device IP address
|
18
|
+
#return parsed ECS configuration in JSON
|
19
|
+
def get_all_active_charging(host_ip)
|
20
|
+
|
21
|
+
input_data = {:host_ip => host_ip}
|
22
|
+
out_data = {}
|
23
|
+
config_all = []
|
24
|
+
|
25
|
+
begin
|
26
|
+
|
27
|
+
Net::SSH.start(host_ip, staros_login, :password => staros_password) do |ssh|
|
28
|
+
staros_answer = ssh.exec!("show configuration active-charging service all")
|
29
|
+
staros_answer = staros_answer.gsub("#exit", "exit")
|
30
|
+
#staros_answer = staros_answer.gsub("\n", " ")
|
31
|
+
#p staros_answer
|
32
|
+
#host_pool_regexp = /(host-pool.+\s+exit)/
|
33
|
+
#fff = staros_answer.scan(host_pool_regexp)
|
34
|
+
#p fff
|
35
|
+
|
36
|
+
staros_answer = staros_answer.split("\n")
|
37
|
+
for ttt in staros_answer
|
38
|
+
regexp_full_command = /\s+(.+)/
|
39
|
+
group_ruled_ukaz60_9 = ttt.match(regexp_full_command)
|
40
|
+
if group_ruled_ukaz60_9 != nil
|
41
|
+
config_all.push(group_ruled_ukaz60_9[1])
|
42
|
+
else
|
43
|
+
config_all.push(ttt)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
staros_json = staros_parser.ecs_config_parser(config_all)
|
48
|
+
out_data = {:code => 200, :result => "Successfully completed", :parsed_data => staros_json}
|
49
|
+
rescue
|
50
|
+
out_data = {:code => 507, :result => "get_all_active_charging: Unknown SDK error"}
|
51
|
+
end
|
52
|
+
out_data
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
require 'net/ssh'
|
2
|
+
|
3
|
+
staros_thr_1233 = []
|
4
|
+
conf = {}
|
5
|
+
|
6
|
+
staros_hosts = {
|
7
|
+
#5700
|
8
|
+
}
|
9
|
+
|
10
|
+
def printer (config)
|
11
|
+
for gggg1 in config
|
12
|
+
|
13
|
+
p ""
|
14
|
+
p ""
|
15
|
+
p "##{gggg1[0]}"
|
16
|
+
for jjj in gggg1[1]
|
17
|
+
p jjj
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
staros_hosts.each do |ggsn|
|
23
|
+
staros_thr_1233 << Thread.new do
|
24
|
+
|
25
|
+
p ggsn
|
26
|
+
|
27
|
+
begin
|
28
|
+
|
29
|
+
conf[ggsn[0]] = []
|
30
|
+
|
31
|
+
Net::SSH.start(ggsn[1], "ывапывап", :password => "пыапыва") do |ssh|
|
32
|
+
staros_answer = ssh.exec!("show configuration context Ga | grep edr")
|
33
|
+
|
34
|
+
regexp = /file name (\S+) rotation volume (\d+) rotation time \d+ storage-limit \d+ headers edr-format-name compression gzip file-sequence-number rulebase-seq-num/
|
35
|
+
|
36
|
+
ggg = staros_answer.match(regexp)
|
37
|
+
conf[ggsn[0]].push("configure")
|
38
|
+
conf[ggsn[0]].push("context Ga")
|
39
|
+
conf[ggsn[0]].push("edr-module active-charging-service charging")
|
40
|
+
conf[ggsn[0]].push("file name #{ggg[1]} rotation volume 40000000 rotation time 600 storage-limit 536870912 headers edr-format-name compression gzip file-sequence-number rulebase-seq-num")
|
41
|
+
conf[ggsn[0]].push("end")
|
42
|
+
|
43
|
+
#config
|
44
|
+
# staros_answer1 = ssh.exec!("configure")
|
45
|
+
# p staros_answer1
|
46
|
+
# staros_answer2 = ssh.exec!("context Ga")
|
47
|
+
# p staros_answer2
|
48
|
+
# staros_answer3 = ssh.exec!("edr-module active-charging-service charging")
|
49
|
+
# p staros_answer3
|
50
|
+
# staros_answer4 = ssh.exec!("file name #{ggg[1]} rotation volume 40000000 rotation time 600 storage-limit 536870912 headers edr-format-name compression gzip file-sequence-number rulebase-seq-num")
|
51
|
+
# p staros_answer4
|
52
|
+
# staros_answer5 = ssh.exec!("end")
|
53
|
+
# p staros_answer5
|
54
|
+
|
55
|
+
#check
|
56
|
+
staros_answer7 = ssh.exec!("show configuration | grep hostname")
|
57
|
+
reggg = /system hostname (\S+)/
|
58
|
+
hostname_this = staros_answer7.match(reggg)[1]
|
59
|
+
|
60
|
+
staros_answer8 = ssh.exec!("show configuration context Ga | grep edr")
|
61
|
+
regexp2 = /file name (\S+) rotation volume (\d+) rotation time \d+ storage-limit \d+ headers edr-format-name compression gzip file-sequence-number rulebase-seq-num/
|
62
|
+
|
63
|
+
ggg2 = staros_answer8.match(regexp2)
|
64
|
+
|
65
|
+
a1 = ggg2[1].gsub("edr-", "")
|
66
|
+
#p a1
|
67
|
+
#p hostname_this
|
68
|
+
#p ggg2
|
69
|
+
|
70
|
+
if a1 != hostname_this
|
71
|
+
p "incorrect: #{hostname_this}"
|
72
|
+
end
|
73
|
+
|
74
|
+
|
75
|
+
if ggg2[2] == "40000000"
|
76
|
+
else
|
77
|
+
p "incorrect value: #{hostname_this}"
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
rescue
|
83
|
+
|
84
|
+
p "#{ggsn[0]} ERROR"
|
85
|
+
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
end
|
90
|
+
staros_thr_1233.each(&:join)
|
91
|
+
|
92
|
+
#p conf
|
93
|
+
|
94
|
+
|
95
|
+
#printer(conf)
|