Команда curl в Groovy-скрипте не выполняется (в Linux) - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь реализовать команду curl в отличном скрипте. Цель моей команды - создать задачу в Асане.

Возможно ли, что groovy меняет команду во время выполнения? (возможно, у groovy есть некоторые проблемы с параметром data-urlencode) Это как-то связано с версией curl? (версия 7.64.0) (отлично работает, когда я запускаю его отдельно)

Команда отлично работает в командной строке, но завершается неудачно, когда я пытаюсь запустить ее в groovy-скрипте.

1 def opsAlert = opsgenie.getAlert(alertId: "${alert.alertId}");
2 //logger.warn("${opsAlert}"); //DEBUG
3 if(opsAlert.isEmpty()){
4 throw new Exception("Failed to get the alert details, opsAlert is null!");
5 }
6
7 if(opsAlert.source.equals("bclaeys@oxya.com")){
8 def projects = "<projectid>";
9 def name = opsAlert.details.sensorId;
10 def notes = opsAlert.message;
11 def authorizationToken = "Bearer <mytoken>";
12
13 def command = "curl https://app.asana.com/api/1.0/tasks ";
14 command += "-H \"Authorization: ${authorizationToken}\" ";
15 command += "--data-urlencode \"projects=${projects}\" ";
16 command += "--data-urlencode \"notes=${notes}\" ";
17 command += "--data-urlencode \"name=${name}\"";
18 logger.warn("${command}"); //DEBUG
19
20 def commandResult = "${command}".execute();
21 commandResult.waitFor();
22 logger.warn("${commandResult}");
23
24 //def output1 = commandResult.text;
25 def output2 = commandResult.err.text;     
26 //logger.warn("${output1}"); //DEBUG
27 logger.warn("${output2}"); //DEBUG
28 return;
29 } else {
30 throw new Exception("S(s)ource was not bclaeys!")
31 }

Это команда, которую я пытаюсь выполнить: (я также попробовал опцию -v, но она не вызвала полезного вывода)

curl -H "Авторизация: Носитель" https://app.asana.com/api/1.0/tasks --data-urlencode "projects = projectId" --data-urlencode "notes = message" --data-urlencode "name = 1008"

И это дает следующий вывод curl: опция -: неизвестно curl: попробуйте 'curl --help' или 'curl --manual' для получения дополнительной информации

Может ли кто-нибудь помочь мне с моим groovy-скриптом? Заранее спасибо!

1 Ответ

0 голосов
/ 14 марта 2019

Попробуйте добавить команду к командной оболочке, т.е. def command="/bin/bash curl https..."

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...