boxgrinder-core 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. data/CHANGELOG +10 -0
  2. data/Rakefile +13 -9
  3. data/boxgrinder-core.gemspec +11 -8
  4. data/lib/boxgrinder-core/appliance-parser.rb +84 -0
  5. data/{spec/validators/appliance-config-validator-spec.rb → lib/boxgrinder-core/appliance-validator.rb} +15 -2
  6. data/lib/boxgrinder-core/{validators/errors.rb → errors.rb} +16 -0
  7. data/lib/boxgrinder-core/helpers/appliance-config-helper.rb +10 -18
  8. data/lib/boxgrinder-core/helpers/appliance-definition-helper.rb +19 -59
  9. data/lib/boxgrinder-core/helpers/appliance-transformation-helper.rb +58 -0
  10. data/lib/boxgrinder-core/helpers/exec-helper.rb +48 -21
  11. data/lib/boxgrinder-core/models/appliance-config.rb +39 -23
  12. data/lib/boxgrinder-core/models/config.rb +4 -2
  13. data/lib/boxgrinder-core/schemas/appliance_schema_0.8.0.yaml +95 -0
  14. data/lib/boxgrinder-core/schemas/appliance_schema_0.9.0.yaml +92 -0
  15. data/rubygem-boxgrinder-core.spec +13 -1
  16. data/spec/appliance-parser-spec.rb +68 -0
  17. data/spec/appliance-validator-spec.rb +71 -0
  18. data/spec/helpers/appliance-config-helper-spec.rb +136 -1
  19. data/spec/helpers/appliance-definition-helper-spec.rb +51 -79
  20. data/spec/helpers/appliance-transformation-helper-spec.rb +51 -0
  21. data/spec/helpers/exec-helper-spec.rb +40 -12
  22. data/spec/helpers/log-helper-spec.rb +1 -0
  23. data/spec/models/config-spec.rb +2 -1
  24. data/spec/rspec/src/appliances/0.8.x.appl +38 -0
  25. data/spec/rspec/src/appliances/0.9.x-invalid.appl +40 -0
  26. data/spec/rspec/src/appliances/0.9.x.appl +36 -0
  27. metadata +48 -19
  28. data/lib/boxgrinder-core/validators/appliance-config-validator.rb +0 -65
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: boxgrinder-core
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 0
10
- version: 0.3.0
9
+ - 1
10
+ version: 0.3.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Marek Goldmann
@@ -15,41 +15,57 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-03-09 00:00:00 +01:00
18
+ date: 2011-04-27 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: open4
22
+ name: hashery
23
23
  prerelease: false
24
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- hash: 23
29
+ hash: 27
30
30
  segments:
31
31
  - 1
32
+ - 3
32
33
  - 0
33
- - 0
34
- version: 1.0.0
34
+ version: 1.3.0
35
35
  type: :runtime
36
36
  version_requirements: *id001
37
37
  - !ruby/object:Gem::Dependency
38
- name: hashery
38
+ name: kwalify
39
39
  prerelease: false
40
40
  requirement: &id002 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ">="
44
44
  - !ruby/object:Gem::Version
45
- hash: 27
45
+ hash: 7
46
46
  segments:
47
- - 1
48
- - 3
49
47
  - 0
50
- version: 1.3.0
48
+ - 7
49
+ - 2
50
+ version: 0.7.2
51
51
  type: :runtime
52
52
  version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: open4
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ hash: 23
62
+ segments:
63
+ - 1
64
+ - 0
65
+ - 0
66
+ version: 1.0.0
67
+ type: :runtime
68
+ version_requirements: *id003
53
69
  description: Core library for BoxGrinder
54
70
  email: info@boxgrinder.org
55
71
  executables: []
@@ -61,15 +77,19 @@ extra_rdoc_files:
61
77
  - LICENSE
62
78
  - README
63
79
  - lib/boxgrinder-core.rb
80
+ - lib/boxgrinder-core/appliance-parser.rb
81
+ - lib/boxgrinder-core/appliance-validator.rb
82
+ - lib/boxgrinder-core/errors.rb
64
83
  - lib/boxgrinder-core/helpers/appliance-config-helper.rb
65
84
  - lib/boxgrinder-core/helpers/appliance-definition-helper.rb
85
+ - lib/boxgrinder-core/helpers/appliance-transformation-helper.rb
66
86
  - lib/boxgrinder-core/helpers/exec-helper.rb
67
87
  - lib/boxgrinder-core/helpers/log-helper.rb
68
88
  - lib/boxgrinder-core/models/appliance-config.rb
