freewifi 0.1.4 → 0.1.5
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/.idea/freewifi.iml +22 -2
- data/.idea/workspace.xml +161 -182
- data/freewifi.gemspec +2 -1
- data/lib/freewifi/additional/additional_functions.rb +29 -9
- data/lib/freewifi/cisco/cisco_schemes_conf_gen.rb +12 -0
- data/lib/freewifi/config.rb +4 -0
- data/lib/freewifi/database/mongo/mongoconnector.rb +24 -19
- data/lib/freewifi/database/mysql/database_methods_wifi.rb +1 -1
- data/lib/freewifi/mikrotik/newhub_mtik_ssh.rb +321 -0
- data/lib/freewifi/mikrotik/schemes_conf_gen.rb +54 -0
- data/lib/freewifi/params.rb +6 -0
- data/lib/freewifi/version.rb +2 -2
- data/lib/freewifi.rb +119 -43
- metadata +20 -2
- data/lib/freewifi/mikrotik/hewhub_mtik_ssh.rb +0 -204
@@ -1,8 +1,9 @@
|
|
1
1
|
require 'date'
|
2
|
+
require 'translit'
|
2
3
|
|
3
|
-
class
|
4
|
+
class InternalFunc_1
|
4
5
|
|
5
|
-
def
|
6
|
+
def datetimenow_1()
|
6
7
|
d_curr = DateTime.now
|
7
8
|
time_zone = 'Europe/Minsk'
|
8
9
|
# DateTime.new
|
@@ -11,28 +12,47 @@ class InternalFunc
|
|
11
12
|
d_curr.to_s
|
12
13
|
end
|
13
14
|
|
14
|
-
def
|
15
|
+
def printer_texter_wifi_1(text, log_level)
|
15
16
|
begin
|
16
|
-
|
17
|
-
|
17
|
+
if log_level == "debug" && Freewifi_1::LOGLEVEL_1 == "debug"
|
18
|
+
mess = {:datetime => datetimenow_1, :sdk => "freewifi", :sdk_version => Freewifi_1::VERSION, :message => text}
|
19
|
+
p mess
|
20
|
+
end
|
21
|
+
|
18
22
|
rescue
|
19
23
|
p "Failed print message"
|
20
24
|
end
|
21
25
|
end
|
22
26
|
|
23
|
-
def
|
27
|
+
def hub_tunnelname_generator_1(tunnel_id, company_name)
|
24
28
|
comp_name = company_name
|
25
29
|
"#{tunnel_id.to_s}_eoip_hub_auto_#{comp_name}"
|
26
30
|
end
|
27
31
|
|
28
|
-
def
|
32
|
+
def company_check_wifi_1(compname)
|
29
33
|
compname2=""
|
30
34
|
if compname.include?(" ")
|
31
|
-
compname2 = compname.gsub(" ","")
|
35
|
+
compname2 = compname.gsub(" ", "")
|
32
36
|
else
|
33
37
|
compname2 = compname
|
34
38
|
end
|
35
39
|
compname2
|
36
40
|
end
|
37
41
|
|
38
|
-
|
42
|
+
def prep_comp_name_for_config_1(company_name)
|
43
|
+
res = company_name.gsub(" ", "")
|
44
|
+
res1 = Translit.convert(res, :english)
|
45
|
+
res1.slice(0..14)
|
46
|
+
end
|
47
|
+
|
48
|
+
def prep_ssid_for_config_1(ssid)
|
49
|
+
res = ssid.gsub(" ", "_")
|
50
|
+
res1 = Translit.convert(res, :english)
|
51
|
+
res1.slice(0..14)
|
52
|
+
end
|
53
|
+
|
54
|
+
def ap_hostname_generator(company, tunnel_id)
|
55
|
+
"#{self.prep_comp_name_for_config_1(company)}_#{tunnel_id.to_s}"
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class CiscoSchemesGen_1
|
2
|
+
|
3
|
+
def scheme1_fttx_config_gen_1(ap_wifi_ip, ap_wifi_gateway, ap_wifi_mask)
|
4
|
+
[
|
5
|
+
"capwap ap ip address #{ap_wifi_ip} #{ap_wifi_mask}",
|
6
|
+
"capwap ap ip default-gateway #{ap_wifi_gateway}",
|
7
|
+
"capwap ap controller ip address 172.24.211.1"
|
8
|
+
]
|
9
|
+
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
@@ -5,9 +5,9 @@ require 'rubygems'
|
|
5
5
|
require 'freewifi/additional/additional_functions'
|
6
6
|
|
7
7
|
#class for communication with mongo database for iot API
|
8
|
-
class
|
8
|
+
class MongoWifiCl_1
|
9
9
|
|
10
|
-
attr_accessor :mongo_ip, :mongo_port, :client, :mongo_database, :
|
10
|
+
attr_accessor :mongo_ip, :mongo_port, :client, :mongo_database, :additional_func_1
|
11
11
|
|
12
12
|
def initialize(mongo_ip, mongo_port, mongo_database)
|
13
13
|
@mongo_database = mongo_database
|
@@ -15,13 +15,14 @@ class MongoWifiCl
|
|
15
15
|
@mongo_port = mongo_port
|
16
16
|
client_host = [mongo_ip + ":" + mongo_port]
|
17
17
|
@client = Mongo::Client.new(client_host, :database => mongo_database)
|
18
|
-
|
18
|
+
|
19
|
+
@additional_func_1 = InternalFunc_1.new
|
19
20
|
end
|
20
21
|
|
21
|
-
def
|
22
|
+
def audit_logger_wifi_1(proc_name, src_ip, input_json, output_json, real_ip, subscriber_ip)
|
22
23
|
out_resp = {}
|
23
24
|
begin
|
24
|
-
current =
|
25
|
+
current = additional_func_1.datetimenow_1
|
25
26
|
collection = client[:audit]
|
26
27
|
doc = {
|
27
28
|
:proc_name => proc_name,
|
@@ -29,33 +30,35 @@ class MongoWifiCl
|
|
29
30
|
:sender => {:src_ip => src_ip, :real_ip => real_ip, :subscriber_ip => subscriber_ip},
|
30
31
|
:input_params => input_json,
|
31
32
|
:output_params => output_json,
|
32
|
-
:sdk_version =>
|
33
|
+
:sdk_version => Freewifi_1::VERSION
|
33
34
|
}
|
34
35
|
result = collection.insert_one(doc)
|
35
|
-
out_resp = {:code => 200, :result => "
|
36
|
+
out_resp = {:code => 200, :result => "audit_logger_wifi_1: Request completed successfully", :body => result, :sdk => "freewifi"}
|
36
37
|
rescue
|
37
|
-
out_resp = {:code => 507, :result => "
|
38
|
+
out_resp = {:code => 507, :result => "audit_logger_wifi_1: Unknown SDK error", :sdk => "freewifi"}
|
38
39
|
end
|
39
|
-
|
40
|
+
additional_func_1.printer_texter_wifi_1(out_resp, "debug")
|
40
41
|
out_resp
|
41
42
|
end
|
42
43
|
|
43
44
|
|
44
|
-
def
|
45
|
+
def data_ap_auto_created_insert_1(data)
|
45
46
|
input_params = {:data => data}
|
46
47
|
output_params = {}
|
47
48
|
begin
|
48
49
|
collection = client[:ap_auto_created]
|
49
50
|
result = collection.insert_one(data)
|
50
|
-
output_params = {:code => 200, :result => "
|
51
|
+
output_params = {:code => 200, :result => "data_ap_auto_created_insert_1: Request completed successfully", :body => result, :sdk => "freewifi"}
|
51
52
|
rescue
|
52
|
-
output_params = {:code => 500, :result => "
|
53
|
+
output_params = {:code => 500, :result => "data_ap_auto_created_insert_1: failed insert data to mongo", :sdk => "freewifi"}
|
53
54
|
end
|
54
|
-
|
55
|
+
additional_func_1.printer_texter_wifi_1({:input_params => input_params, :output_params => output_params, :procedure => "data_ap_auto_created_insert_1", :file => "freewifi/database/mongo/mongoconnector.rb", :sdk => "freewifi"}, "debug")
|
55
56
|
output_params
|
56
57
|
end
|
57
58
|
|
58
|
-
def
|
59
|
+
def get_ap_info_sim_ip_wifi_1(sim_ipaddress, sim_msisdn)
|
60
|
+
input_params = {:sim_ipaddress => sim_ipaddress, :sim_msisdn => sim_msisdn}
|
61
|
+
output_params = {}
|
59
62
|
begin
|
60
63
|
result_ps = []
|
61
64
|
collection = client[:ap_auto_created]
|
@@ -63,13 +66,15 @@ class MongoWifiCl
|
|
63
66
|
result_ps << row
|
64
67
|
#result_ps.append(row)
|
65
68
|
}
|
66
|
-
result_ps[0]
|
69
|
+
output_params = {:code => 200, :result => "get_ap_info_sim_ip_wifi_1: Request completed successfully", :body => {:all_mongo => result_ps, :tunnel_id => result_ps[0]["tunnel_id"] }, :sdk => "freewifi"}
|
67
70
|
rescue
|
68
|
-
|
71
|
+
output_params = {:code => 500, :result => "get_ap_info_sim_ip_wifi_1: failed ", :sdk => "freewifi"}
|
69
72
|
end
|
73
|
+
additional_func_1.printer_texter_wifi_1({:input_params => input_params, :output_params => output_params, :procedure => "get_ap_info_sim_ip_wifi_1", :file => "freewifi/database/mongo/mongoconnector.rb", :sdk => "freewifi"}, "debug")
|
74
|
+
output_params
|
70
75
|
end
|
71
76
|
|
72
|
-
def
|
77
|
+
def tunnelid_remove_single_mongo_1(tunnel_id)
|
73
78
|
out_resp = {}
|
74
79
|
begin
|
75
80
|
collection = client[:ap_auto_created]
|
@@ -78,9 +83,9 @@ class MongoWifiCl
|
|
78
83
|
}
|
79
84
|
result = collection.delete_many(doc)
|
80
85
|
p result
|
81
|
-
out_resp = {:code => 200, :result => "
|
86
|
+
out_resp = {:code => 200, :result => "tunnelid_remove_single_mongo_1: Request completed successfully", :sdk => "freewifi"}
|
82
87
|
rescue
|
83
|
-
out_resp = {:code => 507, :result => "
|
88
|
+
out_resp = {:code => 507, :result => "tunnelid_remove_single_mongo_1: Unknown SDK error", :sdk => "freewifi"}
|
84
89
|
end
|
85
90
|
#internal_func.printer_texter(out_resp, "debug")
|
86
91
|
out_resp
|
@@ -0,0 +1,321 @@
|
|
1
|
+
require 'net/ssh'
|
2
|
+
require 'ipaddr'
|
3
|
+
require 'json'
|
4
|
+
require 'ipaddr'
|
5
|
+
require 'date'
|
6
|
+
require "freewifi/additional/additional_functions"
|
7
|
+
|
8
|
+
|
9
|
+
class NEWhubWifi_1
|
10
|
+
|
11
|
+
attr_accessor :t_id_min, :t_id_max, :additional_func_wifi_1
|
12
|
+
|
13
|
+
def initialize
|
14
|
+
@t_id_min = 10001
|
15
|
+
@t_id_max = 65535
|
16
|
+
|
17
|
+
@additional_func_wifi_1 = InternalFunc_1.new
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
def del_eoip_for_mikr_1(tunnel_id, hub1, hub2, user_hub, password_hub)
|
22
|
+
|
23
|
+
begin
|
24
|
+
Net::SSH.start(hub1, user_hub, :password => password_hub) do |ssh|
|
25
|
+
#result = ssh.exec!("/interface eoip print where tunnel-id=#{tunnel_id}")
|
26
|
+
#p result
|
27
|
+
result = ssh.exec!("/interface eoip print where tunnel-id=#{tunnel_id}")
|
28
|
+
regimsi = /\s+name=\"(.+)\"\s+/
|
29
|
+
m1 = regimsi.match(result)[1]
|
30
|
+
sleep 0.2
|
31
|
+
result2 = ssh.exec!("/interface bridge port remove [/interface bridge port find interface=#{m1}]")
|
32
|
+
sleep 0.2
|
33
|
+
result3 = ssh.exec!("/interface eoip remove [/interface eoip find where tunnel-id=#{tunnel_id}]")
|
34
|
+
|
35
|
+
#result2 = ssh.exec!("interface bridge port add bridge=#{bridge_name} interface=#{tunnel_name}")
|
36
|
+
end
|
37
|
+
#Net::SSH.stop
|
38
|
+
rescue
|
39
|
+
nil
|
40
|
+
end
|
41
|
+
|
42
|
+
begin
|
43
|
+
Net::SSH.start(hub2, user_hub, :password => password_hub) do |ssh|
|
44
|
+
result = ssh.exec!("/interface eoip print where tunnel-id=#{tunnel_id}")
|
45
|
+
regimsi = /\s+name=\"(.+)\"\s+/
|
46
|
+
m1 = regimsi.match(result)[1]
|
47
|
+
sleep 0.2
|
48
|
+
result2 = ssh.exec!("/interface bridge port remove [/interface bridge port find interface=#{m1}]")
|
49
|
+
sleep 0.2
|
50
|
+
result3 = ssh.exec!("/interface eoip remove [/interface eoip find where tunnel-id=#{tunnel_id}]")
|
51
|
+
|
52
|
+
#result = ssh.exec!("interface eoip add remote-address=#{ap_ip_address} tunnel-id=#{tunnel_id} name=#{tunnel_name}")
|
53
|
+
#result2 = ssh.exec!("interface bridge port add bridge=#{bridge_name} interface=#{tunnel_name}")
|
54
|
+
end
|
55
|
+
#Net::SSH.stop
|
56
|
+
rescue
|
57
|
+
nil
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
def ap_get_info(ap_ip_address, ap_login, ap_password)
|
63
|
+
res = ""
|
64
|
+
Net::SSH.start(ap_ip_address, ap_login, :password => ap_password) do |ssh|
|
65
|
+
result = ssh.exec!("system identity print")
|
66
|
+
dff = result.to_s
|
67
|
+
res = dff.gsub!("name: ", "").gsub!("\r\n\r\n", "").gsub!(" ", "")
|
68
|
+
end
|
69
|
+
res
|
70
|
+
end
|
71
|
+
|
72
|
+
def ap_tun_rewrite(ap_ip_address, tun_id, ap_login, ap_password)
|
73
|
+
res = ""
|
74
|
+
Net::SSH.start(ap_ip_address, ap_login, :password => ap_password) do |ssh|
|
75
|
+
result = ssh.exec!("/interface eoip set tunnel_to_hab1 tunnel-id=#{tun_id} remote-address=172.24.202.145")
|
76
|
+
end
|
77
|
+
res
|
78
|
+
end
|
79
|
+
|
80
|
+
def get_tun_id(req_num_of_tunid, busy_tun_id)
|
81
|
+
all_ids=[]
|
82
|
+
i = t_id_min
|
83
|
+
while i < t_id_max
|
84
|
+
all_ids << i
|
85
|
+
i=i+1
|
86
|
+
end
|
87
|
+
p all_ids
|
88
|
+
end
|
89
|
+
|
90
|
+
#procedure for tunnel id-s selection based on all_tunids array
|
91
|
+
def get_tun_id2_1(req_num_of_tunid, busy_tun_id)
|
92
|
+
#req_num_of_tunid - integer number of necessary tun ids
|
93
|
+
#busy_tun_id - [] dictionary of currently used tun ids with integer elements
|
94
|
+
input_params = {:req_num_of_tunid => req_num_of_tunid, :busy_tun_id => busy_tun_id}
|
95
|
+
output_params = {}
|
96
|
+
all_ids = []
|
97
|
+
req_tun_ids = []
|
98
|
+
begin
|
99
|
+
available_tun_id = Freewifi_1::ALL_TUNIDS - busy_tun_id
|
100
|
+
i = 0
|
101
|
+
while i < req_num_of_tunid
|
102
|
+
req_tun_ids << available_tun_id[i]
|
103
|
+
i=i+1
|
104
|
+
end
|
105
|
+
output_params = {:code => 200, :result => "get_tun_id2_1: Request completed", :body => {:selected_tun_ids => req_tun_ids}, :sdk => "freewifi"}
|
106
|
+
rescue
|
107
|
+
output_params = {:code => 500, :result => "get_tun_id2_1: Something Wrong", :sdk => "freewifi"}
|
108
|
+
end
|
109
|
+
additional_func_wifi_1.printer_texter_wifi_1({:input_params => input_params, :output_params => output_params, :procedure => "get_tun_id2_1"}, "debug")
|
110
|
+
output_params
|
111
|
+
end
|
112
|
+
|
113
|
+
#universal procedure for get currently configured eoip tunnels
|
114
|
+
def hub_get_all_eoip_tunnels_1(hub_ip_address, hub_login, hub_password)
|
115
|
+
input_params = {:hub_ip_address => hub_ip_address, :hub_login => hub_login, :hub_password => hub_password}
|
116
|
+
output_params = {}
|
117
|
+
result = ""
|
118
|
+
busy_tunnel_ids = []
|
119
|
+
begin
|
120
|
+
ssh_connection = Net::SSH.start(hub_ip_address, hub_login, :password => hub_password) do |ssh|
|
121
|
+
result = ssh.exec!("/interface eoip print where tunnel-id>=#{t_id_min.to_s} tunnel-id<=#{t_id_max.to_s}")
|
122
|
+
end
|
123
|
+
#p ssh_connection.
|
124
|
+
reg_tunnelid = /tunnel-id=(\d+)/
|
125
|
+
m1 = result.scan(reg_tunnelid)
|
126
|
+
for a1 in m1
|
127
|
+
if a1[0] != []
|
128
|
+
s1 = a1[0].to_i
|
129
|
+
busy_tunnel_ids << s1
|
130
|
+
end
|
131
|
+
end
|
132
|
+
output_params = {:code => 200, :result => "hub_get_all_eoip_tunnels_1: Request completed", :body => {:busy_tunnel_ids => busy_tunnel_ids}, :sdk => "freewifi"}
|
133
|
+
|
134
|
+
rescue
|
135
|
+
output_params = {:code => 500, :result => "hub_get_all_eoip_tunnels_1: Something Wrong", :sdk => "freewifi"}
|
136
|
+
end
|
137
|
+
|
138
|
+
additional_func_wifi_1.printer_texter_wifi_1({:input_params => input_params, :output_params => output_params, :procedure => "hub_get_all_eoip_tunnels_1"}, "debug")
|
139
|
+
output_params
|
140
|
+
|
141
|
+
#m1 = reg_tunnelid.scan(result)
|
142
|
+
#p busy_tunnel_ids
|
143
|
+
#g = result.split("\r\n\r\n")
|
144
|
+
#p g
|
145
|
+
#result
|
146
|
+
end
|
147
|
+
|
148
|
+
|
149
|
+
def add_eoip_for_mikr_wifi_1(bridge_name, ap_ip_address, company_name, hub1, hub2, user_hub, password_hub)
|
150
|
+
|
151
|
+
input_params = {:bridge_name => bridge_name,
|
152
|
+
:ap_ip_address => ap_ip_address,
|
153
|
+
:company_name => company_name,
|
154
|
+
:hub1 => hub1,
|
155
|
+
:hub2 => hub2,
|
156
|
+
:user_hub => user_hub,
|
157
|
+
:password_hub => password_hub
|
158
|
+
}
|
159
|
+
output_params = {}
|
160
|
+
hub1_processed = ""
|
161
|
+
hub2_processed = ""
|
162
|
+
|
163
|
+
get_tun_id_answ = get_tun_id2_1(1, hub_get_all_eoip_tunnels_1(hub1, user_hub, password_hub)[:body][:busy_tunnel_ids])
|
164
|
+
eoip_tunnel_name = additional_func_wifi_1.hub_tunnelname_generator_1(get_tun_id_answ[:body][:selected_tun_ids][0], company_name)
|
165
|
+
|
166
|
+
if get_tun_id_answ[:code] == 200
|
167
|
+
|
168
|
+
begin
|
169
|
+
Net::SSH.start(hub1, user_hub, :password => password_hub) do |ssh|
|
170
|
+
result = ssh.exec!("/interface eoip add remote-address=#{ap_ip_address} tunnel-id=#{get_tun_id_answ[:body][:selected_tun_ids][0]} name=#{eoip_tunnel_name}")
|
171
|
+
result2 = ssh.exec!("/interface bridge port add bridge=#{bridge_name} interface=#{eoip_tunnel_name} unknown-multicast-flood=no unknown-unicast-flood=no")
|
172
|
+
end
|
173
|
+
hub1_processed = "Success"
|
174
|
+
rescue
|
175
|
+
hub1_processed = "Failed"
|
176
|
+
end
|
177
|
+
#Net::SSH.stop
|
178
|
+
|
179
|
+
begin
|
180
|
+
Net::SSH.start(hub2, user_hub, :password => password_hub) do |ssh|
|
181
|
+
result = ssh.exec!("/interface eoip add remote-address=#{ap_ip_address} tunnel-id=#{get_tun_id_answ[:body][:selected_tun_ids][0]} name=#{eoip_tunnel_name}")
|
182
|
+
result2 = ssh.exec!("/interface bridge port add bridge=#{bridge_name} interface=#{eoip_tunnel_name} unknown-multicast-flood=no unknown-unicast-flood=no")
|
183
|
+
end
|
184
|
+
#Net::SSH.stop
|
185
|
+
hub2_processed = "Success"
|
186
|
+
rescue
|
187
|
+
hub2_processed = "Failed"
|
188
|
+
end
|
189
|
+
output_params = {:code => 200, :result => "add_eoip_for_mikr_wifi_1: Request completed", :body => {:eoip_tunnel_id => get_tun_id_answ[:body][:selected_tun_ids][0], :eoip_tunnel_name => eoip_tunnel_name, :hub1_processed => hub1_processed, :hub2_processed => hub2_processed}}
|
190
|
+
else
|
191
|
+
output_params = {:code => 500, :result => "add_eoip_for_mikr_wifi_1: Something Wrong with empty eoip tun id", :sdk => "freewifi"}
|
192
|
+
end
|
193
|
+
additional_func_wifi_1.printer_texter_wifi_1({:input_params => input_params, :output_params => output_params, :procedure => "add_eoip_for_mikr_wifi_1", :sdk => "freewifi"}, "debug")
|
194
|
+
output_params
|
195
|
+
end
|
196
|
+
|
197
|
+
|
198
|
+
def mikr_tunnelid_gen()
|
199
|
+
t_id_min = 10001
|
200
|
+
t_id_max = 65535
|
201
|
+
end
|
202
|
+
|
203
|
+
def check_pool_range_includes_1(range, ip_addr_new)
|
204
|
+
input_params ={:range => range, :ip_addr_new => ip_addr_new}
|
205
|
+
output_params = {}
|
206
|
+
|
207
|
+
begin
|
208
|
+
res = "nothing"
|
209
|
+
gs = range.split(",")
|
210
|
+
for j in gs
|
211
|
+
if j.include?("/")
|
212
|
+
ipaddr1 = IPAddr.new ip_addr_new
|
213
|
+
x1 = j.split("/")
|
214
|
+
ipaddr2 = ipaddr1.mask(x1[1].to_i).to_s
|
215
|
+
ipaddr3 = ipaddr2.to_s
|
216
|
+
if ipaddr3 == x1[0]
|
217
|
+
res = "exists"
|
218
|
+
end
|
219
|
+
else
|
220
|
+
if j == ip_addr_new
|
221
|
+
res = "exists"
|
222
|
+
end
|
223
|
+
end
|
224
|
+
end
|
225
|
+
output_params = {:code => 200, :result => "check_pool_range_includes_1: Request processed", :body => {:result => res}}
|
226
|
+
rescue
|
227
|
+
output_params = {:code => 507, :result => "check_pool_range_includes_1: Unknown SDK error"}
|
228
|
+
end
|
229
|
+
|
230
|
+
additional_func_wifi_1.printer_texter_wifi_1({:input_params => input_params, :output_params => output_params, :procedure => "check_pool_range_includes_1", :file => "freewifi/mikrotik/newhub_mtik_ssh.rb", :sdk => "freewifi"}, "debug")
|
231
|
+
output_params
|
232
|
+
end
|
233
|
+
|
234
|
+
def capsman_set_ip_range_1(capsman1, capsman_user1, capsman_pass1, ap_ip)
|
235
|
+
|
236
|
+
end
|
237
|
+
|
238
|
+
def capsman_new_configuration_1(wifissid, capsman1, capsman_user1, capsman_pass1, ap_ip, companyname)
|
239
|
+
|
240
|
+
conf_24ghz_name = "auto_cfg_24ghz_#{companyname}_#{wifissid}"
|
241
|
+
command_conf_24ghz = "/caps-man configuration add name=#{conf_24ghz_name} ssid=#{wifissid} country=belarus mode=ap hw-retries=15 channel=24_channel_24GHz_dynamic_power22 datapath=1_datapath_MTS_Local-forwarding security=security_without_passphrase_default_FREE-WiFi"
|
242
|
+
|
243
|
+
conf_5ghz_name = "auto_cfg_5ghz_#{companyname}_#{wifissid}"
|
244
|
+
command_conf_5ghz = "/caps-man configuration add name=#{conf_5ghz_name} ssid=#{wifissid} country=belarus mode=ap hw-retries=15 channel=5_channel_5GHz_number1_power23 datapath=1_datapath_MTS_Local-forwarding security=security_without_passphrase_default_FREE-WiFi"
|
245
|
+
|
246
|
+
command_provisioning_24ghz = "/caps-man provisioning add hw-supported-modes=b,g,gn ip-address-ranges=#{ap_ip} action=create-dynamic-enabled master-configuration=#{conf_24ghz_name} name-format=identity"
|
247
|
+
|
248
|
+
command_provisioning_5ghz = "/caps-man provisioning add hw-supported-modes=a,ac,an ip-address-ranges=#{ap_ip} action=create-dynamic-enabled master-configuration=#{conf_24ghz_name} name-format=identity"
|
249
|
+
|
250
|
+
Net::SSH.start(capsman1, capsman_user1, :password => capsman_pass1) do |ssh|
|
251
|
+
result = ssh.exec!(command_conf_24ghz)
|
252
|
+
result1 = ssh.exec!(command_conf_5ghz)
|
253
|
+
result2 = ssh.exec!(command_provisioning_24ghz)
|
254
|
+
result3 = ssh.exec!(command_provisioning_5ghz)
|
255
|
+
end
|
256
|
+
|
257
|
+
end
|
258
|
+
|
259
|
+
def capsman_add_ip_to_existed_1(ap_name_list, capsman1, capsman_user1, capsman_pass1, ap_ip)
|
260
|
+
command = "/caps-man provisioning print where "
|
261
|
+
|
262
|
+
for h in ap_name_list
|
263
|
+
command = command + " or master-configuration=" + h
|
264
|
+
end
|
265
|
+
command = command.gsub("where or", "where")
|
266
|
+
|
267
|
+
final_provision_old = []
|
268
|
+
|
269
|
+
Net::SSH.start(capsman1, capsman_user1, :password => capsman_pass1) do |ssh|
|
270
|
+
result = ssh.exec!(command)
|
271
|
+
s1 = result.split("\r\n\r\n")
|
272
|
+
for a in s1
|
273
|
+
a1 = a.gsub("\r\n", "")
|
274
|
+
a2 = a1.gsub(", ", ",")
|
275
|
+
reg_addr_range = / (\d) .+ ip-address-ranges=(\d{1,3}.+\.\d{1,3}|\d{1,3}.+\.\d{1,3}\/\d{1,2})\s+/
|
276
|
+
m1 = a2.scan(reg_addr_range)
|
277
|
+
num = m1[0][0]
|
278
|
+
ip_ran = m1[0][1].gsub(" ", "")
|
279
|
+
triplet = [num, ip_ran]
|
280
|
+
final_provision_old << triplet
|
281
|
+
exists_check = self.check_pool_range_includes_1(triplet[1], ap_ip)
|
282
|
+
|
283
|
+
if exists_check[:body][:result] != "exists"
|
284
|
+
#self.capsman_set_ip_range_1(capsman1, capsman_user1, capsman_pass1, ap_ip)
|
285
|
+
#set data to capsman
|
286
|
+
rewrite_ip_command = "/caps-man provisioning set numbers=#{triplet[0]} ip-address-ranges=#{triplet[1]},#{ap_ip}"
|
287
|
+
p rewrite_ip_command
|
288
|
+
|
289
|
+
ssh.exec!(rewrite_ip_command)
|
290
|
+
|
291
|
+
end
|
292
|
+
end
|
293
|
+
end
|
294
|
+
|
295
|
+
|
296
|
+
end
|
297
|
+
|
298
|
+
|
299
|
+
def set_capsman_config_1(wifissid, capsman1, capsman_user1, capsman_pass1, ap_ip, companyname)
|
300
|
+
Net::SSH.start(capsman1, capsman_user1, :password => capsman_pass1) do |ssh|
|
301
|
+
result = ssh.exec!("/caps-man configuration print where ssid=#{wifissid}")
|
302
|
+
if result == "\r\n" || result == "" || result == nil
|
303
|
+
self.capsman_new_configuration_1(wifissid, capsman1, capsman_user1, capsman_pass1, ap_ip, companyname)
|
304
|
+
else
|
305
|
+
p result
|
306
|
+
conf_names = []
|
307
|
+
reg_config_name = /name=\"(\S+)\"/
|
308
|
+
m1 = result.scan(reg_config_name)
|
309
|
+
for a1 in m1
|
310
|
+
if a1[0] != []
|
311
|
+
s1 = a1[0]
|
312
|
+
conf_names << s1
|
313
|
+
end
|
314
|
+
end
|
315
|
+
self.capsman_add_ip_to_existed_1(conf_names, capsman1, capsman_user1, capsman_pass1, ap_ip)
|
316
|
+
end
|
317
|
+
end
|
318
|
+
end
|
319
|
+
|
320
|
+
|
321
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
class MtikSchemesGen_1
|
4
|
+
|
5
|
+
|
6
|
+
def scheme1_3g_config_gen_1(hostname, tunnel_id, hub_vip, ap_admin_password, ap_ssid, capsman)
|
7
|
+
|
8
|
+
cap_conf = "/interface wireless cap set caps-man-addresses="
|
9
|
+
for f in capsman
|
10
|
+
cap_conf = cap_conf + "," + f
|
11
|
+
end
|
12
|
+
cap_conf = cap_conf + " enabled=yes interfaces=wireless_public_interface,wlan2 bridge=bridge_tunnel"
|
13
|
+
cap_conf = cap_conf.gsub("caps-man-addresses=,", "caps-man-addresses=")
|
14
|
+
|
15
|
+
|
16
|
+
[
|
17
|
+
"/system identity set name=#{hostname}",
|
18
|
+
"/interface bridge add name=bridge_tunnel",
|
19
|
+
"/interface eoip add remote-address=#{hub_vip.to_s} tunnel-id=#{tunnel_id.to_s} name=tunnel_to_hub",
|
20
|
+
"/interface bridge port add interface=tunnel_to_hub bridge=bridge_tunnel",
|
21
|
+
"/interface bridge port add interface=wlan1 bridge=bridge_tunnel",
|
22
|
+
"/interface wireless set wlan1 mode=ap-bridge ssid=#{ap_ssid} disabled=no name=wireless_public_interface frequency=2442",
|
23
|
+
"/interface ppp-client set ppp-out1 apn=vpn pin=1111 disabled=no",
|
24
|
+
"/interface wireless set wlan2 disabled=yes",
|
25
|
+
"/system clock set time-zone-name=Europe/Minsk",
|
26
|
+
"/snmp community set numbers=0 name=\"RO2597\" addresses=172.18.25.4/32,172.17.109.3/32 security=none read-access=yes write-access=no",
|
27
|
+
"/snmp set enabled=yes trap-community=RO2597 trap-version=2",
|
28
|
+
"/system ntp client set enabled=yes primary-ntp=172.24.213.41 secondary-ntp=172.18.25.10",
|
29
|
+
cap_conf,
|
30
|
+
"/user set admin password=#{ap_admin_password}",
|
31
|
+
]
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
def scheme1_fttx_config_gen_1(hostname, tunnel_id, hub_vip, ap_admin_password, ap_ssid, ap_wifi_ip, ap_wifi_gateway)
|
37
|
+
|
38
|
+
[
|
39
|
+
"/system identity set name=#{hostname}",
|
40
|
+
"/ip dns set servers=134.17.1.0,134.17.1.1",
|
41
|
+
"/ip address add address=#{ap_wifi_ip} interface=ether1",
|
42
|
+
"/ip route add dst-address=0.0.0.0/0 gateway=#{ap_wifi_gateway}",
|
43
|
+
"/interface bridge add name=bridge_tunnel",
|
44
|
+
"/interface eoip add remote-address=#{hub_vip.to_s} tunnel-id=#{tunnel_id.to_s} name=tunnel_to_hub",
|
45
|
+
"/interface bridge port add interface=tunnel_to_hub bridge=bridge_tunnel",
|
46
|
+
"/interface bridge port add interface=wlan1 bridge=bridge_tunnel",
|
47
|
+
"/interface wireless set wlan1 mode=ap-bridge ssid=#{ap_ssid} disabled=no name=wireless_public_interface frequency=2427",
|
48
|
+
"/user set admin password=#{ap_admin_password}",
|
49
|
+
"/interface wireless set wlan2 disabled=yes"
|
50
|
+
]
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|