我能够与f5框进行通信,并使用一些基本配置文件创建名为(virtual = VIP = Virtual server)的单个对象。
工作代码:
from f5.bigip import ManagementRoot
import urllib3
import csv
import sys
import os
urllib3.disable_warnings()
mgmt = ManagementRoot('13.126.189.103','admin','admin')
ltm = mgmt.tm.ltm
virtuals = mgmt.tm.ltm.virtuals
virtual = mgmt.tm.ltm.virtuals.virtual
def configureVirtuals(bigip, virtualFile):
# These are the fields in the file. The purpose of each field is obvious. See. Input from CSV file called 'virtualFile' and each row has config
details
# the BIG-IP iControl REST API for more information.
fieldNames = ["name", "description", "ip", "port"]
virtualReader = csv.DictReader(virtualFile, fieldnames=fieldNames,
delimiter=",")
# Create a virtual server, one per line. it will take input from CSV file by row one by one
try:
for row in virtualReader:
myvirtual = mgmt.tm.ltm.virtuals.virtual.create(name=row["name"],
description=row["description"],
destination="%s:%s" % (row["ip"], row["port"])
我的要求是,我将从CSV文件中输入,可能是100个VIP。 上述语法必须在导入的CSV文件中逐行运行。
var canvas = document.getElementById("myCanvas");
var width = 1920;
var height = 1080;
var totalImages = 50;
var videoFrames = [];
for (var i = 1; i <= totalImages; i++) {
var img = new Image;
var videoFrameUrl = 'https://the-faction.squarespace.com/assets/chalet-lightmix-01/Chalet-V06_LM_' + i + '.jpg';
img.src = videoFrameUrl;
videoFrames.push(img);
}
$("#my-input").on("input", function(event) {
var currentImage = videoFrames[event.target.value - 1];
var ctx = canvas.getContext("2d");
ctx.drawImage(currentImage, 0, 0, canvas.width, canvas.height);
});
我在解析时收到错误意外的EOF 我是f5工程师,也是python的新手。 构建批量更改的应用程序。
任何人请帮帮我?
答案 0 :(得分:0)
首先,你忘记了一个结束括号。第二个问题是try块,它没有except
。如果您使用try
,则必须捕获异常,否则您根本不需要try
。所以要么不要使用try
from f5.bigip import ManagementRoot
import urllib3
import csv
import sys
import os
urllib3.disable_warnings()
mgmt = ManagementRoot('13.126.189.103','admin','admin')
ltm = mgmt.tm.ltm
virtuals = mgmt.tm.ltm.virtuals
virtual = mgmt.tm.ltm.virtuals.virtual
def configureVirtuals(bigip, virtualFile):
# These are the fields in the file. The purpose of each field is obvious. See. Input from CSV file called 'virtualFile' and each row has config details
# the BIG-IP iControl REST API for more information.
fieldNames = ["name", "description", "ip", "port"]
virtualReader = csv.DictReader(virtualFile, fieldnames=fieldNames,
delimiter=",")
# Create a virtual server, one per line. it will take input from CSV file by row one by one
for row in virtualReader:
myvirtual = mgmt.tm.ltm.virtuals.virtual.create(
name=row["name"],
description=row["description"],
destination="%s:%s" % (row["ip"], row["port"])) # pay attention to brackets
如果你知道你期望哪一个以及如何处理它,那么就抓住一个例外
from f5.bigip import ManagementRoot
import urllib3
import csv
import sys
import os
urllib3.disable_warnings()
mgmt = ManagementRoot('13.126.189.103','admin','admin')
ltm = mgmt.tm.ltm
virtuals = mgmt.tm.ltm.virtuals
virtual = mgmt.tm.ltm.virtuals.virtual
def configureVirtuals(bigip, virtualFile):
# These are the fields in the file. The purpose of each field is obvious. See. Input from CSV file called 'virtualFile' and each row has config details
# the BIG-IP iControl REST API for more information.
fieldNames = ["name", "description", "ip", "port"]
virtualReader = csv.DictReader(virtualFile, fieldnames=fieldNames,
delimiter=",")
# Create a virtual server, one per line. it will take input from CSV file by row one by one
try:
for row in virtualReader:
myvirtual = mgmt.tm.ltm.virtuals.virtual.create(
name=row["name"],
description=row["description"],
destination="%s:%s" % (row["ip"], row["port"])) # pay attention to brackets
except SpecificExceptionType:
print('Print some instruction or log an error and continue the flow')