chef-config 12.13.37 → 12.14.60
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/chef-config.gemspec +1 -0
- data/lib/chef-config/config.rb +33 -8
- data/lib/chef-config/mixin/fuzzy_hostname_matcher.rb +3 -3
- data/lib/chef-config/package_task.rb +2 -2
- data/lib/chef-config/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8f0310c0333002b81e02894cb156d76fb4766eed
|
4
|
+
data.tar.gz: 9c85269868058c8fe69057ab222cff8fffbf89c2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d1a5082efadbced1482919dc1e1b456e17a94f56b62d9d78f680c2d1b1fff431654c861aeb4739066d2441f73cbb838a436bf84139f2944ed879d2c38feeefd
|
7
|
+
data.tar.gz: 4f78359931c5ad8510ee9f42fc09f82c1be3d700b39f6e752ed63db88252d3909fc160fbdc8201c47f5cf4b244cf82f06f635886fa35e44858481545730c179b
|
data/chef-config.gemspec
CHANGED
@@ -18,6 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.add_dependency "mixlib-shellout", "~> 2.0"
|
19
19
|
spec.add_dependency "mixlib-config", "~> 2.0"
|
20
20
|
spec.add_dependency "fuzzyurl"
|
21
|
+
spec.add_dependency "addressable"
|
21
22
|
|
22
23
|
spec.add_development_dependency "rake", "~> 10.0"
|
23
24
|
|
data/lib/chef-config/config.rb
CHANGED
@@ -30,6 +30,7 @@ require "chef-config/mixin/fuzzy_hostname_matcher"
|
|
30
30
|
|
31
31
|
require "mixlib/shellout"
|
32
32
|
require "uri"
|
33
|
+
require "addressable/uri"
|
33
34
|
require "openssl"
|
34
35
|
|
35
36
|
module ChefConfig
|
@@ -660,6 +661,20 @@ module ChefConfig
|
|
660
661
|
|
661
662
|
# knife configuration data
|
662
663
|
config_context :knife do
|
664
|
+
# XXX: none of these default values are applied to knife (and would create a backcompat
|
665
|
+
# break in knife if this bug was fixed since many of the defaults below are wrong). this appears
|
666
|
+
# to be the start of an attempt to be able to use config_strict_mode true? if so, this approach
|
667
|
+
# is fraught with peril because this namespace is used by every knife plugin in the wild and
|
668
|
+
# we would need to validate every cli option in every knife attribute out there and list them all here.
|
669
|
+
#
|
670
|
+
# based on the way that people may define `knife[:foobar] = "something"` for the knife-foobar
|
671
|
+
# gem plugin i'm pretty certain we can never turn on anything like config_string_mode since
|
672
|
+
# any config value may be a typo or it may be in some gem in some knife plugin we don't know about.
|
673
|
+
#
|
674
|
+
# we do still need to maintain at least one of these so that the knife config hash gets
|
675
|
+
# created.
|
676
|
+
#
|
677
|
+
# this whole situation is deeply unsatisfying.
|
663
678
|
default :ssh_port, nil
|
664
679
|
default :ssh_user, nil
|
665
680
|
default :ssh_attribute, nil
|
@@ -791,6 +806,11 @@ module ChefConfig
|
|
791
806
|
default :normal_attribute_whitelist, nil
|
792
807
|
default :override_attribute_whitelist, nil
|
793
808
|
|
809
|
+
# Pull down all the rubygems versions from rubygems and cache them the first time we do a gem_package or
|
810
|
+
# chef_gem install. This is memory-expensive and will grow without bounds, but will reduce network
|
811
|
+
# round trips.
|
812
|
+
default :rubygems_cache_enabled, false
|
813
|
+
|
794
814
|
config_context :windows_service do
|
795
815
|
# Set `watchdog_timeout` to the number of seconds to wait for a chef-client run
|
796
816
|
# to finish
|
@@ -865,6 +885,13 @@ module ChefConfig
|
|
865
885
|
export_no_proxy(no_proxy) if no_proxy
|
866
886
|
end
|
867
887
|
|
888
|
+
# Character classes for Addressable
|
889
|
+
# See https://www.ietf.org/rfc/rfc3986.txt 3.2.1
|
890
|
+
# The user part may not have a : in it
|
891
|
+
USER = Addressable::URI::CharacterClasses::UNRESERVED + Addressable::URI::CharacterClasses::SUB_DELIMS
|
892
|
+
# The password part may have any valid USERINFO characters
|
893
|
+
PASSWORD = USER + "\\:"
|
894
|
+
|
868
895
|
# Builds a proxy uri and exports it to the appropriate environment variables. Examples:
|
869
896
|
# http://username:password@hostname:port
|
870
897
|
# https://username@hostname:port
|
@@ -879,19 +906,17 @@ module ChefConfig
|
|
879
906
|
path = "#{scheme}://#{path}" unless path.include?("://")
|
880
907
|
# URI.split returns the following parts:
|
881
908
|
# [scheme, userinfo, host, port, registry, path, opaque, query, fragment]
|
882
|
-
|
883
|
-
|
884
|
-
# returns a string for the port.
|
885
|
-
parts[3] = parts[3].to_i if parts[3]
|
909
|
+
uri = Addressable::URI.encode(path, Addressable::URI)
|
910
|
+
|
886
911
|
if user && !user.empty?
|
887
|
-
userinfo = URI.
|
912
|
+
userinfo = Addressable::URI.encode_component(user, USER)
|
888
913
|
if pass
|
889
|
-
userinfo << ":#{URI.
|
914
|
+
userinfo << ":#{Addressable::URI.encode_component(pass, PASSWORD)}"
|
890
915
|
end
|
891
|
-
|
916
|
+
uri.userinfo = userinfo
|
892
917
|
end
|
893
918
|
|
894
|
-
path =
|
919
|
+
path = uri.to_s
|
895
920
|
ENV["#{scheme}_proxy".downcase] = path unless ENV["#{scheme}_proxy".downcase]
|
896
921
|
ENV["#{scheme}_proxy".upcase] = path unless ENV["#{scheme}_proxy".upcase]
|
897
922
|
end
|
@@ -21,9 +21,9 @@ module ChefConfig
|
|
21
21
|
module FuzzyHostnameMatcher
|
22
22
|
|
23
23
|
def fuzzy_hostname_match_any?(hostname, matches)
|
24
|
-
return matches.to_s.split(/\s*,\s*/).compact.any?
|
25
|
-
|
26
|
-
|
24
|
+
return matches.to_s.split(/\s*,\s*/).compact.any? do |m|
|
25
|
+
fuzzy_hostname_match?(hostname, m)
|
26
|
+
end if (hostname != nil) && (matches != nil)
|
27
27
|
|
28
28
|
false
|
29
29
|
end
|
@@ -182,7 +182,7 @@ module ChefConfig
|
|
182
182
|
IO.write(version_file_path, new_version)
|
183
183
|
end
|
184
184
|
|
185
|
-
def update_version_rb
|
185
|
+
def update_version_rb # rubocop:disable Lint/NestedMethodDefinition
|
186
186
|
puts "Updating #{version_rb_path} to include version #{version} ..."
|
187
187
|
contents = <<-VERSION_RB
|
188
188
|
# Copyright:: Copyright 2010-2016, Chef Software, Inc.
|
@@ -223,7 +223,7 @@ end
|
|
223
223
|
IO.write(version_rb_path, contents)
|
224
224
|
end
|
225
225
|
|
226
|
-
def update_gemfile_lock
|
226
|
+
def update_gemfile_lock # rubocop:disable Lint/NestedMethodDefinition
|
227
227
|
if File.exist?(gemfile_lock_path)
|
228
228
|
puts "Updating #{gemfile_lock_path} to include version #{version} ..."
|
229
229
|
contents = IO.read(gemfile_lock_path)
|
data/lib/chef-config/version.rb
CHANGED
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.
|
4
|
+
version: 12.14.60
|
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
|
+
date: 2016-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-shellout
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: addressable
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rake
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|