Создание заявок на RT через REST API с помощью Powershell
Я пытаюсь создать тикет в RT, используя REST API. Пока что я могу искать билеты:
$servername="tickets.somedomain"
$u="user=someuser"
$p="pass=P@55w0rd"
$q="search/ticket?query=(Queue='Queue_name')"
$uri="http://" + $servername + "/REST/1.0/" + $q + "&" + $u + "&" + $p
$RT=Invoke-WebRequest -Uri $uri -SessionVariable sess
$rt.Content
Но создание:
$servername = 'http://tickets.somedomain/REST/1.0/ticket/new'
$postParams = @{
user = 'someuser';
pass = 'P@55w0rd';
content = @"
Queue: Queue_name
id: ticket/new
Requestor: some_user_email
Subject: TEST
Status: New
Text: blahblah
"@;
}
$RT = Invoke-WebRequest -Uri $servername -Method Post -Body $postParams
$RT.content
В результате чего:
RT/3.8.8 200 Ok
# Could not create ticket.
# Could not create ticket. Queue not set
или же:
$servername="http://tickets.somedomain/REST/1.0/ticket/new?user=someuser&pass=P@55w0rd"
$RT = Invoke-WebRequest -Uri $servername -Body @{Content="Queue: 'queue_name'\nid: new"} -Method Post
$RT.content
Результирующая:
RT/3.8.8 200 Ok
# Required: id, Queue
id: ticket/new
Queue:
Requestor: lukasz.wasko
Subject:
Cc:
AdminCc:
Owner:
Status: new
Priority:
InitialPriority:
FinalPriority:
TimeEstimated: 0
Starts: 2015-04-09 12:55:33
Due: 2015-04-09 12:55:33
Text:
http://requesttracker.wikia.com/wiki/REST сказал:
чтобы создать новый тикет: отправьте в /REST/1.0/ticket/new переменную с именем "content", построчно содержащую "key: value", пример:
Тестирование нового раздела тикета
id: ticket / new Очередь: Запросчик: Тема: Cc: <...> AdminCc: <...> Владелец: <...> Статус: <...> Приоритет: <...> InitialPriority: <...> FinalPriority: <...> TimeEstimated: <...> Запуски: <...> Срок выполнения: <...> Текст: CF-:
Я потерял целый день в поисках решения. Google не нашел никакой помощи для меня. Любые советы и предложения будут с благодарностью.
1 ответ
ОК, просто найди решение сам:| "queue: queue_name" ДОЛЖНА быть в конце переменной содержимого:
$servername="http://tickets.somedomain/REST/1.0/ticket/new?user=someuser&`pass=P@55w0rd"
$content = @'
id: ticket/new
Subject: Test
Text: some text
Queue: queue_name
'@
$RT = Invoke-WebRequest -Uri $servername -Body @{content=$content} -Method Post
$RT.content
Результат:
RT/<version> 200 Ok
# Ticket <number> created.