lib/winrm/http/transport_factory.rb in winrm-2.0.3 vs lib/winrm/http/transport_factory.rb in winrm-2.1.0
- old
+ new
@@ -1,68 +1,68 @@
-# -*- encoding: utf-8 -*-
-#
-# Copyright 2016 Shawn Neal <sneal@sneal.net>
-#
-# 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_relative 'transport'
-
-module WinRM
- module HTTP
- # Factory for creating a HTTP transport that can be used for WinRM SOAP calls.
- class TransportFactory
- # Creates a new WinRM HTTP transport using the specified connection options.
- # @param connection_opts [ConnectionOpts|Hash] The connection ConnectionOpts.
- # @return [HttpTransport] A transport instance for making WinRM calls.
- def create_transport(connection_opts)
- transport = connection_opts[:transport]
- validate_transport!(transport)
- send "init_#{transport}_transport", connection_opts
- end
-
- private
-
- def init_negotiate_transport(opts)
- HTTP::HttpNegotiate.new(opts[:endpoint], opts[:user], opts[:password], opts)
- end
-
- def init_kerberos_transport(opts)
- HTTP::HttpGSSAPI.new(opts[:endpoint], opts[:realm], opts, opts[:service])
- end
-
- def init_plaintext_transport(opts)
- HTTP::HttpPlaintext.new(opts[:endpoint], opts[:user], opts[:password], opts)
- end
-
- def init_ssl_transport(opts)
- if opts[:basic_auth_only]
- HTTP::BasicAuthSSL.new(opts[:endpoint], opts[:user], opts[:password], opts)
- elsif opts[:client_cert]
- HTTP::ClientCertAuthSSL.new(opts[:endpoint], opts[:client_cert],
- opts[:client_key], opts[:key_pass], opts)
- else
- HTTP::HttpNegotiate.new(opts[:endpoint], opts[:user], opts[:password], opts)
- end
- end
-
- def validate_transport!(transport)
- valid = private_methods
- .select { |m| m.to_s.start_with?('init_') && m.to_s.end_with?('_transport') }
- .map { |tm| tm.to_s.split('_')[1] }
-
- unless valid.include?(transport.to_s)
- raise WinRM::InvalidTransportError.new(transport, valid)
- end
- end
- end
- end
-end
+# -*- encoding: utf-8 -*-
+#
+# Copyright 2016 Shawn Neal <sneal@sneal.net>
+#
+# 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_relative 'transport'
+
+module WinRM
+ module HTTP
+ # Factory for creating a HTTP transport that can be used for WinRM SOAP calls.
+ class TransportFactory
+ # Creates a new WinRM HTTP transport using the specified connection options.
+ # @param connection_opts [ConnectionOpts|Hash] The connection ConnectionOpts.
+ # @return [HttpTransport] A transport instance for making WinRM calls.
+ def create_transport(connection_opts)
+ transport = connection_opts[:transport]
+ validate_transport!(transport)
+ send "init_#{transport}_transport", connection_opts
+ end
+
+ private
+
+ def init_negotiate_transport(opts)
+ HTTP::HttpNegotiate.new(opts[:endpoint], opts[:user], opts[:password], opts)
+ end
+
+ def init_kerberos_transport(opts)
+ HTTP::HttpGSSAPI.new(opts[:endpoint], opts[:realm], opts, opts[:service])
+ end
+
+ def init_plaintext_transport(opts)
+ HTTP::HttpPlaintext.new(opts[:endpoint], opts[:user], opts[:password], opts)
+ end
+
+ def init_ssl_transport(opts)
+ if opts[:basic_auth_only]
+ HTTP::BasicAuthSSL.new(opts[:endpoint], opts[:user], opts[:password], opts)
+ elsif opts[:client_cert]
+ HTTP::ClientCertAuthSSL.new(opts[:endpoint], opts[:client_cert],
+ opts[:client_key], opts[:key_pass], opts)
+ else
+ HTTP::HttpNegotiate.new(opts[:endpoint], opts[:user], opts[:password], opts)
+ end
+ end
+
+ def validate_transport!(transport)
+ valid = private_methods
+ .select { |m| m.to_s.start_with?('init_') && m.to_s.end_with?('_transport') }
+ .map { |tm| tm.to_s.split('_')[1] }
+
+ unless valid.include?(transport.to_s)
+ raise WinRM::InvalidTransportError.new(transport, valid)
+ end
+ end
+ end
+ end
+end