pdk 2.3.0 → 2.4.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.
Files changed (153) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1329 -1321
  3. data/LICENSE +201 -201
  4. data/README.md +163 -163
  5. data/exe/pdk +10 -10
  6. data/lib/pdk/analytics/client/google_analytics.rb +143 -143
  7. data/lib/pdk/analytics/client/noop.rb +25 -25
  8. data/lib/pdk/analytics/util.rb +19 -19
  9. data/lib/pdk/analytics.rb +30 -30
  10. data/lib/pdk/answer_file.rb +12 -12
  11. data/lib/pdk/bolt.rb +19 -19
  12. data/lib/pdk/cli/build.rb +82 -82
  13. data/lib/pdk/cli/bundle.rb +48 -48
  14. data/lib/pdk/cli/config/get.rb +26 -26
  15. data/lib/pdk/cli/config.rb +22 -22
  16. data/lib/pdk/cli/console.rb +148 -148
  17. data/lib/pdk/cli/convert.rb +52 -52
  18. data/lib/pdk/cli/env.rb +52 -52
  19. data/lib/pdk/cli/errors.rb +25 -25
  20. data/lib/pdk/cli/exec/command.rb +293 -293
  21. data/lib/pdk/cli/exec/interactive_command.rb +114 -114
  22. data/lib/pdk/cli/exec.rb +84 -84
  23. data/lib/pdk/cli/exec_group.rb +104 -104
  24. data/lib/pdk/cli/get/config.rb +24 -24
  25. data/lib/pdk/cli/get.rb +20 -20
  26. data/lib/pdk/cli/module/build.rb +12 -12
  27. data/lib/pdk/cli/module/generate.rb +47 -47
  28. data/lib/pdk/cli/module.rb +14 -14
  29. data/lib/pdk/cli/new/class.rb +32 -32
  30. data/lib/pdk/cli/new/defined_type.rb +32 -32
  31. data/lib/pdk/cli/new/fact.rb +29 -29
  32. data/lib/pdk/cli/new/function.rb +29 -29
  33. data/lib/pdk/cli/new/module.rb +53 -53
  34. data/lib/pdk/cli/new/provider.rb +29 -29
  35. data/lib/pdk/cli/new/task.rb +34 -34
  36. data/lib/pdk/cli/new/test.rb +52 -52
  37. data/lib/pdk/cli/new/transport.rb +27 -27
  38. data/lib/pdk/cli/new.rb +21 -21
  39. data/lib/pdk/cli/release/prep.rb +39 -39
  40. data/lib/pdk/cli/release/publish.rb +50 -50
  41. data/lib/pdk/cli/release.rb +194 -194
  42. data/lib/pdk/cli/remove/config.rb +80 -80
  43. data/lib/pdk/cli/remove.rb +20 -20
  44. data/lib/pdk/cli/set/config.rb +119 -119
  45. data/lib/pdk/cli/set.rb +20 -20
  46. data/lib/pdk/cli/test/unit.rb +90 -90
  47. data/lib/pdk/cli/test.rb +11 -11
  48. data/lib/pdk/cli/update.rb +64 -64
  49. data/lib/pdk/cli/util/command_redirector.rb +27 -27
  50. data/lib/pdk/cli/util/interview.rb +72 -72
  51. data/lib/pdk/cli/util/option_normalizer.rb +55 -55
  52. data/lib/pdk/cli/util/option_validator.rb +68 -68
  53. data/lib/pdk/cli/util/spinner.rb +13 -13
  54. data/lib/pdk/cli/util/update_manager_printer.rb +82 -82
  55. data/lib/pdk/cli/util.rb +305 -305
  56. data/lib/pdk/cli/validate.rb +116 -116
  57. data/lib/pdk/cli.rb +175 -175
  58. data/lib/pdk/config/analytics_schema.json +26 -26
  59. data/lib/pdk/config/errors.rb +5 -5
  60. data/lib/pdk/config/ini_file.rb +183 -183
  61. data/lib/pdk/config/ini_file_setting.rb +39 -39
  62. data/lib/pdk/config/json.rb +34 -34
  63. data/lib/pdk/config/json_schema_namespace.rb +142 -142
  64. data/lib/pdk/config/json_schema_setting.rb +53 -53
  65. data/lib/pdk/config/json_with_schema.rb +49 -49
  66. data/lib/pdk/config/namespace.rb +354 -354
  67. data/lib/pdk/config/setting.rb +135 -135
  68. data/lib/pdk/config/validator.rb +31 -31
  69. data/lib/pdk/config/yaml.rb +46 -46
  70. data/lib/pdk/config/yaml_with_schema.rb +59 -59
  71. data/lib/pdk/config.rb +390 -390
  72. data/lib/pdk/context/control_repo.rb +60 -60
  73. data/lib/pdk/context/module.rb +28 -28
  74. data/lib/pdk/context/none.rb +22 -22
  75. data/lib/pdk/context.rb +99 -99
  76. data/lib/pdk/control_repo.rb +90 -90
  77. data/lib/pdk/generate/defined_type.rb +43 -43
  78. data/lib/pdk/generate/fact.rb +25 -25
  79. data/lib/pdk/generate/function.rb +48 -48
  80. data/lib/pdk/generate/module.rb +352 -352
  81. data/lib/pdk/generate/provider.rb +28 -28
  82. data/lib/pdk/generate/puppet_class.rb +43 -43
  83. data/lib/pdk/generate/puppet_object.rb +232 -232
  84. data/lib/pdk/generate/task.rb +68 -68
  85. data/lib/pdk/generate/transport.rb +33 -33
  86. data/lib/pdk/generate.rb +24 -24
  87. data/lib/pdk/i18n.rb +4 -4
  88. data/lib/pdk/logger.rb +45 -45
  89. data/lib/pdk/module/build.rb +322 -322
  90. data/lib/pdk/module/convert.rb +296 -296
  91. data/lib/pdk/module/metadata.rb +202 -202
  92. data/lib/pdk/module/release.rb +260 -260
  93. data/lib/pdk/module/update.rb +131 -131
  94. data/lib/pdk/module/update_manager.rb +227 -227
  95. data/lib/pdk/module.rb +30 -30
  96. data/lib/pdk/report/event.rb +370 -370
  97. data/lib/pdk/report.rb +121 -121
  98. data/lib/pdk/template/fetcher/git.rb +85 -85
  99. data/lib/pdk/template/fetcher/local.rb +28 -28
  100. data/lib/pdk/template/fetcher.rb +98 -98
  101. data/lib/pdk/template/renderer/v1/legacy_template_dir.rb +116 -116
  102. data/lib/pdk/template/renderer/v1/renderer.rb +132 -132
  103. data/lib/pdk/template/renderer/v1/template_file.rb +102 -102
  104. data/lib/pdk/template/renderer/v1.rb +25 -25
  105. data/lib/pdk/template/renderer.rb +96 -96
  106. data/lib/pdk/template/template_dir.rb +67 -67
  107. data/lib/pdk/template.rb +59 -59
  108. data/lib/pdk/tests/unit.rb +252 -252
  109. data/lib/pdk/util/bundler.rb +259 -259
  110. data/lib/pdk/util/changelog_generator.rb +137 -137
  111. data/lib/pdk/util/env.rb +47 -47
  112. data/lib/pdk/util/filesystem.rb +138 -138
  113. data/lib/pdk/util/git.rb +179 -179
  114. data/lib/pdk/util/json_finder.rb +85 -85
  115. data/lib/pdk/util/puppet_strings.rb +125 -125
  116. data/lib/pdk/util/puppet_version.rb +266 -266
  117. data/lib/pdk/util/ruby_version.rb +179 -179
  118. data/lib/pdk/util/template_uri.rb +295 -295
  119. data/lib/pdk/util/vendored_file.rb +93 -93
  120. data/lib/pdk/util/version.rb +43 -43
  121. data/lib/pdk/util/windows/api_types.rb +82 -82
  122. data/lib/pdk/util/windows/file.rb +36 -36
  123. data/lib/pdk/util/windows/process.rb +79 -79
  124. data/lib/pdk/util/windows/string.rb +16 -16
  125. data/lib/pdk/util/windows.rb +15 -15
  126. data/lib/pdk/util.rb +278 -277
  127. data/lib/pdk/validate/control_repo/control_repo_validator_group.rb +23 -23
  128. data/lib/pdk/validate/control_repo/environment_conf_validator.rb +98 -98
  129. data/lib/pdk/validate/external_command_validator.rb +208 -208
  130. data/lib/pdk/validate/internal_ruby_validator.rb +100 -100
  131. data/lib/pdk/validate/invokable_validator.rb +228 -228
  132. data/lib/pdk/validate/metadata/metadata_json_lint_validator.rb +86 -86
  133. data/lib/pdk/validate/metadata/metadata_syntax_validator.rb +78 -78
  134. data/lib/pdk/validate/metadata/metadata_validator_group.rb +20 -20
  135. data/lib/pdk/validate/puppet/puppet_epp_validator.rb +133 -133
  136. data/lib/pdk/validate/puppet/puppet_lint_validator.rb +66 -66
  137. data/lib/pdk/validate/puppet/puppet_syntax_validator.rb +137 -137
  138. data/lib/pdk/validate/puppet/puppet_validator_group.rb +21 -21
  139. data/lib/pdk/validate/ruby/ruby_rubocop_validator.rb +80 -80
  140. data/lib/pdk/validate/ruby/ruby_validator_group.rb +19 -19
  141. data/lib/pdk/validate/tasks/tasks_metadata_lint_validator.rb +88 -88
  142. data/lib/pdk/validate/tasks/tasks_name_validator.rb +50 -50
  143. data/lib/pdk/validate/tasks/tasks_validator_group.rb +20 -20
  144. data/lib/pdk/validate/validator.rb +118 -118
  145. data/lib/pdk/validate/validator_group.rb +104 -104
  146. data/lib/pdk/validate/yaml/yaml_syntax_validator.rb +95 -95
  147. data/lib/pdk/validate/yaml/yaml_validator_group.rb +19 -19
  148. data/lib/pdk/validate.rb +94 -94
  149. data/lib/pdk/version.rb +4 -4
  150. data/lib/pdk.rb +76 -76
  151. data/locales/config.yaml +21 -21
  152. data/locales/pdk.pot +2094 -2094
  153. metadata +5 -6
