Class: BoxGrinder::RHELPlugin

Inherits:
RPMBasedOSPlugin show all
Defined in:
lib/boxgrinder-build/plugins/os/rhel/rhel-plugin.rb

Direct Known Subclasses

CentOSPlugin, ScientificLinuxPlugin

Instance Attribute Summary

Attributes inherited from BasePlugin

#deliverables, #plugin_info

Instance Method Summary collapse

Methods inherited from RPMBasedOSPlugin

#add_repos, #apply_root_password, #build_with_appliance_creator, #change_configuration, #cleanup_after_appliance_creator, #disable_firewall, #execute_appliance_creator, #execute_post, #install_files, #install_repos, #recreate_kernel_image, #recreate_rpm_database, #set_label_for_swap_partitions, #set_motd, #substitute_vars, #use_labels_for_partitions

Methods inherited from BasePlugin

#current_platform, #deliverables_exists?, #init, #initialize, #is_supported_os?, #is_supported_platform?, #merge_plugin_config, #read_plugin_config, #register_deliverable, #register_supported_os, #register_supported_platform, #run, #set_default_config_value, #subtype, #supported_oses, #validate_plugin_config

Methods included from Plugins

#plugin

Constructor Details

This class inherits a constructor from BoxGrinder::BasePlugin

Instance Method Details

#add_packages(packages, package_array) ⇒ Object



52
53
54
# File 'lib/boxgrinder-build/plugins/os/rhel/rhel-plugin.rb', line 52

def add_packages(packages, package_array)
  package_array.each { |package| packages << package unless packages.include?(package) }
end

#after_initObject



25
26
27
28
# File 'lib/boxgrinder-build/plugins/os/rhel/rhel-plugin.rb', line 25

def after_init
  super
  register_supported_os('rhel', ['5', '6'])
end

#build_rhel(appliance_definition_file, repos = {}) ⇒ Object



30
31
32
33
34
35
36
37
# File 'lib/boxgrinder-build/plugins/os/rhel/rhel-plugin.rb', line 30

def build_rhel(appliance_definition_file, repos = {})
  normalize_packages(@appliance_config.packages)

  build_with_appliance_creator(appliance_definition_file, repos) do |guestfs, guestfs_helper|
    # required for VMware and KVM
    @linux_helper.recreate_kernel_image(guestfs, ['mptspi', 'virtio_pci', 'virtio_blk']) if @appliance_config.os.version == '5' and !@appliance_config.packages.include?('kernel-xen')
  end
end

#execute(appliance_definition_file) ⇒ Object



56
57
58
# File 'lib/boxgrinder-build/plugins/os/rhel/rhel-plugin.rb', line 56

def execute(appliance_definition_file)
  build_rhel(appliance_definition_file)
end

#normalize_packages(packages) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/boxgrinder-build/plugins/os/rhel/rhel-plugin.rb', line 39

def normalize_packages(packages)
  # https://issues.jboss.org/browse/BGBUILD-89
  add_packages(packages, ['@core', 'curl', 'grub'])

  case @appliance_config.os.version
    when '5'
      packages << 'kernel' unless packages.include?('kernel-xen')
      add_packages(packages, ['system-config-securitylevel-tui', 'util-linux', 'setarch', 'sudo'])
    when '6'
      add_packages(packages, ['kernel', 'system-config-firewall-base'])
  end
end