You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by GitBox <gi...@apache.org> on 2022/06/23 16:51:10 UTC
[GitHub] [libcloud] dimgal1 opened a new issue, #1717: Openstack dev installation error
dimgal1 opened a new issue, #1717:
URL: https://github.com/apache/libcloud/issues/1717
## Summary
The libcloud driver does not work with the development installation of Openstack.
Instruction to install the dev installation are found [here](https://docs.openstack.org/devstack/latest/)
## Detailed Information
Initiating the driver with:
```python
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
Openstack = get_driver(Provider.OPENSTACK)
driver = Openstack("admin", "Password", api_version="2.2", ex_force_auth_url="http://<IP>/identity", ex_domain_name="Default", ex_tenant_name="admin")
```
Then running any command produces the following:
```python
driver.list_nodes()
---------------------------------------------------------------------------
BaseHTTPError Traceback (most recent call last)
<ipython-input-14-dc49087bfcd6> in <module>
----> 1 driver.list_nodes()
~/mist/mist-ee/api/libcloud/libcloud/compute/drivers/openstack.py in list_nodes(self, ex_all_tenants)
3342 params = {"all_tenants": 1}
3343 return self._to_nodes(
-> 3344 self._paginated_request(
3345 "/servers/detail", "servers", self.connection, params=params
3346 )
~/mist/mist-ee/api/libcloud/libcloud/compute/drivers/openstack.py in _paginated_request(url, obj, connection, params)
223 loop_count = 0
224 while True:
--> 225 data = connection.request(url, params=params)
226 values = data.object.get(obj, list())
227 objects.extend(values)
~/mist/mist-ee/api/libcloud/libcloud/common/openstack.py in request(self, action, params, data, headers, method, raw)
253 headers = {"Content-Type": default_content_type}
254
--> 255 return super(OpenStackBaseConnection, self).request(
256 action=action,
257 params=params,
~/mist/mist-ee/api/libcloud/libcloud/common/base.py in request(self, action, params, data, headers, method, raw, stream, json, enforce_unicode_response)
587 )
588
--> 589 action = self.morph_action_hook(action)
590 self.action = action
591 self.method = method
~/mist/mist-ee/api/libcloud/libcloud/common/openstack.py in morph_action_hook(self, action)
327
328 def morph_action_hook(self, action):
--> 329 self._populate_hosts_and_request_paths()
330 return super(OpenStackBaseConnection, self).morph_action_hook(action)
331
~/mist/mist-ee/api/libcloud/libcloud/common/openstack.py in _populate_hosts_and_request_paths(self)
361 kwargs = {}
362
--> 363 osa = osa.authenticate(**kwargs) # may throw InvalidCreds
364
365 self.auth_token = osa.auth_token
~/mist/mist-ee/api/libcloud/libcloud/common/openstack_identity.py in authenticate(self, force)
1120
1121 data = json.dumps(data)
-> 1122 response = self.request(
1123 "/v3/auth/tokens",
1124 data=data,
~/mist/mist-ee/api/libcloud/libcloud/common/base.py in request(self, action, params, data, headers, method, raw, stream, json, enforce_unicode_response)
705
706 try:
--> 707 response = responseCls(**kwargs)
708 finally:
709 # Always reset the context after the request has completed
~/mist/mist-ee/api/libcloud/libcloud/common/base.py in __init__(self, response, connection)
155
156 if not self.success():
--> 157 raise exception_from_message(
158 code=self.status, message=self.parse_error(), headers=self.headers
159 )
BaseHTTPError: <!doctype html>
<html lang=en>
<title>405 Method Not Allowed</title>
<h1>Method Not Allowed</h1>
<p>The method is not allowed for the requested URL.</p>
```
To my understanding the [morph_action_hook](https://github.com/apache/libcloud/blob/trunk/libcloud/common/openstack_identity.py#L771 ) of the `OpenStackIdentityConnection` does not take into account the given action when the Auth url contains a path.
For example in the scenario above the Auth url is `http://<IP>/identity`, when the driver tries to [authenticate](https://github.com/apache/libcloud/blob/trunk/libcloud/common/openstack_identity.py#L1258) the POST request path becomes `/identity` instead of the correct one `/identity/v3/auth/tokens` .
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@libcloud.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [libcloud] asfgit closed issue #1717: Openstack dev installation error
Posted by GitBox <gi...@apache.org>.
asfgit closed issue #1717: Openstack dev installation error
URL: https://github.com/apache/libcloud/issues/1717
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@libcloud.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org