forked from calmh/unifi-api
-
Notifications
You must be signed in to change notification settings - Fork 99
/
unifi-create-voucher
executable file
·38 lines (27 loc) · 1.66 KB
/
unifi-create-voucher
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/env python
import argparse
from pyunifi.controller import Controller
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--controller', default='unifi', help='the controller address (default "unifi")')
parser.add_argument('-u', '--username', default='admin', help='the controller username (default("admin")')
parser.add_argument('-p', '--password', default='', help='the controller password')
parser.add_argument('-b', '--port', default='8443', help='the controller port (default "8443")')
parser.add_argument('-v', '--version', default='v5', help='the controller base version (default "v5")')
parser.add_argument('-s', '--siteid', default='default', help='the site ID, UniFi >=3.x only (default "default")')
parser.add_argument('-V', '--no-ssl-verify', default=False, action='store_true', help='Don\'t verify ssl certificates')
parser.add_argument('-C', '--certificate', default='', help='verify with ssl certificate pem file')
args = parser.parse_args()
ssl_verify = (not args.no_ssl_verify)
if ssl_verify and len(args.certificate) > 0:
ssl_verify = args.certificate
c = Controller(args.controller, args.username, args.password, args.port, args.version, args.siteid, ssl_verify=ssl_verify)
voucher = c.create_voucher(1, 1, 60, up_bandwidth=1024, down_bandwidth=1024, byte_quota=1000, note="unifi-create-voucher")
code = voucher[0].get('code')
def format_code(string):
length_string = len(string)
first_length = round(length_string / 2)
first_half = string[0:first_length].lower()
second_half = string[first_length:].upper()
return first_half + '-' + second_half
voucher_code = format_code(code)
print(voucher_code)