in src/com/epam/digital/data/platform/pipelines/registry/CleanupRegistryRegulation.groovy [108:151]
void triggerManualNexusTask(String taskName, Boolean waitTask = false) {
def taskId = ""
String nexusUrl = "http://nexus:8081/nexus/service/rest/v1/tasks"
String nexusCredentialsId = context.dockerRegistry.NEXUS_CI_USER_SECRET
def nexusGetResponse = context.script.httpRequest url: nexusUrl ,
httpMode: 'GET',
authentication: nexusCredentialsId,
validResponseCodes: '200,404',
quiet: true
if (nexusGetResponse.status.equals(200)) {
taskId = new JsonSlurperClassic().parseText(nexusGetResponse.content).items.findAll { it.name.equals(taskName) }.id[0]
}
context.script.httpRequest url: nexusUrl + "/" + taskId + "/run",
httpMode: 'POST',
authentication: nexusCredentialsId,
customHeaders: [[name: 'Content-Type', value: "application/json"]],
validResponseCodes: '204',
quiet: true
if (waitTask) {
int maxAttempts = 5
int attempt = 0
boolean requestStatus = false
while (!requestStatus) {
attempt++
if (attempt == maxAttempts) {
context.script.error("Error while wait ${taskName} task")
}
def response = context.script.httpRequest url: nexusUrl + "/" + taskId,
httpMode: 'GET',
authentication: nexusCredentialsId,
validResponseCodes: '200,404',
quiet: true
def responseStatus = new JsonSlurperClassic().parseText(response.content).lastRunResult
def responseStatusState = new JsonSlurperClassic().parseText(response.content).currentState
context.logger.info("Wait nexus task ${taskName}")
if (responseStatus == "OK" && responseStatusState == "WAITING") {
requestStatus = true
context.logger.info("Task ${taskName} ran successfully")
} else {
context.script.sleep(15)
}
}
}
}