chef-sugar 5.0.0 → 5.1.12
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 +4 -4
- data/lib/chef/sugar/architecture.rb +137 -132
- data/lib/chef/sugar/deprecation.rb +45 -0
- data/lib/chef/sugar/docker.rb +17 -12
- data/lib/chef/sugar/init.rb +1 -2
- data/lib/chef/sugar/kitchen.rb +17 -12
- data/lib/chef/sugar/node.rb +6 -0
- data/lib/chef/sugar/platform.rb +169 -165
- data/lib/chef/sugar/platform_family.rb +142 -137
- data/lib/chef/sugar/shell.rb +34 -24
- data/lib/chef/sugar/version.rb +1 -1
- data/lib/chef/sugar/virtualization.rb +1 -1
- metadata +8 -78
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94b5873d50542962ae3acca1cec3b6048571e37006eac04fc67c293bb1ee6124
|
4
|
+
data.tar.gz: cf7ed6690f5c776cbcd74cd9c24d7835648f969249639b95aceb4abf92e14393
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cdd5ae08d1a99bbc636ccf8a4a9883fb88517c07c1a0b16331769ce336ec62a86ab3238bfe6d44ef1afc7276bca331086ba9d9ee332878cdfdc5e293fffabe71
|
7
|
+
data.tar.gz: 0a2e1e8b50db3258aec7b4cd482345059da8bb66c912eaf5bb9a7ac12ec0705c10ddf35f48082a58dbfebc4497c2ed7e79f09b5d140b4105d10b66e32eb8f061
|
@@ -19,153 +19,158 @@ class Chef
|
|
19
19
|
module Architecture
|
20
20
|
extend self
|
21
21
|
|
22
|
-
#
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
#
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
#
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
22
|
+
# these helpers have been moved to core-chef
|
23
|
+
if !defined?(Chef::VERSION) || Gem::Requirement.new("< 15.4.70").satisfied_by?(Gem::Version.new(Chef::VERSION))
|
24
|
+
#
|
25
|
+
# Determine if the current architecture is 64-bit
|
26
|
+
#
|
27
|
+
# @return [Boolean]
|
28
|
+
#
|
29
|
+
def _64_bit?(node)
|
30
|
+
%w(amd64 x86_64 ppc64 ppc64le s390x ia64 sparc64 aarch64 arch64 arm64 sun4v sun4u s390x)
|
31
|
+
.include?(node['kernel']['machine']) || ( node['kernel']['bits'] == '64' )
|
32
|
+
end
|
33
|
+
|
34
|
+
#
|
35
|
+
# Determine if the current architecture is 32-bit
|
36
|
+
#
|
37
|
+
# @todo Make this more than "not 64-bit"
|
38
|
+
#
|
39
|
+
# @return [Boolean]
|
40
|
+
#
|
41
|
+
def _32_bit?(node)
|
42
|
+
!_64_bit?(node)
|
43
|
+
end
|
44
|
+
|
45
|
+
#
|
46
|
+
# Determine if the current architecture is i386
|
47
|
+
#
|
48
|
+
# @return [Boolean]
|
49
|
+
#
|
50
|
+
def i386?(node)
|
51
|
+
_32_bit?(node) && intel?(node)
|
52
|
+
end
|
53
|
+
|
54
|
+
#
|
55
|
+
# Determine if the current architecture is Intel.
|
56
|
+
#
|
57
|
+
# @return [Boolean]
|
58
|
+
#
|
59
|
+
def intel?(node)
|
60
|
+
%w(i86pc i386 x86_64 amd64 i686)
|
61
|
+
.include?(node['kernel']['machine'])
|
62
|
+
end
|
63
|
+
|
64
|
+
#
|
65
|
+
# Determine if the current architecture is SPARC.
|
66
|
+
#
|
67
|
+
# @return [Boolean]
|
68
|
+
#
|
69
|
+
def sparc?(node)
|
70
|
+
%w(sun4u sun4v)
|
71
|
+
.include?(node['kernel']['machine'])
|
72
|
+
end
|
73
|
+
|
74
|
+
#
|
75
|
+
# Determine if the current architecture is Powerpc64 Big Endian
|
76
|
+
#
|
77
|
+
# @return [Boolean]
|
78
|
+
#
|
79
|
+
def ppc64?(node)
|
80
|
+
%w(ppc64)
|
81
|
+
.include?(node['kernel']['machine'])
|
82
|
+
end
|
83
|
+
|
84
|
+
#
|
85
|
+
# Determine if the current architecture is Powerpc64 Little Endian
|
86
|
+
#
|
87
|
+
# @return [Boolean]
|
88
|
+
#
|
89
|
+
def ppc64le?(node)
|
90
|
+
%w(ppc64le)
|
91
|
+
.include?(node['kernel']['machine'])
|
92
|
+
end
|
93
|
+
|
94
|
+
#
|
95
|
+
# Determine if the current architecture is PowerPC
|
96
|
+
#
|
97
|
+
# @return [Boolean]
|
98
|
+
#
|
99
|
+
def powerpc?(node)
|
100
|
+
%w(powerpc)
|
101
|
+
.include?(node['kernel']['machine'])
|
102
|
+
end
|
103
|
+
|
104
|
+
#
|
105
|
+
# Determine if the current architecture is ARM with Hard Float
|
106
|
+
#
|
107
|
+
# @return [Boolean]
|
108
|
+
#
|
109
|
+
def armhf?(node)
|
110
|
+
# Add more arm variants as needed here
|
111
|
+
%w(armv6l armv7l)
|
112
|
+
.include?(node['kernel']['machine'])
|
113
|
+
end
|
114
|
+
|
115
|
+
#
|
116
|
+
# Determine if the current architecture is AArch64
|
117
|
+
#
|
118
|
+
# @return [Boolean]
|
119
|
+
#
|
120
|
+
def aarch64?(node)
|
121
|
+
# Add more arm variants as needed here
|
122
|
+
%w(aarch64)
|
123
|
+
.include?(node['kernel']['machine'])
|
124
|
+
end
|
125
|
+
|
126
|
+
#
|
127
|
+
# Determine if the current architecture is s390x
|
128
|
+
#
|
129
|
+
# @return [Boolean]
|
130
|
+
#
|
131
|
+
def s390x?(node)
|
132
|
+
%w(s390x)
|
133
|
+
.include?(node['kernel']['machine'])
|
134
|
+
end
|
132
135
|
end
|
133
136
|
end
|
134
137
|
|
135
138
|
module DSL
|
136
|
-
|
137
|
-
|
139
|
+
if !defined?(Chef::VERSION) || Gem::Requirement.new("< 15.4.70").satisfied_by?(Gem::Version.new(Chef::VERSION))
|
140
|
+
# @see Chef::Sugar::Architecture#_64_bit?
|
141
|
+
def _64_bit?; Chef::Sugar::Architecture._64_bit?(node); end
|
138
142
|
|
139
|
-
|
140
|
-
|
143
|
+
# @see Chef::Sugar::Architecture#_32_bit?
|
144
|
+
def _32_bit?; Chef::Sugar::Architecture._32_bit?(node); end
|
141
145
|
|
142
|
-
|
143
|
-
|
146
|
+
# @see Chef::Sugar::Architecture#intel?
|
147
|
+
def i386?; Chef::Sugar::Architecture.i386?(node); end
|
144
148
|
|
145
|
-
|
146
|
-
|
149
|
+
# @see Chef::Sugar::Architecture#intel?
|
150
|
+
def intel?; Chef::Sugar::Architecture.intel?(node); end
|
147
151
|
|
148
|
-
|
149
|
-
|
152
|
+
# @see Chef::Sugar::Architecture#sparc?
|
153
|
+
def sparc?; Chef::Sugar::Architecture.sparc?(node); end
|
150
154
|
|
151
|
-
|
152
|
-
|
155
|
+
# @see Chef::Sugar::Architecture#ppc64?
|
156
|
+
def ppc64?; Chef::Sugar::Architecture.ppc64?(node); end
|
153
157
|
|
154
|
-
|
155
|
-
|
158
|
+
# @see Chef::Sugar::Architecture#ppc64le?
|
159
|
+
def ppc64le?; Chef::Sugar::Architecture.ppc64le?(node); end
|
156
160
|
|
157
|
-
|
158
|
-
|
161
|
+
# @see Chef::Sugar::Architecture#powerpc?
|
162
|
+
def powerpc?; Chef::Sugar::Architecture.powerpc?(node); end
|
159
163
|
|
160
|
-
|
161
|
-
|
164
|
+
# @see Chef::Sugar::Architecture#arm?
|
165
|
+
def armhf?; Chef::Sugar::Architecture.armhf?(node); end
|
162
166
|
|
163
|
-
|
164
|
-
|
167
|
+
# @see Chef::Sugar::Architecture#aarch64?
|
168
|
+
def aarch64?; Chef::Sugar::Architecture.aarch64?(node); end
|
165
169
|
|
166
|
-
|
167
|
-
|
170
|
+
# @see Chef::Sugar::Architecture#s390x?
|
171
|
+
def s390x?; Chef::Sugar::Architecture.s390x?(node); end
|
168
172
|
|
173
|
+
end
|
169
174
|
end
|
170
175
|
end
|
171
176
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
#
|
2
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
3
|
+
# you may not use this file except in compliance with the License.
|
4
|
+
# You may obtain a copy of the License at
|
5
|
+
#
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
7
|
+
#
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
11
|
+
# See the License for the specific language governing permissions and
|
12
|
+
# limitations under the License.
|
13
|
+
#
|
14
|
+
|
15
|
+
if defined?(Chef::Deprecated::Base)
|
16
|
+
class Chef
|
17
|
+
class Deprecated
|
18
|
+
class ChefSugar < Base
|
19
|
+
def id
|
20
|
+
28
|
21
|
+
end
|
22
|
+
def target
|
23
|
+
"chef_sugar.html"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
class Chef
|
31
|
+
module Sugar
|
32
|
+
module Deprecation
|
33
|
+
if defined?(Chef::Deprecated::Base)
|
34
|
+
def deprecated(message)
|
35
|
+
Chef.deprecated(:chef_sugar, message)
|
36
|
+
end
|
37
|
+
else
|
38
|
+
def deprecated(message)
|
39
|
+
Chef::Log.warn(message)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
extend self
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/lib/chef/sugar/docker.rb
CHANGED
@@ -19,22 +19,27 @@ class Chef
|
|
19
19
|
module Docker
|
20
20
|
extend self
|
21
21
|
|
22
|
-
#
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
22
|
+
# these helpers have been moved to core chef
|
23
|
+
if !defined?(Chef::VERSION) || Gem::Requirement.new("< 15.4.70").satisfied_by?(Gem::Version.new(Chef::VERSION))
|
24
|
+
#
|
25
|
+
# Returns true if the current node is a docker container.
|
26
|
+
#
|
27
|
+
# @param [Chef::Node] node
|
28
|
+
# the node to check
|
29
|
+
#
|
30
|
+
# @return [Boolean]
|
31
|
+
#
|
32
|
+
def docker?(node)
|
33
|
+
File.exist?('/.dockerinit') || File.exist?('/.dockerenv')
|
34
|
+
end
|
32
35
|
end
|
33
36
|
end
|
34
37
|
|
35
38
|
module DSL
|
36
|
-
|
37
|
-
|
39
|
+
if !defined?(Chef::VERSION) || Gem::Requirement.new("< 15.4.70").satisfied_by?(Gem::Version.new(Chef::VERSION))
|
40
|
+
# @see Chef::Sugar::Docker#docker?
|
41
|
+
def docker?; Chef::Sugar::Docker.docker?(node); end
|
42
|
+
end
|
38
43
|
end
|
39
44
|
end
|
40
45
|
end
|
data/lib/chef/sugar/init.rb
CHANGED
data/lib/chef/sugar/kitchen.rb
CHANGED
@@ -19,22 +19,27 @@ class Chef
|
|
19
19
|
module Kitchen
|
20
20
|
extend self
|
21
21
|
|
22
|
-
#
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
22
|
+
# these helpers have been moved to core-chef
|
23
|
+
if !defined?(Chef::VERSION) || Gem::Requirement.new("< 15.4.70").satisfied_by?(Gem::Version.new(Chef::VERSION))
|
24
|
+
#
|
25
|
+
# Returns true if the current node is provisioned by Test Kitchen.
|
26
|
+
#
|
27
|
+
# @param [Chef::Node] node
|
28
|
+
# the node to check
|
29
|
+
#
|
30
|
+
# @return [Boolean]
|
31
|
+
#
|
32
|
+
def kitchen?(node)
|
33
|
+
!ENV['TEST_KITCHEN'].nil?
|
34
|
+
end
|
32
35
|
end
|
33
36
|
end
|
34
37
|
|
35
38
|
module DSL
|
36
|
-
|
37
|
-
|
39
|
+
if !defined?(Chef::VERSION) || Gem::Requirement.new("< 15.4.70").satisfied_by?(Gem::Version.new(Chef::VERSION))
|
40
|
+
# @see Chef::Sugar::Kitchen#kitchen?
|
41
|
+
def kitchen?; Chef::Sugar::Kitchen.kitchen?(node); end
|
42
|
+
end
|
38
43
|
end
|
39
44
|
end
|
40
45
|
end
|
data/lib/chef/sugar/node.rb
CHANGED
@@ -14,6 +14,8 @@
|
|
14
14
|
# limitations under the License.
|
15
15
|
#
|
16
16
|
|
17
|
+
require_relative "deprecation"
|
18
|
+
|
17
19
|
class Chef
|
18
20
|
class Node
|
19
21
|
class AttributeDoesNotExistError < StandardError
|
@@ -36,6 +38,7 @@ EOH
|
|
36
38
|
# @return [Boolean]
|
37
39
|
#
|
38
40
|
def in?(environment)
|
41
|
+
Chef::Sugar::Deprecation.deprecated "the chef-sugar node.in? method is deprecated"
|
39
42
|
environment === chef_environment
|
40
43
|
end
|
41
44
|
|
@@ -49,6 +52,7 @@ EOH
|
|
49
52
|
# @see [Node#deep_fetch!]
|
50
53
|
#
|
51
54
|
def deep_fetch(*keys)
|
55
|
+
Chef::Sugar::Deprecation.deprecated "the chef-sugar deep_fetch method is deprecated and should be replaced by node.read"
|
52
56
|
deep_fetch!(*keys)
|
53
57
|
rescue NoMethodError, AttributeDoesNotExistError
|
54
58
|
nil
|
@@ -71,6 +75,7 @@ EOH
|
|
71
75
|
# @return [Object]
|
72
76
|
#
|
73
77
|
def deep_fetch!(*keys)
|
78
|
+
Chef::Sugar::Deprecation.deprecated "the chef-sugar deep_fetch method is deprecated and should be replaced by node.read!"
|
74
79
|
keys.map!(&:to_s)
|
75
80
|
|
76
81
|
keys.inject(attributes.to_hash) do |hash, key|
|
@@ -133,6 +138,7 @@ EOH
|
|
133
138
|
# to prevent accidential method chaining if the block isn't closed
|
134
139
|
#
|
135
140
|
def namespace(*args, &block)
|
141
|
+
Chef::Sugar::Deprecation.deprecated "the chef-sugar attribute namespace setting is deprecated, please use traditional chef attribute notation"
|
136
142
|
@namespace_options = namespace_options.merge(args.last.is_a?(Hash) ? args.pop : {})
|
137
143
|
|
138
144
|
keys = args.map(&:to_s)
|