Class BoxGrinder::ApplianceConfig
In: lib/boxgrinder-core/models/appliance-config.rb
lib/boxgrinder-core/models/appliance-config.rb
Parent: Object

Methods

Attributes

appliances  [RW] 
appliances  [RW] 
default_repos  [RW] 
default_repos  [RW] 
files  [R] 
files  [R] 
hardware  [R] 
hardware  [R] 
name  [RW] 
name  [RW] 
os  [R] 
os  [R] 
packages  [RW] 
packages  [RW] 
path  [R] 
path  [R] 
post  [R] 
post  [R] 
release  [RW] 
release  [RW] 
repos  [RW] 
repos  [RW] 
summary  [RW] 
summary  [RW] 
variables  [R] 
variables  [R] 
version  [RW] 
version  [RW] 

Public Class methods

[Source]

    # File lib/boxgrinder-core/models/appliance-config.rb, line 24
24:     def initialize
25:       @name = nil
26:       @summary = nil
27: 
28:       @variables = {}
29: 
30:       @os = OpenCascade.new
31: 
32:       @os.name = nil
33:       @os.version = nil
34:       @os.password = nil
35:       @os.pae = true
36: 
37:       @hardware = OpenCascade.new
38: 
39:       @hardware.cpus = 1
40:       @hardware.memory = 256
41:       @hardware.network = 'NAT'
42:       @hardware.partitions = {"/" => {'size' => 1}}
43: 
44:       @default_repos = true
45: 
46:       @post = {}
47:       @files = {}
48: 
49:       @packages = []
50:       @appliances = []
51:       @repos = []
52: 
53:       @version = 1
54:       @release = 0
55:     end

[Source]

    # File lib/boxgrinder-core/models/appliance-config.rb, line 24
24:     def initialize
25:       @name = nil
26:       @summary = nil
27: 
28:       @variables = {}
29: 
30:       @os = OpenCascade.new
31: 
32:       @os.name = nil
33:       @os.version = nil
34:       @os.password = nil
35:       @os.pae = true
36: 
37:       @hardware = OpenCascade.new
38: 
39:       @hardware.cpus = 1
40:       @hardware.memory = 256
41:       @hardware.network = 'NAT'
42:       @hardware.partitions = {"/" => {'size' => 1}}
43: 
44:       @default_repos = true
45: 
46:       @post = {}
47:       @files = {}
48: 
49:       @packages = []
50:       @appliances = []
51:       @repos = []
52: 
53:       @version = 1
54:       @release = 0
55:     end

Public Instance methods

[Source]

     # File lib/boxgrinder-core/models/appliance-config.rb, line 97
 97:     def all_values(input=nil)
 98:       avoid     = ['@variables']
 99:       input = (self.instance_variables - avoid).
100:         collect{ |v| self.instance_variable_get(v) } if input.nil?
101: 
102:       vars = input.inject([]) do |arr, var|
103:         case var
104:           when Hash
105:             arr.concat(all_values(var.values))
106:           when Array
107:             arr.concat(all_values(var))
108:           when String
109:             arr.push var
110:           end
111:         arr
112:         end
113:       vars
114:     end

[Source]

     # File lib/boxgrinder-core/models/appliance-config.rb, line 97
 97:     def all_values(input=nil)
 98:       avoid     = ['@variables']
 99:       input = (self.instance_variables - avoid).
100:         collect{ |v| self.instance_variable_get(v) } if input.nil?
101: 
102:       vars = input.inject([]) do |arr, var|
103:         case var
104:           when Hash
105:             arr.concat(all_values(var.values))
106:           when Array
107:             arr.concat(all_values(var))
108:           when String
109:             arr.push var
110:           end
111:         arr
112:         end
113:       vars
114:     end

[Source]

     # File lib/boxgrinder-core/models/appliance-config.rb, line 146
146:     def clone
147:       Marshal::load(Marshal.dump(self))
148:     end

[Source]

     # File lib/boxgrinder-core/models/appliance-config.rb, line 146
146:     def clone
147:       Marshal::load(Marshal.dump(self))
148:     end

Returns default filesystem type for current OS

[Source]

     # File lib/boxgrinder-core/models/appliance-config.rb, line 117
