我尝试使用 getApplicationProcessRequest 获取版本,但是如果进程在组件进程中成功,它只会为您提供应用程序进程中的所有版本,否则它不会给出版本名称。
任何帮助表示赞赏。请帮助我需要它在我的项目中实施。
如果我正确理解了这个问题,您可以使用getApplicationsProcessRequests CLI 命令获取有关服务器上应用程序进程请求的信息:
def getInformation(application, startedAfter) {
def allRequests = ucdCliCommands.getInformationAboutAllApplicationProcessRequestsOnServer(startedAfter)
def applicationProcessRequests = jsonUtils.parseTextIntoHashMap(allRequests)
.findAll { it.application.name == application }
.collect { it -> it.application.name + ': ' + it.snapshot.name }
echo "Application Process Requests:\n$applicationProcessRequests"
}
首先,我们获取有关所有应用程序进程请求的信息,然后解析 JSON 响应的文本表示,然后按 UCD 应用程序名称过滤,然后将应用程序名称与快照名称收集到一个列表中。
ucdCliCommands.groovy:
/**
* Get information about all application process requests on the server
*
* https://www.ibm.com/docs/en/urbancode-deploy/7.1.1?topic=commands-getapplicationsprocessrequests
*/
def getInformationAboutAllApplicationProcessRequestsOnServer(startedAfter) {
echo 'Getting information about all application process requests on the server'
command = 'getApplicationsProcessRequests'
if (startedAfter.empty) {
runCliCommandWithAuthTokenAndWebUrl(command)
} else {
parameters = "-startedAfter '${startedAfter}'"
runCliCommandWithAuthTokenAndWebUrl(command, parameters)
}
}
jsonUtils.groovy:
def parseTextIntoHashMap(text) {
new JsonSlurperClassic().parseText(text)
}