Changeset 600

Show
Ignore:
Timestamp:
03/30/07 16:00:23 (2 years ago)
Author:
sacha
Message:

added support to provide a debian source (apt-get source or mirror)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/bin/applications/nightly_build_test_infrastructure/chroot.rb

    r599 r600  
    3838 
    3939  # Constructor simply sets attributes. 
    40   def initialize logger, use_sudo, name, target_dir, chroot_dir, distribution, release, arch 
     40  def initialize logger, use_sudo, apt_source, name, target_dir, chroot_dir, distribution, release, arch 
    4141    @logger = logger 
    4242    @sudo = use_sudo == true ? "sudo " : "" 
     43    @apt_source = apt_source 
    4344    @target_dir = target_dir 
    4445    @chroot_dir = chroot_dir 
     
    6162    @logger.info "  architecture: #{@arch}" 
    6263    @logger.info "  log_file:     #{@log_file}" 
     64    @logger.info "  apt_source:   #{@apt_source}" 
    6365 
    6466    run "#{@sudo}mkdir #{@complete_path}" 
    6567    run "#{@sudo}touch \"#{@log_file}\"" 
    6668    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 
    6877    run "#{@sudo}cp /etc/fstab /root/fstab.orig" 
    6978    run "#{@sudo}echo \"/proc #{@complete_path}/proc proc defaults 0 0\" >> /etc/fstab" 
     
    7382    run "#{@sudo}echo \"cd /dev; /sbin/MAKEDEV generic; cd -\" >> /#{@complete_path}/root/dev_create" 
    7483    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" 
    7592 
    7693    return @complete_path 
     
    130147  def clean_up_chroot 
    131148    run "#{@sudo}umount #{@complete_path}/proc" 
     149    sleep 5 
    132150    run "#{@sudo}umount #{@complete_path}/dev" 
    133151    run "#{@sudo}mv /root/fstab.orig /etc/fstab" 
  • trunk/bin/applications/nightly_build_test_infrastructure/hefeweizen-test-system.rb

    r597 r600  
    5858class HefeWeizenTester 
    5959 
    60   def initialize target_path, sudo, logger 
     60  def initialize target_path, sudo, apt_source, logger 
    6161    @logger = logger 
    6262    @use_sudo = sudo 
     63    @apt_source = apt_source 
    6364    @target_path = target_path 
    6465  end 
     
    7374    time = Time.now 
    7475    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, architecture 
     76    chroot = Chroot.new @logger, @use_sudo, @apt_source, chroot_name, @target_path, CHROOT_PATH, distribution, release, architecture 
    7677 
    7778    begin 
     
    8081      path = chroot.create 
    8182      @logger.info "Created new chroot with the name '#{chroot_name}' at the following path: #{path}" 
     83 
    8284      @logger.info "Installing subversion and setting up ssl certificate" 
    8385      if FileTest.exists? "./havanawave.pem" then 
     
    129131options.path = [DEFAULT_PATH] 
    130132options.sudo = false 
     133options.apt_source = nil 
    131134 
    132135OptionParser.new do |opts| 
     
    135138  opts.on("-t", "--target-directory DIRECTORY", String , "Target Directory") do |v| 
    136139    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 
    137144  end 
    138145 
     
    152159 
    153160time_start = Time.now 
     161result = nil 
    154162 
    155163begin 
     
    161169  system "#{sudo}chmod 777 \"#{log_file}\"" 
    162170 
    163   @logger = Logger.new(log_file) 
     171  @logger = Logger.new(STDOUT) 
     172#  @logger = Logger.new(log_file) 
    164173  @logger.level = Logger::DEBUG 
    165174  @logger.info "HefeWeizen CHROOT Test System" 
     
    168177  time_start = Time.now 
    169178  @logger.info "Time start: #{time_start}" 
    170   result = HefeWeizenTester.new(options.path, options.sudo, @logger).run 
     179  result = HefeWeizenTester.new(options.path, options.sudo, options.apt_source, @logger).run 
    171180  time_end = Time.now 
    172181  @logger.info "Time end: #{time_end}" 
     
    174183   
    175184  @logger.error "Error" if result != 0 
    176    
    177   exit result 
    178    
     185     
    179186rescue Exception => e 
    180187  $stderr.puts "Exception: #{e.to_s}" 
     
    183190end 
    184191 
     192exit result