| 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