pdk 1.10.0 → 1.11.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 (57) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +50 -1
  3. data/lib/pdk.rb +16 -1
  4. data/lib/pdk/analytics.rb +28 -0
  5. data/lib/pdk/analytics/client/google_analytics.rb +138 -0
  6. data/lib/pdk/analytics/client/noop.rb +23 -0
  7. data/lib/pdk/analytics/util.rb +17 -0
  8. data/lib/pdk/cli.rb +37 -0
  9. data/lib/pdk/cli/build.rb +2 -0
  10. data/lib/pdk/cli/bundle.rb +2 -1
  11. data/lib/pdk/cli/convert.rb +2 -0
  12. data/lib/pdk/cli/exec.rb +28 -1
  13. data/lib/pdk/cli/new/class.rb +2 -0
  14. data/lib/pdk/cli/new/defined_type.rb +2 -0
  15. data/lib/pdk/cli/new/module.rb +2 -0
  16. data/lib/pdk/cli/new/provider.rb +2 -0
  17. data/lib/pdk/cli/new/task.rb +2 -0
  18. data/lib/pdk/cli/test.rb +0 -1
  19. data/lib/pdk/cli/test/unit.rb +13 -10
  20. data/lib/pdk/cli/update.rb +21 -0
  21. data/lib/pdk/cli/util.rb +35 -0
  22. data/lib/pdk/cli/util/interview.rb +7 -1
  23. data/lib/pdk/cli/validate.rb +9 -2
  24. data/lib/pdk/config.rb +94 -0
  25. data/lib/pdk/config/errors.rb +5 -0
  26. data/lib/pdk/config/json.rb +23 -0
  27. data/lib/pdk/config/namespace.rb +273 -0
  28. data/lib/pdk/config/validator.rb +31 -0
  29. data/lib/pdk/config/value.rb +94 -0
  30. data/lib/pdk/config/yaml.rb +31 -0
  31. data/lib/pdk/generate/module.rb +3 -2
  32. data/lib/pdk/logger.rb +21 -1
  33. data/lib/pdk/module/build.rb +58 -0
  34. data/lib/pdk/module/convert.rb +1 -1
  35. data/lib/pdk/module/metadata.rb +1 -0
  36. data/lib/pdk/module/templatedir.rb +24 -5
  37. data/lib/pdk/module/update_manager.rb +2 -2
  38. data/lib/pdk/report/event.rb +3 -3
  39. data/lib/pdk/template_file.rb +1 -1
  40. data/lib/pdk/tests/unit.rb +10 -12
  41. data/lib/pdk/util.rb +9 -0
  42. data/lib/pdk/util/bundler.rb +5 -9
  43. data/lib/pdk/util/filesystem.rb +37 -0
  44. data/lib/pdk/util/puppet_version.rb +1 -1
  45. data/lib/pdk/util/ruby_version.rb +16 -6
  46. data/lib/pdk/util/template_uri.rb +72 -43
  47. data/lib/pdk/util/version.rb +1 -1
  48. data/lib/pdk/util/windows.rb +1 -0
  49. data/lib/pdk/util/windows/api_types.rb +0 -7
  50. data/lib/pdk/util/windows/file.rb +1 -1
  51. data/lib/pdk/util/windows/string.rb +1 -1
  52. data/lib/pdk/validate/base_validator.rb +8 -6
  53. data/lib/pdk/validate/puppet/puppet_syntax.rb +1 -1
  54. data/lib/pdk/validate/ruby/rubocop.rb +1 -1
  55. data/lib/pdk/version.rb +1 -1
  56. data/locales/pdk.pot +223 -114
  57. metadata +103 -50
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: c1a405daa77845c20f2b65516c1a43532f4589c0
4
- data.tar.gz: 155e5410885b024cbfb942c7b35c281c89a30402
2
+ SHA256:
3
+ metadata.gz: 5ec16ddd2727410b30d9b0d41457e4c4973f14607af8fffd10cf3ce5f7a5027b
4
+ data.tar.gz: 5288a7bfae1df2106fc9bd012ae71fd7e61473482404b0ccac0de6375399175e
5
5
  SHA512:
