Class BoxGrinder::Kickstart
In: lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb
lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb
Parent: Object

Methods

Public Class methods

[Source]

    # 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

[Source]

    # 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

Public Instance methods

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Source]

     # 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

[Source]

     # 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

[Validate]