Class BoxGrinder::ApplianceConfigValidator
In: lib/boxgrinder-core/validators/appliance-config-validator.rb
lib/boxgrinder-core/validators/appliance-config-validator.rb
Parent: Object

Methods

Public Class methods

[Source]

    # File lib/boxgrinder-core/validators/appliance-config-validator.rb, line 23
23:     def initialize(appliance_config, options = {})
24:       @appliance_config = appliance_config
25:       @options = options
26:     end

[Source]

    # File lib/boxgrinder-core/validators/appliance-config-validator.rb, line 23
23:     def initialize(appliance_config, options = {})
24:       @appliance_config = appliance_config
25:       @options = options
26:     end

Public Instance methods

[Source]

    # File lib/boxgrinder-core/validators/appliance-config-validator.rb, line 28
28:     def validate
29:       check_for_missing_field('name')
30: #      check_for_missing_field('summary')
31: 
32:       validate_os
33:       validate_hardware
34:       validate_repos
35:     end

[Source]

    # File lib/boxgrinder-core/validators/appliance-config-validator.rb, line 28
28:     def validate
29:       check_for_missing_field('name')
30: #      check_for_missing_field('summary')
31: 
32:       validate_os
33:       validate_hardware
34:       validate_repos
35:     end

Protected Instance methods

[Source]

    # File lib/boxgrinder-core/validators/appliance-config-validator.rb, line 39
39:     def check_for_missing_field(name)
40:       raise ApplianceValidationError, "Missing field: appliance definition file should have field '#{name}'" if eval("@appliance_config.#{name}").nil?
41:     end

[Source]

    # File lib/boxgrinder-core/validators/appliance-config-validator.rb, line 39
39:     def check_for_missing_field(name)
40:       raise ApplianceValidationError, "Missing field: appliance definition file should have field '#{name}'" if eval("@appliance_config.#{name}").nil?
41:     end

[Source]

    # File lib/boxgrinder-core/validators/appliance-config-validator.rb, line 43
43:     def validate_hardware
44:       raise ApplianceValidationError, "Not valid CPU amount: Too many or too less CPU's: '#{@appliance_config.hardware.cpus}'. Please choose from 1-4. Please correct your appliance definition file, thanks." unless @appliance_config.hardware.cpus >= 1 and @appliance_config.hardware.cpus <= 4
45:       raise ApplianceValidationError, "Not valid memory amount: '#{@appliance_config.hardware.memory}' is wrong value. Please correct your appliance definition file" if @appliance_config.hardware.memory =~ /\d/
46:       raise ApplianceValidationError, "Not valid memory amount: '#{@appliance_config.hardware.memory}' is not allowed here. Memory should be multiplicity of 64. Please correct your appliance definition file" if (@appliance_config.hardware.memory.to_i % 64 > 0)
47: 
48:       raise ApplianceValidationError, "No partitions found. Please correct your appliance definition file" if @appliance_config.hardware.partitions.size == 0
49:     end

[Source]

    # File lib/boxgrinder-core/validators/appliance-config-validator.rb, line 43
43:     def validate_hardware
44:       raise ApplianceValidationError, "Not valid CPU amount: Too many or too less CPU's: '#{@appliance_config.hardware.cpus}'. Please choose from 1-4. Please correct your appliance definition file, thanks." unless @appliance_config.hardware.cpus >= 1 and @appliance_config.hardware.cpus <= 4
45:       raise ApplianceValidationError, "Not valid memory amount: '#{@appliance_config.hardware.memory}' is wrong value. Please correct your appliance definition file" if @appliance_config.hardware.memory =~ /\d/
46:       raise ApplianceValidationError, "Not valid memory amount: '#{@appliance_config.hardware.memory}' is not allowed here. Memory should be multiplicity of 64. Please correct your appliance definition file" if (@appliance_config.hardware.memory.to_i % 64 > 0)
47: 
48:       raise ApplianceValidationError, "No partitions found. Please correct your appliance definition file" if @appliance_config.hardware.partitions.size == 0
49:     end

[Source]

    # File lib/boxgrinder-core/validators/appliance-config-validator.rb, line 51
51:     def validate_os
52:       raise ApplianceValidationError, "No operating system selected" if @appliance_config.os.name.nil?
53:     end

[Source]

    # File lib/boxgrinder-core/validators/appliance-config-validator.rb, line 51
51:     def validate_os
52:       raise ApplianceValidationError, "No operating system selected" if @appliance_config.os.name.nil?
53:     end

[Source]

    # File lib/boxgrinder-core/validators/appliance-config-validator.rb, line 55
55:     def validate_repos
56:       return if @appliance_config.repos.size == 0
57: 
58:       @appliance_config.repos.each do |repo|
59:         raise ApplianceValidationError, "Not valid repo format: '#{repo}' is wrong value. Please correct your appliance definition file, thanks." unless repo.class.eql?(Hash)
60:         raise ApplianceValidationError, "Not valid repo format: Please specify name for repository. Please correct your appliance definition file, thanks." unless repo.keys.include?('name')
61:         raise ApplianceValidationError, "Not valid repo format: There is no 'mirrorlist' or 'baseurl' specified for '#{repo['name']}' repository. Please correct your appliance definition file, thanks." unless repo.keys.include?('mirrorlist') or repo.keys.include?('baseurl')
62:       end
63:     end

[Source]

    # File lib/boxgrinder-core/validators/appliance-config-validator.rb, line 55
55:     def validate_repos
56:       return if @appliance_config.repos.size == 0
57: 
58:       @appliance_config.repos.each do |repo|
59:         raise ApplianceValidationError, "Not valid repo format: '#{repo}' is wrong value. Please correct your appliance definition file, thanks." unless repo.class.eql?(Hash)
60:         raise ApplianceValidationError, "Not valid repo format: Please specify name for repository. Please correct your appliance definition file, thanks." unless repo.keys.include?('name')
61:         raise ApplianceValidationError, "Not valid repo format: There is no 'mirrorlist' or 'baseurl' specified for '#{repo['name']}' repository. Please correct your appliance definition file, thanks." unless repo.keys.include?('mirrorlist') or repo.keys.include?('baseurl')
62:       end
63:     end

[Validate]