Changeset 600
- Timestamp:
- 03/30/07 16:00:23 (2 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/bin/applications/nightly_build_test_infrastructure/chroot.rb
r599 r600 38 38 39 39 # Constructor simply sets attributes. 40 def initialize logger, use_sudo, name, target_dir, chroot_dir, distribution, release, arch40 def initialize logger, use_sudo, apt_source, name, target_dir, chroot_dir, distribution, release, arch 41 41 @logger = logger 42 42 @sudo = use_sudo == true ? "sudo " : "" 43 @apt_source = apt_source 43 44 @target_dir = target_dir 44 45 @chroot_dir = chroot_dir … … 61 62 @logger.info " architecture: #{@arch}" 62 63 @logger.info " log_file: #{@log_file}" 64 @logger.info " apt_source: #{@apt_source}" 63 65 64 66 run "#{@sudo}mkdir #{@complete_path}" 65 67 run "#{@sudo}touch \"#{@log_file}\"" 66 68 run "#{@sudo}chmod 777 \"#{@log_file}\"" 67 run "#{@sudo}debootstrap #{@release} #{@complete_path} http://ftp.debian.org/debian/ >> \"#{@log_file}\"" 69 if @apt_source then 70 @apt_source =~ /deb (http:\/\/.*\/) .*/ 71 mirror = $1 72 run "#{@sudo}debootstrap #{@release} #{@complete_path} #{mirror}>> \"#{@log_file}\"" 73 else 74 run "#{@sudo}debootstrap #{@release} #{@complete_path} http://ftp.debian.org/debian/ >> \"#{@log_file}\"" 75 end 76 68 77 run "#{@sudo}cp /etc/fstab /root/fstab.orig" 69 78 run "#{@sudo}echo \"/proc #{@complete_path}/proc proc defaults 0 0\" >> /etc/fstab" … … 73 82 run "#{@sudo}echo \"cd /dev; /sbin/MAKEDEV generic; cd -\" >> /#{@complete_path}/root/dev_create" 74 83 run "#{@sudo}chroot #{@complete_path} sh root/dev_create" 84 85 if @apt_source then 86 run "#{@sudo}mv #{@complete_path}/etc/apt/sources.list #{@complete_path}/root/sources.list.backup" 87 run "#{@sudo}echo \"#{@apt_source}\" > #{@complete_path}/etc/apt/sources.list" 88 run "#{@sudo}echo \"#{@apt_source}\" > #{@complete_path}/etc/apt/sources.list" 89 end 90 91 run "#{@sudo}chroot #{@complete_path} apt-get update" 75 92 76 93 return @complete_path … … 130 147 def clean_up_chroot 131 148 run "#{@sudo}umount #{@complete_path}/proc" 149 sleep 5 132 150 run "#{@sudo}umount #{@complete_path}/dev" 133 151 run "#{@sudo}mv /root/fstab.orig /etc/fstab" trunk/bin/applications/nightly_build_test_infrastructure/hefeweizen-test-system.rb
r597 r600 58 58 class HefeWeizenTester 59 59 60 def initialize target_path, sudo, logger60 def initialize target_path, sudo, apt_source, logger 61 61 @logger = logger 62 62 @use_sudo = sudo 63 @apt_source = apt_source 63 64 @target_path = target_path 64 65 end … … 73 74 time = Time.now 74 75 chroot_name = "#{distribution}_#{release}_#{architecture}_#{time.to_f.to_s}_#{time.to_s.gsub(/ /, '_')}" 75 chroot = Chroot.new @logger, @use_sudo, chroot_name, @target_path, CHROOT_PATH, distribution, release, architecture76 chroot = Chroot.new @logger, @use_sudo, @apt_source, chroot_name, @target_path, CHROOT_PATH, distribution, release, architecture 76 77 77 78 begin … … 80 81 path = chroot.create 81 82 @logger.info "Created new chroot with the name '#{chroot_name}' at the following path: #{path}" 83 82 84 @logger.info "Installing subversion and setting up ssl certificate" 83 85 if FileTest.exists? "./havanawave.pem" then … … 129 131 options.path = [DEFAULT_PATH] 130 132 options.sudo = false 133 options.apt_source = nil 131 134 132 135 OptionParser.new do |opts| … … 135 138 opts.on("-t", "--target-directory DIRECTORY", String , "Target Directory") do |v| 136 139 options.path = v 140 end 141 142 opts.on("-p", "--apt-source SOURCE", String , "apt-get source, eg 'deb http://192.168.1.43:9999/debian/ etch main contrib'") do |v| 143 options.apt_source = v 137 144 end 138 145 … … 152 159 153 160 time_start = Time.now 161 result = nil 154 162 155 163 begin … … 161 169 system "#{sudo}chmod 777 \"#{log_file}\"" 162 170 163 @logger = Logger.new(log_file) 171 @logger = Logger.new(STDOUT) 172 # @logger = Logger.new(log_file) 164 173 @logger.level = Logger::DEBUG 165 174 @logger.info "HefeWeizen CHROOT Test System" … … 168 177 time_start = Time.now 169 178 @logger.info "Time start: #{time_start}" 170 result = HefeWeizenTester.new(options.path, options.sudo, @logger).run179 result = HefeWeizenTester.new(options.path, options.sudo, options.apt_source, @logger).run 171 180 time_end = Time.now 172 181 @logger.info "Time end: #{time_end}" … … 174 183 175 184 @logger.error "Error" if result != 0 176 177 exit result 178 185 179 186 rescue Exception => e 180 187 $stderr.puts "Exception: #{e.to_s}" … … 183 190 end 184 191 192 exit result
