Я ищу POST через API с функцией, чтобы я мог делать это столько раз, сколько необходимо. Это задача автоматизации.
До сих пор я пытался поместить сценарий, который уже работает, в функцию. Затем у меня есть аргументы, которые моя функция будет принимать и применять к сценарию из списка списков.
def mass_group_create(name, lower, upper):
asset_api = rapid7vmconsole.AssetGroupApi(client)
asset_group = rapid7vmconsole.AssetGroup(name=name, type='dynamic', description='Newly Created Asset Group', vulnerabilities='unknown', search_criteria={
"filters":
[{"field": "ip-address",
"operator": "in-range",
"lower": lower,
"upper": upper},
{"operator": "starts-with",
"field": "custom-tag",
"value": "CVE"},
{"field": "custom-tag",
"operator": "is-not",
"value": "honeypot"}],
"match": "all"},)
created_group = asset_api.create_asset_group(asset_group=asset_group)
print(created_group)
loc = (file)
wb = xlrd.open_workbook(loc)
sheet = wb.sheet_by_index(0)
my_list = []
for row in range(1,sheet.nrows):
my_list.append(sheet.row_values(row))
for i in my_list:
mass_group_create(*i)
Что происходит, я получаю AttributeError: у объекта 'Configuration' нет атрибута 'auth settings'. Для справки 'auth_settings' настроен и настроен правильно. Если я запускаю этот же сценарий вне функции со всем заполненным, он работает хорошо, и я получаю успешный POST. Даже если я вручную введу аргументы вместо того, чтобы они передавались из my_list, он все равно выдаст ошибку аутентификации. Спасибо всем за помощь.