rundeckのjobを一括取得するスクリプト
ソース
function loopSleep(_loopLimit,_interval, _mainFunc){ var loopLimit = _loopLimit; var interval = _interval; var mainFunc = _mainFunc; var i = 0; var loopFunc = function () { var result = mainFunc(i); if (result === false) { // break機能 return; } i = i + 1; if (i < loopLimit) { setTimeout(loopFunc, interval); } } loopFunc(); } const WAIT_COUNT = 3; function download_xml() { var button = targets.pop(); var jobTitle = button.parentNode.parentNode.querySelector('a.hover_show_job_info').text.trim(); console.log(`job name: ${jobTitle}`); button.click(); loopSleep(WAIT_COUNT, 1000, function(i){ var anchor = button.parentNode.querySelector('ul > li > a[title="Download Job definition in XML"]'); if(anchor) { anchor.click(); if(targets.length) { setTimeout( function () { download_xml(); }, '500' ); } return false; } else { if(i == WAIT_COUNT - 1) { console.log(`${jobTitle} はDLできませんでした。`); } } }) } var node = document.querySelectorAll('tr > td.jobname > div > button'); var targets = []; node.forEach(function(val, i){ targets.push(val) }); console.log(`Number of all jobs: ${targets.length}`); download_xml(); 使い方
rundeckのjobリスト画面を開き、chromeのconsoleで実行する。 XMLのダウンロードを自動的に行なってくれる。
This post is licensed under CC BY 4.0 by the author.