docs: def _get_socket(self, sslversion=ssl.PROTOCOL_TLSv1):
          """Sets up an https connection and do an HTTP/raw socket request
  
          :param sslversion: version of ssl session
          :raises: IloConnectionError, for connection failures
          :returns: ssl wrapped socket object
          """
          err = None
          sock = None
          try:
              for res in socket.getaddrinfo(
                      self.hostname, self.port, 0, socket.SOCK_STREAM):
                  af, socktype, proto, canonname, sa = res
                  try:
                      sock = socket.socket(af, socktype, proto)
                      sock.settimeout(self.timeout)
                      # Connecting to {self.hostname} at port {self.port}
                      sock.connect(sa)
                  except socket.timeout:
                      if sock is not None:
                          sock.close()
                      err = exception.IloConnectionError(
                          "Timeout connecting to %(hostname)s:%(port)d"
                          % {'hostname': self.hostname, 'port': self.port})
                  except socket.error:
                      if sock is not None:
                          sock.close()
                      e = sys.exc_info()[1]
                      err = exception.IloConnectionError(
                          "Error connecting to %(hostname)s:%(port)d : %(error)s"
                          % {'hostname': self.hostname, 'port': self.port,
                             'error': str(e)})
          except Exception:
              raise exception.IloConnectionError(
                  "Unable to resolve %s" % self.hostname)
  
          if err is not None:
              raise err
  
          # wrapping the socket over ssl session
          try:
              return ssl.wrap_socket(sock, ssl_version=sslversion)
          except socket.sslerror:
              e = sys.exc_info()[1]
              msg = (getattr(e, 'reason', None) or
                     getattr(e, 'message', None))
              # Some older iLO s don't support TLSv1, retry with SSLv3
              if ('wrong version number' in msg) and (
                      sslversion == ssl.PROTOCOL_TLSv1):
  
                  return self._get_socket(ssl.PROTOCOL_SSLv3)
  
              raise exception.IloConnectionError(
                  "Cannot establish ssl session with %(hostname)s:%(port)d : "
                  "%(error)s" % {'hostname': self.hostname, 'port': self.port,
                                 'error': str(e)})