Sha256: 757729de618a86e1314728237c944b0477ee248c02cb473b110c9b7657fe2c5e

Contents?: true

Size: 1.03 KB

Versions: 1

Compression:

Stored size: 1.03 KB

Contents

# frozen_string_literal: false
require 'uri'

module URI
  class VsphereUrl < Generic
    DEFAULT_PORT = 443
    DEFAULT_PATH = '/sdk'.freeze

    def self.from_config(options)
      parts = []
      parts << 'vsphere://'
      parts << options[:host]
      parts << ':'
      parts << (options[:port] || DEFAULT_PORT)
      parts << (options[:path] || DEFAULT_PATH)
      parts << '?use_ssl='
      parts << (options[:use_ssl] == false ? false : true)
      parts << '&insecure='
      parts << (options[:insecure] || false)
      URI parts.join
    end

    def use_ssl
      if query
        ssl_query = query.split('&').each.select do |q|
          q.start_with?('use_ssl=')
        end.first
        ssl_query == 'use_ssl=true'
      else
        true
      end
    end

    def insecure
      if query
        insecure_query = query.split('&').each.select do |q|
          q.start_with?('insecure=')
        end.first
        insecure_query == 'insecure=true'
      else
        false
      end
    end
  end
  @@schemes['VSPHERE'] = VsphereUrl
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
chef-provisioning-vsphere-2.0.2 lib/chef/provisioning/vsphere_driver/vsphere_url.rb