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!
版本导入请求执行成功。
我已经在我的 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! 版本导入请求执行成功。