imperituroard 1.1.2 → 1.1.8

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
  SHA1:
3
- metadata.gz: 84beb64e487d828317872eeeac09c4c3201597c4
4
- data.tar.gz: 181ae04e40a8a401727884b7681d9f8efe0388b4
3
+ metadata.gz: 5f9c5a08701e31d0a87ce664a92db4cc736dd56a
4
+ data.tar.gz: 1f5b19a4aaf12b01b0ef9f30026541f5f63e05d1
5
5
  SHA512:
6
- metadata.gz: 417bd36e8ff9cb214c6b6d7046c3e8d4c3e359e52efc0636940a3ba54de2643176a057f71b4e7193a6405c1f53f4dcb65f04052586a4bd38c022df6c3768a985
7
- data.tar.gz: e93a89ecf954a45df334149404853f012ae31a08cde511e9576efab73022bdfa102c678fb722a3f3160c33883949c65514c3862baec2425a29e9f590a4acb126
6
+ metadata.gz: 821eec2e26448ded59f48f9a5a9564e6253fd95d302038a4f375218d0ff4215e79302adf8b5a4904aaa2b48051f37cae86657258b01f27baadf1734cf8e1d83c
7
+ data.tar.gz: 6284ef90f6d634930e5a87d6dc6fc590c4a924ba2df7168023bf82ae9c7cdab42f44a8854db3731ed8462aa1b6ea935f39f824f4a4366782c6bf2086ff01fc5a
@@ -0,0 +1,21 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="false" name="autovpn" type="RubyRunConfigurationType" factoryName="Ruby">
3
+ <module name="imperituroard" />
4
+ <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
5
+ <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/lib/imperituroard/projects" />
6
+ <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
7
+ <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
8
+ <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
9
+ <envs />
10
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
11
+ <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
12
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
13
+ <COVERAGE_PATTERN ENABLED="true">
14
+ <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
15
+ </COVERAGE_PATTERN>
16
+ </EXTENSION>
17
+ <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/lib/imperituroard/projects/autovpn.rb" />
18
+ <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
19
+ <method />
20
+ </configuration>
21
+ </component>
@@ -269,6 +269,17 @@ class Iot
269
269
  iot_connector.set_data_replace_2(soapgw_params, real_ip, remote_ip)
270
270
  end
271
271
 
272
+ #14 integration with SPA
273
+ # add imei to correct profile
274
+ def spa_service_set(soapgw_params, real_ip, remote_ip)
275
+ #imei
276
+ #imsi
277
+ #msisdn
278
+ #unp
279
+ #note
280
+ #descriptiot
281
+ end
282
+
272
283
 
273
284
  def logger_to_audit_database(proc_name, src_ip, input_json, output_json, real_ip)
274
285
  mongo_client.audit_logger(proc_name, src_ip, input_json, output_json, real_ip)
@@ -431,3 +442,17 @@ class Ukaz60Automation_2
431
442
  end
432
443
 
433
444
  end
445
+
446
+
447
+ class Autovpn
448
+ attr_accessor :vpn_connector
449
+
450
+ def initialize (mongo_vpn_ip, mongo_vpn_port, mongo_vpn_database)
451
+ @vpn_connector = Autovpn.new(mongo_vpn_ip, mongo_vpn_port, mongo_vpn_database)
452
+ end
453
+
454
+ def vpn_add_msisdn_by_example(new_msisdn, example_msisdn)
455
+ vpn_connector.vpn_add_msisdn_by_example_2(new_msisdn, example_msisdn)
456
+ end
457
+
458
+ end
@@ -22,7 +22,7 @@ end
22
22
  staros_hosts.each do |ggsn|
23
23
  staros_thr_1233 << Thread.new do
24
24
 
25
- p ggsn
25
+ #p ggsn
26
26
 
27
27
  begin
28
28
 
