kafo 0.9.1 → 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/kafo/configuration.rb +9 -1
- data/lib/kafo/kafo_configure.rb +2 -1
- data/lib/kafo/param.rb +28 -21
- data/lib/kafo/validator.rb +19 -10
- data/lib/kafo/version.rb +1 -1
- data/lib/kafo/wizard.rb +3 -0
- metadata +2 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 831fee1d8773e349d7967d6b8e2197cb017d30b0
|
4
|
+
data.tar.gz: 46c3bc4a21f25b8d8f5f70c18d6d3730dd22f10d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e5aa20ffadf4cbf9f0942bab11aa7382611b07b3150de7887caa0a3d16f25aa86cdb5431c4598c63370c6788d6d0cb6ece3ed965fbc1d040a2872539b598629d
|
7
|
+
data.tar.gz: cec32896880413196709850e0480b72f26c3807f07a7a1bea0794ddf590f3d617bb38de2c9757a961dcd5e64cc7d028058b48aa9d9a33a164733da36edeb3e64
|
data/lib/kafo/configuration.rb
CHANGED
@@ -229,8 +229,16 @@ module Kafo
|
|
229
229
|
File.join(app[:log_dir], app[:log_name])
|
230
230
|
end
|
231
231
|
|
232
|
+
def log_files_pattern
|
233
|
+
log_file.sub(/(\.log)\Z/i) { |suffix| "{.[0-9]*,}#{suffix}" }
|
234
|
+
end
|
235
|
+
|
236
|
+
def log_files
|
237
|
+
Dir.glob(log_files_pattern)
|
238
|
+
end
|
239
|
+
|
232
240
|
def log_exists?
|
233
|
-
|
241
|
+
log_files.any? { |f| File.size(f) > 0 }
|
234
242
|
end
|
235
243
|
|
236
244
|
def answers
|
data/lib/kafo/kafo_configure.rb
CHANGED
@@ -370,7 +370,8 @@ module Kafo
|
|
370
370
|
logger.info 'Running validation checks'
|
371
371
|
results = params.map do |param|
|
372
372
|
result = param.valid?
|
373
|
-
|
373
|
+
errors = param.validation_errors.join(', ')
|
374
|
+
progress_log(:error, "Parameter #{with_prefix(param)} invalid: #{errors}") if logging && !result
|
374
375
|
result
|
375
376
|
end
|
376
377
|
results.all?
|
data/lib/kafo/param.rb
CHANGED
@@ -48,25 +48,23 @@ module Kafo
|
|
48
48
|
if default == 'UNSET'
|
49
49
|
self.default = nil
|
50
50
|
else
|
51
|
-
if
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
# or without using a params class), the existing default value from the manifest will
|
69
|
-
# be used. On calling #value, the default will be returned if no overriding value is set.
|
51
|
+
# if we don't have default value from dump (can happen for modules added from hooks,
|
52
|
+
# or without using a params class), the existing default value from the manifest will
|
53
|
+
# be used. On calling #value, the default will be returned if no overriding value is set.
|
54
|
+
value = defaults.has_key?(default) ? defaults[default] : default
|
55
|
+
case value
|
56
|
+
when :undef
|
57
|
+
# value can be set to :undef if value is not defined
|
58
|
+
# (e.g. puppetmaster = $::puppetmaster which is not defined yet)
|
59
|
+
self.default = nil
|
60
|
+
when :undefined
|
61
|
+
# in puppet 2.7 :undefined means that it's param which value is
|
62
|
+
# not set by another parameter (e.g. foreman_group = 'something')
|
63
|
+
# which means, default is sensible unlike dumped default
|
64
|
+
# newer puppet has default dump in format 'value' => 'value' so
|
65
|
+
# it's handled correctly by else branch
|
66
|
+
else
|
67
|
+
self.default = value
|
70
68
|
end
|
71
69
|
end
|
72
70
|
end
|
@@ -89,8 +87,17 @@ module Kafo
|
|
89
87
|
{:name => v.name, :arguments => interpret_validation_args(args)}
|
90
88
|
end
|
91
89
|
|
92
|
-
validator = Validator.new
|
93
|
-
validations.
|
90
|
+
@validator = Validator.new
|
91
|
+
validations.each { |v| @validator.send(v[:name], v[:arguments]) }
|
92
|
+
@validator.errors.empty?
|
93
|
+
end
|
94
|
+
|
95
|
+
def validation_errors
|
96
|
+
if @validator
|
97
|
+
@validator.errors
|
98
|
+
else
|
99
|
+
[]
|
100
|
+
end
|
94
101
|
end
|
95
102
|
|
96
103
|
# To be overwritten in children
|
data/lib/kafo/validator.rb
CHANGED
@@ -1,15 +1,17 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
module Kafo
|
3
3
|
class Validator
|
4
|
+
attr_reader :errors
|
4
5
|
|
5
6
|
def initialize
|
7
|
+
@errors = []
|
6
8
|
@logger = KafoConfigure.logger
|
7
9
|
end
|
8
10
|
|
9
11
|
def validate_absolute_path(args)
|
10
12
|
args.each do |arg|
|
11
13
|
unless arg.to_s.start_with?('/')
|
12
|
-
|
14
|
+
error "#{arg.inspect} is not an absolute path"
|
13
15
|
return false
|
14
16
|
end
|
15
17
|
end
|
@@ -19,7 +21,7 @@ module Kafo
|
|
19
21
|
def validate_array(args)
|
20
22
|
args.each do |arg|
|
21
23
|
unless arg.is_a?(Array)
|
22
|
-
|
24
|
+
error "#{arg.inspect} is not a valid array"
|
23
25
|
return false
|
24
26
|
end
|
25
27
|
end
|
@@ -29,7 +31,7 @@ module Kafo
|
|
29
31
|
def validate_bool(args)
|
30
32
|
args.each do |arg|
|
31
33
|
unless arg.is_a?(TrueClass) || arg.is_a?(FalseClass)
|
32
|
-
|
34
|
+
error "#{arg.inspect} is not a valid boolean"
|
33
35
|
return false
|
34
36
|
end
|
35
37
|
end
|
@@ -39,7 +41,7 @@ module Kafo
|
|
39
41
|
def validate_hash(args)
|
40
42
|
args.each do |arg|
|
41
43
|
unless arg.is_a?(Hash)
|
42
|
-
|
44
|
+
error "#{arg.inspect} is not a valid hash"
|
43
45
|
return false
|
44
46
|
end
|
45
47
|
end
|
@@ -52,16 +54,16 @@ module Kafo
|
|
52
54
|
min = args[2]
|
53
55
|
int = Integer(value.to_s)
|
54
56
|
if min && int < min.to_i
|
55
|
-
|
57
|
+
error "#{value} must be at least #{min}"
|
56
58
|
return false
|
57
59
|
end
|
58
60
|
if max && int > max.to_i
|
59
|
-
|
61
|
+
error "#{value} must be less than #{max}"
|
60
62
|
return false
|
61
63
|
end
|
62
64
|
return true
|
63
65
|
rescue TypeError, ArgumentError
|
64
|
-
|
66
|
+
error "#{value.inspect} is not a valid integer"
|
65
67
|
return false
|
66
68
|
end
|
67
69
|
|
@@ -70,7 +72,7 @@ module Kafo
|
|
70
72
|
valid_values = ['http', 'https', 'both']
|
71
73
|
args.each do |arg|
|
72
74
|
unless valid_values.include?(arg)
|
73
|
-
|
75
|
+
error "#{arg.inspect} is not a valid value. Valid values are: #{valid_values.join(", ")}"
|
74
76
|
return false
|
75
77
|
end
|
76
78
|
end
|
@@ -86,7 +88,7 @@ module Kafo
|
|
86
88
|
if regexes.any? { |rx| value =~ Regexp.compile(rx) }
|
87
89
|
return true
|
88
90
|
else
|
89
|
-
|
91
|
+
error message
|
90
92
|
return false
|
91
93
|
end
|
92
94
|
end
|
@@ -94,7 +96,7 @@ module Kafo
|
|
94
96
|
def validate_string(args)
|
95
97
|
args.each do |arg|
|
96
98
|
unless arg.is_a?(String)
|
97
|
-
|
99
|
+
error "#{arg.inspect} is not a valid string"
|
98
100
|
return false
|
99
101
|
end
|
100
102
|
end
|
@@ -109,5 +111,12 @@ module Kafo
|
|
109
111
|
super
|
110
112
|
end
|
111
113
|
end
|
114
|
+
|
115
|
+
private
|
116
|
+
|
117
|
+
def error(message)
|
118
|
+
@errors << message
|
119
|
+
@logger.error "Validation error: #{message}"
|
120
|
+
end
|
112
121
|
end
|
113
122
|
end
|
data/lib/kafo/version.rb
CHANGED
data/lib/kafo/wizard.rb
CHANGED
@@ -131,6 +131,9 @@ END
|
|
131
131
|
until param.valid?
|
132
132
|
param.value = value_was
|
133
133
|
say "\n" + HighLine.color("Invalid value for #{param.name}", :important)
|
134
|
+
param.validation_errors.each do |error|
|
135
|
+
say " " + HighLine.color(error, :important)
|
136
|
+
end
|
134
137
|
value = param.multivalued? ? configure_multi(param) : configure_single(param)
|
135
138
|
param.value = value unless value.empty?
|
136
139
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kafo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marek Hulan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -288,4 +288,3 @@ specification_version: 4
|
|
288
288
|
summary: If you write puppet modules for installing your software, you can use kafo
|
289
289
|
to create powerful installer
|
290
290
|
test_files: []
|
291
|
-
has_rdoc:
|