def __init__()

in libcloud/compute/drivers/openstack.py [0:0]


    def __init__(self, *args, **kwargs):
        original_connectionCls = self.connectionCls
        self._ex_force_api_version = str(kwargs.pop("ex_force_api_version", None))
        if "ex_force_auth_version" not in kwargs:
            kwargs["ex_force_auth_version"] = "3.x_password"

        original_ex_force_base_url = kwargs.get("ex_force_base_url")

        # We run the init once to get the Glance V2 API connection
        # and put that on the object under self.image_connection.
        if original_ex_force_base_url or kwargs.get("ex_force_image_url"):
            kwargs["ex_force_base_url"] = str(
                kwargs.pop("ex_force_image_url", original_ex_force_base_url)
            )
        self.connectionCls = self.image_connectionCls
        super().__init__(*args, **kwargs)
        self.image_connection = self.connection

        # We run the init once to get the Cinder V2 API connection
        # and put that on the object under self.volumev2_connection.
        if original_ex_force_base_url or kwargs.get("ex_force_volume_url"):
            kwargs["ex_force_base_url"] = str(
                kwargs.pop("ex_force_volume_url", original_ex_force_base_url)
            )
        # the V3 API
        self.connectionCls = self.volumev3_connectionCls
        super().__init__(*args, **kwargs)
        self.volumev3_connection = self.connection
        # the V2 API
        self.connectionCls = self.volumev2_connectionCls
        super().__init__(*args, **kwargs)
        self.volumev2_connection = self.connection

        # We run the init once to get the Neutron V2 API connection
        # and put that on the object under self.network_connection.
        if original_ex_force_base_url or kwargs.get("ex_force_network_url"):
            kwargs["ex_force_base_url"] = str(
                kwargs.pop("ex_force_network_url", original_ex_force_base_url)
            )
        self.connectionCls = self.network_connectionCls
        super().__init__(*args, **kwargs)
        self.network_connection = self.connection

        # We run the init once again to get the compute API connection
        # and that's put under self.connection as normal.
        self._ex_force_base_url = original_ex_force_base_url
        if original_ex_force_base_url:
            kwargs["ex_force_base_url"] = self._ex_force_base_url
        # if ex_force_base_url is not set in original params delete it
        elif "ex_force_base_url" in kwargs:
            del kwargs["ex_force_base_url"]
        self.connectionCls = original_connectionCls
        super().__init__(*args, **kwargs)