@@ -0,0 +1,27 @@
1
+ require 'imperituroard/projects/autovpn/mongo_vpn'
2
+
3
+ class Autovpn
4
+
5
+ attr_accessor :mongo_client
6
+
7
+ def initialize(mongo_vpn_ip, mongo_vpn_port, mongo_vpn_database)
8
+ @mongo_client = MongoVpn.new(mongo_vpn_ip, mongo_vpn_port, mongo_vpn_database)
9
+ end
10
+
11
+ def vpn_add_msisdn_by_example_2(new_msisdn, example_msisdn)
12
+
13
+ end
14
+
15
+ def test
16
+ mongo_client.get_mongo_msisdn("375298766719")
17
+ end
18
+
19
+ end
20
+
21
+
22
+ vvv = Autovpn.new("172.24.210.177",
23
+ "27017",
24
+ "autovpn"
25
+ )
26
+
27
+ vvv.test
@@ -0,0 +1,56 @@
1
+ require 'mongo'
2
+
3
+ require 'json'
4
+ require 'rubygems'
5
+ require 'nokogiri'
6
+ require 'rails'
7
+
8
+ require 'imperituroard/add_functions/logger/any_functions'
9
+
10
+ class MongoVpn
11
+
12
+ attr_accessor :mongo_vpn_ip, :mongo_vpn_port, :client_vpn, :mongo_vpn_database, :internal_vpn_func, :logger_any
13
+
14
+ def initialize(mongo_vpn_ip, mongo_vpn_port, mongo_vpn_database)
15
+ @mongo_vpn_database = mongo_vpn_database
16
+ @mongo_vpn_ip = mongo_vpn_ip
17
+ @mongo_vpn_port = mongo_vpn_port
18
+ client_vpn_host = [mongo_vpn_ip + ":" + mongo_vpn_port]
19
+ @client_vpn = Mongo::Client.new(client_vpn_host, :database => mongo_vpn_database)
20
+ @logger_any = LogAddFunctions_2.new
21
+ end
22
+
23
+ #get data by msisdn. Validate data from collection msisdn_list
24
+ def get_mongo_msisdn(msisdn)
25
+ out_resp = {}
26
+ begin
27
+ msisdn_data = []
28
+ collection = client_vpn[:msisdn_list]
29
+ collection.find({:msisdn => msisdn.to_s}).each {|row|
30
+ msisdn_data = row
31
+ }
32
+ if msisdn_data != [] && msisdn_data["msisdn"] != nil && msisdn_data["msisdn"] != ""
33
+ if msisdn_data["group_id"] != [] && msisdn_data["group_id"] != nil && msisdn_data["group_id"] != ""
34
+ if msisdn_data["profile_id"] != [] && msisdn_data["profile_id"] != nil && msisdn_data["profile_id"] != ""
35
+ out_resp = {:code => 200, :result => "get_mongo_msisdn: Request completed successfully", :body => msisdn_data}
36
+ else
37
+ out_resp = {:code => 406, :result => "get_mongo_msisdn: invalid data. profile_id not found"}
38
+ end
39
+ else
40
+ out_resp = {:code => 405, :result => "get_mongo_msisdn: invalid data. organization_id not found"}
41
+ end
42
+ else
43
+ out_resp = {:code => 404, :result => "get_mongo_msisdn: login not found in database"}
44
+ end
45
+ rescue
46
+ out_resp = {:code => 507, :result => "get_mongo_msisdn: Unknown SDK error"}
47
+ end
48
+ logger_any.printer_texter(out_resp, "debug")
49
+ out_resp
50
+ end
51
+
52
+
53
+
54
+ end
55
+
56
+
@@ -214,7 +214,6 @@ class IotFunctions_2
214
214
  end
215
215
 
216
216
 
217
-
218
217
  def add_device_to_prof2_2(request_full, real_ip, remote_ip)
219
218
 
220
219
  #{"autorization"=>{"login"=>"test", "token"=>"tE3aFvs27"}, "devlist"=>[{"devices"=>{"imei"=>123419520034999, "type"=>"1000002", "profile"=>0}}]}
@@ -229,6 +228,7 @@ class IotFunctions_2
229
228
  imei_list = im_li
230
229
 
231
230
  input_json = {:request_full => request_full}
231
+ input_json22 = {:login => login, :imei_list => imei_list}
232
232
  resp_out = {}
