mixlib-install 3.11.28 → 3.12.7

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
  SHA256:
3
- metadata.gz: 3abbd31ee089f8f24407d866aef6e40546f12a30ba715720b155b13abcf3cc5a
4
- data.tar.gz: bb1efeac551415d6bf1962b19b9df9335a4ad8bd673a003610400f56e8c53735
3
+ metadata.gz: 601807500297868555334b6b675f76e7f47e82b06508c25034b7104c8d2d6310
4
+ data.tar.gz: 505719449732303c18b2b6c1ca892f61bcc9c2bfb249e3b10f7073f0db675e68
5
5
  SHA512:
6
- metadata.gz: 5c470a63c6325b3c81743b54453bea4a8a52124b5624786f316989599c82d53337fc5f32d9aaeeb0c1d6bd66994346bd60b20862c91bb8895c247cb24331cee3
7
- data.tar.gz: e360d48b512a3c1cc2213fb4c28f6a5a001b1f93bb10a4399a30491eca665b09067d79fddb71a7975e3f423520353b890dcf5c403ddb6cb7298e0c44567c80e9
6
+ metadata.gz: 28787830d0a413c5698fd7889562f9210d8ab3f6ae9d94274f02c015280ce6e1914413e18a89036306d7f5e3ac12fd24a9401b891fde2c7de8f33a98183e4bc3
7
+ data.tar.gz: 0d3ec51ff6c6dbaa499eba0cf95ffd9e66881381543b6cabe257539901ad2e1cf3ca895768729d2cadc7bd8a250f9925ecfe15e88bc59f7355469ee105a6f194
data/Gemfile CHANGED
@@ -2,6 +2,8 @@ source "https://rubygems.org"
2
2
 
3
3
  gemspec
4
4
 
5
+ gem "chef-utils", "= 16.6.14" if RUBY_VERSION < "2.6.0"
6
+
5
7
  group :docs do
6
8
  gem "github-markup"
7
9
  gem "redcarpet"
@@ -27,6 +29,6 @@ end
27
29
  group :debug do
28
30
  gem "pry"
29
31
  gem "pry-byebug"
30
- gem "pry-stack_explorer"
32
+ gem "pry-stack_explorer", "~> 0.4.0" # pin until we drop ruby < 2.6
31
33
  gem "rb-readline"
32
34
  end
@@ -18,13 +18,14 @@
18
18
  #
19
19
 
20
20
  require "mixlib/versioning"
21
- require "mixlib/shellout"
21
+ require "mixlib/shellout" unless defined?(Mixlib::ShellOut)
22
22
 
23
23
  require_relative "install/backend"
24
24
  require_relative "install/options"
25
25
  require_relative "install/generator"
26
26
  require_relative "install/generator/bourne"
27
27
  require_relative "install/generator/powershell"
28
+ require_relative "install/dist"
28
29
 
29
30
  module Mixlib
30
31
  class Install
@@ -119,7 +120,7 @@ module Mixlib
119
120
  # This only works for chef and chefdk but they are the only projects
120
121
  # we are supporting as of now.
121
122
  if options.for_ps1?
122
- "$env:systemdrive\\opscode\\#{options.product_name}"
123
+ "$env:systemdrive\\#{Mixlib::Install::Dist::WINDOWS_INSTALL_DIR}\\#{options.product_name}"
123
124
  else
124
125
  "/opt/#{options.product_name}"
125
126
  end
@@ -136,7 +137,7 @@ module Mixlib
136
137
  # chef-server -> /opt/opscode). But this is OK for now since
137
138
  # chef & chefdk are the only supported products.
138
139
  version_manifest_file = if options.for_ps1?
139
- "$env:systemdrive\\opscode\\#{options.product_name}\\version-manifest.json"
140
+ "$env:systemdrive\\#{Mixlib::Install::Dist::WINDOWS_INSTALL_DIR}\\#{options.product_name}\\version-manifest.json"
140
141
  else
141
142
  "/opt/#{options.product_name}/version-manifest.json"
142
143
  end
@@ -183,7 +184,7 @@ module Mixlib
183
184
  # to disallow unsigned powershell scripts. This changes it for just this
184
185
  # powershell session, which allows this to run even if the execution policy
185
186
  # is set higher.
