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)