IBM uDeploy 客户端导入请求问题

IBM uDeploy client import request problem

我已经在我的 TFS CI 构建过程中对 IBM uDeploy 命令行客户端 (udclient) 进行 PowerShell 脚本调用已有一段时间了。

我的 udclient 调用的脚本如下:

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

...和我的 JSON 文件($requestJson)内容如下所示:

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

直到最近,这些请求以及后续的 udclient 版本部署请求一直按预期工作。然而,几周前,版本导入请求开始神秘地失败。

在 uDeploy UI 中,在组件配置的版本导入历史选项卡中,我可以看到失败的导入请求。

但是,当我打开输出日志进行检查时,它是空的。 错误日志仅包含以下内容:

"The version import failed for the following reasons: JSONObject["value"] not found."

从 uDeploy 手动导入版本 UI 仍然可以正常工作

此外,一旦在 CI 构建中应用了手动干预来完成版本导入,后续版本部署请求将毫无问题地执行

我不是 Java 方面的专家,但在我看来这个错误表明 JSON 文件有问题。但是,为了测试我的 JSON(我使用的是 PS 5,没有测试-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."
}

...returns:

JSON is valid.

所以,这是怎么回事?它可能与 JSON 文件中的编码有关吗? 想法和见解表示赞赏;感谢观看。

我编写了本机 PowerShell 的 REST API 调用脚本:

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

请求发送没有问题,但遗憾的是,与 udclient 调用一样,同样的错误仍然存​​在。

查看uDeploy中失败的版本导入请求记录UI,除了错误日志中的模糊消息外,请求Input Properties仅显示两个属性(成功请求显示组件配置中的许多属性):

  • 版本(从提供的 JSON 文件中正确读取的值)
  • 描述(值为空)

我在我的请求中添加了一个新的 属性 'description' JSON;文件内容现在如下所示:

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

嘿Presto! 版本导入请求执行成功。