Python将CSV导入到python并在F5上创建mutilple VIP

时间:2017-10-12 11:01:43

标签: python-3.x rest csv sdk f5

我必须使用python在F5框中进行批量更改,我有用于从python创建单个Virtual的syntex,但我希望在300 +左右进行,其中输入在.CSV中有10 +列。 300行。

  • 因此命令必须从第1行获取10 Data
  • 的数据
  • 在f5框中创建单个VIP,然后再创建相同的功能命令 必须从第二行获取数据
  • 如果行为空,则必须停止并提供完成状态
  • 如果命令在任何一行中失败,则只有一些消息必须放在末尾 行,然后转到下一行

用于创建单个VIP的Python命令

myvirtual = bigip.ltm.virtuals.virtual.create(name=["name"],
              description=["description"], 
              destination="%s:%s" % (["ip"], ["port"]), 
              ipProtocol=["ipProtocol"], [pool][1]=["pool"])

CSV格式

Row  name   description destination IP  destination Port     ipProtocol pool

1服务器1服务器1 172.61.64.1 80 TCp TCp

2 Server 2 Server 2 172.61.64.2 80 TCp TCp

3 Server 3 Server 3 172.61.64.3 80 TCp TCp

4 Server 4 Server 4 172.61.64.4 80 TCp TCp

因此,我的命令必须从CSV文件创建4个虚拟服务器,每个服务器一行 我正在使用python 3并导入CSV

请任何一个帮助,我是python的新手

1 个答案:

答案 0 :(得分:0)

您可以使用Python的CSV模块循环访问您的文件(不确定“bigip”模块的语法,但您可以从控制台上的错误进行调试,如果有的话)。 将每一行(“vs”)作为字典读取将允许您通过列名引用每个字段:

import csv
with open('path-to-your-file.csv', 'rb') as f:
    for vs in csv.DictReader(f):
        try:
            bigip.ltm.virtuals.virtual.create(
                name=vs['name'],
                description=vs['description'],
                destination="%s:%s" % (vs['destination IP'], vs['destination Port']), 
                ipProtocol=vs['ipProtocol'],
                pool=vs['pool']
            )
        except Exception as e:
            print e