117:     def default_filesystem_type
118:       fs = 'ext4'
119: 
120: # Since RHEL 5.6 the default filesystem is ext4
121: #
122: #      case @os.name
123: #        when 'rhel', 'centos'
124: #          case @os.version
125: #            when '5'
126: #              fs = 'ext3'
127: #          end
128: #      end
129: 
130:       fs
131:     end

Returns default filesystem type for current OS

[Source]

     # File lib/boxgrinder-core/models/appliance-config.rb, line 117
117:     def default_filesystem_type
118:       fs = 'ext4'
119: 
120: # Since RHEL 5.6 the default filesystem is ext4
121: #
122: #      case @os.name
123: #        when 'rhel', 'centos'
124: #          case @os.version
125: #            when '5'
126: #              fs = 'ext3'
127: #          end
128: #      end
129: 
130:       fs
131:     end

[Source]

     # File lib/boxgrinder-core/models/appliance-config.rb, line 138
138:     def eql?(other)
139:       hash.eql?(other.hash)
140:     end

[Source]

     # File lib/boxgrinder-core/models/appliance-config.rb, line 138
138:     def eql?(other)
139:       hash.eql?(other.hash)
140:     end

used to checking if configuration differs from previous in appliance-kickstart

[Source]

     # File lib/boxgrinder-core/models/appliance-config.rb, line 134
134:     def hash
135:       "#{@name}-#{@summary}-#{@version}-#{@release}-#{@os.name}-#{@os.version}-#{@os.password}-#{@hardware.cpus}-#{@hardware.memory}-#{@hardware.partitions}-#{@appliances}".hash
136:     end

used to checking if configuration differs from previous in appliance-kickstart

[Source]

     # File lib/boxgrinder-core/models/appliance-config.rb, line 134
134:     def hash
135:       "#{@name}-#{@summary}-#{@version}-#{@release}-#{@os.name}-#{@os.version}-#{@os.password}-#{@hardware.cpus}-#{@hardware.memory}-#{@hardware.partitions}-#{@appliances}".hash
136:     end

[Source]

    # File lib/boxgrinder-core/models/appliance-config.rb, line 73
73:     def init
74:       init_arch
75:       initialize_paths
76:       self
77:     end

[Source]

    # File lib/boxgrinder-core/models/appliance-config.rb, line 73
73:     def init
74:       init_arch
75:       initialize_paths
76:       self
77:     end

[Source]

    # File lib/boxgrinder-core/models/appliance-config.rb, line 79
79:     def init_arch
80:       @hardware.arch = `uname -m`.chomp.strip
81:       @hardware.base_arch = is64bit? ? "x86_64" : "i386"
82:       self
83:     end

[Source]

    # File lib/boxgrinder-core/models/appliance-config.rb, line 79
79:     def init_arch
80:       @hardware.arch = `uname -m`.chomp.strip
81:       @hardware.base_arch = is64bit? ? "x86_64" : "i386"
82:       self
83:     end

[Source]

    # File lib/boxgrinder-core/models/appliance-config.rb, line 85
85:     def initialize_paths
86:       @path = OpenCascade.new
87: 
88:       @path.os = "#{@os.name}/#{@os.version}"
89:       @path.version = "#{@version}.#{@release}"
90:       @path.main = "#{@hardware.arch}/#{@path.os}"
91:       @path.appliance = "appliances/#{@path.main}/#{@name}/#{@path.version}"
92:       @path.build = "build/#{@path.appliance}"
93: 
94:       self
95:     end

[Source]

    # File lib/boxgrinder-core/models/appliance-config.rb, line 85
85:     def initialize_paths
86:       @path = OpenCascade.new
87: 
88:       @path.os = "#{@os.name}/#{@os.version}"
89:       @path.version = "#{@version}.#{@release}"
90:       @path.main = "#{@hardware.arch}/#{@path.os}"
91:       @path.appliance = "appliances/#{@path.main}/#{@name}/#{@path.version}"
92:       @path.build = "build/#{@path.appliance}"
93: 
94:       self
95:     end

[Source]

     # File lib/boxgrinder-core/models/appliance-config.rb, line 142
142:     def is64bit?
143:       @hardware.arch.eql?("x86_64")
144:     end

[Source]

     # File lib/boxgrinder-core/models/appliance-config.rb, line 142
142:     def is64bit?
143:       @hardware.arch.eql?("x86_64")
144:     end

[Validate]