Class | BoxGrinder::Kickstart |
In: |
lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb
lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb |
Parent: | Object |
# File lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb, line 27 27: def initialize(config, appliance_config, repos, dir, options = {}) 28: @config = config 29: @repos = repos 30: @appliance_config = appliance_config 31: @dir = dir 32: @log = options[:log] || Logger.new(STDOUT) 33: 34: @linux_helper = LinuxHelper.new(:log => @log) 35: 36: @kickstart_file = "#{@dir.tmp}/#{@appliance_config.name}.ks" 37: end
# File lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb, line 27 27: def initialize(config, appliance_config, repos, dir, options = {}) 28: @config = config 29: @repos = repos 30: @appliance_config = appliance_config 31: @dir = dir 32: @log = options[:log] || Logger.new(STDOUT) 33: 34: @linux_helper = LinuxHelper.new(:log => @log) 35: 36: @kickstart_file = "#{@dir.tmp}/#{@appliance_config.name}.ks" 37: end
# File lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb, line 47 47: def build_definition 48: definition = {} 49: 50: definition['appliance_config'] = @appliance_config 51: definition['repos'] = [] 52: definition['graphical'] = (@appliance_config.packages.include?( '@base-x' ) or @appliance_config.packages.include?( '@X Window System' )) ? true : false 53: 54: def definition.method_missing(sym, * args) 55: self[sym.to_s] 56: end 57: 58: cost = 40 59: 60: definition['mount_points'] = @linux_helper.partition_mount_points(@appliance_config.hardware.partitions) 61: 62: repos = [] 63: repos += default_repos if @appliance_config.default_repos 64: repos += @appliance_config.repos 65: 66: for repo in repos 67: if repo.keys.include?('mirrorlist') 68: urltype = 'mirrorlist' 69: else 70: urltype = 'baseurl' 71: end 72: 73: substitutions = { 74: /#ARCH#/ => @appliance_config.hardware.arch, 75: /#BASE_ARCH#/ => @appliance_config.hardware.base_arch, 76: /#OS_VERSION#/ => @appliance_config.os.version, 77: /#OS_NAME#/ => @appliance_config.os.name 78: } 79: 80: url = repo[urltype] 81: name = repo['name'] 82: 83: substitutions.each do |key, value| 84: url = url.gsub(key, value) 85: name = name.gsub(key, value) 86: end 87: 88: definition['repos'] << "repo --name=#{name} --cost=#{cost} --#{urltype}=#{url}" 89: 90: cost += 1 91: end 92: 93: definition 94: end
# File lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb, line 47 47: def build_definition 48: definition = {} 49: 50: definition['appliance_config'] = @appliance_config 51: definition['repos'] = [] 52: definition['graphical'] = (@appliance_config.packages.include?( '@base-x' ) or @appliance_config.packages.include?( '@X Window System' )) ? true : false 53: 54: def definition.method_missing(sym, * args) 55: self[sym.to_s] 56: end 57: 58: cost = 40 59: 60: definition['mount_points'] = @linux_helper.partition_mount_points(@appliance_config.hardware.partitions) 61: 62: repos = [] 63: repos += default_repos if @appliance_config.default_repos 64: repos += @appliance_config.repos 65: 66: for repo in repos 67: if repo.keys.include?('mirrorlist') 68: urltype = 'mirrorlist' 69: else 70: urltype = 'baseurl' 71: end 72: 73: substitutions = { 74: /#ARCH#/ => @appliance_config.hardware.arch, 75: /#BASE_ARCH#/ => @appliance_config.hardware.base_arch, 76: /#OS_VERSION#/ => @appliance_config.os.version, 77: /#OS_NAME#/ => @appliance_config.os.name 78: } 79: 80: url = repo[urltype] 81: name = repo['name'] 82: 83: substitutions.each do |key, value| 84: url = url.gsub(key, value) 85: name = name.gsub(key, value) 86: end 87: 88: definition['repos'] << "repo --name=#{name} --cost=#{cost} --#{urltype}=#{url}" 89: 90: cost += 1 91: end 92: 93: definition 94: end
# File lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb, line 39 39: def create 40: template = "#{File.dirname(__FILE__)}/src/appliance.ks.erb" 41: kickstart = ERB.new(File.read(template)).result(build_definition.send(:binding)) 42: File.open(@kickstart_file, 'w') { |f| f.write(kickstart) } 43: 44: @kickstart_file 45: end
# File lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb, line 39 39: def create 40: template = "#{File.dirname(__FILE__)}/src/appliance.ks.erb" 41: kickstart = ERB.new(File.read(template)).result(build_definition.send(:binding)) 42: File.open(@kickstart_file, 'w') { |f| f.write(kickstart) } 43: 44: @kickstart_file 45: end
# File lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb, line 96 96: def default_reposdefault_repos 97: os_repos = @repos[@appliance_config.os.version] 98: 99: repos = Array.new 100: 101: for type in ["base", "updates"] 102: unless os_repos.nil? or os_repos[type].nil? 103: 104: mirrorlist = os_repos[type]['mirrorlist'] 105: baseurl = os_repos[type]['baseurl'] 106: 107: name = "#{@appliance_config.os.name}-#{@appliance_config.os.version}-#{type}" 108: 109: if mirrorlist.nil? 110: repos.push({"name" => name, "baseurl" => baseurl}) 111: else 112: repos.push({"name" => name, "mirrorlist" => mirrorlist}) 113: end 114: end 115: end 116: 117: repos 118: end
# File lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb, line 96 96: def default_reposdefault_repos 97: os_repos = @repos[@appliance_config.os.version] 98: 99: repos = Array.new 100: 101: for type in ["base", "updates"] 102: unless os_repos.nil? or os_repos[type].nil? 103: 104: mirrorlist = os_repos[type]['mirrorlist'] 105: baseurl = os_repos[type]['baseurl'] 106: 107: name = "#{@appliance_config.os.name}-#{@appliance_config.os.version}-#{type}" 108: 109: if mirrorlist.nil? 110: repos.push({"name" => name, "baseurl" => baseurl}) 111: else 112: repos.push({"name" => name, "mirrorlist" => mirrorlist}) 113: end 114: end 115: end 116: 117: repos 118: end