chef-config 12.16.42 → 12.17.44

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1634767453969e0627f8d7dfc6a07804a7062842
4
- data.tar.gz: f51e8c8dcf909ae9f433973147d0fdf2e1c084f0
3
+ metadata.gz: e5c7dce34f87ebf0e8884f03e9118dcb77afb169
4
+ data.tar.gz: b46529667bbff8dcb5f16c8caa4dc65c4dcdbb80
5
5
  SHA512:
6
- metadata.gz: d7fd44e43699b42b8657afaefbb5672915213a811dd7c9ea811bf00796a17412acace7feaddb804e137a7478c343ceea9cb7aceda2597a6919ced00878c59d17
7
- data.tar.gz: 09f7056b8ed2054346e5618306c9a2b14e755ba677e0c08279d7c635eb373fc1d8073cf33b0e0d4f3519f7fdb5d2ca07c4852998ef6f27b39bb85c0a3c96ab50
6
+ metadata.gz: bd808dfda9ba35ef69775abe07e45718b8937f1d8f8953903e57b78e59f7a5b4188e98415c25878a1bb168fced1ab35e8febe1e68793bccce5d0ae85adf356f9
7
+ data.tar.gz: b9fac9c752ecef7ca23ac81b8c7cc35024a8fec7c861f952bae7846b40f2ebfddd45a675040ea11e09e3733d91816b872b6e19e3d08f614f7fe1ff80d4bc7c39
@@ -56,13 +56,24 @@ module ChefConfig
56
56
  path = PathHelper.cleanpath(path)
57
57
  if ChefConfig.windows?
58
58
  # turns \etc\chef\client.rb and \var\chef\client.rb into C:/chef/client.rb
59
- if env["SYSTEMDRIVE"] && path[0] == '\\' && path.split('\\')[2] == "chef"
60
- path = PathHelper.join(env["SYSTEMDRIVE"], path.split('\\', 3)[2])
59
+ # Some installations will be on different drives so use the drive that
60
+ # the expanded path to __FILE__ is found.
61
+ drive = windows_installation_drive
62
+ if drive && path[0] == '\\' && path.split('\\')[2] == "chef"
63
+ path = PathHelper.join(drive, path.split('\\', 3)[2])
61
64
  end
62
65
  end
63
66
  path
64
67
  end
65
68
 
69
+ def self.windows_installation_drive
70
+ if ChefConfig.windows?
71
+ drive = File.expand_path(__FILE__).split("/", 2)[0]
72
+ drive = ENV["SYSTEMDRIVE"] if drive.to_s == ""
73
+ drive
74
+ end
75
+ end
76
+
66
77
  def self.add_formatter(name, file_path = nil)
67
78
  formatters << [name, file_path]
68
79
  end
@@ -1042,6 +1053,12 @@ module ChefConfig
1042
1053
 
1043
1054
  default :rubygems_url, "https://rubygems.org"
1044
1055
 
1056
+ # This controls the behavior of resource cloning (and CHEF-3694 warnings). For Chef < 12 the behavior
1057
+ # has been that this is 'true', in Chef 13 this will change to false. Setting this to 'true' in Chef
1058
+ # 13 is not a viable or supported migration strategy since Chef 13 community cookbooks will be expected
1059
+ # to break with this setting set to 'true'.
1060
+ default :resource_cloning, true
1061
+
1045
1062
  # If installed via an omnibus installer, this gives the path to the
1046
1063
  # "embedded" directory which contains all of the software packaged with
1047
1064
  # omnibus. This is used to locate the cacert.pem file on windows.
@@ -21,7 +21,7 @@
21
21
 
22
22
  module ChefConfig
23
23
  CHEFCONFIG_ROOT = File.expand_path("../..", __FILE__)
24
- VERSION = "12.16.42"
24
+ VERSION = "12.17.44"
25
25
  end
26
26
 
27
27
  #
@@ -203,16 +203,41 @@ RSpec.describe ChefConfig::Config do
203
203
  before :each do
204
204
  allow(ChefConfig).to receive(:windows?).and_return(is_windows)
205
205
  end
206
-
206
+ describe "class method: windows_installation_drive" do
207
+ before do
208
+ allow(File).to receive(:expand_path).and_return("D:/Path/To/Executable")
209
+ end
210
+ if is_windows
211
+ it "should return D: on a windows system" do
212
+ expect(ChefConfig::Config.windows_installation_drive).to eq("D:")
213
+ end
214
+ else
215
+ it "should return nil on a non-windows system" do
216
+ expect(ChefConfig::Config.windows_installation_drive).to eq(nil)
217
+ end
218
+ end
219
+ end
207
220
  describe "class method: platform_specific_path" do
221
+ before do
222
+ allow(ChefConfig::Config).to receive(:env).and_return({ "SYSTEMDRIVE" => "C:" })
223
+ end
208
224
  if is_windows
209
- it "should return a windows path on windows systems" do
210
- path = "/etc/chef/cookbooks"
211
- allow(ChefConfig::Config).to receive(:env).and_return({ "SYSTEMDRIVE" => "C:" })
212
- # match on a regex that looks for the base path with an optional
213
- # system drive at the beginning (c:)
214
- # system drive is not hardcoded b/c it can change and b/c it is not present on linux systems
215
- expect(ChefConfig::Config.platform_specific_path(path)).to eq("C:\\chef\\cookbooks")
225
+ path = "/etc/chef/cookbooks"
226
+ context "a windows system with chef installed on C: drive" do
227
+ before do
228
+ allow(ChefConfig::Config).to receive(:windows_installation_drive).and_return("C:")
229
+ end
230
+ it "should return a windows path rooted in C:" do
231
+ expect(ChefConfig::Config.platform_specific_path(path)).to eq("C:\\chef\\cookbooks")
232
+ end
233
+ end
234
+ context "a windows system with chef installed on D: drive" do
235
+ before do
236
+ allow(ChefConfig::Config).to receive(:windows_installation_drive).and_return("D:")
237
+ end
238
+ it "should return a windows path rooted in D:" do
239
+ expect(ChefConfig::Config.platform_specific_path(path)).to eq("D:\\chef\\cookbooks")
240
+ end
216
241
  end
217
242
  else
218
243
  it "should return given path on non-windows systems" do
@@ -345,6 +370,11 @@ RSpec.describe ChefConfig::Config do
345
370
  end
346
371
 
347
372
  describe "ChefConfig::Config[:cache_path]" do
373
+ before do
374
+ if is_windows
375
+ allow(File).to receive(:expand_path).and_return("#{ChefConfig::Config.env["SYSTEMDRIVE"]}/Path/To/Executable")
376
+ end
377
+ end
348
378
  context "when /var/chef exists and is accessible" do
349
379
  it "defaults to /var/chef" do
350
380
  allow(ChefConfig::Config).to receive(:path_accessible?).with(to_platform("/var/chef")).and_return(true)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef-config
3
3
  version: !ruby/object:Gem::Version
4
- version: 12.16.42
4
+ version: 12.17.44
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Jacob
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-04 00:00:00.000000000 Z
11
+ date: 2016-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mixlib-shellout