Add load balancer slupport
This commit is contained in:
parent
7e6d74f1f6
commit
d92976993d
@ -165,6 +165,26 @@ def commitRecord(ip):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def updateLoadBalancer(ip):
|
||||||
|
|
||||||
|
for option in config["load_balancer"]:
|
||||||
|
pools = cf_api('user/load_balancers/pools', 'GET', option)
|
||||||
|
|
||||||
|
if pools:
|
||||||
|
idxr = dict((p['id'], i) for i, p in enumerate(pools['result']))
|
||||||
|
idx = idxr.get(option['pool_id'])
|
||||||
|
|
||||||
|
origins = pools['result'][idx]['origins']
|
||||||
|
|
||||||
|
idxr = dict((o['name'], i) for i, o in enumerate(origins))
|
||||||
|
idx = idxr.get(option['origin'])
|
||||||
|
|
||||||
|
origins[idx]['address'] = ip['ip']
|
||||||
|
data = {'origins': origins}
|
||||||
|
|
||||||
|
response = cf_api(f'user/load_balancers/pools/{option["pool_id"]}', 'PATCH', option, {}, data)
|
||||||
|
|
||||||
|
|
||||||
def cf_api(endpoint, method, config, headers={}, data=False):
|
def cf_api(endpoint, method, config, headers={}, data=False):
|
||||||
api_token = config['authentication']['api_token']
|
api_token = config['authentication']['api_token']
|
||||||
if api_token != '' and api_token != 'api_token_here':
|
if api_token != '' and api_token != 'api_token_here':
|
||||||
@ -201,6 +221,7 @@ def cf_api(endpoint, method, config, headers={}, data=False):
|
|||||||
def updateIPs(ips):
|
def updateIPs(ips):
|
||||||
for ip in ips.values():
|
for ip in ips.values():
|
||||||
commitRecord(ip)
|
commitRecord(ip)
|
||||||
|
updateLoadBalancer(ip)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
@ -21,6 +21,19 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"load_balancer": [
|
||||||
|
{
|
||||||
|
"authentication": {
|
||||||
|
"api_token": "api_token_here",
|
||||||
|
"api_key": {
|
||||||
|
"api_key": "api_key_here",
|
||||||
|
"account_email": "your_email_here"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pool_id": "your_pool_id_here",
|
||||||
|
"origin": "your_origin_name_here"
|
||||||
|
}
|
||||||
|
],
|
||||||
"a": true,
|
"a": true,
|
||||||
"aaaa": true,
|
"aaaa": true,
|
||||||
"purgeUnknownRecords": false,
|
"purgeUnknownRecords": false,
|
||||||
|
|||||||
Reference in New Issue
Block a user