kafo 0.7.6 → 0.8.0
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 +4 -4
- data/README.md +30 -2
- data/lib/kafo/configuration.rb +3 -12
- data/lib/kafo/exceptions.rb +3 -0
- data/lib/kafo/kafo_configure.rb +10 -14
- data/lib/kafo/logger.rb +1 -1
- data/lib/kafo/migration_context.rb +16 -0
- data/lib/kafo/param.rb +25 -11
- data/lib/kafo/progress_bar.rb +1 -0
- data/lib/kafo/progress_bars/black_white.rb +2 -1
- data/lib/kafo/progress_bars/colored.rb +1 -1
- data/lib/kafo/puppet_command.rb +12 -1
- data/lib/kafo/puppet_module.rb +25 -5
- data/lib/kafo/scenario_manager.rb +3 -6
- data/lib/kafo/validator.rb +85 -52
- data/lib/kafo/version.rb +1 -1
- data/modules/kafo_configure/lib/puppet/parser/functions/dump_values.rb +1 -1
- data/modules/kafo_configure/lib/puppet/parser/functions/loadanyyaml.rb +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6bce70ac2eb5590a3268fc61fa1d5b26eec0a231
|
4
|
+
data.tar.gz: 6c68b15f3208c75fd702601f5059c355d3e98383
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a749d272c84c6a4ff863c9c67438e3f1e046b5949d4e4c491032d533d05fabe5f31c52e672bccd6d3c444bf056ca636894c878fcaf9dc0c745161a039a34f17a
|
7
|
+
data.tar.gz: 54587849902f34872edc974a28fa11a63adb20f5000dd7086b534d325681fb1af69b0fef0eaf11d7116a81496826d20240b6f8746a7e623fb5aa4c188f3fb256
|
data/README.md
CHANGED
@@ -190,6 +190,25 @@ disable saving answer by passing a ```--dont-save-answers``` argument (or -d for
|
|
190
190
|
|
191
191
|
Note that running ```--noop``` implies ```--dont-save-answers```.
|
192
192
|
|
193
|
+
## Executing Puppet with multiple versions
|
194
|
+
|
195
|
+
Kafo calls the `puppet` binary during an installer run to both compute default
|
196
|
+
parameter values and perform the actual installer changes. This relies on
|
197
|
+
`puppet` being in the PATH environment variable or as fallback, in
|
198
|
+
`/opt/puppetlabs/bin`.
|
199
|
+
|
200
|
+
When using Puppet via a Gemfile, Bundler should set up PATH to point at the
|
201
|
+
gem version. If using a system/packaged version, it will typically find and
|
202
|
+
execute /usr/bin/puppet from the regular PATH.
|
203
|
+
|
204
|
+
When using an AIO/PC1 packaged version of Puppet, other versions of Puppet from
|
205
|
+
PATH will be preferred if they exist, so they should either be removed or PATH
|
206
|
+
set to prefer /opt/puppetlabs/bin, i.e. `export PATH=/opt/puppetlabs/bin:$PATH`.
|
207
|
+
Debug logs from Kafo should indicate the full path of the binary used.
|
208
|
+
|
209
|
+
Note that Kafo parsers supports specific versions of Puppet, and may require
|
210
|
+
extra modules (such as puppet-strings on Puppet 4+) to parse manifests.
|
211
|
+
|
193
212
|
## Parameters prefixes
|
194
213
|
|
195
214
|
As a default every module parameter is prefixed by the module name.
|
@@ -317,6 +336,13 @@ Sample migration adding new module could look like as follows:
|
|
317
336
|
EOF
|
318
337
|
```
|
319
338
|
|
339
|
+
The migration can also call `facts`, which returns a hash of symbol fact names to values (from
|
340
|
+
Facter), to help determine new parameter values.
|
341
|
+
|
342
|
+
```ruby
|
343
|
+
answers['module']['foo'] = 'bar' if facts[:osfamily] == 'Debian'
|
344
|
+
```
|
345
|
+
|
320
346
|
### Enabling/disabling scenarios
|
321
347
|
|
322
348
|
Scenarios that are deprecated or wanted to be hidden on the system can be disabled with:
|
@@ -631,11 +657,13 @@ If you use "params_path" for this purpose, "params_name" is ignored.
|
|
631
657
|
## Validations
|
632
658
|
|
633
659
|
If you specify validations of parameters in your init.pp manifest they
|
634
|
-
will be replaced with your values even before
|
660
|
+
will be replaced with your values even before Puppet is run. In order to do this
|
635
661
|
you must follow a few rules however:
|
636
662
|
|
637
663
|
* you must use standard validation functions (e.g. validate_array, validate_re, ...)
|
638
|
-
|
664
|
+
|
665
|
+
These functions are re-implemented in Kafo from common stdlib functions, so please
|
666
|
+
contribute any missing ones.
|
639
667
|
|
640
668
|
## Enabling or disabling module
|
641
669
|
|
data/lib/kafo/configuration.rb
CHANGED
@@ -85,7 +85,7 @@ module Kafo
|
|
85
85
|
end
|
86
86
|
|
87
87
|
def modules
|
88
|
-
@modules ||= @data.keys.map { |mod| PuppetModule.new(mod,
|
88
|
+
@modules ||= @data.keys.map { |mod| PuppetModule.new(mod, PuppetModule.find_parser, self).parse }.sort
|
89
89
|
end
|
90
90
|
|
91
91
|
def root_dir
|
@@ -109,7 +109,7 @@ module Kafo
|
|
109
109
|
end
|
110
110
|
|
111
111
|
def add_module(name)
|
112
|
-
mod = PuppetModule.new(name,
|
112
|
+
mod = PuppetModule.new(name, PuppetModule.find_parser, self).parse
|
113
113
|
unless modules.map(&:name).include?(mod.name)
|
114
114
|
mod.enable
|
115
115
|
@modules << mod
|
@@ -233,16 +233,8 @@ module Kafo
|
|
233
233
|
File.join(app[:log_dir], app[:log_name])
|
234
234
|
end
|
235
235
|
|
236
|
-
def log_files_pattern
|
237
|
-
log_file.sub(/(\.log)\Z/i) { |suffix| "{.[0-9]*,}#{suffix}" }
|
238
|
-
end
|
239
|
-
|
240
|
-
def log_files
|
241
|
-
Dir.glob(log_files_pattern)
|
242
|
-
end
|
243
|
-
|
244
236
|
def log_exists?
|
245
|
-
|
237
|
+
File.exists?(log_file) && File.size(log_file) > 0
|
246
238
|
end
|
247
239
|
|
248
240
|
def answers
|
@@ -259,7 +251,6 @@ module Kafo
|
|
259
251
|
migrations.store_applied
|
260
252
|
@logger.info("#{migrations.migrations.count} migration/s were applied. Updated configuration was saved.")
|
261
253
|
end
|
262
|
-
migrations.migrations.count
|
263
254
|
end
|
264
255
|
|
265
256
|
def migrations_dir
|
data/lib/kafo/exceptions.rb
CHANGED
data/lib/kafo/kafo_configure.rb
CHANGED
@@ -57,9 +57,9 @@ module Kafo
|
|
57
57
|
setup_config(config_file)
|
58
58
|
|
59
59
|
self.class.hooking.execute(:pre_migrations)
|
60
|
-
|
61
|
-
|
62
|
-
|
60
|
+
|
61
|
+
# run migrations
|
62
|
+
self.class.config.run_migrations
|
63
63
|
|
64
64
|
if ARGV.include?('--migrations-only')
|
65
65
|
self.class.verbose = (ARGV.include?('--verbose') || ARGV.include?('-v'))
|
@@ -68,7 +68,13 @@ module Kafo
|
|
68
68
|
self.class.exit(0)
|
69
69
|
end
|
70
70
|
|
71
|
-
|
71
|
+
# reload config
|
72
|
+
if @config_reload_requested
|
73
|
+
scenario_manager = setup_scenario_manager
|
74
|
+
self.class.scenario_manager = scenario_manager
|
75
|
+
setup_config(self.class.config_file)
|
76
|
+
self.class.logger.info('Installer configuration was reloaded')
|
77
|
+
end
|
72
78
|
|
73
79
|
if scenario_manager.configured?
|
74
80
|
scenario_manager.check_scenario_change(self.class.config_file)
|
@@ -235,16 +241,6 @@ module Kafo
|
|
235
241
|
self.class.hooking.kafo = self
|
236
242
|
end
|
237
243
|
|
238
|
-
def reload_config
|
239
|
-
if @config_reload_requested
|
240
|
-
scenario_manager = setup_scenario_manager
|
241
|
-
self.class.scenario_manager = scenario_manager
|
242
|
-
setup_config(self.class.config_file)
|
243
|
-
self.class.logger.info('Installer configuration was reloaded')
|
244
|
-
@config_reload_requested = false
|
245
|
-
end
|
246
|
-
end
|
247
|
-
|
248
244
|
def setup_scenario_manager
|
249
245
|
ScenarioManager.new((defined?(CONFIG_DIR) && CONFIG_DIR) || (defined?(CONFIG_FILE) && CONFIG_FILE))
|
250
246
|
end
|
data/lib/kafo/logger.rb
CHANGED
@@ -105,7 +105,7 @@ module Kafo
|
|
105
105
|
|
106
106
|
def self.dump_buffer(buffer)
|
107
107
|
buffer.each do |log|
|
108
|
-
self.loggers.each { |logger| logger.send log[0], *
|
108
|
+
self.loggers.each { |logger| logger.send log[0], *log[1], &log[2] }
|
109
109
|
end
|
110
110
|
buffer.clear
|
111
111
|
end
|
@@ -17,5 +17,21 @@ module Kafo
|
|
17
17
|
def logger
|
18
18
|
KafoConfigure.logger
|
19
19
|
end
|
20
|
+
|
21
|
+
def facts
|
22
|
+
self.class.facts
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def self.facts
|
28
|
+
@facts ||= begin
|
29
|
+
YAML.load(`#{facter_path} --yaml`).inject({}) { |facts,(k,v)| facts.update(k.to_sym => v) }
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.facter_path
|
34
|
+
@facter_path ||= PuppetCommand.search_puppet_path('facter')
|
35
|
+
end
|
20
36
|
end
|
21
37
|
end
|
data/lib/kafo/param.rb
CHANGED
@@ -73,24 +73,20 @@ module Kafo
|
|
73
73
|
end
|
74
74
|
|
75
75
|
def valid?
|
76
|
-
validations = self.module.validations(self)
|
77
76
|
# we get validations that can also run on other arguments, we need to take only current param
|
78
77
|
# also we want to clone validations so we don't interfere
|
79
|
-
validations.map
|
80
|
-
|
81
|
-
if v.name == 'validate_re'
|
82
|
-
|
83
|
-
args = v.arguments
|
78
|
+
validations = self.module.validations(self).map do |v|
|
79
|
+
# These functions do not take more variables as arguments, instead we need to pass all arguments
|
80
|
+
if v.name == 'validate_re' || v.name == 'validate_integer'
|
81
|
+
args = v.arguments.to_a
|
84
82
|
else
|
85
83
|
args = v.arguments.select { |a| a.to_s == "$#{self.name}" }
|
86
84
|
end
|
87
|
-
|
88
|
-
v
|
85
|
+
{:name => v.name, :arguments => interpret_validation_args(args)}
|
89
86
|
end
|
90
87
|
|
91
|
-
validator = Validator.new
|
92
|
-
validations.
|
93
|
-
validations.all?
|
88
|
+
validator = Validator.new
|
89
|
+
validations.all? { |v| validator.send(v[:name], v[:arguments]) }
|
94
90
|
end
|
95
91
|
|
96
92
|
# To be overwritten in children
|
@@ -119,6 +115,24 @@ module Kafo
|
|
119
115
|
def evaluate_condition(context = [])
|
120
116
|
Condition.new(condition, context).evaluate
|
121
117
|
end
|
118
|
+
|
119
|
+
def interpret_validation_args(args)
|
120
|
+
args.map do |arg|
|
121
|
+
if arg.to_s == "$#{self.name}"
|
122
|
+
self.value
|
123
|
+
elsif arg.class.name == 'Puppet::Parser::AST::ASTArray'
|
124
|
+
interpret_validation_args(arg.to_a)
|
125
|
+
elsif arg.class.name == 'Puppet::Parser::AST::Concat'
|
126
|
+
interpret_validation_args(arg.value).join
|
127
|
+
elsif arg.respond_to? :value
|
128
|
+
arg.value
|
129
|
+
else
|
130
|
+
arg
|
131
|
+
end
|
132
|
+
end.map do |arg|
|
133
|
+
arg == :undef ? nil : arg
|
134
|
+
end
|
135
|
+
end
|
122
136
|
end
|
123
137
|
end
|
124
138
|
|
data/lib/kafo/progress_bar.rb
CHANGED
@@ -13,6 +13,7 @@ module Kafo
|
|
13
13
|
@lines = 0
|
14
14
|
@all_lines = 0
|
15
15
|
@total = :unknown
|
16
|
+
@term_width = HighLine::SystemExtensions.terminal_size[0]
|
16
17
|
@bar = PowerBar.new
|
17
18
|
@bar.settings.tty.infinite.template.main = infinite_template
|
18
19
|
@bar.settings.tty.finite.template.main = finite_template
|
data/lib/kafo/puppet_command.rb
CHANGED
@@ -25,7 +25,7 @@ module Kafo
|
|
25
25
|
"echo '$kafo_config_file=\"#{@configuration.config_file}\" #{custom_answer_file} #{add_progress} #{@command}'",
|
26
26
|
'|',
|
27
27
|
"RUBYLIB=#{["#{@configuration.gem_root}/modules", ::ENV['RUBYLIB']].join(File::PATH_SEPARATOR)}",
|
28
|
-
"
|
28
|
+
"#{puppet_path} apply #{@options.join(' ')} #{@suffix}",
|
29
29
|
].join(' ')
|
30
30
|
@logger.debug result
|
31
31
|
result
|
@@ -36,6 +36,13 @@ module Kafo
|
|
36
36
|
self
|
37
37
|
end
|
38
38
|
|
39
|
+
def self.search_puppet_path(bin_name)
|
40
|
+
bin_path = (::ENV['PATH'].split(File::PATH_SEPARATOR) + ['/opt/puppetlabs/bin']).find do |path|
|
41
|
+
File.executable?(File.join(path, bin_name))
|
42
|
+
end
|
43
|
+
File.join([bin_path, bin_name].compact)
|
44
|
+
end
|
45
|
+
|
39
46
|
private
|
40
47
|
|
41
48
|
def modules_path
|
@@ -44,5 +51,9 @@ module Kafo
|
|
44
51
|
@configuration.kafo_modules_dir,
|
45
52
|
].flatten.join(':')
|
46
53
|
end
|
54
|
+
|
55
|
+
def puppet_path
|
56
|
+
@puppet_path ||= self.class.search_puppet_path('puppet')
|
57
|
+
end
|
47
58
|
end
|
48
59
|
end
|
data/lib/kafo/puppet_module.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
require 'kafo/param'
|
3
3
|
require 'kafo/param_builder'
|
4
4
|
require 'kafo/parser_cache_reader'
|
5
|
-
require 'kafo_parsers/
|
5
|
+
require 'kafo_parsers/parsers'
|
6
6
|
require 'kafo/validator'
|
7
7
|
|
8
8
|
module Kafo
|
@@ -12,7 +12,21 @@ module Kafo
|
|
12
12
|
attr_reader :name, :identifier, :params, :dir_name, :class_name, :manifest_name, :manifest_path,
|
13
13
|
:groups, :params_path, :params_class_name, :configuration, :raw_data
|
14
14
|
|
15
|
-
def
|
15
|
+
def self.find_parser
|
16
|
+
@parser ||= begin
|
17
|
+
logger = KafoConfigure.logger
|
18
|
+
parser = KafoParsers::Parsers.find_available(:logger => logger)
|
19
|
+
if parser
|
20
|
+
logger.debug "Using Puppet module parser #{parser}"
|
21
|
+
parser
|
22
|
+
else
|
23
|
+
logger.debug "No available Puppet module parser found"
|
24
|
+
:none # prevent continually re-checking
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def initialize(identifier, parser = self.class.find_parser, configuration = KafoConfigure.config)
|
16
30
|
@identifier = identifier
|
17
31
|
@configuration = configuration
|
18
32
|
@name = get_name
|
@@ -49,9 +63,15 @@ module Kafo
|
|
49
63
|
end
|
50
64
|
|
51
65
|
def parse(builder_klass = ParamBuilder)
|
52
|
-
@
|
53
|
-
@raw_data
|
54
|
-
|
66
|
+
@raw_data = @parser_cache.get(identifier, manifest_path) if @parser_cache
|
67
|
+
if @raw_data.nil?
|
68
|
+
if @parser.nil? || @parser == :none
|
69
|
+
raise ParserError.new("No Puppet module parser is installed and no cache of the file #{manifest_path} is available. Please check debug logs and install optional dependencies for the parser.")
|
70
|
+
else
|
71
|
+
@raw_data = @parser.parse(manifest_path)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
55
75
|
builder = builder_klass.new(self, @raw_data)
|
56
76
|
@validations = @raw_data[:validations]
|
57
77
|
|
@@ -91,13 +91,10 @@ module Kafo
|
|
91
91
|
(available_scenarios.keys.count == 1 && available_scenarios.keys.first) ||
|
92
92
|
select_scenario_interactively
|
93
93
|
if scenario.nil?
|
94
|
-
fail_now("
|
95
|
-
" Even --help content is dependent on selected scenario.\n" +
|
96
|
-
" Select scenario with --scenario SCENARIO or list available scenarios with --list-scenarios.", :unknown_scenario)
|
94
|
+
fail_now("Scenario was not selected, can not continue. Use --list-scenarios to list available options.", :unknown_scenario)
|
97
95
|
elsif !scenario_enabled?(scenario)
|
98
|
-
fail_now("Selected scenario is DISABLED, can not continue
|
99
|
-
|
100
|
-
" You can also --enable-scenario SCENARIO to make the selected scenario available.", :scenario_error)
|
96
|
+
fail_now("Selected scenario is DISABLED, can not continue. Use --list-scenarios to list available options." \
|
97
|
+
" You can also --enable-scenario SCENARIO to make the selected scenario available.", :scenario_error)
|
101
98
|
end
|
102
99
|
scenario
|
103
100
|
end
|
data/lib/kafo/validator.rb
CHANGED
@@ -2,79 +2,112 @@
|
|
2
2
|
module Kafo
|
3
3
|
class Validator
|
4
4
|
|
5
|
-
def
|
6
|
-
|
7
|
-
Puppet::Parser::Functions.reset
|
8
|
-
@reset = true
|
5
|
+
def initialize
|
6
|
+
@logger = KafoConfigure.logger
|
9
7
|
end
|
10
8
|
|
11
|
-
def
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
end.flatten
|
18
|
-
|
19
|
-
definitions.each do |file|
|
20
|
-
require File.expand_path(file)
|
9
|
+
def validate_absolute_path(args)
|
10
|
+
args.each do |arg|
|
11
|
+
unless arg.to_s.start_with?('/')
|
12
|
+
@logger.error "#{arg.inspect} is not an absolute path."
|
13
|
+
return false
|
14
|
+
end
|
21
15
|
end
|
16
|
+
return true
|
17
|
+
end
|
22
18
|
|
23
|
-
|
24
|
-
|
19
|
+
def validate_array(args)
|
20
|
+
args.each do |arg|
|
21
|
+
unless arg.is_a?(Array)
|
22
|
+
@logger.error "#{arg.inspect} is not a valid array."
|
23
|
+
return false
|
24
|
+
end
|
25
|
+
end
|
26
|
+
return true
|
27
|
+
end
|
25
28
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
29
|
+
def validate_bool(args)
|
30
|
+
args.each do |arg|
|
31
|
+
unless arg.is_a?(TrueClass) || arg.is_a?(FalseClass)
|
32
|
+
@logger.error "#{arg.inspect} is not a valid boolean."
|
33
|
+
return false
|
34
|
+
end
|
30
35
|
end
|
36
|
+
return true
|
31
37
|
end
|
32
38
|
|
33
|
-
def
|
34
|
-
|
39
|
+
def validate_hash(args)
|
40
|
+
args.each do |arg|
|
41
|
+
unless arg.is_a?(Hash)
|
42
|
+
@logger.error "#{arg.inspect} is not a valid hash."
|
43
|
+
return false
|
44
|
+
end
|
45
|
+
end
|
46
|
+
return true
|
35
47
|
end
|
36
48
|
|
37
|
-
|
38
|
-
|
39
|
-
|
49
|
+
def validate_integer(args)
|
50
|
+
value = args[0]
|
51
|
+
max = args[1]
|
52
|
+
min = args[2]
|
53
|
+
int = Integer(value.to_s)
|
54
|
+
if min && int < min.to_i
|
55
|
+
@logger.error "#{value} must be at least #{min}."
|
56
|
+
return false
|
57
|
+
end
|
58
|
+
if max && int > max.to_i
|
59
|
+
@logger.error "#{value} must be less than #{max}."
|
60
|
+
return false
|
61
|
+
end
|
62
|
+
return true
|
63
|
+
rescue TypeError, ArgumentError
|
64
|
+
@logger.error "#{value.inspect} is not a valid integer."
|
65
|
+
return false
|
40
66
|
end
|
41
67
|
|
42
|
-
#
|
43
|
-
def
|
44
|
-
|
68
|
+
# Non-standard validation is from theforeman/foreman_proxy module
|
69
|
+
def validate_listen_on(args)
|
70
|
+
valid_values = ['http', 'https', 'both']
|
71
|
+
args.each do |arg|
|
72
|
+
unless valid_values.include?(arg)
|
73
|
+
@logger.error "#{arg.inspect} is not a valid value. Valid values are: #{valid_values.join(", ")}"
|
74
|
+
return false
|
75
|
+
end
|
76
|
+
end
|
77
|
+
return true
|
45
78
|
end
|
46
79
|
|
47
|
-
def
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
if
|
54
|
-
|
55
|
-
engine.send(method, *args)
|
56
|
-
true
|
80
|
+
def validate_re(args)
|
81
|
+
value = args[0]
|
82
|
+
regexes = args[1]
|
83
|
+
regexes = [regexes] unless regexes.is_a?(Array)
|
84
|
+
message = args[2] || "#{value.inspect} does not match the accepted inputs: #{regexes.join(", ")}"
|
85
|
+
|
86
|
+
if regexes.any? { |rx| value =~ Regexp.compile(rx) }
|
87
|
+
return true
|
57
88
|
else
|
58
|
-
|
89
|
+
@logger.error message
|
90
|
+
return false
|
59
91
|
end
|
60
|
-
rescue Puppet::ParseError => e
|
61
|
-
@logger.error e.message
|
62
|
-
return false
|
63
92
|
end
|
64
93
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
klass.send :include, Puppet::Parser::Functions.environment_module(env)
|
72
|
-
klass.new
|
94
|
+
def validate_string(args)
|
95
|
+
args.each do |arg|
|
96
|
+
unless arg.is_a?(String)
|
97
|
+
@logger.error "#{arg.inspect} is not a valid string."
|
98
|
+
return false
|
99
|
+
end
|
73
100
|
end
|
101
|
+
return true
|
74
102
|
end
|
75
103
|
|
76
|
-
def
|
77
|
-
|
104
|
+
def method_missing(method, *args, &block)
|
105
|
+
if method.to_s.start_with?('validate_')
|
106
|
+
@logger.debug "Skipping validation with #{method} as it's not implemented in Kafo"
|
107
|
+
return true
|
108
|
+
else
|
109
|
+
super
|
110
|
+
end
|
78
111
|
end
|
79
112
|
end
|
80
113
|
end
|
data/lib/kafo/version.rb
CHANGED
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.
|
4
|
+
version: 0.8.0
|
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-05-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -114,14 +114,14 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
117
|
+
version: 0.1.0
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
124
|
+
version: 0.1.0
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: puppet
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -129,7 +129,7 @@ dependencies:
|
|
129
129
|
- - "<"
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: 4.0.0
|
132
|
-
type: :
|
132
|
+
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
@@ -297,9 +297,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
297
297
|
version: '0'
|
298
298
|
requirements: []
|
299
299
|
rubyforge_project:
|
300
|
-
rubygems_version: 2.
|
300
|
+
rubygems_version: 2.4.5
|
301
301
|
signing_key:
|
302
302
|
specification_version: 4
|
303
303
|
summary: If you write puppet modules for installing your software, you can use kafo
|
304
304
|
to create powerful installer
|
305
305
|
test_files: []
|
306
|
+
has_rdoc:
|