# frozen_string_literal: false require 'uri' # The main URI Module module URI # Creates the vSphereURL, extended by the Generic Class class VsphereUrl < Generic # Default port for connecting to the vSphere cluster Webserver DEFAULT_PORT = 443 # Default path for connecting to the vSphere cluster URL DEFAULT_PATH = '/sdk'.freeze # Creates the URL from options that are decided # 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 # Converts URL to SSL if needed # 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 # Converts URL to insecure if needed # 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