imperituroard 0.5.1 → 0.5.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.
@@ -96,27 +96,27 @@ class AdditionalFunc
96
96
  end
97
97
 
98
98
  def check_input_1(login, imei_list)
99
- {:code=>200, :result=>"Request completed successfully", :body=>"Data checked"}
99
+ {:code => 200, :result => "Request completed successfully", :body => "Data checked"}
100
100
  end
101
101
 
102
102
  def check_input_2(login, imei_list)
103
- {:code=>200, :result=>"Request completed successfully", :body=>"Data checked"}
103
+ {:code => 200, :result => "Request completed successfully", :body => "Data checked"}
104
104
  end
105
105
 
106
106
  def check_input_3(login, imei_list)
107
- {:code=>200, :result=>"Request completed successfully", :body=>"Data checked"}
107
+ {:code => 200, :result => "Request completed successfully", :body => "Data checked"}
108
108
  end
109
109
 
110
110
  def check_input_4(login, imei_list)
111
- {:code=>200, :result=>"Request completed successfully", :body=>"Data checked"}
111
+ {:code => 200, :result => "Request completed successfully", :body => "Data checked"}
112
112
  end
113
113
 
114
114
  def check_input_5(login, imei_list)
115
- {:code=>200, :result=>"Request completed successfully", :body=>"Data checked"}
115
+ {:code => 200, :result => "Request completed successfully", :body => "Data checked"}
116
116
  end
117
117
 
118
118
  def check_input_6(login, imei_list)
119
- {:code=>200, :result=>"Request completed successfully", :body=>"Data checked"}
119
+ {:code => 200, :result => "Request completed successfully", :body => "Data checked"}
120
120
  end
121
121
 
122
122
  def iot_query_dev_soapgw_answer(input_params, output_answer)
@@ -127,28 +127,28 @@ class AdditionalFunc
127
127
 
128
128
  begin
129
129
 
130
- if output_answer[:code]==200
131
- dataaa = []
132
- dataaa_failed = []
133
-
134
- ddd = answ_dev_query_format_process(output_answer[:data])[:body]
135
- p ddd
136
-
137
- answ = { :code => output_answer[:code],
138
- :result => output_answer[:result],
139
- :data => ddd[:ok],
140
- :error_list => ddd[:failed]
141
- }
142
- else
143
- answ = { :code => output_answer[:code],
144
- :result => output_answer[:result],
145
- :data => [],
146
- :error_list => input_params[:imei]
147
- }
148
- end
130
+ if output_answer[:code]==200
131
+ dataaa = []
132
+ dataaa_failed = []
133
+
134
+ ddd = answ_dev_query_format_process(output_answer[:data])[:body]
135
+ p ddd
136
+
137
+ answ = {:code => output_answer[:code],
138
+ :result => output_answer[:result],
139
+ :data => ddd[:ok],
140
+ :error_list => ddd[:failed]
141
+ }
142
+ else
143
+ answ = {:code => output_answer[:code],
144
+ :result => output_answer[:result],
145
+ :data => [],
146
+ :error_list => input_params[:imei]
147
+ }
148
+ end
149
149
  rescue
