spec/integration/common_options_spec.rb in knife-18.1.0 vs spec/integration/common_options_spec.rb in knife-18.2.5
- old
+ new
@@ -1,174 +1,174 @@
-#
-# Author:: John Keiser (<jkeiser@chef.io>)
-# Copyright:: Copyright (c) Chef Software Inc.
-# License:: Apache License, Version 2.0
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-require "knife_spec_helper"
-require "support/shared/integration/integration_helper"
-require "chef/knife/raw"
-
-describe "knife common options", :workstation do
- include IntegrationSupport
- include KnifeSupport
-
- before do
- # Allow this for testing the various port binding stuffs. Remove when
- # we kill off --listen.
- Chef::Config.treat_deprecation_warnings_as_errors(false)
- end
-
- let(:local_listen_warning) { /\Awarn:.*local.*listen.*$/im }
-
- when_the_repository "has a node" do
- before { file "nodes/x.json", {} }
-
- context "When chef_zero.enabled is true" do
- before(:each) do
- Chef::Config.chef_zero.enabled = true
- end
-
- it "knife raw /nodes/x should retrieve the node in socketless mode" do
- Chef::Config.treat_deprecation_warnings_as_errors(true)
- knife("raw /nodes/x").should_succeed( /"name": "x"/ )
- end
-
- it "knife raw /nodes/x should retrieve the node" do
- knife("raw --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
- end
-
- context "And chef_zero.port is 9999" do
- before(:each) { Chef::Config.chef_zero.port = 9999 }
-
- it "knife raw /nodes/x should retrieve the node" do
- knife("raw --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
- expect(Chef::Config.chef_server_url).to eq("chefzero://localhost:9999")
- end
- end
-
- # 0.0.0.0 is not a valid address to bind to on windows.
- context "And chef_zero.host is 0.0.0.0", :unix_only do
- before(:each) { Chef::Config.chef_zero.host = "0.0.0.0" }
-
- it "knife raw /nodes/x should retrieve the role" do
- knife("raw --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
- end
- end
-
- context "and there is a private key" do
- before do
- file "mykey.pem", <<~EOM
- -----BEGIN RSA PRIVATE KEY-----
- MIIEogIBAAKCAQEApubutqtYYQ5UiA9QhWP7UvSmsfHsAoPKEVVPdVW/e8Svwpyf
- 0Xef6OFWVmBE+W442ZjLOe2y6p2nSnaq4y7dg99NFz6X+16mcKiCbj0RCiGqCvCk
- NftHhTgO9/RFvCbmKZ1RKNob1YzLrFpxBHaSh9po+DGWhApcd+I+op+ZzvDgXhNn
- 0nauZu3rZmApI/r7EEAOjFedAXs7VPNXhhtZAiLSAVIrwU3ZajtSzgXOxbNzgj5O
- AAAMmThK+71qPdffAdO4J198H6/MY04qgtFo7vumzCq0UCaGZfmeI1UNE4+xQWwP
- HJ3pDAP61C6Ebx2snI2kAd9QMx9Y78nIedRHPwIDAQABAoIBAHssRtPM1GacWsom
- 8zfeN6ZbI4KDlbetZz0vhnqDk9NVrpijWlcOP5dwZXVNitnB/HaqCqFvyPDY9JNB
- zI/pEFW4QH59FVDP42mVEt0keCTP/1wfiDDGh1vLqVBYl/ZphscDcNgDTzNkuxMx
- k+LFVxKnn3w7rGc59lALSkpeGvbbIDjp3LUMlUeCF8CIFyYZh9ZvXe4OCxYdyjxb
- i8tnMLKvJ4Psbh5jMapsu3rHQkfPdqzztQUz8vs0NYwP5vWge46FUyk+WNm/IhbJ
- G3YM22nwUS8Eu2bmTtADSJolATbCSkOwQ1D+Fybz/4obfYeGaCdOqB05ttubhenV
- ShsAb7ECgYEA20ecRVxw2S7qA7sqJ4NuYOg9TpfGooptYNA1IP971eB6SaGAelEL
- awYkGNuu2URmm5ElZpwJFFTDLGA7t2zB2xI1FeySPPIVPvJGSiZoFQOVlIg9WQzK
- 7jTtFQ/tOMrF+bigEUJh5bP1/7HzqSpuOsPjEUb2aoCTp+tpiRGL7TUCgYEAwtns
- g3ysrSEcTzpSv7fQRJRk1lkBhatgNd0oc+ikzf74DaVLhBg1jvSThDhiDCdB59mr
- Jh41cnR1XqE8jmdQbCDRiFrI1Pq6TPaDZFcovDVE1gue9x86v3FOH2ukPG4d2/Xy
- HevXjThtpMMsWFi0JYXuzXuV5HOvLZiP8sN3lSMCgYANpdxdGM7RRbE9ADY0dWK2
- V14ReTLcxP7fyrWz0xLzEeCqmomzkz3BsIUoouu0DCTSw+rvAwExqcDoDylIVlWO
- fAifz7SeZHbcDxo+3TsXK7zwnLYsx7YNs2+aIv6hzUUbMNmNmXMcZ+IEwx+mRMTN
- lYmZdrA5mr0V83oDFPt/jQKBgC74RVE03pMlZiObFZNtheDiPKSG9Bz6wMh7NWMr
- c37MtZLkg52mEFMTlfPLe6ceV37CM8WOhqe+dwSGrYhOU06dYqUR7VOZ1Qr0aZvo
- fsNPu/Y0+u7rMkgv0fs1AXQnvz7kvKaF0YITVirfeXMafuKEtJoH7owRbur42cpV
- YCAtAoGAP1rHOc+w0RUcBK3sY7aErrih0OPh9U5bvJsrw1C0FIZhCEoDVA+fNIQL
- syHLXYFNy0OxMtH/bBAXBGNHd9gf5uOnqh0pYcbe/uRAxumC7Rl0cL509eURiA2T
- +vFmf54y9YdnLXaqv+FhJT6B6V7WX7IpU9BMqJY1cJYXHuHG2KA=
- -----END RSA PRIVATE KEY-----
- EOM
- end
-
- it "knife raw /nodes/x should retrieve the node" do
- knife("raw --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
- end
- end
- end
-
- it "knife raw -z /nodes/x retrieves the node in socketless mode" do
- Chef::Config.treat_deprecation_warnings_as_errors(true)
- knife("raw -z /nodes/x").should_succeed( /"name": "x"/ )
- end
-
- it "knife raw -z /nodes/x retrieves the node" do
- knife("raw -z --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
- end
-
- it "knife raw --local-mode /nodes/x retrieves the node" do
- knife("raw --local-mode --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
- end
-
- it "knife raw -z --chef-zero-port=9999 /nodes/x retrieves the node" do
- knife("raw -z --chef-zero-port=9999 --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
- expect(Chef::Config.chef_server_url).to eq("chefzero://localhost:9999")
- end
-
- context "when the default port (8889) is already bound" do
- before :each do
-
- @server = ChefZero::Server.new(host: "localhost", port: 8889)
- @server.start_background
- rescue Errno::EADDRINUSE
- # OK. Don't care who has it in use, as long as *someone* does.
-
- end
- after :each do
- @server.stop if @server
- end
-
- it "knife raw -z /nodes/x retrieves the node" do
- knife("raw -z --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
- expect(URI(Chef::Config.chef_server_url).port).to be > 8889
- end
- end
-
- context "when port 9999 is already bound" do
- before :each do
-
- @server = ChefZero::Server.new(host: "localhost", port: 9999)
- @server.start_background
- rescue Errno::EADDRINUSE
- # OK. Don't care who has it in use, as long as *someone* does.
-
- end
- after :each do
- @server.stop if @server
- end
-
- it "knife raw -z --chef-zero-port=9999-20000 /nodes/x" do
- knife("raw -z --chef-zero-port=9999-20000 --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
- expect(URI(Chef::Config.chef_server_url).port).to be > 9999
- end
-
- it "knife raw -z --chef-zero-port=9999-9999,19423" do
- knife("raw -z --chef-zero-port=9999-9999,19423 --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
- expect(URI(Chef::Config.chef_server_url).port).to be == 19423
- end
- end
-
- it "knife raw -z --chef-zero-port=9999 /nodes/x retrieves the node" do
- knife("raw -z --chef-zero-port=9999 --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
- expect(Chef::Config.chef_server_url).to eq("chefzero://localhost:9999")
- end
- end
-end
+#
+# Author:: John Keiser (<jkeiser@chef.io>)
+# Copyright:: Copyright (c) Chef Software Inc.
+# License:: Apache License, Version 2.0
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+require "knife_spec_helper"
+require "support/shared/integration/integration_helper"
+require "chef/knife/raw"
+
+describe "knife common options", :workstation do
+ include IntegrationSupport
+ include KnifeSupport
+
+ before do
+ # Allow this for testing the various port binding stuffs. Remove when
+ # we kill off --listen.
+ Chef::Config.treat_deprecation_warnings_as_errors(false)
+ end
+
+ let(:local_listen_warning) { /\Awarn:.*local.*listen.*$/im }
+
+ when_the_repository "has a node" do
+ before { file "nodes/x.json", {} }
+
+ context "When chef_zero.enabled is true" do
+ before(:each) do
+ Chef::Config.chef_zero.enabled = true
+ end
+
+ it "knife raw /nodes/x should retrieve the node in socketless mode" do
+ Chef::Config.treat_deprecation_warnings_as_errors(true)
+ knife("raw /nodes/x").should_succeed( /"name": "x"/ )
+ end
+
+ it "knife raw /nodes/x should retrieve the node" do
+ knife("raw --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
+ end
+
+ context "And chef_zero.port is 9999" do
+ before(:each) { Chef::Config.chef_zero.port = 9999 }
+
+ it "knife raw /nodes/x should retrieve the node" do
+ knife("raw --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
+ expect(Chef::Config.chef_server_url).to eq("chefzero://localhost:9999")
+ end
+ end
+
+ # 0.0.0.0 is not a valid address to bind to on windows.
+ context "And chef_zero.host is 0.0.0.0", :unix_only do
+ before(:each) { Chef::Config.chef_zero.host = "0.0.0.0" }
+
+ it "knife raw /nodes/x should retrieve the role" do
+ knife("raw --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
+ end
+ end
+
+ context "and there is a private key" do
+ before do
+ file "mykey.pem", <<~EOM
+ -----BEGIN RSA PRIVATE KEY-----
+ MIIEogIBAAKCAQEApubutqtYYQ5UiA9QhWP7UvSmsfHsAoPKEVVPdVW/e8Svwpyf
+ 0Xef6OFWVmBE+W442ZjLOe2y6p2nSnaq4y7dg99NFz6X+16mcKiCbj0RCiGqCvCk
+ NftHhTgO9/RFvCbmKZ1RKNob1YzLrFpxBHaSh9po+DGWhApcd+I+op+ZzvDgXhNn
+ 0nauZu3rZmApI/r7EEAOjFedAXs7VPNXhhtZAiLSAVIrwU3ZajtSzgXOxbNzgj5O
+ AAAMmThK+71qPdffAdO4J198H6/MY04qgtFo7vumzCq0UCaGZfmeI1UNE4+xQWwP
+ HJ3pDAP61C6Ebx2snI2kAd9QMx9Y78nIedRHPwIDAQABAoIBAHssRtPM1GacWsom
+ 8zfeN6ZbI4KDlbetZz0vhnqDk9NVrpijWlcOP5dwZXVNitnB/HaqCqFvyPDY9JNB
+ zI/pEFW4QH59FVDP42mVEt0keCTP/1wfiDDGh1vLqVBYl/ZphscDcNgDTzNkuxMx
+ k+LFVxKnn3w7rGc59lALSkpeGvbbIDjp3LUMlUeCF8CIFyYZh9ZvXe4OCxYdyjxb
+ i8tnMLKvJ4Psbh5jMapsu3rHQkfPdqzztQUz8vs0NYwP5vWge46FUyk+WNm/IhbJ
+ G3YM22nwUS8Eu2bmTtADSJolATbCSkOwQ1D+Fybz/4obfYeGaCdOqB05ttubhenV
+ ShsAb7ECgYEA20ecRVxw2S7qA7sqJ4NuYOg9TpfGooptYNA1IP971eB6SaGAelEL
+ awYkGNuu2URmm5ElZpwJFFTDLGA7t2zB2xI1FeySPPIVPvJGSiZoFQOVlIg9WQzK
+ 7jTtFQ/tOMrF+bigEUJh5bP1/7HzqSpuOsPjEUb2aoCTp+tpiRGL7TUCgYEAwtns
+ g3ysrSEcTzpSv7fQRJRk1lkBhatgNd0oc+ikzf74DaVLhBg1jvSThDhiDCdB59mr
+ Jh41cnR1XqE8jmdQbCDRiFrI1Pq6TPaDZFcovDVE1gue9x86v3FOH2ukPG4d2/Xy
+ HevXjThtpMMsWFi0JYXuzXuV5HOvLZiP8sN3lSMCgYANpdxdGM7RRbE9ADY0dWK2
+ V14ReTLcxP7fyrWz0xLzEeCqmomzkz3BsIUoouu0DCTSw+rvAwExqcDoDylIVlWO
+ fAifz7SeZHbcDxo+3TsXK7zwnLYsx7YNs2+aIv6hzUUbMNmNmXMcZ+IEwx+mRMTN
+ lYmZdrA5mr0V83oDFPt/jQKBgC74RVE03pMlZiObFZNtheDiPKSG9Bz6wMh7NWMr
+ c37MtZLkg52mEFMTlfPLe6ceV37CM8WOhqe+dwSGrYhOU06dYqUR7VOZ1Qr0aZvo
+ fsNPu/Y0+u7rMkgv0fs1AXQnvz7kvKaF0YITVirfeXMafuKEtJoH7owRbur42cpV
+ YCAtAoGAP1rHOc+w0RUcBK3sY7aErrih0OPh9U5bvJsrw1C0FIZhCEoDVA+fNIQL
+ syHLXYFNy0OxMtH/bBAXBGNHd9gf5uOnqh0pYcbe/uRAxumC7Rl0cL509eURiA2T
+ +vFmf54y9YdnLXaqv+FhJT6B6V7WX7IpU9BMqJY1cJYXHuHG2KA=
+ -----END RSA PRIVATE KEY-----
+ EOM
+ end
+
+ it "knife raw /nodes/x should retrieve the node" do
+ knife("raw --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
+ end
+ end
+ end
+
+ it "knife raw -z /nodes/x retrieves the node in socketless mode" do
+ Chef::Config.treat_deprecation_warnings_as_errors(true)
+ knife("raw -z /nodes/x").should_succeed( /"name": "x"/ )
+ end
+
+ it "knife raw -z /nodes/x retrieves the node" do
+ knife("raw -z --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
+ end
+
+ it "knife raw --local-mode /nodes/x retrieves the node" do
+ knife("raw --local-mode --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
+ end
+
+ it "knife raw -z --chef-zero-port=9999 /nodes/x retrieves the node" do
+ knife("raw -z --chef-zero-port=9999 --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
+ expect(Chef::Config.chef_server_url).to eq("chefzero://localhost:9999")
+ end
+
+ context "when the default port (8889) is already bound" do
+ before :each do
+
+ @server = ChefZero::Server.new(host: "localhost", port: 8889)
+ @server.start_background
+ rescue Errno::EADDRINUSE
+ # OK. Don't care who has it in use, as long as *someone* does.
+
+ end
+ after :each do
+ @server.stop if @server
+ end
+
+ it "knife raw -z /nodes/x retrieves the node" do
+ knife("raw -z --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
+ expect(URI(Chef::Config.chef_server_url).port).to be > 8889
+ end
+ end
+
+ context "when port 9999 is already bound" do
+ before :each do
+
+ @server = ChefZero::Server.new(host: "localhost", port: 9999)
+ @server.start_background
+ rescue Errno::EADDRINUSE
+ # OK. Don't care who has it in use, as long as *someone* does.
+
+ end
+ after :each do
+ @server.stop if @server
+ end
+
+ it "knife raw -z --chef-zero-port=9999-20000 /nodes/x" do
+ knife("raw -z --chef-zero-port=9999-20000 --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
+ expect(URI(Chef::Config.chef_server_url).port).to be > 9999
+ end
+
+ it "knife raw -z --chef-zero-port=9999-9999,19423" do
+ knife("raw -z --chef-zero-port=9999-9999,19423 --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
+ expect(URI(Chef::Config.chef_server_url).port).to be == 19423
+ end
+ end
+
+ it "knife raw -z --chef-zero-port=9999 /nodes/x retrieves the node" do
+ knife("raw -z --chef-zero-port=9999 --listen /nodes/x").should_succeed( /"name": "x"/, stderr: local_listen_warning )
+ expect(Chef::Config.chef_server_url).to eq("chefzero://localhost:9999")
+ end
+ end
+end