Использование имени при настройке Graphite с Jenkins Job DSL

Я пытаюсь настроить плагин интеграции Graphite для своих рабочих мест, используя Jenkins Job DSL. Мой блок выглядит так:

coreJobs = [my jobs here]
coreJobs.each{ a ->
    // some extra job config here
    job("$a") {    
        project / 'publishers' / 'org.jenkinsci.plugins.graphiteIntegrator.GraphitePublisher' {
            selectedIp '192.123.1.456' 
            metrics {
                'org.jenkinsci.plugins.graphiteIntegrator.Metric' {
                queueName ".${a}.BuildFailed"
                name      'BUILD_FAILED' 
                }
            }
        }
    }      
}

Без этого графитового объявления он зацикливается, создавая задания, используя задания, объявленные в $a. Но поскольку для графитового dsl требуется параметр «имя», генератор DSL просто игнорирует задания, объявленные в $a, и создает задание с именем «BUILD_FAILED» !!

Итак, мой вопрос: как я могу остановить плагин DSL, пытающийся использовать параметр «имя» в качестве имени задания?

Некоторая дополнительная информация, я не думаю, что BUILD_FAILED должна быть строкой. Я думаю, что это объект, но я не уверен, как бы я использовал это здесь или для этого требуется другой синтаксис.

Спасибо


person Glef    schedule 19.05.2015    source источник
comment
Вы должны исправить отступ вашего примера и удалить весь ненужный код, чтобы было легче обнаружить проблему.   -  person daspilker    schedule 19.05.2015
comment
Намного меньше и, надеюсь, более читабельно, спасибо   -  person Glef    schedule 19.05.2015


Ответы (1)


После повторного прочтения документации я нашел пример конфликтующего элемента: https://github.com/jenkinsci/job-dsl-plugin/wiki/The-Configure-Block

Документ предлагает использовать «переменную делегата». Итак, мой код теперь использует: delegate.name('BUILD_FAILED')

Теперь это означает, что мои задания создаются с правильными именами, и задание «BUILD_FAILED» не создается.

person Glef    schedule 19.05.2015