Skip to content

Commit

Permalink
Merge pull request #233 from chef/sid/set-winrm-ssl-verify
Browse files Browse the repository at this point in the history
Implemented changes to set winrm_ssl_verify_mode to none for server create
  • Loading branch information
Nimisha Sharad committed Jul 17, 2015
2 parents ee11f4e + aaf8c72 commit 110c8ea
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 3 deletions.
4 changes: 2 additions & 2 deletions lib/azure/role.rb
Original file line number Diff line number Diff line change
Expand Up @@ -365,9 +365,9 @@ def setup(params)
end
xml.WinRM {
xml.Listeners {
if params[:ssl_cert_fingerprint]
if params[:winrm_transport] == "ssl" || params[:ssl_cert_fingerprint]
xml.Listener {
xml.CertificateThumbprint params[:ssl_cert_fingerprint]
xml.CertificateThumbprint params[:ssl_cert_fingerprint] if params[:ssl_cert_fingerprint]
xml.Protocol 'Https'
}
else
Expand Down
6 changes: 5 additions & 1 deletion lib/chef/knife/azure_server_create.rb
Original file line number Diff line number Diff line change
Expand Up @@ -741,7 +741,6 @@ def bootstrap_for_windows_node(server, fqdn, port)
bootstrap.config[:auth_timeout] = locate_config_value(:auth_timeout)
# Todo: we should skip cert generate in case when winrm_ssl_verify_mode=verify_none
bootstrap.config[:winrm_ssl_verify_mode] = locate_config_value(:winrm_ssl_verify_mode)

elsif locate_config_value(:bootstrap_protocol) == 'ssh'
bootstrap = Chef::Knife::BootstrapWindowsSsh.new
bootstrap.config[:ssh_user] = locate_config_value(:ssh_user)
Expand Down Expand Up @@ -830,6 +829,11 @@ def validate!
exit 1
end
end

if locate_config_value(:winrm_transport) == "ssl" && locate_config_value(:thumbprint).nil? && ( locate_config_value(:winrm_ssl_verify_mode).nil? || locate_config_value(:winrm_ssl_verify_mode) == :verify_peer )
ui.error("The SSL transport was specified without the --thumbprint option. Specify a thumbprint, or alternatively set the --winrm-ssl-verify-mode option to 'verify_none' to skip verification.")
exit 1
end
end

def create_server_def
Expand Down
9 changes: 9 additions & 0 deletions spec/unit/azure_server_create_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,15 @@ def test_params(testxml, chef_config, role_name, host_name)
expect {@server_instance.run}.to raise_error
end
end

context "when winrm-transport ssl and missing thumbprint" do
it "raise error on :winrm_ssl_verify_mode verify_peer" do
Chef::Config[:knife][:winrm_transport] = 'ssl'
Chef::Config[:knife][:winrm_ssl_verify_mode] = :verify_peer
expect(@server_instance.ui).to receive(:error)
expect {@server_instance.run}.to raise_error
end
end
end

context "timeout parameters" do
Expand Down

0 comments on commit 110c8ea

Please sign in to comment.