186
- Mixlib::ShellOut.new("powershell.exe -file #{File.join(d, "detect_platform.ps1")}", :env => { "PSExecutionPolicyPreference" => "Bypass" }).run_command
187
+ Mixlib::ShellOut.new("powershell.exe -NoProfile -file #{File.join(d, "detect_platform.ps1")}", :env => { "PSExecutionPolicyPreference" => "Bypass" }).run_command
187
188
  end
188
189
  else
189
190
  Mixlib::ShellOut.new(detect_platform_sh).run_command
@@ -16,7 +16,7 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- require "json"
19
+ require "json" unless defined?(JSON)
20
20
  require_relative "../artifact_info"
21
21
  require_relative "base"
22
22
  require_relative "../product"
@@ -24,7 +24,7 @@ require_relative "../product_matrix"
24
24
  require_relative "../util"
25
25
  require_relative "../dist"
26
26
  require "mixlib/versioning"
27
- require "net/http"
27
+ require "net/http" unless defined?(Net::HTTP)
28
28
 
29
29
  module Mixlib
30
30
  class Install
@@ -78,7 +78,7 @@ EOF
78
78
 
79
79
  # Filter out the partial builds if we are in :unstable channel
80
80
  # In other channels we do not need to do this since all builds are
81
- # always complete. Infact we should not do this since for some arcane
81
+ # always complete. In fact we should not do this since for some arcane
82
82
  # builds like Chef Client 10.X we do not have build record created in
83
83
  # artifactory.
84
84
  if options.channel == :unstable
@@ -245,7 +245,7 @@ EOF
245
245
  private
246
246
 
247
247
  # Converts Array<Hash> where the Hash is a key pair and
248
- # value pair to a simplifed key/pair Hash
248
+ # value pair to a simplified key/pair Hash
249
249
  #
250
250
  def map_properties(properties)
251
251
  return {} if properties.nil?
@@ -13,7 +13,7 @@
13
13
  #
14
14
 
15
15
  require_relative "../install"
16
- require "thor"
16
+ require "thor" unless defined?(Thor)
17
17
 
18
18
  module Mixlib
19
19
  class Install
@@ -67,7 +67,7 @@ If no earlier version is found the earliest version available will be set.",
67
67
  desc: "Print artifact attributes",
68
68
  type: :boolean
69
69
  def download(product_name)