69
89
  - lib/boxgrinder-core/models/config.rb
70
90
  - lib/boxgrinder-core/models/task.rb
71
- - lib/boxgrinder-core/validators/appliance-config-validator.rb
72
- - lib/boxgrinder-core/validators/errors.rb
91
+ - lib/boxgrinder-core/schemas/appliance_schema_0.8.0.yaml
92
+ - lib/boxgrinder-core/schemas/appliance_schema_0.9.0.yaml
73
93
  files:
74
94
  - CHANGELOG
75
95
  - LICENSE
@@ -78,23 +98,33 @@ files:
78
98
  - Rakefile
79
99
  - boxgrinder-core.gemspec
80
100
  - lib/boxgrinder-core.rb
101
+ - lib/boxgrinder-core/appliance-parser.rb
102
+ - lib/boxgrinder-core/appliance-validator.rb
103
+ - lib/boxgrinder-core/errors.rb
81
104
  - lib/boxgrinder-core/helpers/appliance-config-helper.rb
82
105
  - lib/boxgrinder-core/helpers/appliance-definition-helper.rb
106
+ - lib/boxgrinder-core/helpers/appliance-transformation-helper.rb
83
107
  - lib/boxgrinder-core/helpers/exec-helper.rb
84
108
  - lib/boxgrinder-core/helpers/log-helper.rb
85
109
  - lib/boxgrinder-core/models/appliance-config.rb
86
110
  - lib/boxgrinder-core/models/config.rb
87
111
  - lib/boxgrinder-core/models/task.rb
88
- - lib/boxgrinder-core/validators/appliance-config-validator.rb
89
- - lib/boxgrinder-core/validators/errors.rb
112
+ - lib/boxgrinder-core/schemas/appliance_schema_0.8.0.yaml
113
+ - lib/boxgrinder-core/schemas/appliance_schema_0.9.0.yaml
90
114
  - rubygem-boxgrinder-core.spec
115
+ - spec/appliance-parser-spec.rb
116
+ - spec/appliance-validator-spec.rb
91
117
  - spec/helpers/appliance-config-helper-spec.rb
92
118
  - spec/helpers/appliance-definition-helper-spec.rb
119
+ - spec/helpers/appliance-transformation-helper-spec.rb
93
120
  - spec/helpers/exec-helper-spec.rb
94
121
  - spec/helpers/log-helper-spec.rb
95
122
  - spec/models/config-spec.rb
96
123
  - spec/rspec/ls/one
97
124
  - spec/rspec/ls/two
125
+ - spec/rspec/src/appliances/0.8.x.appl
126
+ - spec/rspec/src/appliances/0.9.x-invalid.appl
127
+ - spec/rspec/src/appliances/0.9.x.appl
98
128
  - spec/rspec/src/appliances/ephemeral-repo.appl
99
129
  - spec/rspec/src/appliances/full.appl
100
130
  - spec/rspec/src/appliances/invalid-yaml.appl
@@ -102,9 +132,8 @@ files:
102
132
  - spec/rspec/src/appliances/repo.appl
103
133
  - spec/rspec/src/config/empty
104
134
  - spec/rspec/src/config/valid
105
- - spec/validators/appliance-config-validator-spec.rb
106
135
  has_rdoc: true
107
- homepage: http://www.jboss.org/boxgrinder
136
+ homepage: http://boxgrinder.org
108
137
  licenses: []
109
138
 
110
139
  post_install_message:
@@ -1,65 +0,0 @@
1
- #
2
- # Copyright 2010 Red Hat, Inc.
3
- #
4
- # This is free software; you can redistribute it and/or modify it
5
- # under the terms of the GNU Lesser General Public License as
6
- # published by the Free Software Foundation; either version 3 of
7
- # the License, or (at your option) any later version.
8
- #
9
- # This software is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
- # Lesser General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU Lesser General Public
15
- # License along with this software; if not, write to the Free
16
- # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
17
- # 02110-1301 USA, or see the FSF site: http://www.fsf.org.
18
-
19
- require 'boxgrinder-core/validators/errors'
20
-
21
- module BoxGrinder
22
- class ApplianceConfigValidator
23
- def initialize(appliance_config, options = {})
24
- @appliance_config = appliance_config
25
- @options = options
26
- end
27
-
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
36
-
37
- protected
38
-
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
42
-
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
50
-
51
- def validate_os
52
- raise ApplianceValidationError, "No operating system selected" if @appliance_config.os.name.nil?
53
- end
54
-
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
64
- end
65
- end