@@ -1,104 +1,104 @@
1
- require 'pdk'
2
-
3
- module PDK
4
- module Validate
5
- # The base class which should be used by meta-validators, that is, this group executes other validators
6
- #
7
- # At a minimum, the `name` and `validators` methods should be overridden in the child class
8
- #
9
- # An example concrete implementation could look like:
10
- #
11
- # module PDK
12
- # module Validate
13
- # module Tasks
14
- # class TasksValidatorGroup < ValidatorGroup
15
- # def name
16
- # 'tasks'
17
- # end
18
- #
19
- # def validators
20
- # [
21
- # TasksNameValidator,
22
- # TasksMetadataLintValidator,
23
- # ].freeze
24
- # end
25
- # end
26
- # end
27
- # end
28
- # end
29
- #
30
- # @see PDK::Validate::Validator
31
- # @abstract
32
- class ValidatorGroup < Validator
33
- # @see PDK::Validate::Validator.spinner_text
34
- def spinner_text
35
- _('Running %{name} validators ...') % { name: name }
36
- end
37
-
38
- # @see PDK::Validate::Validator.spinner
39
- def spinner
40
- return nil unless spinners_enabled?
41
- return @spinner unless @spinner.nil?
42
- require 'pdk/cli/util/spinner'
43
-
44
- @spinner = TTY::Spinner::Multi.new("[:spinner] #{spinner_text}", PDK::CLI::Util.spinner_opts_for_platform)
45
-
46
- # Register the child spinners
47
- validator_instances.each do |instance|
48
- next if instance.spinner.nil?
49
- @spinner.register(instance.spinner)
50
- end
51
-
52
- @spinner
53
- end
54
-
55
- # Can be overridden by child classes to do their own preparation tasks.
56
- # Typically this is not required by a meta-validator though.
57
- #
58
- # @see PDK::Validate::Validator.prepare_invoke!
59
- def prepare_invoke!
60
- return if @prepared
61
- super
62
-
63
- # Force the spinner to be registered etc.
64
- spinner
65
-
66
- # Prepare child validators
67
- validator_instances.each { |instance| instance.prepare_invoke! }
68
- nil
69
- end
70
-
71
- # A list of Validator classes that this group will run
72
- # @return Array[Class] An array of Validator classes (or objects that subclass to it) that this group will execute
73
- # @abstract
74
- def validators
75
- []
76
- end
77
-
78
- # @see PDK::Validate::Validator.invoke
79
- def invoke(report)
80
- exit_code = 0
81
-
82
- prepare_invoke!
83
- start_spinner
84
-
85
- validator_instances.each do |instance|
86
- exit_code = instance.invoke(report)
87
- break if exit_code != 0
88
- end
89
-
90
- stop_spinner(exit_code.zero?)
91
-
92
- exit_code
93
- end
94
-
95
- # The instanitated PDK::Validator::Validator classes from the `validators` array
96
- # @return Array[PDK::Validator::Validator]
97
- # @api private
98
- def validator_instances
99
- @validator_instances ||= validators.map { |klass| klass.new(context, options.merge(parent_validator: self)) }
100
- .select { |instance| instance.valid_in_context? }
101
- end
102
- end
103
- end
104
- end
1
+ require 'pdk'
2
+
3
+ module PDK
4
+ module Validate
5
+ # The base class which should be used by meta-validators, that is, this group executes other validators
6
+ #
7
+ # At a minimum, the `name` and `validators` methods should be overridden in the child class
8
+ #
9
+ # An example concrete implementation could look like:
10
+ #
11
+ # module PDK
12
+ # module Validate
13
+ # module Tasks
14
+ # class TasksValidatorGroup < ValidatorGroup
15
+ # def name
16
+ # 'tasks'
17
+ # end
18
+ #
19
+ # def validators
20
+ # [
21
+ # TasksNameValidator,
22
+ # TasksMetadataLintValidator,
23
+ # ].freeze
24
+ # end
25
+ # end
26
+ # end
27
+ # end
28
+ # end
29
+ #
30
+ # @see PDK::Validate::Validator
31
+ # @abstract
32
+ class ValidatorGroup < Validator
33
+ # @see PDK::Validate::Validator.spinner_text
34
+ def spinner_text
35
+ _('Running %{name} validators ...') % { name: name }
36
+ end
37
+
38
+ # @see PDK::Validate::Validator.spinner
39
+ def spinner
40
+ return nil unless spinners_enabled?
41
+ return @spinner unless @spinner.nil?
42
+ require 'pdk/cli/util/spinner'
43
+
44
+ @spinner = TTY::Spinner::Multi.new("[:spinner] #{spinner_text}", PDK::CLI::Util.spinner_opts_for_platform)
45
+
46
+ # Register the child spinners
47
+ validator_instances.each do |instance|
48
+ next if instance.spinner.nil?
49
+ @spinner.register(instance.spinner)
50
+ end
51
+
52
+ @spinner
53
+ end
54
+
55
+ # Can be overridden by child classes to do their own preparation tasks.
56
+ # Typically this is not required by a meta-validator though.
57
+ #
58
+ # @see PDK::Validate::Validator.prepare_invoke!
59
+ def prepare_invoke!
60
+ return if @prepared
61
+ super
62
+
63
+ # Force the spinner to be registered etc.
64
+ spinner
65
+
66
+ # Prepare child validators
67
+ validator_instances.each { |instance| instance.prepare_invoke! }
68
+ nil
69
+ end
70
+
71
+ # A list of Validator classes that this group will run
72
+ # @return Array[Class] An array of Validator classes (or objects that subclass to it) that this group will execute
73
+ # @abstract
74
+ def validators
75
+ []
76
+ end
77
+
78
+ # @see PDK::Validate::Validator.invoke
79
+ def invoke(report)
80
+ exit_code = 0
81
+
82
+ prepare_invoke!
83
+ start_spinner
84
+
85
+ validator_instances.each do |instance|
86
+ exit_code = instance.invoke(report)
87
+ break if exit_code != 0
88
+ end
89
+
90
+ stop_spinner(exit_code.zero?)
91
+
92
+ exit_code
93
+ end
94
+
95
+ # The instanitated PDK::Validator::Validator classes from the `validators` array
96
+ # @return Array[PDK::Validator::Validator]
97
+ # @api private
98
+ def validator_instances
99
+ @validator_instances ||= validators.map { |klass| klass.new(context, options.merge(parent_validator: self)) }
100
+ .select { |instance| instance.valid_in_context? }
101
+ end
102
+ end
103
+ end
104
+ end
@@ -1,95 +1,95 @@
1
- require 'pdk'
2
-
3
- module PDK
4
- module Validate
5
- module YAML
6
- class YAMLSyntaxValidator < InternalRubyValidator
7
- YAML_ALLOWLISTED_CLASSES = [Symbol].freeze
8
-
9
- def ignore_dotfiles
10
- false
11
- end
12
-
13
- def name
14
- 'yaml-syntax'
15
- end
16
-
17
- def pattern
18
- [
19
- '**/*.yaml',
20
- '**/*.yml',
21
- ].tap do |pat|
22
- if context.is_a?(PDK::Context::ControlRepo)
23
- pat.concat(
24
- [
25
- '**/*.eyaml',
26
- '**/*.eyml',
27
- ],
28
- )
29
- else
30
- pat
31
- end
32
- end
33
- end
34
-
35
- def spinner_text
36
- _('Checking YAML syntax (%{patterns}).') % {
37
- patterns: pattern.join(' '),
38
- }
39
- end
40
-
41
- def validate_target(report, target)
42
- return 0 unless PDK::Util::Filesystem.file?(target)
43
-
44
- unless PDK::Util::Filesystem.readable?(target)
45
- report.add_event(
46
- file: target,
47
- source: name,
48
- state: :failure,
49
- severity: 'error',
50
- message: _('Could not be read.'),
51
- )
52
- return 1
53
- end
54
-
55
- begin
56
- ::YAML.safe_load(PDK::Util::Filesystem.read_file(target), YAML_ALLOWLISTED_CLASSES, [], true)
57
-
58
- report.add_event(
59
- file: target,
60
- source: name,
61
- state: :passed,
62
- severity: 'ok',
63
- )
64
- return 0
65
- rescue Psych::SyntaxError => e
66
- report.add_event(
67
- file: target,
68
- source: name,
69
- state: :failure,
70
- severity: 'error',
71
- line: e.line,
72
- column: e.column,
73
- message: _('%{problem} %{context}') % {
74
- problem: e.problem,
75
- context: e.context,
76
- },
77
- )
78
- return 1
79
- rescue Psych::DisallowedClass => e
80
- report.add_event(
81
- file: target,
82
- source: name,
83
- state: :failure,
84
- severity: 'error',
85
- message: _('Unsupported class: %{message}') % {
86
- message: e.message,
87
- },
88
- )
89
- return 1
90
- end
91
- end
92
- end
93
- end
94
- end
95
- end
1
+ require 'pdk'
2
+
3
+ module PDK
4
+ module Validate
5
+ module YAML
6
+ class YAMLSyntaxValidator < InternalRubyValidator
7
+ YAML_ALLOWLISTED_CLASSES = [Symbol].freeze
8
+
9
+ def ignore_dotfiles
10
+ false
11
+ end
12
+
13
+ def name
14
+ 'yaml-syntax'
15
+ end
16
+
17
+ def pattern
18
+ [
19
+ '**/*.yaml',
20
+ '**/*.yml',
21
+ ].tap do |pat|
22
+ if context.is_a?(PDK::Context::ControlRepo)
23
+ pat.concat(
24
+ [
25
+ '**/*.eyaml',
26
+ '**/*.eyml',
27
+ ],
28
+ )
29
+ else
30
+ pat
31
+ end
32
+ end
33
+ end
34
+
35
+ def spinner_text
36
+ _('Checking YAML syntax (%{patterns}).') % {
37
+ patterns: pattern.join(' '),
38
+ }
39
+ end
40
+
41
+ def validate_target(report, target)
42
+ return 0 unless PDK::Util::Filesystem.file?(target)
43
+
44
+ unless PDK::Util::Filesystem.readable?(target)
45
+ report.add_event(
46
+ file: target,
47
+ source: name,
48
+ state: :failure,
49
+ severity: 'error',
50
+ message: _('Could not be read.'),
51
+ )
52
+ return 1
53
+ end
54
+
55
+ begin
56
+ ::YAML.safe_load(PDK::Util::Filesystem.read_file(target), YAML_ALLOWLISTED_CLASSES, [], true)
57
+
58
+ report.add_event(
59
+ file: target,
60
+ source: name,
61
+ state: :passed,
62
+ severity: 'ok',
63
+ )
64
+ return 0
65
+ rescue Psych::SyntaxError => e
66
+ report.add_event(
67
+ file: target,
68
+ source: name,
69
+ state: :failure,
70
+ severity: 'error',
71
+ line: e.line,
72
+ column: e.column,
73
+ message: _('%{problem} %{context}') % {
74
+ problem: e.problem,
75
+ context: e.context,
76
+ },
77
+ )
78
+ return 1
79
+ rescue Psych::DisallowedClass => e
80
+ report.add_event(
81
+ file: target,
82
+ source: name,
83
+ state: :failure,
84
+ severity: 'error',
85
+ message: _('Unsupported class: %{message}') % {
86
+ message: e.message,
87
+ },
88
+ )
89
+ return 1
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
@@ -1,19 +1,19 @@
1
- require 'pdk'
2
-
3
- module PDK
4
- module Validate
5
- module YAML
6
- class YAMLValidatorGroup < ValidatorGroup
7
- def name
8
- 'yaml'
9
- end
10
-
11
- def validators
12
- [
13
- YAMLSyntaxValidator,
14
- ].freeze
15
- end
16
- end
17
- end
18
- end
19
- end
1
+ require 'pdk'
2
+
3
+ module PDK
4
+ module Validate
5
+ module YAML
6
+ class YAMLValidatorGroup < ValidatorGroup
7
+ def name
8
+ 'yaml'
9
+ end
10
+
11
+ def validators
12
+ [
13
+ YAMLSyntaxValidator,
14
+ ].freeze
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
data/lib/pdk/validate.rb CHANGED
@@ -1,94 +1,94 @@
1
- require 'pdk'
2
-
3
- module PDK
4
- module Validate
5
- autoload :ExternalCommandValidator, 'pdk/validate/external_command_validator'
6
- autoload :InternalRubyValidator, 'pdk/validate/internal_ruby_validator'
7
- autoload :InvokableValidator, 'pdk/validate/invokable_validator'
8
- autoload :Validator, 'pdk/validate/validator'
9
- autoload :ValidatorGroup, 'pdk/validate/validator_group'
10
-
11
- module ControlRepo
12
- autoload :ControlRepoValidatorGroup, 'pdk/validate/control_repo/control_repo_validator_group'
13
- autoload :EnvironmentConfValidator, 'pdk/validate/control_repo/environment_conf_validator'
14
- end
15
-
16
- module Metadata
17
- autoload :MetadataJSONLintValidator, 'pdk/validate/metadata/metadata_json_lint_validator'
18
- autoload :MetadataSyntaxValidator, 'pdk/validate/metadata/metadata_syntax_validator'
19
- autoload :MetadataValidatorGroup, 'pdk/validate/metadata/metadata_validator_group'
20
- end
21
-
22
- module Puppet
23
- autoload :PuppetEPPValidator, 'pdk/validate/puppet/puppet_epp_validator'
24
- autoload :PuppetLintValidator, 'pdk/validate/puppet/puppet_lint_validator'
25
- autoload :PuppetSyntaxValidator, 'pdk/validate/puppet/puppet_syntax_validator'
26
- autoload :PuppetValidatorGroup, 'pdk/validate/puppet/puppet_validator_group'
27
- end
28
-
29
- module Ruby
30
- autoload :RubyRubocopValidator, 'pdk/validate/ruby/ruby_rubocop_validator'
31
- autoload :RubyValidatorGroup, 'pdk/validate/ruby/ruby_validator_group'
32
- end
33
-
34
- module Tasks
35
- autoload :TasksMetadataLintValidator, 'pdk/validate/tasks/tasks_metadata_lint_validator'
36
- autoload :TasksNameValidator, 'pdk/validate/tasks/tasks_name_validator'
37
- autoload :TasksValidatorGroup, 'pdk/validate/tasks/tasks_validator_group'
38
- end
39
-
40
- module YAML
41
- autoload :YAMLSyntaxValidator, 'pdk/validate/yaml/yaml_syntax_validator'
42
- autoload :YAMLValidatorGroup, 'pdk/validate/yaml/yaml_validator_group'
43
- end
44
-
45
- def self.validators
46
- validator_hash.values
47
- end
48
-
49
- def self.validator_names
50
- validator_hash.keys
51
- end
52
-
53
- # @api private
54
- def self.validator_hash
55
- # TODO: This isn't the most performant... But with only 6 items, it's fine
56
- @validator_hash ||= [
57
- ControlRepo::ControlRepoValidatorGroup,
58
- Metadata::MetadataValidatorGroup,
59
- Puppet::PuppetValidatorGroup,
60
- Ruby::RubyValidatorGroup,
61
- Tasks::TasksValidatorGroup,
62
- YAML::YAMLValidatorGroup,
63
- ].map { |klass| [klass.new.name, klass] }.to_h.freeze
64
- end
65
-
66
- def self.invoke_validators_by_name(context, names, parallel = false, options = {})
67
- instances = names.select { |name| validator_names.include?(name) }
68
- .map { |name| validator_hash[name].new(context, options) }
69
- .select { |instance| instance.valid_in_context? }
70
- .each { |instance| instance.prepare_invoke! }
71
- report = PDK::Report.new
72
-
73
- # Nothing to validate then nothing to do.
74
- return [0, report] if instances.empty?
75
-
76
- require 'pdk/cli/exec_group'
77
- exec_group = PDK::CLI::ExecGroup.create(
78
- _('Validating module using %{num_of_threads} threads' % { num_of_threads: instances.count }),
79
- { parallel: parallel },
80
- options,
81
- )
82
-
83
- instances.each do |validator|
84
- exec_group.register do
85
- validator.invoke(report)
86
- end
87
- end
88
-
89
- [exec_group.exit_code, report]
90
- end
91
-
92
- class ParseOutputError < StandardError; end
93
- end
94
- end
1
+ require 'pdk'
2
+
3
+ module PDK
4
+ module Validate
5
+ autoload :ExternalCommandValidator, 'pdk/validate/external_command_validator'
6
+ autoload :InternalRubyValidator, 'pdk/validate/internal_ruby_validator'
7
+ autoload :InvokableValidator, 'pdk/validate/invokable_validator'
8
+ autoload :Validator, 'pdk/validate/validator'
9
+ autoload :ValidatorGroup, 'pdk/validate/validator_group'
10
+
11
+ module ControlRepo
12
+ autoload :ControlRepoValidatorGroup, 'pdk/validate/control_repo/control_repo_validator_group'
13
+ autoload :EnvironmentConfValidator, 'pdk/validate/control_repo/environment_conf_validator'
14
+ end
15
+
16
+ module Metadata
17
+ autoload :MetadataJSONLintValidator, 'pdk/validate/metadata/metadata_json_lint_validator'
18
+ autoload :MetadataSyntaxValidator, 'pdk/validate/metadata/metadata_syntax_validator'
19
+ autoload :MetadataValidatorGroup, 'pdk/validate/metadata/metadata_validator_group'
20
+ end
21
+
22
+ module Puppet
23
+ autoload :PuppetEPPValidator, 'pdk/validate/puppet/puppet_epp_validator'
24
+ autoload :PuppetLintValidator, 'pdk/validate/puppet/puppet_lint_validator'
25
+ autoload :PuppetSyntaxValidator, 'pdk/validate/puppet/puppet_syntax_validator'
26
+ autoload :PuppetValidatorGroup, 'pdk/validate/puppet/puppet_validator_group'
27
+ end
28
+
29
+ module Ruby
30
+ autoload :RubyRubocopValidator, 'pdk/validate/ruby/ruby_rubocop_validator'
31
+ autoload :RubyValidatorGroup, 'pdk/validate/ruby/ruby_validator_group'
32
+ end
33
+
34
+ module Tasks
35
+ autoload :TasksMetadataLintValidator, 'pdk/validate/tasks/tasks_metadata_lint_validator'
36
+ autoload :TasksNameValidator, 'pdk/validate/tasks/tasks_name_validator'
37
+ autoload :TasksValidatorGroup, 'pdk/validate/tasks/tasks_validator_group'
38
+ end
39
+
40
+ module YAML
41
+ autoload :YAMLSyntaxValidator, 'pdk/validate/yaml/yaml_syntax_validator'
42
+ autoload :YAMLValidatorGroup, 'pdk/validate/yaml/yaml_validator_group'
43
+ end
44
+
45
+ def self.validators
46
+ validator_hash.values
47
+ end
48
+
49
+ def self.validator_names
50
+ validator_hash.keys
51
+ end
52
+
53
+ # @api private
54
+ def self.validator_hash
55
+ # TODO: This isn't the most performant... But with only 6 items, it's fine
56
+ @validator_hash ||= [
57
+ ControlRepo::ControlRepoValidatorGroup,
58
+ Metadata::MetadataValidatorGroup,
59
+ Puppet::PuppetValidatorGroup,
60
+ Ruby::RubyValidatorGroup,
61
+ Tasks::TasksValidatorGroup,
62
+ YAML::YAMLValidatorGroup,
63
+ ].map { |klass| [klass.new.name, klass] }.to_h.freeze
64
+ end
65
+
66
+ def self.invoke_validators_by_name(context, names, parallel = false, options = {})
67
+ instances = names.select { |name| validator_names.include?(name) }
68
+ .map { |name| validator_hash[name].new(context, options) }
69
+ .select { |instance| instance.valid_in_context? }
70
+ .each { |instance| instance.prepare_invoke! }
71
+ report = PDK::Report.new
72
+
73
+ # Nothing to validate then nothing to do.
74
+ return [0, report] if instances.empty?
75
+
76
+ require 'pdk/cli/exec_group'
77
+ exec_group = PDK::CLI::ExecGroup.create(
78
+ _('Validating module using %{num_of_threads} threads' % { num_of_threads: instances.count }),
79
+ { parallel: parallel },
80
+ options,
81
+ )
82
+
83
+ instances.each do |validator|
84
+ exec_group.register do
85
+ validator.invoke(report)
86
+ end
87
+ end
88
+
89
+ [exec_group.exit_code, report]
90
+ end
91
+
92
+ class ParseOutputError < StandardError; end
93
+ end
94
+ end
data/lib/pdk/version.rb CHANGED
@@ -1,4 +1,4 @@
1
- module PDK
2
- VERSION = '2.3.0'.freeze
3
- TEMPLATE_REF = '2.3.0'.freeze
4
- end
1
+ module PDK
2
+ VERSION = '2.4.0'.freeze
3
+ TEMPLATE_REF = '2.4.0'.freeze
4
+ end