class LeeroyJenkins::JobBackupper
Attributes
backup_dir[R]
jenkins_client[R]
job_names_to_backup[R]
threads[R]
Public Class Methods
new(job_names_to_backup, jenkins_client, backup_dir, threads)
click to toggle source
# File lib/leeroy_jenkins/job_backupper.rb, line 5 def initialize(job_names_to_backup, jenkins_client, backup_dir, threads) @job_names_to_backup = job_names_to_backup @jenkins_client = jenkins_client @backup_dir = backup_dir @threads = threads end
Public Instance Methods
backup(dry = true)
click to toggle source
# File lib/leeroy_jenkins/job_backupper.rb, line 12 def backup(dry = true) Result.new(dry ? dry_run : backup!) end
Private Instance Methods
backup!()
click to toggle source
# File lib/leeroy_jenkins/job_backupper.rb, line 18 def backup! FileUtils.mkdir_p(backup_dir) unless Dir.exist?(backup_dir) pairs = Parallel.map(job_names_to_backup, in_threads: threads) do |job_name| job_config = jenkins_client.job.get_config(job_name) path = xml_file_path(job_name) File.write(path, job_config) [job_name, path] end Hash[pairs] end
dry_run()
click to toggle source
# File lib/leeroy_jenkins/job_backupper.rb, line 31 def dry_run pairs = job_names_to_backup.map do |job_name| [job_name, xml_file_path(job_name)] end Hash[pairs] end
xml_file_path(job_name)
click to toggle source
# File lib/leeroy_jenkins/job_backupper.rb, line 39 def xml_file_path(job_name) "#{backup_dir}/#{job_name}.xml" end