@property
    def host(self):
        if not self.__host:
            # Initial connection used for authentication
            conn = self.conn_classes[self.secure](self.auth_host, self.port[self.secure])
            conn.request(method='GET', url='/%s' % self.api_version,
                                           headers={'X-Auth-User': self.user_id,
                                                    'X-Auth-Key': self.key})
            resp = conn.getresponse()
            headers = dict(resp.getheaders())
            try:
                self.token = headers['x-auth-token']
                endpoint = headers['x-server-management-url']
            except KeyError:
                raise InvalidCredsException()

            scheme, server, self.path, param, query, fragment = (
                urlparse.urlparse(endpoint)
            )
            if scheme is "https" and self.secure is not 1:
                # TODO: Custom exception (?)
                raise InvalidCredsException()

            # Set host to where we want to make further requests to; close auth conn
            self.__host = server
            conn.close()

        return self.__host
Rackspace uses a separate host for API calls which is only provided
dataset/ETHPy150Open infincia/AEServmon/libcloud/drivers/rackspace.py/RackspaceConnection.host