imperituroard 0.5.1 → 0.5.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -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