70
- # Set mininum options
70
+ # Set minimum options
71
71
  mixlib_install_options = {
72
72
  channel: options[:channel].to_sym,
73
73
  product_name: product_name,
@@ -24,6 +24,8 @@ module Mixlib
24
24
  MACOS_VOLUME = "chef_software".freeze
25
25
  # Windows install directory name
26
26
  WINDOWS_INSTALL_DIR = "opscode".freeze
27
+ # Linux install directory name
28
+ LINUX_INSTALL_DIR = "/opt"
27
29
  end
28
30
  end
29
31
  end
@@ -15,8 +15,8 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require "erb"
19
- require "ostruct"
18
+ require "erb" unless defined?(Erb)
19
+ require "ostruct" unless defined?(OpenStruct)
20
20
  require_relative "../util"
21
21
  require_relative "../dist"
22
22
 
@@ -45,7 +45,7 @@ module Mixlib
45
45
  script_path = File.join(script_base_path, name)
46
46
 
47
47
  # If there is an erb template we render it, otherwise we just read
48
- # and returnt the contents of the script
48
+ # and return the contents of the script
49
49
  if File.exist? "#{script_path}.erb"
50
50
  # Default values to use incase they are not set in the context
51
51
  context[:project_name] ||= Mixlib::Install::Dist::PROJECT_NAME.freeze
@@ -87,7 +87,7 @@ http_404_error() {
87
87
  echo "In order to test the version parameter, adventurous users may take the Metadata URL"
88
88
  echo "below and modify the '&v=<number>' parameter until you successfully get a URL that"
89
89
  echo "does not 404 (e.g. via curl or wget). You should be able to use '&v=11' or '&v=12'"
90
- echo "succesfully."
90
+ echo "successfully."
91
91
  echo ""
92
92
  echo "If you cannot fix this problem by setting the bootstrap_version, it probably means"
93
93
  echo "that $platform is not supported."
@@ -215,7 +215,7 @@ do_checksum() {
215
215
  checksum=`shasum -a 256 $1 | awk '{ print $1 }'`
216
216
  return `test "x$checksum" = "x$2"`
217
217
  else
218
- echo "WARNING: could not find a valid checksum program, pre-install shasum or sha256sum in your O/S image to get valdation..."
218
+ echo "WARNING: could not find a valid checksum program, pre-install shasum or sha256sum in your O/S image to get validation..."
219
219
  return 0
220
220
  fi
221
221
  }
@@ -48,7 +48,7 @@ elif test -f "/etc/redhat-release"; then
48
48
  platform_version=`sed 's/^.\+ release \([.0-9]\+\).*/\1/' /etc/redhat-release`
49
49
 
50
50
  if test "$platform" = "xenserver"; then
51
- # Current XenServer 6.2 is based on CentOS 5, platform is not reset to "el" server should hanlde response
51
+ # Current XenServer 6.2 is based on CentOS 5, platform is not reset to "el" server should handle response
52
52
  platform="xenserver"
53
53
  else
54
54
  # FIXME: use "redhat"
@@ -71,17 +71,11 @@ elif test -f "/etc/system-release"; then
71
71
  fi
72
72
  esac
73
73
 
74
- # Apple OS X
74
+ # Apple macOS
75
75
  elif test -f "/usr/bin/sw_vers"; then
76
76
  platform="mac_os_x"
77
77
  # Matching the tab-space with sed is error-prone
78
78
  platform_version=`sw_vers | awk '/^ProductVersion:/ { print $2 }' | cut -d. -f1,2`
79
-
80
- # x86_64 Apple hardware often runs 32-bit kernels (see OHAI-63)
81
- x86_64=`sysctl -n hw.optional.x86_64`
82
- if test $x86_64 -eq 1; then
83
- machine="x86_64"
84
- fi
85
79
  elif test -f "/etc/release"; then
86
80
  machine=`/usr/bin/uname -p`
87
81
  if grep SmartOS /etc/release >/dev/null; then
@@ -96,7 +90,7 @@ elif test -f "/etc/SuSE-release"; then
96
90
  then
97
91
  platform="sles"
98
92
  platform_version=`awk '/^VERSION/ {V = $3}; /^PATCHLEVEL/ {P = $3}; END {print V "." P}' /etc/SuSE-release`
99
- else
93
+ else # opensuse 43 only. 15 ships with /etc/os-release only
100
94
  platform="opensuseleap"
101
95
  platform_version=`awk '/^VERSION =/ { print $3 }' /etc/SuSE-release`
102
96
  fi
@@ -114,7 +108,14 @@ elif test -f "/etc/os-release"; then
114
108
  fi
115
109
 
116
110
  platform=$ID
117
- platform_version=$VERSION
111
+
112
+ # VERSION_ID is always the preferred variable to use, but not
113
+ # every distro has it so fallback to VERSION
114
+ if test "x$VERSION_ID" != "x"; then
115
+ platform_version=$VERSION_ID
116
+ else
117
+ platform_version=$VERSION
118
+ fi
118
119
  fi
119
120
 
120
121
  if test "x$platform" = "x"; then
@@ -163,6 +164,9 @@ esac
163
164
 
164
165
  # normalize the architecture we detected
165
166
  case $machine in
167
+ "arm64"|"aarch64")
168
+ machine="aarch64"
169
+ ;;
166
170
  "x86_64"|"amd64"|"x64")
167
171
  machine="x86_64"
168
172
  ;;