150
- answ = { :code => 500,
151
- :result => "Unknown error"
150
+ answ = {:code => 500,
151
+ :result => "Unknown error"
152
152
  }
153
153
  end
154
154
 
@@ -23,9 +23,10 @@ class MhubFunctions_2
23
23
  :dabrab_connecter,
24
24
  :static_callback,
25
25
  :crm_connector,
26
- :telegram_connector
26
+ :telegram_connector,
27
+ :sms_alphaname
27
28
 
28
- def initialize(sk_url_simple, sk_login, sk_password, telegram_api_url, telegram_chat_id, sk_url_broadcast, static_callback, crm_callback_url, crm_login, crm_password)
29
+ def initialize(sk_url_simple, sk_login, sk_password, telegram_api_url, telegram_chat_id, sk_url_broadcast, static_callback, crm_callback_url, crm_login, crm_password, sms_alphaname)
29
30
  @sk_url = sk_url_simple
30
31
  @sk_login = sk_login
31
32
  @sk_password = sk_password
@@ -36,6 +37,7 @@ class MhubFunctions_2
36
37
  @telegram_connector = Telegram_2.new(telegram_api_url, telegram_chat_id)
37
38
  @static_callback = static_callback
38
39
  @crm_connector = Crm_2.new(crm_callback_url, crm_login, crm_password, telegram_api_url, telegram_chat_id)
40
+ @sms_alphaname = sms_alphaname
39
41
  end
40
42
 
41
43
 
@@ -91,13 +93,13 @@ class MhubFunctions_2
91
93
  msisdn2 = dabrab_connecter.num_formatter(params["destinations"], params["notifyUrl"].split(":")[2])
92
94
 
93
95
  if null_statement.include?(params["viber"]) && !null_statement.include?(params["sms"])
94
- hub_resp = mhub_connector.sk_send_sms_list(msisdn2, static_callback, params["sms"]["text"], "TEST")
96
+ hub_resp = mhub_connector.sk_send_sms_list(msisdn2, static_callback, params["sms"]["text"], sms_alphaname)
95
97
  elsif !null_statement.include?(params["viber"]) && null_statement.include?(params["sms"])
96
98
  hub_resp = mhub_connector.sk_send_viber_list(msisdn2, static_callback, params["viber"]["text"])
97
99
  elsif !null_statement.include?(params["viber"]) && !null_statement.include?(params["sms"])
98
100
  p "vibersms"
99
101
  p msisdn2
100
- hub_resp = mhub_connector.sk_send_viber_sms_list(msisdn2, static_callback, params["sms"]["text"], params["viber"]["text"], "TEST")
102
+ hub_resp = mhub_connector.sk_send_viber_sms_list(msisdn2, static_callback, params["sms"]["text"], params["viber"]["text"], sms_alphaname)
101
103
  else
102
104
  output_params = {"code": 502, "result": "Invalid input data st2", "body": {"answer": {}, "sender": {"ip_src": ip_src, "ip_real": ip_real, "ip_vip": ip_vip}}}
103
105
  end
@@ -128,8 +130,12 @@ class MhubFunctions_2
128
130
 
129
131
  begin
130
132
  mes_report = dabrab_connecter.delivery_report_transform(params)[:body][:report_to_recip]
131
- result = crm_connector.crm_status_1(mes_report)
132
- output_params = {"code": 200, "result": "Data processed", "body": {"answer": {"code": 200, "status": "Success"}, "sender": {"ip_src": ip_src, "ip_real": ip_real, "ip_vip": ip_vip}}}
133
+ result = crm_connector.crm_status_2(mes_report)
134
+ if result[:body][:res_body]["GetReportsResult"]==""
135
+ output_params = {"code": 200, "result": "Data processed", "body": {"answer": {"code": 200, "status": "Success"}, "sender": {"ip_src": ip_src, "ip_real": ip_real, "ip_vip": ip_vip}}}
136
+ else
137
+ output_params = {"code": 202, "result": "CRM returned error #{result[:body][:res_body]["GetReportsResult"].to_s}", "body": {"answer": {"code": 200, "status": "Success"}, "sender": {"ip_src": ip_src, "ip_real": ip_real, "ip_vip": ip_vip}}}
138
+ end
133
139
  rescue
134
140
  output_params = {"code": 500, "result": "MhubFunctions_2.rec_deliv_report_2: Unknown SDK error", "body": {"answer": {}, "sender": {"ip_src": ip_src, "ip_real": ip_real, "ip_vip": ip_vip}}}
135
141
  telegram_connector.telegram_message(output_params)
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- class Infobip_1
8
+ class Infobip_2
9
9
 
10
10
  def test
11
11
  gg = "{\"destinations\"=>[{\"to\"=>{\"phoneNumber\"=>\"375297116638\", \"emailAddress\"=>nil}}], \"scenarioKey\"=>\"1\", \"viber\"=>nil, \"sms\"=>{\"text\"=>\"карточка готова\"}, \"sendAt\"=>\"2019-08-15T08:40:00.000\", \"notifyUrl\"=>\"https://bpmonline.bankdabrabyt.by:444/0/ServiceModel/ScGetReports.svc/GetReports\", \"notifyContentType\"=>\"application/json\", \"controller\"=>\"bank\", \"action\"=>\"api\", \"bank\"=>{\"destinations\"=>[{\"to\"=>{\"phoneNumber\"=>\"375297116638\", \"emailAddress\"=>nil}}], \"scenarioKey\"=>\"1\", \"viber\"=>nil, \"sms\"=>{\"text\"=>\"карточка готова\"}, \"sendAt\"=>\"2019-08-15T08:40:00.000\", \"notifyUrl\"=>\"https://bpmonline.bankdabrabyt.by:444/0/ServiceModel/ScGetReports.svc/GetReports\", \"notifyContentType\"=>\"application/json\"}}"
@@ -37,6 +37,8 @@ class Crm_2
37
37
 
38
38
  req.body = crm_payload.to_json
39
39
  res = https.request(req)
40
+
41
+
40
42
  output_params = {:code => 200,
41
43
  :result => "Crm_2.crm_status_2: Request processed",
42
44
  :body => {:request_message => crm_payload,
@@ -0,0 +1,138 @@
1
+ $LOAD_PATH.unshift File.expand_path("../projects/ukaz60", __dir__)
2
+
3
+ require 'json'
4
+
5
+ require 'imperituroard/projects/ukaz60/belgim'
6
+ require 'imperituroard/projects/ukaz60/fortigate'
7
+ require 'imperituroard/projects/ukaz60/staros'
8
+
9
+ class Ukaz60All_2
10
+
11
+ attr_accessor :telegram_messanger,
12
+ :belgim_login,
13
+ :belgim_password,
14
+ :belgim_url,
15
+ :ukaz60_add_func,
16
+ :belgim_connector,
17
+ :forti_connector,
18
+ :staros_connector
19
+
20
+ def initialize(telegram_api_url,
21
+ telegram_chat_id,
22
+ belgim_login,
23
+ belgim_password,
24
+ belgim_url,
25
+ ansible_tmp_folder,
26
+ local_tmp_directory,
27
+ ansible_ssh_user,
28
+ ansible_ssh_password,
29
+ ansible_host,
30
+ url_backup_dir,
31
+ staros_login,
32
+ staros_password,
33
+ ukaz60_http_groups,
34
+ ukaz60_https_groups,
35
+ staros_hosts
36
+
37
+ )
38
+ @telegram_messanger = Telegram_2.new(telegram_api_url, telegram_chat_id)
39
+ @belgim_login = belgim_login
40
+ @belgim_password = belgim_password
41
+ @belgim_url = belgim_url
42
+ @ukaz60_add_func = AddFuncUkaz60_2.new
43
+ @belgim_connector = Belgim_2.new(telegram_api_url, telegram_chat_id, belgim_login, belgim_password, belgim_url)
44
+ @forti_connector = FortiUkaz60_2.new(ansible_tmp_folder, local_tmp_directory, ansible_ssh_user, ansible_ssh_password, ansible_host, url_backup_dir)
45
+ @staros_connector = Ukaz60Staros_2.new(staros_login, staros_password, ukaz60_http_groups, ukaz60_https_groups, staros_hosts)
46
+
47
+ end
48
+
49
+ def forti_process(get_belgim_data)
50
+ forti_answer = {}
51
+ begin
52
+ format_for_forti = forti_connector.prepare_url_config_fortigate(get_belgim_data)
53
+ if format_for_forti[:code] == 200
54
+ url_uploading = forti_connector.upload_url(format_for_forti[:body][:to_fortigate])
55
+ if url_uploading[:code] == 200
56
+ update_fortigate_ansible = forti_connector.update_weburl_fortigate
57
+ if update_fortigate_ansible[:code] == 200
58
+ forti_answer = {:code => 200, :result => "Fortigate processed", :data => update_fortigate_ansible[:body][:body], :num_uploaded_to_forti => format_for_forti[:body][:num_list]}
59
+ else
60
+ forti_answer = {:code => update_fortigate_ansible[:code], :result => update_fortigate_ansible[:result]}
61
+ end
62
+ forti_connector.clean_tmp_folders
63
+ else
64
+ forti_answer = {:code => 401, :result => "Failed for uploading data to ansible server"}
65
+ end
66
+ else
67
+ forti_answer = {:code => 400, :result => "Error while processing data"}
68
+ end
69
+ rescue
70
+ forti_answer = {:code => 507, :result => "Unknown error with Forti"}
71
+ end
72
+ forti_answer
73
+ end
74
+
75
+ def staros_process(get_belgim_data)
76
+
77
+ output_starprocess = {}
78
+
79
+ begin
80
+ #get data from staros
81
+ staros_blocks_current = staros_connector.get_all_staros_ukaz60
82
+
83
+ if staros_blocks_current[:code] == 200
84
+ #compare data with belgim
85
+ answ = ukaz60_add_func.staros_compare_http(staros_blocks_current, get_belgim_data)
86
+
87
+ if answ[:code] == 200
88
+ #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]}}
89
+ output_starprocess = ukaz60_add_func.format_star_processed_answ(answ)[:body][:to_message]
90
+ else
91
+ output_starprocess = answ
92
+ end
93
+
94
+ else
95
+ output_starprocess = staros_blocks_current
96
+ end
97
+ rescue
98
+ output_starprocess = {:code => 507, :result => "staros_process: Something wrong"}
99
+ end
100
+
101
+ output_starprocess
102
+ end
103
+
104
+ def no_pasaran
105
+
106
+ answer_output = {}
107
+ forti_answer = {}
108
+ staros_answer = {}
109
+
110
+ begin
111
+ get_belgim_data = belgim_connector.belgim_ukaz60_get
112
+
113
+ if get_belgim_data[:code] == 200
114
+
115
+ thr_forti = Thread.new do
116
+ forti_answer = self.forti_process(get_belgim_data)
117
+ end
118
+
119
+ thr_staros = Thread.new do
120
+ staros_answer = staros_process(get_belgim_data)
121
+ end
122
+
123
+ thr_staros.join
124
+ thr_forti.join
125
+
126
+ answer_output = {:code => 200, :result => "No pasaran", :fortigate => forti_answer, :staros => staros_answer, :info_belgim => get_belgim_data[:number]}
127
+ else
128
+ answer_output = {:code => 404, :result => "Failed to receive data from Belgim"}
129
+ end
130
+
131
+ rescue
132
+ answer_output = {:code => 507, :result => "no_pasaran: Unknown SDK error"}
133
+ end
134
+ telegram_messanger.telegram_message(JSON.pretty_generate(answer_output))
135
+ answer_output
136
+ end
137
+
138
+ end
@@ -0,0 +1,217 @@
1
+ require 'imperituroard/platforms/public/telegram'
2
+ require 'imperituroard/projects/ukaz60/ukaz60_add_func'
3
+
4
+ require 'simpleidn'
5
+
6
+ class Belgim_2
7
+
8
+
9
+ attr_accessor :telegram_messanger,
10
+ :belgim_login,
11
+ :belgim_password,
12
+ :belgim_url,
13
+ :ukaz60_add_func
14
+
15
+ def initialize(telegram_api_url,
16
+ telegram_chat_id,
17
+ belgim_login,
18
+ belgim_password,
19
+ belgim_url
20
+ )
21
+ @telegram_messanger = Telegram_2.new(telegram_api_url, telegram_chat_id)
22
+ @belgim_login = belgim_login
23
+ @belgim_password = belgim_password
24
+ @belgim_url = belgim_url
25
+ @ukaz60_add_func = AddFuncUkaz60_2.new
26
+ end
27
+
28
+
29
+ #get domains from belgim and parse data
30
+ #return all domains urls ips. Selection specific data for dns or firewall do by additional functions
31
+ #full ready for dns and firewall
32
+ def belgim_ukaz60_get
33
+
34
+ output_data = {}
35
+
36
+ begin
37
+
38
+ #data peremennye
39
+ regexp_redns = /<dns>(.{1,100})dns>/
40
+ regexp_reurl = /<url>(.{1,100})url>/
41
+ regexp_reip = /<ip>(.{1,100})ip>/
42
+
43
+ #processed data in correct format
44
+ domain_parsed = []
45
+ url_parsed = []
46
+ ipv4_parsed = []
47
+ ipv6_parsed = []
48
+ https_parsed = []
49
+ url_all = []
50
+
51
+ f2 =[]
52
+ results = {}
53
+
54
+ # Get data from Belgim site by curl
55
+ return_from_belgim = `curl -d "name=#{belgim_login}&pass=#{belgim_password}" -H "Content-Type: application/x-www-form-urlencoded" -X POST #{belgim_url}`
56
+ return_from_belgim = return_from_belgim.gsub!("\n", "")
57
+
58
+ #parse Belgim file by regexpression
59
+ # and split by 3 categories: url, dns, ip
60
+ belgim_domains = return_from_belgim.scan(regexp_redns)
61
+ belgim_urls = return_from_belgim.scan(regexp_reurl)
62
+ belgim_ips = return_from_belgim.scan(regexp_reip)
63
+
64
+ #process only domains.
65
+ for i in belgim_domains
66
+ a1 = i[0]
67
+ elem = a1.gsub("</", "")
68
+
69
+ if elem.include? " "
70
+ elem = elem.gsub(" ", "")
71
+ end
72
+
73
+ if elem.match(/а|б|в|г|д|е|ж|ё|Ё|з|и|й|к|л|м|н|о|п|р|с|т|у|ф|х|ц|ч|ш|щ|ь|ы|ъ|э|ю|я|А|Б|В|Г|Д|Е|Ж|З|И|Й|К|Л|М|Н|О|П|Р|С|Т|У|Ф|Х|Ц|Ч|Ш|Щ|Ь|Ы|Ъ|Э|Ю|Я/)
74
+ elem = SimpleIDN.to_ascii(elem)
75
+ end
76
+
77
+ if elem != "-" && elem != ""
78
+ domain_parsed.push(elem)
79
+ if_www = elem[0]+elem[1]+elem[2]+elem[3]
80
+
81
+ #if not contain www - add domain with www
82
+ if if_www != "www."
83
+ domain_parsed.push("www."+elem)
84
+ end
85
+
86
+ #if contain www - add domain without www
87
+ if if_www == "www."
88
+ gar = elem[4..elem.length]
89
+ domain_parsed.push(gar)
90
+ end
91
+ end
92
+ end
93
+
94
+ #process only urls
95
+ for s in belgim_urls
96
+
97
+ #process every domain. Find if https or http and domain
98
+ func_processed = ukaz60_add_func.delete_dump_symbols_url(s[0])
99
+
100
+ if func_processed[:code] == 200
101
+ processed_url = func_processed[:domain_only]
102
+ processed_domain_in_url = func_processed[:processed_domain_in_url]
103
+
104
+ if func_processed[:type] == "domain"
105
+ domain_parsed.push(processed_url)
106
+ check_if_www = processed_url[0]+processed_url[1]+processed_url[2]+processed_url[3]
107
+
108
+ #if not contains www then add with www too
109
+ if check_if_www != "www."
110
+ domain_parsed.push("www."+processed_url)
111
+ end
112
+
113
+ #if contains www then add without www too
114
+ if check_if_www == "www."
115
+ gar2domain = processed_url[4..processed_url.length]
116
+ domain_parsed.push(gar2domain)
117
+ end
118
+ elsif func_processed[:type] == "url" && func_processed[:protocol] != "https"
119
+ #p "Step4 processed_domain_in_url: #{processed_domain_in_url}"
120
+ #p "Step5 func_processed: #{func_processed.to_s}"
121
+
122
+ url_parsed.push(func_processed[:protocol] + "://" + processed_domain_in_url)
123
+ check_if_www2 = processed_domain_in_url[0]+processed_domain_in_url[1]+processed_domain_in_url[2]+processed_domain_in_url[3]
124
+ if check_if_www2 != "www."
125
+ url_parsed.push(func_processed[:protocol] + "://" + "www."+processed_domain_in_url)
126
+ end
127
+ if check_if_www2 == "www."
128
+ gar1url = processed_domain_in_url[4..processed_domain_in_url.length]
129
+ url_parsed.push(func_processed[:protocol] + "://" + gar1url)
130
+ end
131
+ elsif func_processed[:protocol] == "https"
132
+ #additional section for https urls
133
+ https_parsed.push(func_processed[:protocol] + "://" + processed_domain_in_url)
134
+ check_if_www2https = processed_domain_in_url[0]+processed_domain_in_url[1]+processed_domain_in_url[2]+processed_domain_in_url[3]
135
+ if check_if_www2https != "www."
136
+ https_parsed.push(func_processed[:protocol] + "://" + "www."+processed_domain_in_url)
137
+ end
138
+ if check_if_www2https == "www."
139
+ gar1url_https = processed_domain_in_url[4..processed_domain_in_url.length]
140
+ https_parsed.push(func_processed[:protocol] + "://" + gar1url_https)
141
+ end
142
+ end
143
+ end
144
+ end
145
+
146
+ #process only IPs
147
+ for f in belgim_ips
148
+
149
+ a2ip = f[0]
150
+
151
+ if a2ip.include? " "
152
+ a2ip = a2ip.gsub(" ", "")
153
+ end
154
+
155
+ elem_ip = a2ip.gsub("</", "")
156
+
157
+ if elem_ip != "-" && elem_ip != ""
158
+ if elem_ip.include?(":")
159
+ ipv6_parsed.push(elem_ip)
160
+ else
161
+ ipv4_parsed.push(elem_ip)
162
+ end
163
+ end
164
+ end
165
+
166
+ domain_parsed = domain_parsed.uniq
167
+ url_parsed = url_parsed.uniq
168
+ ipv6_parsed = ipv6_parsed.uniq
169
+ ipv4_parsed = ipv4_parsed.uniq
170
+ https_parsed = https_parsed.uniq
171
+
172
+ https_parsed_tmmp = []
173
+ https_parsed.each do |tmp_tmp|
174
+ https_parsed_tmmp.push(tmp_tmp.gsub("https://", "http://"))
175
+ end
176
+ url_all = https_parsed_tmmp + url_parsed
177
+ url_all = url_all.uniq
178
+ url_all_num = url_all.length
179
+
180
+
181
+ dns_num = domain_parsed.length
182
+ ipv4_num = ipv4_parsed.length
183
+ ipv6_num = ipv6_parsed.length
184
+ url_num = url_parsed.length
185
+ https_num = https_parsed.length
186
+
187
+ all_num = dns_num + ipv4_num + ipv6_num + url_num + https_num
188
+
189
+
190
+
191
+ output_data = {:code => 200,
192
+ :result => "Request completed successfully",
193
+ :number => {:domain_num => dns_num,
194
+ :url_http_num => url_num,
195
+ :ipv4_num => ipv4_num,
196
+ :ipv6_num => ipv6_num,
197
+ :url_https_num => https_num,
198
+ :url_all_num => url_all_num,
199
+ :all_num => all_num
200
+ },
201
+ :domains_for_block => domain_parsed,
202
+ :url_for_block => url_parsed,
203
+ :ipv6_parsed => ipv6_parsed,
204
+ :ipv4_parsed => ipv4_parsed,
205
+ :https_parsed => https_parsed,
206
+ :url_all => url_all
207
+ }
208
+
209
+ rescue
210
+ output_data = {:code => 507, :result => "belgim_ukaz60_get: Unknown error"}
211
+ end
212
+ output_data
213
+
214
+ end
215
+
216
+
217
+ end