kafo 0.9.1 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8347016820ee174e41f1beeeccad5b815b08c27a
4
- data.tar.gz: 2eb7d6bc9c7e5595d8acfab6b64baed0239c95c5
3
+ metadata.gz: 831fee1d8773e349d7967d6b8e2197cb017d30b0
4
+ data.tar.gz: 46c3bc4a21f25b8d8f5f70c18d6d3730dd22f10d
5
5
  SHA512:
6
- metadata.gz: dff1ffc53e9c5e2d05e44afd505f6ed0b9b4fc57e02091ae2f566dc432fd7d83459fc09bc4646349befcb6a146f9650f80103e81ccf9d212de9cf7d9dc2f7a3d
7
- data.tar.gz: e37d7d612e98e996b3943c57e82f3cfc59c14014116f3b0576f48bb99b0eea0a04260432d7bc150c8f548b766633951c9081b109b0351df6340e88714372f9f9
6
+ metadata.gz: e5aa20ffadf4cbf9f0942bab11aa7382611b07b3150de7887caa0a3d16f25aa86cdb5431c4598c63370c6788d6d0cb6ece3ed965fbc1d040a2872539b598629d
7
+ data.tar.gz: cec32896880413196709850e0480b72f26c3807f07a7a1bea0794ddf590f3d617bb38de2c9757a961dcd5e64cc7d028058b48aa9d9a33a164733da36edeb3e64
@@ -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
- File.exists?(log_file) && File.size(log_file) > 0
241
+ log_files.any? { |f| File.size(f) > 0 }
234
242
  end
235
243
 
236
244
  def answers
@@ -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
- progress_log(:error, "Parameter #{with_prefix(param)} invalid") if logging && !result
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 defaults.has_key?(default)
52
- value = defaults[default]
53
- case value
54
- when :undef
55
- # value can be set to :undef if value is not defined
56
- # (e.g. puppetmaster = $::puppetmaster which is not defined yet)
57
- self.default = nil
58
- when :undefined
59
- # in puppet 2.7 :undefined means that it's param which value is
60
- # not set by another parameter (e.g. foreman_group = 'something')
61
- # which means, default is sensible unlike dumped default
62
- # newer puppet has default dump in format 'value' => 'value' so
63
- # it's handled correctly by else branch
64
- else
65
- self.default = value
66
- end
67
- # if we don't have default value from dump (can happen for modules added from hooks,
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.all? { |v| validator.send(v[:name], v[:arguments]) }
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
@@ -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
- @logger.error "#{arg.inspect} is not an absolute path."
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
- @logger.error "#{arg.inspect} is not a valid array."
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
- @logger.error "#{arg.inspect} is not a valid boolean."
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
- @logger.error "#{arg.inspect} is not a valid hash."
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
- @logger.error "#{value} must be at least #{min}."
57
+ error "#{value} must be at least #{min}"
56
58
  return false
57
59
  end
58
60
  if max && int > max.to_i
59
- @logger.error "#{value} must be less than #{max}."
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
- @logger.error "#{value.inspect} is not a valid integer."
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
- @logger.error "#{arg.inspect} is not a valid value. Valid values are: #{valid_values.join(", ")}"
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
- @logger.error message
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
- @logger.error "#{arg.inspect} is not a valid string."
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
@@ -1,4 +1,4 @@
1
1
  # encoding: UTF-8
2
2
  module Kafo
3
- VERSION = "0.9.1"
3
+ VERSION = "0.9.2"
4
4
  end
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.1
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-06-21 00:00:00.000000000 Z
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: