code: def __RetrieveContent(host, port, adapter, version, path, keyFile, certFile,
                        thumbprint, sslContext, connectionPoolTimeout=CONNECTION_POOL_IDLE_TIMEOUT_SEC):
     
  
     # XXX remove the adapter and service arguments once dependent code is fixed
     if adapter != "SOAP":
        raise ValueError(adapter)
  
     # Create the SOAP stub adapter
     stub = SoapStubAdapter(host, port, version=version, path=path,
                            certKeyFile=keyFile, certFile=certFile,
                            thumbprint=thumbprint, sslContext=sslContext,
                            connectionPoolTimeout=connectionPoolTimeout)
  
     # Get Service instance
     si = vim.ServiceInstance("ServiceInstance", stub)
     content = None
     try:
        content = si.RetrieveContent()
     except vmodl.MethodFault:
        raise
     except Exception as e:
        # NOTE (hartsock): preserve the traceback for diagnostics
        # pulling and preserving the traceback makes diagnosing connection
        # failures easier since the fault will also include where inside the
        # library the fault occurred. Without the traceback we have no idea
        # why the connection failed beyond the message string.
        (type, value, traceback) = sys.exc_info()
        if traceback:
           fault = vim.fault.HostConnectFault(msg=str(e))
           reraise(vim.fault.HostConnectFault, fault, traceback)
        else:
            raise vim.fault.HostConnectFault(msg=str(e))
  
     return content, si, stub
docs: Retrieve service instance for connection.
     @param host: Which host to connect to.
     @type  host: string
     @param port: Port
     @type  port: int
     @param adapter: Adapter
     @type  adapter: string
     @param version: Version
     @type  version: string
     @param path: Path
     @type  path: string
     @param keyFile: ssl key file path
     @type  keyFile: string
     @param certFile: ssl cert file path
     @type  certFile: string
     @param connectionPoolTimeout: Timeout in secs for idle connections to close, specify negative numbers for never
                                   closing the connections
     @type  connectionPoolTimeout: int