Class: Beaker::Hypervisor
- Inherits:
-
Object
- Object
- Beaker::Hypervisor
- Includes:
- HostPrebuiltSteps
- Defined in:
- lib/beaker/hypervisor.rb
Overview
The Beaker class that interacts to all the supported hypervisors
Direct Known Subclasses
Aixer, AwsSdk, Blimper, Docker, Fusion, GoogleCompute, Solaris, Vagrant, Vcloud, VcloudPooled, Vsphere
Constant Summary collapse
- CHARMAP =
Generates an array with all letters a thru z and numbers 0 thru 9
('a'..'z').to_a + ('0'..'9').to_a
Constants included from HostPrebuiltSteps
Beaker::HostPrebuiltSteps::APT_CFG, Beaker::HostPrebuiltSteps::ETC_HOSTS_PATH, Beaker::HostPrebuiltSteps::ETC_HOSTS_PATH_SOLARIS, Beaker::HostPrebuiltSteps::IPS_PKG_REPO, Beaker::HostPrebuiltSteps::NTPSERVER, Beaker::HostPrebuiltSteps::PACKAGES, Beaker::HostPrebuiltSteps::ROOT_KEYS_SCRIPT, Beaker::HostPrebuiltSteps::ROOT_KEYS_SYNC_CMD, Beaker::HostPrebuiltSteps::SLEEPWAIT, Beaker::HostPrebuiltSteps::SLES_PACKAGES, Beaker::HostPrebuiltSteps::TRIES, Beaker::HostPrebuiltSteps::UNIX_PACKAGES
Class Method Summary collapse
-
.create(type, hosts_to_provision, options) ⇒ Object
Hypervisor creator method.
Instance Method Summary collapse
-
#cleanup ⇒ Object
Cleanup steps to be run for a given hypervisor.
-
#configure ⇒ Object
Default configuration steps to be run for a given hypervisor.
-
#generate_host_name ⇒ Object
Generate a random straing composted of letter and numbers.
-
#initialize(hosts, options) ⇒ Hypervisor
constructor
A new instance of Hypervisor.
-
#provision ⇒ Object
Provisioning steps for be run for a given hypervisor.
-
#validate ⇒ Object
Default validation steps to be run for a given hypervisor.
Methods included from HostPrebuiltSteps
#add_el_extras, #add_master_entry, #apt_get_update, #copy_file_to_remote, #copy_ssh_to_root, #disable_iptables, #disable_se_linux, #enable_root_login, #epel_info_for!, #get_domain_name, #get_ip, #hack_etc_hosts, #proxy_config, #set_etc_hosts, #sync_root_keys, #timesync, #validate_host
Constructor Details
#initialize(hosts, options) ⇒ Hypervisor
Returns a new instance of Hypervisor.
63 64 65 66 |
# File 'lib/beaker/hypervisor.rb', line 63 def initialize(hosts, ) @hosts = hosts @options = end |
Class Method Details
.create(type, hosts_to_provision, options) ⇒ Object
Hypervisor creator method. Creates the appropriate hypervisor class object based upon the provided hypervisor type selected, then provisions hosts with hypervisor.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/beaker/hypervisor.rb', line 23 def self.create(type, hosts_to_provision, ) @logger = [:logger] @logger.notify("Beaker::Hypervisor, found some #{type} boxes to create") hyper_class = case type when /aix/ Beaker::Aixer when /solaris/ Beaker::Solaris when /vsphere/ Beaker::Vsphere when /fusion/ Beaker::Fusion when /blimpy/ Beaker::Blimper when /ec2/ Beaker::AwsSdk when /vcloud/ if ['pooling_api'] Beaker::VcloudPooled else Beaker::Vcloud end when /vagrant/ Beaker::Vagrant when /google/ Beaker::GoogleCompute when /docker/ Beaker::Docker when /none/ Beaker::Hypervisor else raise "Invalid hypervisor: #{type}" end hypervisor = hyper_class.new(hosts_to_provision, ) hypervisor.provision hypervisor end |
Instance Method Details
#cleanup ⇒ Object
Cleanup steps to be run for a given hypervisor. Default is nil.
74 75 76 |
# File 'lib/beaker/hypervisor.rb', line 74 def cleanup nil end |
#configure ⇒ Object
Default configuration steps to be run for a given hypervisor
79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/beaker/hypervisor.rb', line 79 def configure if @options[:timesync] timesync(@hosts, @options) end if @options[:root_keys] sync_root_keys(@hosts, @options) end if @options[:add_el_extras] add_el_extras(@hosts, @options) end if @options[:add_master_entry] add_master_entry(@hosts, @options) end end |
#generate_host_name ⇒ Object
Generate a random straing composted of letter and numbers
102 103 104 |
# File 'lib/beaker/hypervisor.rb', line 102 def generate_host_name CHARMAP[rand(25)] + (0...14).map{CHARMAP[rand(CHARMAP.length)]}.join end |
#provision ⇒ Object
Provisioning steps for be run for a given hypervisor. Default is nil.
69 70 71 |
# File 'lib/beaker/hypervisor.rb', line 69 def provision nil end |
#validate ⇒ Object
Default validation steps to be run for a given hypervisor
95 96 97 98 99 |
# File 'lib/beaker/hypervisor.rb', line 95 def validate if @options[:validate] validate_host(@hosts, @options) end end |