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 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: