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 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

[Source]

    # 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

Public Instance methods

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Source]

     # 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

[Source]

     # 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

[Validate]