我正在尝试更新F5中的数据组
我正在尝试使用从F5 devcentral获取的代码:
#!/usr/bin/python
#
# Chen Gateway Protocol
#
# Example of using iControl REST
# From: https://devcentral.f5.com/s/articles/routing-http-by-request-headers
#
# Requires iControl REST > 11.5.0
#
# The following script allows one to dynamically update a data-group via
# iControl REST
#
import requests
import json
BIGIP_ADDRESS = '10.10.10.10'
BIGIP_USER = 'apiuser'
BIGIP_PASS = 'apipass'
DATA_GROUP = '~Common~foo'
class CGP(object):
def __init__(self, host, user, passwd):
self.host = host
self.user = user
self.passwd = passwd
self.mgmt_url = "https://%s/mgmt/tm" % (host)
self.session = requests.session()
self.session.auth = (user, passwd)
self.session.verify = False
self.session.headers.update({'Content-Type': 'application/json'})
def get_data_group(self, datagroup):
req_url = "%s/ltm/data-group/internal/%s" % (self.mgmt_url, datagroup)
req = self.session.get(req_url)
return dict([(a['name'], a['data']) for a in req.json()['records']])
"return contents of data-group as dictionary"
def set_data_group(self, datagroup, data):
req_url = "%s/ltm/data-group/internal/%s" % (self.mgmt_url, datagroup)
records = {'records': [{'data': r[1], 'name': r[0]} for r in data.items()]}
req = self.session.put(req_url, data=json.dumps(records))
"update contents of data-group as dictionary"
if __name__ == "__main__":
import argparse
import sys
parser = argparse.ArgumentParser()
parser.add_argument('action')
parser.add_argument('host_header')
parser.add_argument('node_ip_port', nargs='?')
args = parser.parse_args()
cgp = CGP(BIGIP_ADDRESS, BIGIP_USER, BIGIP_PASS)
data = cgp.get_data_group(DATA_GROUP)
if args.action == 'del':
if args.host_header in data:
del data[args.host_header]
print
"deleted:", args.host_header
else:
print
"error: %s does not exist" % (args.host_header)
sys.exit(1)
elif args.action == 'add':
if args.host_header in data:
print
"error: %s already exists" % (args.host_header)
sys.exit(1)
else:
data[args.host_header] = args.node_ip_port
print
"added: %s" % (args.host_header)
elif args.action == 'update':
if args.host_header in data:
data[args.host_header] = args.node_ip_port
print
"updated:", args.host_header
else:
print
"error: %s does not exist" % (args.host_header)
sys.exit(1)
elif args.action == 'get':
print("%s: %s" % (args.host_header, data.get(args.host_header, "DOES NOT EXIST")))
cgp.set_data_group(DATA_GROUP, data)
我不想使用如下命令行运行文件:“/脚本.py获取“
我想写另一个python文件脚本.py并传递动作和论点。
如何从另一个python文件执行该操作?
谢谢,
诺姆。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