chef-apply 0.5.16 → 0.6.0

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: 40e1ef3f302762a273ab6fcdf15f0102bf0de5199d20cd22df2125a237551ab5
4
- data.tar.gz: f65616505eed1c2afd0393b45709ad683c8372903790408a6c1020003122487a
3
+ metadata.gz: b787c2d47fe3b153a3c8e46613bb62f13b6346a8efad7ae1efe8ece667b3c53c
4
+ data.tar.gz: 398bd9ad985fff7b688ce12983c195daadd93048f226834a7463f141c5f71675
5
5
  SHA512:
6
- metadata.gz: 72f59e61c72e8f8f470b392344e382193a2e51d977d9f9a8687ff9fa86563e2fdfe512bbd2d12d8fb418f5734b229a92b6947fc9a587e10df7630456d0229a47
7
- data.tar.gz: ed03fd5cb7b9cbf2af42cf987a55e2821d8098989ee067f105a6af28413ab50d782c1824e8a5f2e79f43f54063b46a80b20a8b9597a081acded5a13044010317
6
+ metadata.gz: c70ecbd0e62ae60c3fc6e7d9e19e72f44aefa5325f83218f495e6cd42abc5bc7809b76b1a1bf2c06f47375be2f85ad0e4d7bd51a637c6210cc87b9237864e0d7
7
+ data.tar.gz: 6564f0e408919ac1ae2b1e611feeb9bd7517117d1a3a2e33240a973ec3bca0ea4577650e2b0c20fc7ae71229965fad38879b1429425bf9ff84f48f0ee16ea5ec
data/Gemfile CHANGED
@@ -19,18 +19,12 @@ source "https://rubygems.org"
19
19
  gemspec
20
20
 
21
21
  group :development do
22
- gem "chefstyle", "1.7.2"
22
+ gem "chefstyle", "1.7.4"
23
23
  gem "rake", ">= 10.1.0"
24
24
  gem "rspec", "~> 3.0"
25
25
  gem "simplecov"
26
26
  end
27
27
 
28
- group :docs do
29
- gem "yard"
30
- gem "redcarpet"
31
- gem "github-markup"
32
- end
33
-
34
28
  group :debug do
35
29
  gem "pry"
36
30
  gem "pry-byebug"
data/Rakefile CHANGED
@@ -24,13 +24,6 @@ rescue LoadError
24
24
  puts "chefstyle gem is not installed. bundle install first to make sure all dependencies are installed."
25
25
  end
26
26
 
27
- begin
28
- require "yard"
29
- YARD::Rake::YardocTask.new(:docs)
30
- rescue LoadError
31
- puts "yard is not available. bundle install first to make sure all dependencies are installed."
32
- end
33
-
34
27
  task :console do
35
28
  require "irb"
36
29
  require "irb/completion"
@@ -198,7 +198,7 @@ module ChefApply::Action
198
198
  else
199
199
  # cd is shell a builtin, so we'll invoke bash. This also means all commands are executed
200
200
  # with sudo (as long as we are hardcoding our sudo use)
201
- "bash -c 'cd #{working_dir}; chef-client -z --config #{File.join(working_dir, config_file)} --recipe-url #{File.join(working_dir, policy)}'"
201
+ "bash -c 'cd #{working_dir}; /opt/chef/bin/chef-client -z --config #{File.join(working_dir, config_file)} --recipe-url #{File.join(working_dir, policy)}'"
202
202
  end
203
203
  end
204
204
 
@@ -86,6 +86,12 @@ module ChefApply
86
86
  platform_version_compatibility_mode: true,
87
87
  }
88
88
  case platform.name
89
+ when /mac_os_x/
90
+ if platform.release.to_i >= 17
91
+ opts[:platform_version] = "10.13"
92
+ else
93
+ raise NotImplementedError
94
+ end
89
95
  when /windows/
90
96
  opts[:platform] = "windows"
91
97
  when "redhat", "centos"
