我已经使用脚本示例存储库设置了环境,但是它不包含yum存储库或任务API的库,因此我还没有弄清楚如何创建任务实例并为其分配ID。
这是我到目前为止所拥有的:
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特定配置。