6
- metadata.gz: 253daf9ea17ec338176dc232ec049abc6fdd88facfe5995fbaba73cb804a30b4d082fa56973fea9b841ad936f86223111939ff474ff810dfddf6ab5beb3ed869
7
- data.tar.gz: 45985a21c5d8989d8c7214a0e7fe90df74f022850d9fe1fb429d92ff01642a755a4379adda5eb2f8bf5ee71508b9668e7b164abd17e34b268a7acbcc024c3409
6
+ metadata.gz: b08bd2bf5c1e54de90c6b1b8f3b91a3569827ddc06a5277b0b2bc5387f9fd21526c23f7a63cc97e7c87eb3c64b859214a94a9c86c79ba9509b3349cd1da39545
7
+ data.tar.gz: 7d101cca2234748f4edd69e7f5aafab5e99c9161efc08c36af3c8cd2aa4d613bdfbc0b7210ef6c47eee15bfab4332eebb1d2efba9cbe5bb9397454d4f4517057
data/CHANGELOG.md CHANGED
@@ -4,6 +4,54 @@ All changes to this repo will be documented in this file.
4
4
  See the [release notes](https://puppet.com/docs/pdk/latest/release_notes.html) for a high-level summary.
5
5
 
6
6
 
7
+ ## [v1.11.0](https://github.com/puppetlabs/pdk/tree/v1.11.0) (2019-06-27)
8
+ [Full Changelog](https://github.com/puppetlabs/pdk/compare/v1.10.0...v1.11.0)
9
+
10
+ **Fixed bugs:**
11
+
12
+ - \(PDK-1348\) remove unused constants throwing warns [\#656](https://github.com/puppetlabs/pdk/pull/656) ([tphoney](https://github.com/tphoney))
13
+
14
+ **Closed issues:**
15
+
16
+ - template-ref behaviour in PDK 1.10.0 breaks backwards compatibility [\#661](https://github.com/puppetlabs/pdk/issues/661)
17
+ - pdk validate reports error on is\_to\_s [\#642](https://github.com/puppetlabs/pdk/issues/642)
18
+ - pdk 1.9.1.0 on windows does not set path env variable [\#641](https://github.com/puppetlabs/pdk/issues/641)
19
+ - default\_facts.yml does not override values from facterdb [\#628](https://github.com/puppetlabs/pdk/issues/628)
20
+ - PDK and beaker [\#622](https://github.com/puppetlabs/pdk/issues/622)
21
+ - Configure 'ordering' for rspec-puppet in PDK [\#511](https://github.com/puppetlabs/pdk/issues/511)
22
+ - Cannot override module Hiera 5 config for unit tests [\#487](https://github.com/puppetlabs/pdk/issues/487)
23
+
24
+ **Merged pull requests:**
25
+
26
+ - \(FIXUP\) Avoid attempting to append nokogiri pin to nil in package tests [\#686](https://github.com/puppetlabs/pdk/pull/686) ([scotje](https://github.com/scotje))
27
+ - Revert "\(PDK-1366\) Update default operatingsystem versions" [\#685](https://github.com/puppetlabs/pdk/pull/685) ([rodjek](https://github.com/rodjek))
28
+ - \(maint\) Clear Gemfile overrides before pdk update test [\#684](https://github.com/puppetlabs/pdk/pull/684) ([rodjek](https://github.com/rodjek))
29
+ - \(PDK-1366\) Update default operatingsystem versions [\#682](https://github.com/puppetlabs/pdk/pull/682) ([rodjek](https://github.com/rodjek))
30
+ - \(PDK-1362\) Warn user if updating module with older PDK version [\#681](https://github.com/puppetlabs/pdk/pull/681) ([rodjek](https://github.com/rodjek))
31
+ - \(PDK-1365\) Use dynamic ruby detection for default ruby instance [\#678](https://github.com/puppetlabs/pdk/pull/678) ([glennsarti](https://github.com/glennsarti))
32
+ - \(PDK-1354\) Default template ref for custom templates should always be master [\#677](https://github.com/puppetlabs/pdk/pull/677) ([rodjek](https://github.com/rodjek))
33
+ - \(maint\) Pin cri to \<= 2.15.6 [\#675](https://github.com/puppetlabs/pdk/pull/675) ([rodjek](https://github.com/rodjek))
34
+ - \(MAINT\) Fix issues related to Cri behavior change with options hash [\#672](https://github.com/puppetlabs/pdk/pull/672) ([scotje](https://github.com/scotje))
35
+ - \(PDK-1337\) Warn and unset any of the legacy \*\_GEM\_VERSION env vars [\#671](https://github.com/puppetlabs/pdk/pull/671) ([rodjek](https://github.com/rodjek))
36
+ - \(PDK-1345\) Disable analytics during package tests [\#670](https://github.com/puppetlabs/pdk/pull/670) ([rodjek](https://github.com/rodjek))
37
+ - \(MAINT\) Fix MSYS2 update on Appveyor [\#669](https://github.com/puppetlabs/pdk/pull/669) ([rodjek](https://github.com/rodjek))
38
+ - \(PDK-1342\) Submit PDK analytics events [\#668](https://github.com/puppetlabs/pdk/pull/668) ([rodjek](https://github.com/rodjek))
39
+ - \(PDK-1336\) Update rubocop to 0.57.2 [\#667](https://github.com/puppetlabs/pdk/pull/667) ([scotje](https://github.com/scotje))
40
+ - \(PDK-1341\) Hook up PDK analytics to Google Analytics [\#665](https://github.com/puppetlabs/pdk/pull/665) ([rodjek](https://github.com/rodjek))
41
+ - \(MAINT\) Add "needs-triage" default labels to issue templates [\#664](https://github.com/puppetlabs/pdk/pull/664) ([scotje](https://github.com/scotje))
42
+ - \(PDK-1264\) Display a nicer error when tarring long paths [\#663](https://github.com/puppetlabs/pdk/pull/663) ([rodjek](https://github.com/rodjek))
43
+ - \(maint\) Add spawned process stdout & stderr to debug log [\#662](https://github.com/puppetlabs/pdk/pull/662) ([rodjek](https://github.com/rodjek))
44
+ - \(PDK-1300\) Ensure `test unit --list` uses correct Puppet/Ruby env [\#660](https://github.com/puppetlabs/pdk/pull/660) ([scotje](https://github.com/scotje))
45
+ - \(MAINT\) Fixup package acceptance tests for 'pdk-default' template URL [\#658](https://github.com/puppetlabs/pdk/pull/658) ([scotje](https://github.com/scotje))
46
+ - \(PDK-1339\) Read or interview for analytics config [\#657](https://github.com/puppetlabs/pdk/pull/657) ([rodjek](https://github.com/rodjek))
47
+ - \(PDK-1350\) Handle SCP style URLs in metadata.json [\#655](https://github.com/puppetlabs/pdk/pull/655) ([rodjek](https://github.com/rodjek))
48
+ - \(PDK-1338\) Initial import of analytics code from Bolt [\#652](https://github.com/puppetlabs/pdk/pull/652) ([rodjek](https://github.com/rodjek))
49
+ - \(MAINT\) Bump version to 1.11.0.pre [\#651](https://github.com/puppetlabs/pdk/pull/651) ([scotje](https://github.com/scotje))
50
+ - \(PDK-1335\) Add development note when on Windows [\#649](https://github.com/puppetlabs/pdk/pull/649) ([glennsarti](https://github.com/glennsarti))
51
+ - \(maint\) Allow developers to add additional gems [\#648](https://github.com/puppetlabs/pdk/pull/648) ([glennsarti](https://github.com/glennsarti))
52
+ - \(PDK-1167\) Validator should honor case sensitive of the file system [\#646](https://github.com/puppetlabs/pdk/pull/646) ([glennsarti](https://github.com/glennsarti))
53
+ - \(PDK-1193\) Saves packaged template-url in metadata as a keyword [\#639](https://github.com/puppetlabs/pdk/pull/639) ([bmjen](https://github.com/bmjen))
54
+
7
55
  ## [v1.10.0](https://github.com/puppetlabs/pdk/tree/v1.10.0) (2019-04-02)
8
56
  [Full Changelog](https://github.com/puppetlabs/pdk/compare/v1.9.1...v1.10.0)
9
57
 
@@ -22,6 +70,7 @@ See the [release notes](https://puppet.com/docs/pdk/latest/release_notes.html) f
22
70
 
23
71
  **Merged pull requests:**
24
72
 
73
+ - \(PDK-1324\) Release 1.10.0 [\#650](https://github.com/puppetlabs/pdk/pull/650) ([rodjek](https://github.com/rodjek))
25
74
  - \(maint\) Fix package specs for template-ref changes [\#647](https://github.com/puppetlabs/pdk/pull/647) ([rodjek](https://github.com/rodjek))
26
75
  - \(maint\) Enforce LF line endings in Rubocop [\#645](https://github.com/puppetlabs/pdk/pull/645) ([glennsarti](https://github.com/glennsarti))
27
76
  - \(FM-7579, PDK-1236\) bump the version of CRI used [\#638](https://github.com/puppetlabs/pdk/pull/638) ([tphoney](https://github.com/tphoney))
@@ -896,4 +945,4 @@ See the [release notes](https://puppet.com/docs/pdk/latest/release_notes.html) f
896
945
 
897
946
 
898
947
 
899
- \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
948
+ \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
data/lib/pdk.rb CHANGED
@@ -1,4 +1,6 @@
1
+ require 'pdk/analytics'
1
2
  require 'pdk/answer_file'
3
+ require 'pdk/config'
2
4
  require 'pdk/generate'
3
5
  require 'pdk/i18n'
4
6
  require 'pdk/logger'
@@ -7,4 +9,17 @@ require 'pdk/template_file'
7
9
  require 'pdk/validate'
8
10
  require 'pdk/version'
9
11
 
10
- module PDK; end
12
+ module PDK
13
+ def self.analytics
14
+ @analytics ||= PDK::Analytics.build_client(
15
+ logger: PDK.logger,
16
+ disabled: ENV['PDK_DISABLE_ANALYTICS'] || PDK.config.user['analytics']['disabled'],
17
+ user_id: PDK.config.user['analytics']['user-id'],
18
+ app_id: "UA-139917834-#{PDK::Util.development_mode? ? '2' : '1'}",
19
+ client: :google_analytics,
20
+ app_name: 'pdk',
21
+ app_version: PDK::VERSION,
22
+ app_installer: PDK::Util.package_install? ? 'package' : 'gem',
23
+ )
24
+ end
25
+ end
@@ -0,0 +1,28 @@
1
+ require 'securerandom'
2
+ require 'pdk/analytics/util'
3
+ require 'pdk/analytics/client/google_analytics'
4
+ require 'pdk/analytics/client/noop'
5
+
6
+ module PDK
7
+ module Analytics
8
+ CLIENTS = {
9
+ noop: Client::Noop,
10
+ google_analytics: Client::GoogleAnalytics,
11
+ }.freeze
12
+
13
+ def self.build_client(opts = {})
14
+ opts[:logger] ||= ::Logger.new(STDERR)
15
+ opts[:client] ||= :noop
16
+
17
+ if opts[:disabled]
18
+ opts[:logger].debug 'Analytics opt-out is set, analytics will be disabled'
19
+ CLIENTS[:noop].new(opts)
20
+ else
21
+ CLIENTS[opts[:client]].new(opts)
22
+ end
23
+ rescue StandardError => e
24
+ opts[:logger].debug "Failed to initialize analytics client, analytics will be disabled: #{e}"
25
+ CLIENTS[:noop].new(opts)
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,138 @@
1
+ module PDK
2
+ module Analytics
3
+ module Client
4
+ class GoogleAnalytics
5
+ PROTOCOL_VERSION = 1
6
+ TRACKING_URL = 'https://google-analytics.com/collect'.freeze
7
+ CUSTOM_DIMENSIONS = {
8
+ operating_system: :cd1,
9
+ output_format: :cd2,
10
+ ruby_version: :cd3,
11
+ cli_options: :cd4,
12
+ env_vars: :cd5,
13
+ }.freeze
14
+
15
+ attr_reader :user_id
16
+ attr_reader :logger
17
+ attr_reader :app_name
18
+ attr_reader :app_id
19
+ attr_reader :app_version
20
+ attr_reader :app_installer
21
+
22
+ def initialize(opts)
23
+ # lazy-load expensive gem code
24
+ require 'concurrent/configuration'
25
+ require 'concurrent/future'
26
+ require 'httpclient'
27
+ require 'locale'
28
+
29
+ @http = HTTPClient.new
30
+ @user_id = opts[:user_id]
31
+ @executor = Concurrent.global_io_executor
32
+ @os = PDK::Analytics::Util.fetch_os_async
33
+ @logger = opts[:logger]
34
+ @app_name = opts[:app_name]
35
+ @app_id = opts[:app_id]
36
+ @app_version = opts[:app_version]
37
+ @app_installer = opts[:app_installer]
38
+ end
39
+
40
+ def screen_view(screen, **kwargs)
41
+ custom_dimensions = walk_keys(kwargs) do |k|
42
+ CUSTOM_DIMENSIONS[k] || raise("Unknown analytics key '#{k}'")
43
+ end
44
+
45
+ screen_view_params = {
46
+ # Type
47
+ t: 'screenview',
48
+ # Screen Name
49
+ cd: screen,
50
+ }.merge(custom_dimensions)
51
+
52
+ submit(base_params.merge(screen_view_params))
53
+ end
54
+
55
+ def event(category, action, label: nil, value: nil, **kwargs)
56
+ custom_dimensions = walk_keys(kwargs) do |k|
57
+ CUSTOM_DIMENSIONS[k] || raise("Unknown analytics key '#{k}'")
58
+ end
59
+
60
+ event_params = {
61
+ # Type
62
+ t: 'event',
63
+ # Event Category
64
+ ec: category,
65
+ # Event Action
66
+ ea: action,
67
+ }.merge(custom_dimensions)
68
+
69
+ # Event Label
70
+ event_params[:el] = label if label
71
+ # Event Value
72
+ event_params[:ev] = value if value
73
+
74
+ submit(base_params.merge(event_params))
75
+ end
76
+
77
+ def submit(params)
78
+ # Handle analytics submission in the background to avoid blocking the
79
+ # app or polluting the log with errors
80
+ Concurrent::Future.execute(executor: @executor) do
81
+ logger.debug "Submitting analytics: #{JSON.pretty_generate(params)}"
82
+ @http.post(TRACKING_URL, params)
83
+ logger.debug 'Completed analytics submission'
84
+ end
85
+ end
86
+
87
+ # These parameters have terrible names. See this page for complete documentation:
88
+ # https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters
89
+ def base_params
90
+ {
91
+ v: PROTOCOL_VERSION,
92
+ # Client ID
93
+ cid: user_id,
94
+ # Tracking ID
95
+ tid: app_id,
96
+ # Application Name
97
+ an: app_name,
98
+ # Application Version
99
+ av: app_version,
100
+ # Application Installer ID
101
+ aiid: app_installer,
102
+ # Anonymize IPs
103
+ aip: true,
104
+ # User locale
105
+ ul: Locale.current.to_rfc,
106
+ # Custom Dimension 1 (Operating System)
107
+ cd1: @os.value,
108
+ }
109
+ end
110
+
111
+ # If the user is running a very fast command, there may not be time for
112
+ # analytics submission to complete before the command is finished. In
113
+ # that case, we give a little buffer for any stragglers to finish up.
114
+ # 250ms strikes a balance between accomodating slower networks while not
115
+ # introducing a noticeable "hang".
116
+ def finish
117
+ @executor.shutdown
118
+ @executor.wait_for_termination(0.25)
119
+ end
120
+
121
+ private
122
+
123
+ def walk_keys(data, &block)
124
+ if data.is_a?(Hash)
125
+ data.each_with_object({}) do |(k, v), acc|
126
+ v = walk_keys(v, &block)
127
+ acc[yield(k)] = v
128
+ end
129
+ elsif data.is_a?(Array)
130
+ data.map { |v| walk_keys(v, &block) }
131
+ else
132
+ data
133
+ end
134
+ end
135
+ end
136
+ end
137
+ end
138
+ end
@@ -0,0 +1,23 @@
1
+ module PDK
2
+ module Analytics
3
+ module Client
4
+ class Noop
5
+ attr_reader :logger
6
+
7
+ def initialize(opts)
8
+ @logger = opts[:logger]
9
+ end
10
+
11
+ def screen_view(screen, **_kwargs)
12
+ logger.debug "Skipping submission of '#{screen}' screenview because analytics is disabled"
13
+ end
14
+
15
+ def event(category, action, **_kwargs)
16
+ logger.debug "Skipping submission of '#{category} #{action}' event because analytics is disabled"
17
+ end
18
+
19
+ def finish; end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,17 @@
1
+ module PDK
2
+ module Analytics
3
+ module Util
4
+ def self.fetch_os_async
5
+ require 'concurrent/configuration'
6
+ require 'concurrent/future'
7
+
8
+ Concurrent::Future.execute(executor: :io) do
9
+ require 'facter'
10
+ os = Facter.value('os')
11
+
12
+ os.nil? ? 'unknown' : "#{os['name']} #{os.fetch('release', {}).fetch('major', '')}".strip
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
data/lib/pdk/cli.rb CHANGED
@@ -13,8 +13,45 @@ require 'pdk/report'
13
13
  require 'pdk/util/version'
14
14
  require 'pdk/util/puppet_version'
15
15
 
16
+ class Cri::Command::CriExitException
17
+ def initialize(is_error:)
18
+ @is_error = is_error
19
+ PDK.analytics.event('CLI', 'invalid command', label: PDK::CLI.anonymised_args.join(' ')) if error?
20
+ end
21
+ end
22
+
16
23
  module PDK::CLI
24
+ # Attempt to anonymise the raw ARGV array if the command parsing failed.
25
+ #
26
+ # If an item does not start with '-' but is preceeded by an item that does
27
+ # start with '-', assume that these items are an option/value pair and redact
28
+ # the value. Any additional values that do not start with '-' that follow an
29
+ # option/value pair are assumed to be arguments (rather than subcommand
30
+ # names) and are also redacted.
31
+ #
32
+ # @example
33
+ # # Where PDK::CLI.args => ['new', 'plan', '--some', 'value', 'plan_name']
34
+ #
35
+ # PDK::CLI.anonymised_args
36
+ # => ['new', 'plan', '--some', 'redacted', 'redacted']
37
+ #
38
+ # @return Array[String] the command arguments with any identifying values
39
+ # redacted.
40
+ def self.anonymised_args
41
+ in_args = false
42
+ @args.map do |arg|
43
+ if arg.start_with?('-')
44
+ in_args = true
45
+ arg
46
+ else
47
+ in_args ? 'redacted' : arg
48
+ end
49
+ end
50
+ end
51
+
17
52
  def self.run(args)
53
+ @args = args
54
+ PDK::Config.analytics_config_interview! unless PDK::Config.analytics_config_exist?
18
55
  @base_cmd.run(args)
19
56
  rescue PDK::CLI::ExitWithError => e
20
57
  PDK.logger.send(e.log_level, e.message)
data/lib/pdk/cli/build.rb CHANGED
@@ -21,6 +21,8 @@ module PDK::CLI
21
21
  log_level: :info,
22
22
  )
23
23
 
24
+ PDK::CLI::Util.analytics_screen_view('build', opts)
25
+
24
26
  module_metadata = PDK::Module::Metadata.from_file('metadata.json')
25
27
 
26
28
  # TODO: Ensure forge metadata has been set, or call out to interview
@@ -1,4 +1,3 @@
1
-
2
1
  module PDK::CLI
3
2
  @bundle_cmd = @base_cmd.define_command do
4
3
  name 'bundle'
@@ -20,6 +19,8 @@ EOF
20
19
 
21
20
  PDK::CLI::Util.validate_puppet_version_opts({})
22
21
 
22
+ PDK::CLI::Util.analytics_screen_view('bundle')
23
+
23
24
  # Ensure that the correct Ruby is activated before running commend.
24
25
  puppet_env = PDK::CLI::Util.puppet_from_opts_or_env({})
25
26
  PDK::Util::RubyVersion.use(puppet_env[:ruby_version])
@@ -28,6 +28,8 @@ module PDK::CLI
28
28
  raise PDK::CLI::ExitWithError, _('You can not specify --noop and --force when converting a module')
29
29
  end
30
30
 
31
+ PDK::CLI::Util.analytics_screen_view('convert', opts)
32
+
31
33
  if opts[:'skip-interview'] && opts[:'full-interview']
32
34
  PDK.logger.info _('Ignoring --full-interview and continuing with --skip-interview.')
33
35
  opts[:'full-interview'] = false
data/lib/pdk/cli/exec.rb CHANGED
@@ -121,6 +121,24 @@ module PDK
121
121
  @environment.merge!(additional_env)
122
122
  end
123
123
 
124
+ def check_for_legacy_env_vars
125
+ if ENV['PUPPET_GEM_VERSION']
126
+ PDK.logger.warn_once _(
127
+ 'PUPPET_GEM_VERSION is not supported by PDK. ' \
128
+ 'Please use the --puppet-version option on your PDK command ' \
129
+ 'or set the PDK_PUPPET_VERSION environment variable instead',
130
+ )
131
+ @process.environment['PUPPET_GEM_VERSION'] = nil
132
+ end
133
+
134
+ %w[FACTER HIERA].each do |gem|
135
+ if ENV["#{gem}_GEM_VERSION"]
136
+ PDK.logger.warn_once _("#{gem}_GEM_VERSION is not supported by PDK.")
137
+ @process.environment["#{gem}_GEM_VERSION"] = nil
138
+ end
139
+ end
140
+ end
141
+
124
142
  def execute!
125
143
  # Start spinning if configured.
126
144
  @spinner.auto_spin if @spinner
@@ -130,6 +148,8 @@ module PDK
130
148
  @process.environment[k] = v
131
149
  end
132
150
 
151
+ check_for_legacy_env_vars
152
+
133
153
  @process.environment['BUNDLE_IGNORE_CONFIG'] = '1'
134
154
 
135
155
  if [:module, :pwd].include?(context)
@@ -179,7 +199,14 @@ module PDK
179
199
  duration: @duration,
180
200
  }
181
201
 
182
- return process_data
202
+ PDK.logger.debug _('STDOUT: %{output}') % {
203
+ output: process_data[:stdout].empty? ? 'N/A' : "\n#{process_data[:stdout]}",
204
+ }
205
+ PDK.logger.debug _('STDERR: %{output}') % {
206
+ output: process_data[:stderr].empty? ? 'N/A' : "\n#{process_data[:stderr]}",
207
+ }
208
+
209
+ process_data
183
210
  ensure
184
211
  @stdout.close
185
212
  @stderr.close