chef 12.15.19-universal-mingw32 → 12.16.42-universal-mingw32
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/Gemfile +0 -1
- data/VERSION +1 -1
- data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +3 -1
- data/acceptance/Gemfile.lock +14 -14
- data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +3 -11
- data/distro/common/html/knife_bootstrap.html +1 -1
- data/distro/common/man/man1/README.md +2 -2
- data/distro/common/man/man1/knife-client.1 +1 -1
- data/lib/chef/application.rb +7 -15
- data/lib/chef/application/client.rb +2 -2
- data/lib/chef/application/solo.rb +1 -1
- data/lib/chef/chef_class.rb +1 -0
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +3 -7
- data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbook_dir.rb +1 -1
- data/lib/chef/data_collector.rb +83 -9
- data/lib/chef/data_collector/messages.rb +2 -1
- data/lib/chef/dsl/core.rb +1 -1
- data/lib/chef/dsl/declare_resource.rb +10 -4
- data/lib/chef/dsl/method_missing.rb +1 -1
- data/lib/chef/dsl/recipe.rb +1 -1
- data/lib/chef/dsl/universal.rb +1 -1
- data/lib/chef/event_dispatch/base.rb +3 -0
- data/lib/chef/http.rb +3 -4
- data/lib/chef/knife.rb +20 -2
- data/lib/chef/knife/core/generic_presenter.rb +18 -4
- data/lib/chef/knife/node_show.rb +0 -5
- data/lib/chef/knife/osc_user_show.rb +0 -1
- data/lib/chef/knife/ssl_fetch.rb +9 -5
- data/lib/chef/mixin/powershell_out.rb +1 -1
- data/lib/chef/mixin/shell_out.rb +1 -1
- data/lib/chef/node.rb +1 -5
- data/lib/chef/node/attribute.rb +70 -98
- data/lib/chef/node/attribute_collections.rb +28 -19
- data/lib/chef/node/common_api.rb +0 -6
- data/lib/chef/node/immutable_collections.rb +16 -79
- data/lib/chef/node/mixin/deep_merge_cache.rb +61 -0
- data/lib/chef/node/mixin/immutablize_array.rb +67 -0
- data/lib/chef/node/mixin/immutablize_hash.rb +54 -0
- data/lib/chef/node/mixin/state_tracking.rb +93 -0
- data/lib/chef/property.rb +4 -4
- data/lib/chef/provider/cron.rb +1 -1
- data/lib/chef/provider/group/suse.rb +23 -4
- data/lib/chef/provider/package.rb +43 -5
- data/lib/chef/provider/package/apt.rb +20 -0
- data/lib/chef/provider/package/windows/exe.rb +4 -3
- data/lib/chef/provider/package/windows/msi.rb +4 -3
- data/lib/chef/provider/package/yum.rb +20 -0
- data/lib/chef/provider/package/zypper.rb +20 -0
- data/lib/chef/provider/ruby_block.rb +1 -1
- data/lib/chef/provider/service/upstart.rb +25 -9
- data/lib/chef/provider/user.rb +4 -6
- data/lib/chef/provider/user/dscl.rb +8 -3
- data/lib/chef/provider/user/solaris.rb +5 -12
- data/lib/chef/resource.rb +19 -0
- data/lib/chef/resource/file.rb +1 -1
- data/lib/chef/resource/package.rb +1 -1
- data/lib/chef/resource/scm.rb +1 -7
- data/lib/chef/resource/yum_repository.rb +1 -1
- data/lib/chef/rest.rb +1 -0
- data/lib/chef/run_context.rb +12 -0
- data/lib/chef/version.rb +1 -1
- data/spec/data/trusted_certs/example_no_cn.crt +36 -0
- data/spec/functional/resource/group_spec.rb +1 -0
- data/spec/functional/resource/user/useradd_spec.rb +4 -2
- data/spec/integration/knife/data_bag_create_spec.rb +0 -3
- data/spec/integration/knife/environment_show_spec.rb +24 -4
- data/spec/integration/knife/node_environment_set_spec.rb +4 -1
- data/spec/integration/recipes/accumulator_spec.rb +232 -0
- data/spec/integration/recipes/resource_action_spec.rb +1 -1
- data/spec/spec_helper.rb +2 -2
- data/spec/support/shared/context/client.rb +12 -3
- data/spec/support/shared/integration/app_server_support.rb +1 -1
- data/spec/support/shared/integration/knife_support.rb +4 -1
- data/spec/unit/data_collector/messages_spec.rb +2 -0
- data/spec/unit/data_collector_spec.rb +158 -21
- data/spec/unit/http_spec.rb +1 -1
- data/spec/unit/knife/core/gem_glob_loader_spec.rb +1 -1
- data/spec/unit/knife/core/ui_spec.rb +10 -0
- data/spec/unit/knife/ssl_fetch_spec.rb +38 -0
- data/spec/unit/knife_spec.rb +31 -0
- data/spec/unit/mixin/powershell_out_spec.rb +25 -1
- data/spec/unit/node/attribute_spec.rb +46 -1
- data/spec/unit/node/vivid_mash_spec.rb +27 -89
- data/spec/unit/node_spec.rb +134 -3
- data/spec/unit/provider/deploy_spec.rb +1 -1
- data/spec/unit/provider/group/suse_spec.rb +90 -0
- data/spec/unit/provider/package/apt_spec.rb +22 -0
- data/spec/unit/provider/package/windows/msi_spec.rb +13 -4
- data/spec/unit/provider/package/windows_spec.rb +3 -3
- data/spec/unit/provider/package/yum_spec.rb +18 -0
- data/spec/unit/provider/package/zypper_spec.rb +64 -0
- data/spec/unit/provider/package_spec.rb +58 -0
- data/spec/unit/provider/remote_file/content_spec.rb +1 -1
- data/spec/unit/provider/service/upstart_service_spec.rb +13 -6
- data/spec/unit/provider/user/solaris_spec.rb +36 -9
- data/spec/unit/provider/user_spec.rb +6 -0
- data/spec/unit/resource/apt_repository_spec.rb +1 -1
- metadata +12 -5
@@ -1,7 +1,7 @@
|
|
1
1
|
#
|
2
2
|
# Author:: Adam Jacob (<adam@chef.io>)
|
3
3
|
# Author:: AJ Christensen (<aj@chef.io>)
|
4
|
-
# Copyright:: Copyright 2009-2016,
|
4
|
+
# Copyright:: Copyright 2009-2016, Chef Software, Inc.
|
5
5
|
# License:: Apache License, Version 2.0
|
6
6
|
#
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -26,6 +26,9 @@ class Chef
|
|
26
26
|
class Service
|
27
27
|
class Upstart < Chef::Provider::Service::Simple
|
28
28
|
|
29
|
+
# to maintain a local state of service across restart's internal calls
|
30
|
+
attr_accessor :upstart_service_running
|
31
|
+
|
29
32
|
provides :service, platform_family: "debian", override: true do |node|
|
30
33
|
Chef::Platform::ServiceHelpers.service_resource_providers.include?(:upstart)
|
31
34
|
end
|
@@ -110,23 +113,23 @@ class Chef
|
|
110
113
|
|
111
114
|
begin
|
112
115
|
if shell_out!(@new_resource.status_command).exitstatus == 0
|
113
|
-
@
|
116
|
+
@upstart_service_running = true
|
114
117
|
end
|
115
118
|
rescue
|
116
119
|
@command_success = false
|
117
|
-
@
|
120
|
+
@upstart_service_running = false
|
118
121
|
nil
|
119
122
|
end
|
120
123
|
else
|
121
124
|
begin
|
122
125
|
if upstart_goal_state == "start"
|
123
|
-
@
|
126
|
+
@upstart_service_running = true
|
124
127
|
else
|
125
|
-
@
|
128
|
+
@upstart_service_running = false
|
126
129
|
end
|
127
130
|
rescue Chef::Exceptions::Exec
|
128
131
|
@command_success = false
|
129
|
-
@
|
132
|
+
@upstart_service_running = false
|
130
133
|
nil
|
131
134
|
end
|
132
135
|
end
|
@@ -153,13 +156,14 @@ class Chef
|
|
153
156
|
@current_resource.enabled false
|
154
157
|
end
|
155
158
|
|
159
|
+
@current_resource.running @upstart_service_running
|
156
160
|
@current_resource
|
157
161
|
end
|
158
162
|
|
159
163
|
def start_service
|
160
164
|
# Calling start on a service that is already started will return 1
|
161
165
|
# Our 'goal' when we call start is to ensure the service is started
|
162
|
-
if @
|
166
|
+
if @upstart_service_running
|
163
167
|
Chef::Log.debug("#{@new_resource} already running, not starting")
|
164
168
|
else
|
165
169
|
if @new_resource.start_command
|
@@ -168,12 +172,14 @@ class Chef
|
|
168
172
|
shell_out_with_systems_locale!("/sbin/start #{@job}")
|
169
173
|
end
|
170
174
|
end
|
175
|
+
|
176
|
+
@upstart_service_running = true
|
171
177
|
end
|
172
178
|
|
173
179
|
def stop_service
|
174
180
|
# Calling stop on a service that is already stopped will return 1
|
175
181
|
# Our 'goal' when we call stop is to ensure the service is stopped
|
176
|
-
unless @
|
182
|
+
unless @upstart_service_running
|
177
183
|
Chef::Log.debug("#{@new_resource} not running, not stopping")
|
178
184
|
else
|
179
185
|
if @new_resource.stop_command
|
@@ -182,6 +188,8 @@ class Chef
|
|
182
188
|
shell_out_with_systems_locale!("/sbin/stop #{@job}")
|
183
189
|
end
|
184
190
|
end
|
191
|
+
|
192
|
+
@upstart_service_running = false
|
185
193
|
end
|
186
194
|
|
187
195
|
def restart_service
|
@@ -189,13 +197,19 @@ class Chef
|
|
189
197
|
super
|
190
198
|
# Upstart always provides restart functionality so we don't need to mimic it with stop/sleep/start.
|
191
199
|
# Older versions of upstart would fail on restart if the service was currently stopped, check for that. LP:430883
|
200
|
+
# But for safe working of latest upstart job config being loaded, 'restart' can't be used as per link
|
201
|
+
# http://upstart.ubuntu.com/cookbook/#restart (it doesn't uses latest jon config from disk but retains old)
|
192
202
|
else
|
193
|
-
if @
|
194
|
-
|
203
|
+
if @upstart_service_running
|
204
|
+
stop_service
|
205
|
+
sleep 1
|
206
|
+
start_service
|
195
207
|
else
|
196
208
|
start_service
|
197
209
|
end
|
198
210
|
end
|
211
|
+
|
212
|
+
@upstart_service_running = true
|
199
213
|
end
|
200
214
|
|
201
215
|
def reload_service
|
@@ -205,6 +219,8 @@ class Chef
|
|
205
219
|
# upstart >= 0.6.3-4 supports reload (HUP)
|
206
220
|
shell_out_with_systems_locale!("/sbin/reload #{@job}")
|
207
221
|
end
|
222
|
+
|
223
|
+
@upstart_service_running = true
|
208
224
|
end
|
209
225
|
|
210
226
|
# https://bugs.launchpad.net/upstart/+bug/94065
|
data/lib/chef/provider/user.rb
CHANGED
@@ -113,15 +113,13 @@ class Chef
|
|
113
113
|
# <true>:: If a change is required
|
114
114
|
# <false>:: If the users are identical
|
115
115
|
def compare_user
|
116
|
-
|
117
|
-
!@new_resource.send(user_attrib).nil? && @new_resource.send(user_attrib) != @current_resource.send(user_attrib)
|
118
|
-
end
|
116
|
+
return true if !@new_resource.home.nil? && Pathname.new(@new_resource.home).cleanpath != Pathname.new(@current_resource.home).cleanpath
|
119
117
|
|
120
|
-
|
121
|
-
!@new_resource.send(user_attrib).nil? && @new_resource.send(user_attrib).to_s != @current_resource.send(user_attrib).to_s
|
118
|
+
[ :comment, :shell, :password, :uid, :gid ].each do |user_attrib|
|
119
|
+
return true if !@new_resource.send(user_attrib).nil? && @new_resource.send(user_attrib).to_s != @current_resource.send(user_attrib).to_s
|
122
120
|
end
|
123
121
|
|
124
|
-
|
122
|
+
false
|
125
123
|
end
|
126
124
|
|
127
125
|
def action_create
|
@@ -51,6 +51,11 @@ class Chef
|
|
51
51
|
provides :dscl_user
|
52
52
|
provides :user, os: "darwin"
|
53
53
|
|
54
|
+
# Just-in-case a recipe calls the user dscl provider without specifying
|
55
|
+
# a gid property. Avoids chown issues in move_home when the manage_home
|
56
|
+
# property is in use. #5393
|
57
|
+
STAFF_GROUP_ID = 20
|
58
|
+
|
54
59
|
def define_resource_requirements
|
55
60
|
super
|
56
61
|
|
@@ -264,12 +269,12 @@ user password using shadow hash.")
|
|
264
269
|
#
|
265
270
|
# Sets the group id for the user using dscl. Fails if a group doesn't
|
266
271
|
# exist on the system with given group id. If `gid` is not specified, it
|
267
|
-
# sets a default Mac user group "staff", with id 20
|
272
|
+
# sets a default Mac user group "staff", with id 20 using the CONSTANT
|
268
273
|
#
|
269
274
|
def dscl_set_gid
|
270
275
|
if new_resource.gid.nil?
|
271
276
|
# XXX: mutates the new resource
|
272
|
-
new_resource.gid(
|
277
|
+
new_resource.gid(STAFF_GROUP_ID)
|
273
278
|
elsif !new_resource.gid.to_s.match(/^\d+$/)
|
274
279
|
begin
|
275
280
|
possible_gid = run_dscl("read /Groups/#{new_resource.gid} PrimaryGroupID").split(" ").last
|
@@ -329,7 +334,7 @@ user password using shadow hash.")
|
|
329
334
|
|
330
335
|
def move_home
|
331
336
|
Chef::Log.debug("#{new_resource} moving #{self} home from #{current_resource.home} to #{new_resource.home}")
|
332
|
-
|
337
|
+
new_resource.gid(STAFF_GROUP_ID) if new_resource.gid.nil?
|
333
338
|
src = current_resource.home
|
334
339
|
FileUtils.mkdir_p(new_resource.home)
|
335
340
|
files = ::Dir.glob("#{Chef::Util::PathHelper.escape_glob_dir(src)}/*", ::File::FNM_DOTMATCH) - ["#{src}/.", "#{src}/.."]
|
@@ -46,21 +46,14 @@ class Chef
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def check_lock
|
49
|
-
|
49
|
+
user = IO.read(@password_file).match(/^#{Regexp.escape(@new_resource.username)}:([^:]*):/)
|
50
50
|
|
51
|
-
#
|
52
|
-
|
53
|
-
return nil if shadow_line.nil?
|
51
|
+
# If we're in whyrun mode, and the user is not created, we assume it will be
|
52
|
+
return false if whyrun_mode? && user.nil?
|
54
53
|
|
55
|
-
#
|
56
|
-
fields = shadow_line.split(":")
|
54
|
+
raise Chef::Exceptions::User, "Cannot determine if #{@new_resource} is locked!" if user.nil?
|
57
55
|
|
58
|
-
|
59
|
-
# so look for LK at the beginning of the shadow entry
|
60
|
-
# optionally surrounded by '*'
|
61
|
-
@locked = !!fields[1].match(/^\*?LK\*?/)
|
62
|
-
|
63
|
-
@locked
|
56
|
+
@locked = user[1].start_with?("*LK*")
|
64
57
|
end
|
65
58
|
|
66
59
|
def lock_user
|
data/lib/chef/resource.rb
CHANGED
@@ -180,6 +180,25 @@ class Chef
|
|
180
180
|
# Alias for normal assigment syntax.
|
181
181
|
alias_method :action=, :action
|
182
182
|
|
183
|
+
#
|
184
|
+
# Force a delayed notification into this resource's run_context.
|
185
|
+
#
|
186
|
+
# This should most likely be paired with action :nothing
|
187
|
+
#
|
188
|
+
# @param arg [Array[Symbol], Symbol] A list of actions (e.g. `:create`)
|
189
|
+
#
|
190
|
+
def delayed_action(arg)
|
191
|
+
arg = Array(arg).map(&:to_sym)
|
192
|
+
arg.map do |action|
|
193
|
+
validate(
|
194
|
+
{ action: action },
|
195
|
+
{ action: { kind_of: Symbol, equal_to: allowed_actions } }
|
196
|
+
)
|
197
|
+
# the resource effectively sends a delayed notification to itself
|
198
|
+
run_context.add_delayed_action(Notification.new(self, action, self))
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
183
202
|
#
|
184
203
|
# Sets up a notification that will run a particular action on another resource
|
185
204
|
# if and when *this* resource is updated by an action.
|
data/lib/chef/resource/file.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#
|
2
2
|
# Author:: Adam Jacob (<adam@chef.io>)
|
3
3
|
# Author:: Seth Chisamore (<schisamo@chef.io>)
|
4
|
-
# Copyright:: Copyright 2008-2016
|
4
|
+
# Copyright:: Copyright 2008-2016 Chef Software, Inc.
|
5
5
|
# License:: Apache License, Version 2.0
|
6
6
|
#
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -25,7 +25,7 @@ class Chef
|
|
25
25
|
resource_name :package
|
26
26
|
|
27
27
|
default_action :install
|
28
|
-
allowed_actions :install, :upgrade, :remove, :purge, :reconfig
|
28
|
+
allowed_actions :install, :upgrade, :remove, :purge, :reconfig, :lock, :unlock
|
29
29
|
|
30
30
|
def initialize(name, *args)
|
31
31
|
# We capture name here, before it gets coerced to name
|
data/lib/chef/resource/scm.rb
CHANGED
@@ -89,13 +89,7 @@ class Chef
|
|
89
89
|
)
|
90
90
|
end
|
91
91
|
|
92
|
-
|
93
|
-
set_or_return(
|
94
|
-
:svn_password,
|
95
|
-
arg,
|
96
|
-
:kind_of => String
|
97
|
-
)
|
98
|
-
end
|
92
|
+
property :svn_password, String, sensitive: true, desired_state: false
|
99
93
|
|
100
94
|
def svn_arguments(arg = nil)
|
101
95
|
@svn_arguments, arg = nil, nil if arg == false
|
@@ -57,7 +57,7 @@ class Chef
|
|
57
57
|
property :password, String, regex: /.*/
|
58
58
|
property :repo_gpgcheck, [TrueClass, FalseClass]
|
59
59
|
property :report_instanceid, [TrueClass, FalseClass]
|
60
|
-
property :repositoryid, String, regex: /.*/,
|
60
|
+
property :repositoryid, String, regex: /.*/, name_property: true
|
61
61
|
property :sensitive, [TrueClass, FalseClass], default: false
|
62
62
|
property :skip_if_unavailable, [TrueClass, FalseClass]
|
63
63
|
property :source, String, regex: /.*/
|
data/lib/chef/rest.rb
CHANGED
data/lib/chef/run_context.rb
CHANGED
@@ -84,6 +84,17 @@ class Chef
|
|
84
84
|
#
|
85
85
|
attr_reader :parent_run_context
|
86
86
|
|
87
|
+
#
|
88
|
+
# The root run context.
|
89
|
+
#
|
90
|
+
# @return [Chef::RunContext] The root run context.
|
91
|
+
#
|
92
|
+
def root_run_context
|
93
|
+
rc = self
|
94
|
+
rc = rc.parent_run_context until rc.parent_run_context.nil?
|
95
|
+
rc
|
96
|
+
end
|
97
|
+
|
87
98
|
#
|
88
99
|
# The collection of resources intended to be converged (and able to be
|
89
100
|
# notified).
|
@@ -653,6 +664,7 @@ ERROR_MESSAGE
|
|
653
664
|
notifies_immediately
|
654
665
|
notifies_delayed
|
655
666
|
parent_run_context
|
667
|
+
root_run_context
|
656
668
|
resource_collection
|
657
669
|
resource_collection=
|
658
670
|
}.map { |x| x.to_sym }
|
data/lib/chef/version.rb
CHANGED
@@ -0,0 +1,36 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
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
|
35
|
+
oYdVLVWSjyoA2l4Xb4LdexAgCg==
|
36
|
+
-----END CERTIFICATE-----
|
@@ -425,6 +425,7 @@ downthestreetalwayshadagoodsmileonhisfacetheoldmanwalkingdownthestreeQQQQQQ" end
|
|
425
425
|
end
|
426
426
|
|
427
427
|
it "does not raise an error on manage" do
|
428
|
+
allow(Etc).to receive(:getpwnam).and_return(double("User"))
|
428
429
|
expect { group_resource.run_action(:manage) }.not_to raise_error
|
429
430
|
end
|
430
431
|
end
|
@@ -637,8 +637,10 @@ describe Chef::Provider::User::Useradd, metadata do
|
|
637
637
|
context "and has no password" do
|
638
638
|
|
639
639
|
# TODO: platform_family should be setup in spec_helper w/ tags
|
640
|
-
if %w{
|
641
|
-
|
640
|
+
if %w{opensuse}.include?(OHAI_SYSTEM["platform_family"]) ||
|
641
|
+
(%w{suse}.include?(OHAI_SYSTEM["platform_family"]) &&
|
642
|
+
OHAI_SYSTEM["platform_version"].to_f < 12.1)
|
643
|
+
# suse 11.x gets this right:
|
642
644
|
it "errors out trying to unlock the user" do
|
643
645
|
expect(@error).to be_a(Mixlib::ShellOut::ShellCommandFailed)
|
644
646
|
expect(@error.message).to include("Cannot unlock the password")
|
@@ -34,12 +34,10 @@ describe "knife data bag create", :workstation do
|
|
34
34
|
end
|
35
35
|
|
36
36
|
it "creates a new data bag and item" do
|
37
|
-
pending "Deprecation warning must get fixed"
|
38
37
|
knife("data bag create foo bar").should_succeed stdout: out, stderr: err
|
39
38
|
end
|
40
39
|
|
41
40
|
it "adds a new item to an existing bag" do
|
42
|
-
pending "Deprecation warning must get fixed"
|
43
41
|
knife("data bag create foo").should_succeed stderr: err
|
44
42
|
knife("data bag create foo bar").should_succeed stdout: out, stderr: exists
|
45
43
|
end
|
@@ -50,7 +48,6 @@ describe "knife data bag create", :workstation do
|
|
50
48
|
end
|
51
49
|
|
52
50
|
it "fails to add an existing item" do
|
53
|
-
pending "Deprecation warning must get fixed"
|
54
51
|
knife("data bag create foo bar").should_succeed stdout: out, stderr: err
|
55
52
|
expect { knife("data bag create foo bar") }.to raise_error(Net::HTTPServerException)
|
56
53
|
end
|
@@ -26,7 +26,7 @@ describe "knife environment show", :workstation do
|
|
26
26
|
when_the_chef_server "has some environments" do
|
27
27
|
before do
|
28
28
|
environment "b", {
|
29
|
-
"default_attributes" => { "foo" => "bar" },
|
29
|
+
"default_attributes" => { "foo" => "bar", "baz" => { "raz.my" => "mataz" } },
|
30
30
|
}
|
31
31
|
end
|
32
32
|
|
@@ -36,6 +36,8 @@ describe "knife environment show", :workstation do
|
|
36
36
|
chef_type: environment
|
37
37
|
cookbook_versions:
|
38
38
|
default_attributes:
|
39
|
+
baz:
|
40
|
+
raz.my: mataz
|
39
41
|
foo: bar
|
40
42
|
description:
|
41
43
|
json_class: Chef::Environment
|
@@ -46,11 +48,29 @@ EOM
|
|
46
48
|
# rubocop:enable Style/TrailingWhitespace
|
47
49
|
|
48
50
|
it "shows the requested attribute of an environment" do
|
49
|
-
|
50
|
-
knife("environment show b -a foo").should_succeed <<EOM
|
51
|
+
knife("environment show b -a default_attributes").should_succeed <<EOM
|
51
52
|
b:
|
52
|
-
|
53
|
+
default_attributes:
|
54
|
+
baz:
|
55
|
+
raz.my: mataz
|
56
|
+
foo: bar
|
53
57
|
EOM
|
54
58
|
end
|
59
|
+
|
60
|
+
it "shows the requested nested attribute of an environment" do
|
61
|
+
knife("environment show b -a default_attributes.baz").should_succeed <<EON
|
62
|
+
b:
|
63
|
+
default_attributes.baz:
|
64
|
+
raz.my: mataz
|
65
|
+
EON
|
66
|
+
end
|
67
|
+
|
68
|
+
it "shows the requested attribute of an environment with custom field separator" do
|
69
|
+
knife("environment show b -S: -a default_attributes:baz").should_succeed <<EOT
|
70
|
+
b:
|
71
|
+
default_attributes:baz:
|
72
|
+
raz.my: mataz
|
73
|
+
EOT
|
74
|
+
end
|
55
75
|
end
|
56
76
|
end
|