Проблема запроса на импорт клиента IBM uDeploy - PullRequest
0 голосов
/ 13 марта 2020

У меня уже был сценарий PowerShell для клиента командной строки IBM uDeploy (udclient) в процессе сборки моего TFS CI в течение некоторого времени.

Мой вызов udclient написан так:

udclient.cmd -weburl $uDeployServer -authtoken $authToken "importVersions" $requestJson

... и содержимое моего файла JSON ($ request Json) выглядит следующим образом:

{
  "component": "[uDeploy component name]",
  "properties": {
    "version": "[component version]"
  }
}

Эти запросы и последующие запросы на развертывание версии udclient работали должным образом до недавно. Однако через пару недель go запросы на импорт версии начали таинственным образом завершаться сбоем.

В пользовательском интерфейсе uDeploy на вкладке Журнал импорта версий в конфигурации компонентов я могу увидеть неудачные запросы на импорт.

Однако, когда я открываю выходной журнал для проверки, он пуст. Журнал ошибок содержит только следующее:

"Не удалось импортировать версию по следующим причинам: JSONObject [" value "] не найден."

Версия вручную импорт из пользовательского интерфейса uDeploy по-прежнему работает , как и ожидалось.

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

Я не эксперт в Java, но мне показалось, что ошибка подсказывает, что с файлом JSON что-то не так. Однако, чтобы проверить мой JSON (я использую PS 5, без Test- Json до PS 6), выполните следующий скрипт PowerShell:

try {
    $json = Get-Content -Path [component version import].json | ConvertFrom-Json
    Write-Host "JSON is valid."
} catch {
    Write-Host "JSON is dodgy."
}

... возвращает:

JSON действительно.

Итак, что происходит? Может быть это связано с кодировкой в ​​файле JSON или чем-то подобным? Идеи и идеи приветствуются; спасибо за поиск.

1 Ответ

0 голосов
/ 18 марта 2020

Я написал сценарий вызова REST API для собственного PowerShell:

Invoke-RestMethod -Uri $uDeployServer/cli/component/integrate" -Method Put -Headers $headers -ContentType "application/json" -Body $json

Запрос был отправлен без проблем, но, к сожалению, как и в случае вызова udclient, эта ошибка сохранилась.

Просмотр запись запроса на импорт неудачной версии в пользовательском интерфейсе uDeploy, кроме смутного сообщения в журнале ошибок, в свойствах ввода запроса отображались только два свойства (успешные запросы показывают много свойств из конфигурации компонента):

  • версия (значение правильно прочитано из предоставленного файла JSON)
  • description (значение пусто)

Я добавил новое свойство 'description' в свой запрос JSON; содержимое файла теперь выглядит так:

{
  "component":"[uDeploy component name]",
  "properties":{
    "version":"[component version]",
    "description":"[description]"
  }
}

Привет, Престо! Запрос на импорт версии выполнен успешно.

...