Частичная перезагрузка задания с диска без перезагрузки всего сервера - PullRequest
0 голосов
/ 03 октября 2018

Недавно кто-то удалил папку из нашего экземпляра Jenkins.Мы смогли восстановить задания из последней резервной копии и применить их обратно в папку jenkins_home на сервере.Единственный способ перезагрузить эти задания с диска - нажать кнопку «Перезагрузить конфигурацию с диска» (Jenkins-> Manage Jenkins).Поскольку на нашем сервере тысячи заданий, а производительность не ... э-э ... достаточно, чтобы перезагрузить всю папку и конфигурацию заданий с диска, потребовалось более 10 часов.

Сегодня я нашел ответ впростой groovy скрипт из этого вопроса , в котором говорилось о загрузке одного задания см. ответ с диска.Спасибо Андреас Панайотидис !С небольшими изменениями вы можете загрузить все задания, содержащие строку («somestring»):

import java.io.InputStream;
import java.io.FileInputStream
import java.io.File;
import javax.xml.transform.stream.StreamSource

def hudson = hudson.model.Hudson.instance;

for(job in hudson.model.Hudson.instance.items) {   

    if (job.name.toLowerCase().contains("somestring")) {

        def configXMLFile = job.getConfigFile();
        def file = configXMLFile.getFile();

        InputStream is = new FileInputStream(file);

        job.updateByXml(new StreamSource(is));
        job.save();         
    }      
} 

Это заняло всего несколько секунд, и все задания в этой папке были восстановлены.

...