@@ -32,6 +32,10 @@ module ChefApply
32
32
  13 => Gem::Version.new("13.10.4"),
33
33
  14 => Gem::Version.new("14.1.1"),
34
34
  },
35
+ macos: {
36
+ 13 => Gem::Version.new("13.10.4"),
37
+ 14 => Gem::Version.new("14.1.1"),
38
+ },
35
39
  }.freeze
36
40
 
37
41
  def self.check!(target, check_only)
@@ -139,6 +139,9 @@ module ChefApply
139
139
  when :windows
140
140
  require_relative "target_host/windows"
141
141
  class << self; include ChefApply::TargetHost::Windows; end
142
+ when :macos
143
+ require_relative "target_host/macos"
144
+ class << self; include ChefApply::TargetHost::MacOS; end
142
145
  when :other
143
146
  raise ChefApply::TargetHost::UnsupportedTargetOS.new(platform.name)
144
147
  end
@@ -169,6 +172,8 @@ module ChefApply
169
172
  :windows
170
173
  elsif platform.linux?
171
174
  :linux
175
+ elsif platform.darwin?
176
+ :macos
172
177
  else
173
178
  :other
174
179
  end
@@ -0,0 +1,69 @@
1
+ #
2
+ # Copyright:: Copyright (c) 2017 Chef Software Inc.
3
+ # License:: Apache License, Version 2.0
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+
18
+ module ChefApply
19
+ class TargetHost
20
+ module MacOS
21
+ def omnibus_manifest_path
22
+ # TODO - if habitat install on target, this won't work
23
+ # Note that we can't use File::Join, because that will render for the
24
+ # CURRENT platform - not the platform of the target.
25
+ "/opt/chef/version-manifest.json"
26
+ end
27
+
28
+ def mkdir(path)
29
+ run_command!("mkdir -p #{path}")
30
+ end
31
+
32
+ def chown(path, owner)
33
+ owner ||= user
34
+ run_command!("chown #{owner} '#{path}'")
35
+ nil
36
+ end
37
+
38
+ def install_package(remote_path)
39
+ install_cmd = <<-EOS
40
+ hdiutil detach "/Volumes/chef_software" >/dev/null 2>&1 || true
41
+ hdiutil attach #{remote_path} -mountpoint "/Volumes/chef_software"
42
+ cd / && sudo /usr/sbin/installer -pkg `sudo find "/Volumes/chef_software" -name \\*.pkg` -target /
43
+ EOS
44
+ run_command!(install_cmd)
45
+ nil
46
+ end
47
+
48
+ def del_file(path)
49
+ run_command!("rm -rf #{path}")
50
+ end
51
+
52
+ def del_dir(path)
53
+ del_file(path)
54
+ end
55
+
56
+ def make_temp_dir
57
+ installer_dir = "/tmp/chef-installer"
58
+ run_command!("mkdir -p #{installer_dir}")
59
+ run_command!("chmod 777 #{installer_dir}")
60
+ installer_dir
61
+ end
62
+
63
+ def ws_cache_path
64
+ "/var/chef-workstation"
65
+ end
66
+
67
+ end
68
+ end
69
+ end
@@ -16,5 +16,5 @@
16
16
  #
17
17
 
18
18
  module ChefApply
19
- VERSION = "0.5.16".freeze
19
+ VERSION = "0.6.0".freeze
20
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef-apply
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.16
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chef Software, Inc
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-24 00:00:00.000000000 Z
11
+ date: 2021-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mixlib-cli
@@ -251,6 +251,7 @@ files:
251
251
  - lib/chef_apply/status_reporter.rb
252
252
  - lib/chef_apply/target_host.rb
253
253
  - lib/chef_apply/target_host/linux.rb
254
+ - lib/chef_apply/target_host/macos.rb
254
255
  - lib/chef_apply/target_host/windows.rb
255
256
  - lib/chef_apply/target_resolver.rb
256
257
  - lib/chef_apply/telemeter.rb