Как я могу использовать интерфейс сценариев Sonatype Nexus для настройки ряда задач, которые обновляют индекс размещенного YUM-репозитория? - PullRequest
0 голосов
/ 22 марта 2019

Я настроил свою среду, используя пример репозитория сценариев, но он не включает библиотеки для репозитория yum или API задач, поэтому я не понял, как создать экземпляр задачи и назначить ему идентификатор .

Вот что у меня есть:

import groovy.json.JsonSlurper
import org.sonatype.nexus.scheduling.TaskConfiguration
import org.sonatype.nexus.scheduling.TaskInfo
import org.sonatype.nexus.scheduling.TaskScheduler
import org.sonatype.nexus.scheduling.schedule.Schedule

TaskScheduler taskScheduler = container.lookup(TaskScheduler.class.getName())

parsed_args = new JsonSlurper().parseText(args)

Schedule manualSchedule = taskScheduler.scheduleFactory.manual()

TaskInfo existingTask = taskScheduler.listsTasks().find { TaskInfo taskInfo ->
  taskInfo.name == parsed_args.name
}

if (existingTask && !existingTask.remove()) {
  throw new RuntimeException("Could not remove currently running task : " + parsed_args.name)
}

TaskConfiguration yumRefreshTask = taskScheduler.createTaskConfigurationInstance('repository.yum.rebuild.metadata')
taskScheduler.scheduleTask(yumRefreshTask, manualSchedule)

Проблема в том, что я не могу найти способ передать специфичные для YUM конфигурации для этого типа Задачи.

...