5 changed files with 120 additions and 14 deletions
@ -0,0 +1,87 @@
|
||||
import argparse |
||||
import requests |
||||
import json |
||||
|
||||
|
||||
class ungleichVPN(object): |
||||
def __init__(self, parser, parents): |
||||
self.parser = parser |
||||
|
||||
self.parser['vpn-create'] = self.parser['sub'].add_parser( |
||||
'vpn-create', |
||||
help="Create VPN", |
||||
parents=[parents]) |
||||
|
||||
self.parser['vpn-delete'] = self.parser['sub'].add_parser( |
||||
'vpn-delete', |
||||
help="Delete VPN", |
||||
parents=[parents]) |
||||
|
||||
self.parser['vpn-create'].set_defaults(func=ungleichVPN.create_vpn) |
||||
self.parser['vpn-create'].add_argument("--server_url", required=True, |
||||
dest="server_url") |
||||
self.parser['vpn-create'].add_argument("--name", required=True, |
||||
dest="name") |
||||
self.parser['vpn-create'].add_argument("--realm", required=True, |
||||
dest="realm") |
||||
self.parser['vpn-create'].add_argument("--seed", required=True, |
||||
dest="seed") |
||||
|
||||
# email argument would be deleted once we can |
||||
# get email from OTP |
||||
self.parser['vpn-create'].add_argument("--email", required=True, |
||||
dest="email") |
||||
|
||||
self.parser['vpn-create'].add_argument("--public_key", required=True, |
||||
dest="public_key") |
||||
|
||||
self.parser['vpn-delete'].set_defaults(func=ungleichVPN.delete_vpn) |
||||
self.parser['vpn-delete'].add_argument("--server_url", required=True, |
||||
dest="server_url") |
||||
self.parser['vpn-delete'].add_argument("--name", required=True, |
||||
dest="name") |
||||
self.parser['vpn-delete'].add_argument("--realm", required=True, |
||||
dest="realm") |
||||
self.parser['vpn-delete'].add_argument("--seed", required=True, |
||||
dest="seed") |
||||
|
||||
def create_vpn(args): |
||||
try: |
||||
# email argument from the below request would |
||||
# be deleted once we can get email from OTP |
||||
r = requests.post(args.server_url + "/create", |
||||
data={'name': args.name, |
||||
'realm': args.realm, |
||||
'seed': args.seed, |
||||
'email': args.email, |
||||
'public_key': args.public_key |
||||
}) |
||||
except e: |
||||
print(e) |
||||
return None |
||||
if r.status_code == 200: |
||||
response = r.content.decode("utf-8") |
||||
with open("wg0.conf", "w") as f: |
||||
f.write(response) |
||||
print("""VPN successfully created. VPN Configuration \ |
||||
file is saved as wg0.conf""") |
||||
|
||||
else: |
||||
response = r.json() |
||||
print(response.get("message")) |
||||
|
||||
def delete_vpn(args): |
||||
try: |
||||
# email argument from the below request would |
||||
# be deleted once we can get email from OTP |
||||
r = requests.post(args.server_url + "/delete", |
||||
data={'name': args.name, |
||||
'realm': args.realm, |
||||
'seed': args.seed |
||||
}) |
||||
except e: |
||||
print(e) |
||||
return None |
||||
|
||||
response = r.json() |
||||
print(response.get("message")) |
Loading…
Reference in new issue