blob: 816050d3d0f6de0a8cb8ac74095733c72545f58a (
about) (
plain)
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
import json
def format_ret(return_set, as_json=False):
""" decouple, allow for modifications to return type
returns a list of ip addresses in object or json form """
ret_list = list()
for item in return_set:
d = {"ip": item}
ret_list.append(d)
if as_json:
return json.dumps(ret_list)
return ret_list
def unassigned(data, as_json=False):
""" https://sendgrid.com/docs/API_Reference/api_v3.html#ip-addresses
The /ips rest endpoint returns information about the IP addresses
and the usernames assigned to an IP
unassigned returns a listing of the IP addresses that are allocated
but have 0 users assigned
data (response.body from sg.client.ips.get())
as_json False -> get list of dicts
True -> get json object
example:
sg = sendgrid.SendGridAPIClient(os.environ.get('SENDGRID_API_KEY'))
params = {
'subuser': 'test_string',
'ip': 'test_string',
'limit': 1,
'exclude_whitelabels':
'true', 'offset': 1
}
response = sg.client.ips.get(query_params=params)
if response.status_code == 201:
data = response.body
unused = unassigned(data)
"""
no_subusers = set()
if not isinstance(data, list):
return format_ret(no_subusers, as_json=as_json)
for current in data:
num_subusers = len(current["subusers"])
if num_subusers == 0:
current_ip = current["ip"]
no_subusers.add(current_ip)
ret_val = format_ret(no_subusers, as_json=as_json)
return ret_val
|