@@ -79,14 +79,14 @@ function Get-WebContentOnFullNet {
79
79
  $wc.Headers.Add("user-agent", "<%= user_agent_string %>")
80
80
  $proxy.Address = $env:http_proxy
81
81
  $bypassList = $env:no_proxy
82
-
82
+
83
83
 
84
84
  if($bypassList -ne $null){
85
-
85
+
86
86
  $bypassList = $bypassList.split(",")
87
87
  $proxy.BypassList = $byPassList
88
88
  }
89
-
89
+
90
90
  $wc.Proxy = $proxy
91
91
 
92
92
  if ([string]::IsNullOrEmpty($filepath)) {
@@ -180,9 +180,16 @@ function Get-WMIQuery {
180
180
  param ($class)
181
181
 
182
182
  if(Get-Command -Name Get-CimInstance -ErrorAction SilentlyContinue) {
183
- Get-CimInstance $class
183
+ try{
184
+ $classObject = Get-CimInstance $class
185
+ # If the Get-CimInstance command exists but fails due to security settings, try Get-WmiObject.
186
+ }
187
+ catch {
188
+ $classObject = Get-WmiObject $class
189
+ }
184
190
  }
185
191
  else {
186
- Get-WmiObject $class
192
+ $classObject = Get-WmiObject $class
187
193
  }
194
+ return $classObject
188
195
  }
@@ -30,7 +30,6 @@ module Mixlib
30
30
 
31
31
  SUPPORTED_ARCHITECTURES = %w{
32
32
  aarch64
33
- arm64
34
33
  armv7l
35
34
  i386
36
35
  powerpc
@@ -19,6 +19,7 @@
19
19
 
20
20
  require_relative "util"
21
21
  require_relative "generator/powershell"
22
+ require_relative "dist"
22
23
  require "cgi"
23
24
 
24
25
  module Mixlib
@@ -83,9 +84,9 @@ module Mixlib
83
84
  @sudo_command = "sudo -E"
84
85
 
85
86
  @root = if powershell
86
- "$env:systemdrive\\opscode\\chef"
87
+ "$env:systemdrive\\#{Mixlib::Install::Dist::WINDOWS_INSTALL_DIR}\\#{Mixlib::Install::Dist::DEFAULT_PRODUCT}"
87
88
  else
88
- "/opt/chef"
89
+ "#{Mixlib::Install::Dist::LINUX_INSTALL_DIR}/#{Mixlib::Install::Dist::DEFAULT_PRODUCT}"
89
90
  end
90
91
 
91
92
  parse_opts(opts)
@@ -226,7 +227,7 @@ module Mixlib
226
227
  # Conditionally prefixes a command with a sudo command.
227
228
  #
228
229
  # @param command [String] command to be prefixed
229
- # @return [String] the command, conditionaly prefixed with sudo
230
+ # @return [String] the command, conditionally prefixed with sudo
230
231
  # @api private
231
232
  def sudo(script)
232
233
  use_sudo ? "#{sudo_command} #{script}" : script
@@ -109,7 +109,7 @@ module Mixlib
109
109
  # invoked on a remote instance or locally.
110
110
  #
111
111
  # This method uses the Bourne shell (/bin/sh) to maximize the chance of
112
- # cross platform portability on Unixlike systems.
112
+ # cross platform portability on Unix-like systems.
113
113
  #
114
114
  # @param [String] the command
115
115
  # @return [String] a wrapped command string
@@ -129,7 +129,7 @@ module Mixlib
129
129
  require_relative "version"
130
130
  user_agents = %W{mixlib-install/#{Mixlib::Install::VERSION}}
131
131
  user_agents << headers
132
- # Ensure that if the default user agent is aleady set it doesn't get duplicated
132
+ # Ensure that if the default user agent is already set it doesn't get duplicated
133
133
  user_agents.flatten.compact.uniq.join(" ")
134
134
  end
135
135
 
@@ -162,6 +162,8 @@ module Mixlib
162
162
  case architecture
163
163
  when "amd64"
164
164
  "x86_64"
165
+ when "arm64"
166
+ "aarch64"
165
167
  when "i86pc", "i686"
166
168
  "i386"
167
169
  when "sun4u", "sun4v"
@@ -1,5 +1,5 @@
1
1
  module Mixlib
2
2
  class Install
3
- VERSION = "3.11.28"
3
+ VERSION = "3.12.7"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mixlib-install
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.11.28
4
+ version: 3.12.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thom May
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-03-05 00:00:00.000000000 Z
12
+ date: 2021-02-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mixlib-shellout
@@ -117,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
117
  - !ruby/object:Gem::Version
118
118
  version: '0'
119
119
  requirements: []
120
- rubygems_version: 3.0.3
120
+ rubygems_version: 3.1.4
121
121
  signing_key:
122
122
  specification_version: 4
123
123
  summary: A library for interacting with Chef Software Inc's software distribution