Я строю рабочий процесс автоматизации (vRA), который включает в себя условия обслуживания электронной почты.Если клиенту нужен общий диск, он должен принять TOS, прежде чем диск будет создан автоматически.
Суть рабочего процесса - Пользовательское событие внутри vRO, которое ожидает POST-запроса.Это работает с POSTMAN, проблема, с которой я продолжаю сталкиваться, это ссылка на веб-страницу, которая будет выполнять POST.
Я пытаюсь создать веб-страницу, которая будет просто POST к этому настраиваемому событию, на страницу будет встроен токен Auth, срок действия которого истечет через 10 минут.
После завершения того, что я думал, будетбыть трудной работой, которую я оставил, почесывая голову, потому что одна за другой мои попытки заставить это работать не увенчались успехом.
def createwebpage(customevent, token):
#Create javascript based webpage
customevent = unicode(customevent, "utf-8")
url = "https://automationserver/vco/api/customevent/" + customevent
authtoken = "'Bearer ,Bearer " + token + "',"
webpage = ("<html>\n" +
"<head>\n" +
"<script type=\"text/javascript\">\n" +
"console.log(\"This is a test...\");\n" +
"async function userAction() {\n" +
"const URL = '" + url + "';\n"
"fetchInit = {\n" +
"method: 'POST',\n" +
"mode: 'no-cors',\n" +
"credentials: 'include',\n" +
"body: '{\"executionId\": \"\",\"parameters\": [],\"profilerOptions\": {\"enabled\": true}',\n" +
"headers: {\n" +
"'Content-Type': 'application/json',\n" +
"'Authorization': " + authtoken + "\n" +
"'cache-control': 'no-cache',\n" +
"'Accept': 'application/json'\n" +
"}\n" +
"};\n" +
"try {\n" +
"const fetchResult = fetch(\n" +
"new Request(URL, fetchInit));\n" +
"console.log(\"Completed request\");\n" +
"document.write(\"<b>Drive has been created...</b>\");\n" +
"} catch (e) {\n" +
" throw Error(e);\n" +
"}\n" +
"};\n" +
"</script>\n" +
"</head>\n" +
"<body>\n" +
"<b>The shared drive located at CO - CO Test CANNOT be used to store - HIPPA / PCI information!!</b>\n" +
"<br>\n" +
"<b>By clicking Accept below you acknowledge no HIPPA / PCI information will be stored within the contents of files</b>\n" +
"<br>\n" +
"<br>\n" +
"<form>\n" +
"<button type=\"submit\" onclick=\"userAction()\">Accept</button>\n" +
"</form>\n" +
"</div>\n" +
"</body>\n" +
"</html>\n")
#Write to file
filename = '/tmp/web/' + customevent + ".html"
with open(filename, 'w') as f:
f.write(webpage)
Веб-страница, которую генерирует этот код Python, выглядит следующим образом.
<html>
<head>
<script type="text/javascript">
console.log("This is a test...");
async function userAction() {
const URL = 'https://automationserver/vco/api/customevent/58a4a5c2-160b-4d3f-bec9-7b7071cd6b0e';
fetchInit = {
method: 'POST',
mode: 'no-cors',
credentials: 'include',
body: '{"executionId": "","parameters": [],"profilerOptions": {"enabled": true}',
headers: {
'Content-Type': 'application/json',
'Authorization': 'token',
'cache-control': 'no-cache',
'Accept': 'application/json'
}
};
try {
const fetchResult = fetch(
new Request(URL, fetchInit));
console.log("Completed request");
document.write("<b>Drive has been created...</b>");
} catch (e) {
throw Error(e);
}
};
</script>
</head>
<body>
<b>The shared drive located at CO - CO Test CANNOT be used to store - HIPPA / PCI information!!</b>
<br>
<b>By clicking Accept below you acknowledge no HIPPA / PCI information will be stored within the contents of files</b>
<br>
<br>
<form>
<button type="submit" onclick="userAction()">Accept</button>
</form>
</div>
</body>
</html>
Как примечание, я уже включил три системы в этот рабочий процесс автоматизации - я понимаю, что предложение состоит в том, чтобы удалить no-cors и подчиниться прокси (почему я нене знаю - это кажется глупым) но хотелось бы избежать создания еще одной зависимости.
Любая помощь приветствуется.