233
233
  begin
234
234
 
@@ -368,7 +368,7 @@ class IotFunctions_2
368
368
  end
369
369
  thr1.join
370
370
 
371
- resp_out[:body][:tosoapgw] = internal_func.iot_create_dev_soapgw_answer(input_json, resp_out)
371
+ resp_out[:body][:tosoapgw] = internal_func.iot_create_dev_soapgw_answer(input_json22, resp_out)
372
372
  mongo_client.audit_logger("add_device_to_profile", remote_ip, input_json, resp_out, real_ip, {})
373
373
  resp_out
374
374
  end
@@ -1381,10 +1381,6 @@ class IotFunctions_2
1381
1381
  end
1382
1382
 
1383
1383
 
1384
-
1385
-
1386
-
1387
-
1388
1384
  ################################################
1389
1385
  ############technology procedures###############
1390
1386
  ################################################
@@ -1404,8 +1400,6 @@ class IotFunctions_2
1404
1400
  end
1405
1401
 
1406
1402
 
1407
-
1408
-
1409
1403
  #for internal use. Add new device model
1410
1404
  def add_model_to_mongo(model, manufacture_id, manufacture_name, device_type, description, note)
1411
1405
  model = {
@@ -55,8 +55,8 @@ class AdditionalFunc
55
55
  note=i["note"]
56
56
  end
57
57
  end
58
- if i.key?("type")
59
- type=i["type"]
58
+ if i.key?("device_type")
59
+ type=i["device_type"]
60
60
  end
61
61
  if i.key?("profile")
62
62
  profile=i["profile"]
@@ -310,6 +310,9 @@ class HuaIot
310
310
  request.content_type = 'application/json'
311
311
  request['Authorization'] = 'Bearer ' + token
312
312
  request['app_key'] = app_id
313
+ #request['node-id'] = node_id
314
+ bbb = {"nodeId": node_id, "appId": "Jy5KpoBUOScZEcrO2bRZhzfaIOUa"}.to_json
315
+ request.body = bbb
313
316
  res = https.request(request)
314
317
  p res.body.to_s
315
318
  p res.code
@@ -167,6 +167,7 @@ class InternalFunc
167
167
  #delete one key from hash
168
168
  def delete_key_hash(hash_f, delete_key)
169
169
  inp_fun = {:hash_f => hash_f, :delete_key => delete_key}
170
+ hash_f = hash_f.to_h
170
171
  out_data = {}
171
172
  res = {}
172
173
  hash_f.each do |ggg|
@@ -507,6 +507,7 @@ class MongoIot
507
507
  #function for get iot platform credentials from profile
508
508
  #universal procedure. use profile or profile id
509
509
  def get_iot_oceanconn_credent_2(profile)
510
+ input_in = {:profile => profile}
510
511
  out_resp = {}
511
512
  begin
512
513
  result_ps = []
@@ -528,7 +529,7 @@ class MongoIot
528
529
  rescue
529
530
  out_resp = {:code => 500, :result => "get_iot_oceanconn_credent_2: Process failed"}
530
531
  end
531
- internal_func.printer_texter(out_resp, "debug")
532
+ internal_func.printer_texter({:input_in => input_in, :out_resp => out_resp, :fun => "get_iot_oceanconn_credent_2"}, "debug")
532
533
  out_resp
533
534
  end
534
535
 
@@ -596,6 +597,7 @@ class MongoIot
596
597
 
597
598
 
598
599
  def compare_profiles(profile1, profile2)
600
+ input_inf = {:profile1 => profile1, :profile2 => profile2}
599
601
  out_answ = {}
600
602
  ch1 = internal_func.if_digit_or_string(profile1)
601
603
  ch2 = internal_func.if_digit_or_string(profile2)
@@ -632,10 +634,12 @@ class MongoIot
632
634
  out_answ = {:code => 200, :result => "compare_profiles: profiles are different", :is_the_same => false, :data_type => "different"}
633
635
  end
634
636
  end
637
+ internal_func.printer_texter({:input_inf => input_inf, :out => out_answ, :fun => "compare_profiles"}, "debug")
635
638
  out_answ
636
639
  end
637
640
 
638
641
  def compare_device_types(type1, type2)
642
+ input_inf = {:type1 => type1, :type2 => type2}
639
643
  out_answ = {}
640
644
  tp1 = internal_func.if_digit_or_string(type1)
641
645
  tp2 = internal_func.if_digit_or_string(type2)
@@ -682,6 +686,7 @@ class MongoIot
682
686
  out_answ = {:code => 200, :result => "compare_device_types: profiles are different", :is_the_same => false, :data_type => "different"}
683
687
  end
684
688
  end
689
+ internal_func.printer_texter({:input_inf => input_inf, :out => out_answ, :fun => "compare_device_types"}, "debug")
685
690
  out_answ
686
691
  end
687
692
 
@@ -60,7 +60,7 @@ class Ukaz60All_2
60
60
  else
61
61
  forti_answer = {:code => update_fortigate_ansible[:code], :result => update_fortigate_ansible[:result]}
62
62
  end
63
- #forti_connector.clean_tmp_folders
63
+ forti_connector.clean_tmp_folders
64
64
  else
65
65
  forti_answer = {:code => 401, :result => "Failed for uploading data to ansible server"}
66
66
  end
@@ -85,6 +85,8 @@ class Ukaz60All_2
85
85
  #compare data with belgim
86
86
  answ = ukaz60_add_func.staros_compare_http(staros_blocks_current, get_belgim_data)
87
87
 
88
+ p answ
89
+
88
90
  if answ[:code] == 200
89
91
  #output_starprocess = {:code => 200, :result => "Staros processed", :data => {:block_me => answ[:body][:for_block][:notblocked_stat], :unblock_me =>answ[:body][:for_unblock][:for_unblock_stat]}}
90
92
  output_starprocess = ukaz60_add_func.format_star_processed_answ(answ)[:body][:to_message]
@@ -110,7 +112,7 @@ class Ukaz60All_2
110
112
 
111
113
  begin
112
114
  get_belgim_data = belgim_connector.belgim_ukaz60_get
113
- p get_belgim_data
115
+ #p get_belgim_data
114
116
 
115
117
  if get_belgim_data[:code] == 200
116
118
 
@@ -55,7 +55,7 @@ class Belgim_2
55
55
  curl_belgie_command = "curl -d \"name=#{belgim_login}&pass=#{belgim_password}\" -H \"Content-Type: application/x-www-form-urlencoded\" -X POST #{belgim_url} --insecure"
56
56
  #return_from_belgim = `curl -d "name=#{belgim_login}&pass=#{belgim_password}" -H "Content-Type: application/x-www-form-urlencoded" -X POST #{belgim_url} --insecure`
57
57
  return_from_belgim = `#{curl_belgie_command}`
58
- p curl_belgie_command
58
+ #p curl_belgie_command
59
59
 
60
60
  return_from_belgim = return_from_belgim.gsub!("\n", "")
61
61
 
@@ -113,7 +113,7 @@ class FortiUkaz60_2
113
113
  p "ansible_answer: #{ansible_answer}"
114
114
 
115
115
  #hh = "\nPLAY [ha_master] ***************************************************************\n\nTASK [set url table] ***********************************************************\nchanged: [gom32sg1]\nchanged: [bre32sg1]\nchanged: [min32sg1]\nchanged: [vit32sg1]\nchanged: [min32sg3]\nchanged: [gro32sg1]\nchanged: [mog32sg1]\n\nTASK [check current url table] *************************************************\nok: [min32sg1]\nok: [bre32sg1]\nok: [min32sg3]\nok: [vit32sg1]\nok: [gom32sg1]\nok: [gro32sg1]\nok: [mog32sg1]\n\nTASK [debug] *******************************************************************\nok: [min32sg1] => {\n \"msg\": \"URL loaded/in-file: [1273 / 1273]\"\n}\nok: [min32sg3] => {\n \"msg\": \"URL loaded/in-file: [1273 / 1273]\"\n}\nok: [bre32sg1] => {\n \"msg\": \"URL loaded/in-file: [1273 / 1273]\"\n}\nok: [vit32sg1] => {\n \"msg\": \"URL loaded/in-file: [1273 / 1273]\"\n}\nok: [gom32sg1] => {\n \"msg\": \"URL loaded/in-file: [1273 / 1273]\"\n}\nok: [gro32sg1] => {\n \"msg\": \"URL loaded/in-file: [1273 / 1273]\"\n}\nok: [mog32sg1] => {\n \"msg\": \"URL loaded/in-file: [1273 / 1273]\"\n}\n\nPLAY RECAP *********************************************************************\nbre32sg1 : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 \ngom32sg1 : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 \ngro32sg1 : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 \nmin32sg1 : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 \nmin32sg3 : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 \nmog32sg1 : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 \nvit32sg1 : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 \n\n"
116
- answ_pr = add_func_connector.ansible_answer_parse(ansible_answer)
116
+ answ_pr = add_func_connector.ansible_answer_parse_fmg(ansible_answer)
117
117
  output_data = {:code => 200, :result => "update_weburl_fortigate: Request completed", :body => answ_pr}
118
118
  rescue
119
119
  output_data = {:code => 507, :result => "update_weburl_fortigate: Unknown SDK error"}
@@ -129,13 +129,13 @@ class Ukaz60Staros_2
129
129
  end
130
130
 
131
131
 
132
- uu ="/fgd?ef"
132
+ #uu ="/fgd?ef"
133
133
 
134
134
  #ggg = uu.force_encoding('ASCII-8BIT')
135
135
  #puts CGI.escape ggg
136
- p url_encode("foo/bar? baz&")
136
+ #p url_encode("foo/bar? baz&")
137
137
 
138
- p URI.parse("foo/bar? baz&").to_s
139
- p URI::encode("foo/bar? baz&")
138
+ #p URI.parse("foo/bar? baz&").to_s
139
+ #p URI::encode("foo/bar? baz&")
140
140
 
141
- p URI.decode("newsx-ru.ru/by/251-potencia-spartagen-by/%3futm%20medium=251&utmcampaign=4&%20utm%20content=57849345&utm%20source=56960717")
141
+ #p URI.decode("newsx-ru.ru/by/251-potencia-spartagen-by/%3futm%20medium=251&utmcampaign=4&%20utm%20content=57849345&utm%20source=56960717")
@@ -154,6 +154,52 @@ class AddFuncUkaz60_2
154
154
  end
155
155
 
156
156
 
157
+ def ansible_answer_parse_fmg(answer_string)
158
+ input_data = {:answer_string => answer_string}
159
+ output_data = {}
160
+
161
+ begin
162
+ answ_ans_parsed = answer_string.gsub("\n", " ")
163
+ result_out = {}
164
+ #result_out = []
165
+ num_ok = 0
166
+ num_failed = 0
167
+ #final_checks = /(fortimanager1)\s+:\s+ok=(\d)\s+changed=(\d)\s+unreachable=(\d)\s+failed=(\d)\s+/
168
+ final_checks = /(fortimanager1)\s+:\s+ok=(\d+)\s+changed=(\d+)\s+unreachable=(\d+)\s+failed=(\d+)\s+/
169
+
170
+ #p answ_ans_parsed
171
+ processed_data = answ_ans_parsed.scan(final_checks)
172
+ #p processed_data
173
+ if processed_data!=[] && processed_data!=""
174
+ for aaa in processed_data
175
+ begin
176
+ if aaa[1].to_i>0 && aaa[3].to_i==0 && aaa[4].to_i==0
177
+ result_out[aaa[0]] = {:ok => aaa[1], :changed => aaa[2], :unreachable => aaa[3], :failed => aaa[4], :result => "Ok"}
178
+ #result_out.push({aaa[0] => "Ok"})
179
+ num_ok = num_ok + 1
180
+ else
181
+ result_out[aaa[0]] = {:ok => aaa[1], :unreachable => aaa[3], :failed => aaa[4], :result => "Failed"}
182
+ #result_out.push({aaa[0] => "Failed"})
183
+ num_failed = num_failed + 1
184
+ end
185
+ rescue
186
+ result_out["unknown"] = aaa.to_s
187
+ #result_out.push({"unknown" => aaa.to_s})
188
+ num_failed = num_failed + 1
189
+ end
190
+ end
191
+ output_data = {:code => 200, :result => "ansible_answer_parse: Request completed successfully", :body => {:list => result_out, :num_ok => num_ok, :num_failed => num_failed}}
192
+ else
193
+ output_data = {:code => 400, :result => "ansible_answer_parse: Ansible returned empty data"}
194
+ end
195
+ rescue
196
+ output_data = {:code => 507, :result => "ansible_answer_parse: Unknown error"}
197
+ end
198
+ add_functions.printer_texter(output_data, "debug")
199
+ output_data
200
+ end
201
+
202
+
157
203
  def https_to_forti_prep(domain)
158
204
  f0 = domain.gsub("#", "")
159
205
  f1 = f0.gsub("https://", "").split("/")
@@ -248,10 +294,10 @@ class AddFuncUkaz60_2
248
294
  end
249
295
 
250
296
  #p JSON.pretty_generate(output_answ)
251
- p "staros_compare_http"
252
- p output_answ
297
+ #p "staros_compare_http"
298
+ #p output_answ
253
299
 
254
- p "temp data"
300
+ #p "temp data"
255
301
  for i in output_answ[:body][:for_unblock][:for_unblock]["vit11asr2"]
256
302
  #for i in output_answ[:body][:for_block][:not_blocked_belgim]["vit11asr2"]
257
303
  p i
@@ -280,7 +326,7 @@ class AddFuncUkaz60_2
280
326
  end
281
327
  end
282
328
 
283
- p notbl_equal
329
+ #p notbl_equal
284
330
  if notbl_equal == 0
285
331
  block_me = {:for_block_count => data[:body][:for_block][:notblocked_stat][compa_n_data]}
286
332
  unblock_me = {:for_unblock_count => data[:body][:for_unblock][:for_unblock_stat][compa_n_data]}
@@ -1,4 +1,4 @@
1
1
  module Imperituroard
2
- VERSION = "1.1.2"
2
+ VERSION = "1.1.8"
3
3
  end
4
4
 
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: 1.1.2
4
+ version: 1.1.8
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-06-10 00:00:00.000000000 Z
11
+ date: 2020-06-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -186,6 +186,7 @@ extensions: []
186
186
  extra_rdoc_files: []
187
187
  files:
188
188
  - ".gitignore"
189
+ - ".idea/runConfigurations/autovpn.xml"
189
190
  - ".idea/runConfigurations/hua_oceanconnect_adapter.xml"
190
191
  - ".idea/runConfigurations/version.xml"
191
192
  - ".ruby-gemset"
@@ -211,6 +212,9 @@ files:
211
212
  - lib/imperituroard/platforms/staros/staros_automation.rb
212
213
  - lib/imperituroard/platforms/staros/staros_automation_fun.rb
213
214
  - lib/imperituroard/platforms/staros/staros_parser.rb
215
+ - lib/imperituroard/projects/autovpn.rb
216
+ - lib/imperituroard/projects/autovpn/functions_ezuev.rb
217
+ - lib/imperituroard/projects/autovpn/mongo_vpn.rb
214
218
  - lib/imperituroard/projects/dns.rb
215
219
  - lib/imperituroard/projects/iot.rb
216
220
  - lib/imperituroard/projects/iot/add_functions.rb
@@ -229,7 +233,6 @@ files:
229
233
  - lib/imperituroard/projects/ukaz60/fortigate.rb
230
234
  - lib/imperituroard/projects/ukaz60/staros.rb
231
235
  - lib/imperituroard/projects/ukaz60/ukaz60_add_func.rb
232
- - lib/imperituroard/projects/vpn/ezuev_fun/functions_ezuev.rb
233
236
  - lib/imperituroard/projects/wttx/phpipamcps.rb
234
237
  - lib/imperituroard/projects/wttx/phpipamdb.rb
235
238
  - lib/imperituroard/projects/wttx/updatepostcps.rb