docs: def connect(host, username, password, port=443, verify=False, debug=False):
      '''
      Connect to a vCenter via the API
      :param host: Hostname or IP of the vCenter
      :type host: str or unicode
      :param username: Username
      :type user: str or unicode
      :param password: Password
      :type user: str or unicode
      :param port: Port on which the vCenter API is running (default: 443)
      :type port: int
      :param verify: Whether to verify SSL certs upon connection (default: False)
      :type verify: bool
      :param debug: Debug option (default: False)
      :type debug: bool
      :return: Content
      :rtype: vim.ServiceInstanceContent
      '''
      context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
      if not verify:
          # Disable warnings about unsigned certificates
          context.verify_mode = ssl.CERT_NONE
          requests.packages.urllib3.disable_warnings()
  
      try:
          si = SmartConnect(
              host=host,
              user=username,
              pwd=password,
              port=port,
              sslContext=context
          )
          # Register auto disconnect
          atexit.register(Disconnect, si)
          # Return content
          return si.RetrieveContent()
      except IOError as e:
          print('I/O error({0}): {1}'.format(e.errno, e.strerror))
      except vmodl.MethodFault as e:
          print('Connection could not be established', file=sys.stderr)
          raise ConnectionError('Connection could not be established')
          print('Caught vmodl fault: ', e.msg, file=sys.stderr)
          if debug:
              traceback.print_exc()
      except Exception as e:
          print('Caught exception:', str(e), file=sys.stderr)
          if debug:
              traceback.print_exc()