wg-backend-django/wg_api/utils/reqs_handler.py
2023-10-30 14:40:43 +07:00

163 lines
4.1 KiB
Python

import json
import requests
def get_session():
login_data = {'username':"infidel","password":"roadsidepicnic", "rememberMe":False}
inf_s = requests.Session()
response = inf_s.post('http://10.30.1.106:5000/login', json=login_data)
print("Session")
print(inf_s.cookies.get_dict())
print(response.json())
print("-"*20)
return inf_s
def req_edit_state(id, state):
inf_s = get_session()
if state == "false":
state = False
if state == "true":
state = True
req_val = {"id":id,"status":state}
req_val = json.dumps(req_val)
print("Req Val --> ", req_val)
req = inf_s.post('http://10.30.1.106:5000/client/set-status', req_val)
print(req)
def req_edit_user(id):
inf_s = get_session()
req_val = id
req_url = 'http://10.30.1.106:5000/api/client/'+req_val
req = inf_s.get(req_url)
print("-->")
print(req)
# req = json.loads(req)
return req.json()
def req_apply_sys():
inf_s = get_session()
# http://10.30.1.106:5000/api/apply-wg-config?_=1669872830286
req_url = 'http://10.30.1.106:5000/api/apply-wg-config'
req = inf_s.get(req_url)
print("-->")
print(req)
return req
#
# http://10.30.1.106:5000/api/client/caivc1vekn84im2m6ec0?_=1669623393468
def req_ip_recommendation():
# Write your own ip recommendation next time
# http://10.30.1.106:5000/api/suggest-client-ips
inf_s = get_session()
req_url = 'http://10.30.1.106:5000/api/suggest-client-ips'
req = inf_s.get(req_url)
req = req.json()
print(len(req))
if len(req) > 1:
print(req[0])
req = [req[0]]
#req_dump = {}
#req_dump["allocated_ips"] = {}
#req_dump["allowed_ips"] = {"OAM":"10.30.1.0/24", "NEW_OAM":"192.168.200.0/24", "WG Nodes":"192.168.100.0/24"}
#
#i = 0
#tmp_array = []
#for x in req:
# print(x)
# tmp_array.append(x)
# i = i+1
#req_dump["allocated_ips"] = tmp_array
print("Allocated IP")
print(req)
#print(req_dump)
return req
def req_del_user(id):
inf_s = get_session()
req_url = 'http://10.30.1.106:5000/remove-client'
data = {"id":id}
print(data)
try:
req = inf_s.post(req_url, json=data)
print(req.json())
except AssertionError as msg:
print(msg)
def req_get_client(id):
inf_s = get_session()
req_url = 'http://10.30.1.106:5000/api/client/'+id
req = inf_s.get(req_url)
return req.json()
def reg_bulk(data):
inf_s = get_session()
req_url = 'http://10.30.1.106:5000/new-client'
for x in data:
#print(x)
if len(x) > 1:
allocated_ip = req_ip_recommendation()
uname = x[0]
email = x[1]
code = x[2]
org = x[3]
#data = {"name":uname,"email":email,"code":code,"org":org}
data = {
"name":code+"-"+uname,
"email":email,
#"allocated_ips":["192.168.100.67/32","192.168.101.7/32"],
"allocated_ips":allocated_ip,
"allowed_ips":["10.30.1.0/24"],
"extra_allowed_ips":[],
"use_server_dns":False,
"enabled":True,
"public_key":"",
"preshared_key":""
}
# data = {"name":uname,"email":email,"allocated_ips":suggest_ips,"allowed_ips":allowed_ips,"extra_allowed_ips":[],"use_server_dns":true,"enabled":true,"preshared_key":true}
req = inf_s.post(req_url, json=data)
print(json.dumps(data, indent=2))
# ret_reg=$(curl -s --location --request POST 'http://10.30.1.106:5000/new-client' \
# --header 'Content-Type: application/json' \
# --cookie .tmp-cookie \
# --data-raw '{"name":"'$uname'","email":"'$email'","allocated_ips":'$suggest_ips',"allowed_ips":["10.0.0.0/8", "192.168.100.0/24"],"extra_allowed_ips":[],"use_server_dns":true,"enabled":true,"preshared_key":true}' )