0

我尝试使用 getApplicationProcessRequest 获取版本,但是如果进程在组件进程中成功,它只会为您提供应用程序进程中的所有版本,否则它不会给出版本名称。

任何帮助表示赞赏。请帮助我需要它在我的项目中实施。

4

1 回答 1

0

如果我正确理解了这个问题,您可以使用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 响应的文本表示,然后按 UC​​D 应用程序名称过滤,然后将应用程序名称与快照名称收集到一个列表中。

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)
}
于 2021-06-02T19:07:07.063 回答