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