Sha256: 13d66a985d5dd367b9474c1141321035e23515ae9e7b94ab0ff0b0cb847ffb35

Contents?: true

Size: 1.51 KB

Versions: 17

Compression:

Stored size: 1.51 KB

Contents

module Beaker
  class Aixer < Beaker::Hypervisor

    def initialize(aix_hosts, options)
      @options = options
      @logger = options[:logger]
      @aix_hosts = aix_hosts
      #aix machines are reverted to known state, not a snapshot
      @fog_file = nil
      if File.exists?( @options[:dot_fog] )
        @fog_file = YAML.load_file( @options[:dot_fog] )
      end
      raise "Cant load #{@options[:dot_fog]} config" unless @fog_file

    end

    def provision
      # Running the rake task on rpm-builder
      hypername = @fog_file[:default][:aix_hypervisor_server]
      hyperopts = @options.dup
      hyperopts['HOSTS'] = {
          hypername => { 'platform' => 'el-6-x86_64' }
      }

      @logger.notify "Connecting to hypervisor at #{hypername}"
      hypervisor = Beaker::Host.create( hypername, hyperopts )
      hypervisor[:user] = @fog_file[:default][:aix_hypervisor_username] || hypervisor[:user]
      hypervisor[:ssh][:keys] = [@fog_file[:default][:aix_hypervisor_keyfile]] || hypervisor[:ssh][:keys]

      @aix_hosts.each do |host|
        vm_name = host['vmname'] || host.name

        @logger.notify "Reverting #{vm_name} to aix clean state"
        start = Time.now
        # Restore AIX image, ID'd by the hostname
        hypervisor.exec(Command.new("cd pe-aix && rake restore:#{host.name}"))
        time = Time.now - start
        @logger.notify "Spent %.2f seconds reverting" % time
      end
      hypervisor.close
    end

    def cleanup
      @logger.notify "No cleanup for aix boxes"
    end

  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
beaker-1.8.1 lib/beaker/hypervisor/aixer.rb
beaker-1.8.0 lib/beaker/hypervisor/aixer.rb
beaker-1.7.0 lib/beaker/hypervisor/aixer.rb
beaker-1.6.2 lib/beaker/hypervisor/aixer.rb
beaker-1.6.1 lib/beaker/hypervisor/aixer.rb
beaker-1.6.0 lib/beaker/hypervisor/aixer.rb
beaker-1.5.0 lib/beaker/hypervisor/aixer.rb
beaker-1.4.1 lib/beaker/hypervisor/aixer.rb
beaker-1.4.0 lib/beaker/hypervisor/aixer.rb
beaker-1.3.2 lib/beaker/hypervisor/aixer.rb
beaker-1.3.1 lib/beaker/hypervisor/aixer.rb
beaker-1.3.0 lib/beaker/hypervisor/aixer.rb
beaker-1.2.0 lib/beaker/hypervisor/aixer.rb
beaker-1.1.0 lib/beaker/hypervisor/aixer.rb
beaker-1.0.1 lib/beaker/hypervisor/aixer.rb
beaker-1.0.1.pre lib/beaker/hypervisor/aixer.rb
beaker-1.0.0 lib/beaker/hypervisor/aixer.rb