Issue when connecting to openstack object storage with openstacksdk
Hello, I am currently developing a software application to access the OpenStack object store service on an IBM Spectrum Scale server. I first created a Python application which is manipulating objects and containers thru the OpenStack's object storage REST API (https://docs.openstack.org/api-ref/object-store). It works fine and I had no issue to access the server object store service by this way. But I also need to access the OpenStack object store service thru the openstacksdk (https://docs.openstack.org/openstacksdk/latest). Unfortunately, the connection does not seem to work properly in this case, even when using the same identifiers than in the working Python/REST application. The connection stalls and goes into some sort of timeout. I also made some tests by putting wrong identifiers, and then it fails immediately with a different error message. It makes me think that something goes wrong after the authentication process. The error message I have is this one: Failed to contact the endpoint at http://yeti.ds.eurecom.fr:8080/v1/AUTH_da0d8589692741d1b2a82956568227e6 for discovery. Fallback to using that endpoint as the base url. I am wondering if there is some additional configuration to perform on the server or the network to make it work as expected. Could you please provide me with some support so that I can sort out what's going on? I could of course share the Python piece of code I am using for my testing. Thank you for your help.
On Fri, 08 Dec 2023 10:28:29 +0100 sadir@free.fr wrote:
Failed to contact the endpoint at http://yeti.ds.eurecom.fr:8080/v1/AUTH_da0d8589692741d1b2a82956568227e6 for discovery. Fallback to using that endpoint as the base url.
Most likely, an incorrect (internal) URL is published as an endpoint in Keystone catalog. I say that because normally clients cannot see an unsecured endpoint. The port 8080 is where Swift proxy is, but clients never talk to it directly. They reach through a load balancer, which is what should be in the catalog as public_url. -- Pete
Hey Sadir, It seems that the error message you have is related to the discovery process of the OpenStack services. Discovery is the process of finding and registering the endpoints of the OpenStack services, such as Keystone, Nova, Glance, etc. This allows the clients to communicate with these services using their service URLs. The error message indicates that the discovery process failed to contact the endpoint at http://yeti.ds.eurecom.fr:8080/v1/AUTH_da0d8589692741d1b2a82956568227e6 for discovery. This endpoint is supposed to be the base URL for all the OpenStack services on your server. However, it may not be reachable or valid for some reason. There are a few possible causes and solutions for this error: The endpoint may be down or unreachable due to network issues. You can try to ping or curl the endpoint from your client machine and see if you get a response. If not, you may need to check your network configuration and firewall settings on both your server and client machines. The endpoint may be misconfigured or incorrect in your devstack configuration file. You can check if the endpoint is specified correctly in the [nova] section of your devstack configuration file1. For example, it should look something like this: [nova] region_name = RegionOne memcached_servers = localhost:11211 endpoint = http://yeti.ds.eurecom.fr:8080/v1 The endpoint may be incompatible with your OpenStack version or service version. You can check if your OpenStack version and service version are compatible with each other and with the endpoint URL. For example, if you are using Keystone v3, you should use https:// instead of http:// in your endpoint URL2. You can also check if there are any updates or patches available for your OpenStack version or service version that may fix this issue. The endpoint may be blocked by a proxy or VPN server that you are using. You can try to bypass or disable any proxy or VPN server that you are using and see if that resolves the issue. I hope these suggestions help you.. Kerem ÇELİKER Head of Cloud Architecture linkedin.com/in/keremceliker/
Thank you. Following your advice we could mitigate the issue. It was a network misconfiguration the IT could fix (bad gateway). Anyway, I still have the warning message being displayed, but the connexion now works (thru fallback I guess). There might be another issue, I will check the other points you enumerated. Thx for your support. Le 19/12/2023 à 18:11, KEREM CELIKER a écrit :
Hey Sadir,
It seems that the error message you have is related to the discovery process of the OpenStack services. Discovery is the process of finding and registering the endpoints of the OpenStack services, such as Keystone, Nova, Glance, etc. This allows the clients to communicate with these services using their service URLs.
The error message indicates that the discovery process failed to contact the endpoint at http://yeti.ds.eurecom.fr:8080/v1/AUTH_da0d8589692741d1b2a82956568227e6 for discovery. This endpoint is supposed to be the base URL for all the OpenStack services on your server. However, it may not be reachable or valid for some reason.
There are a few possible causes and solutions for this error:
The endpoint may be down or unreachable due to network issues. You can try to ping or curl the endpoint from your client machine and see if you get a response. If not, you may need to check your network configuration and firewall settings on both your server and client machines.
The endpoint may be misconfigured or incorrect in your devstack configuration file. You can check if the endpoint is specified correctly in the [nova] section of your devstack configuration file1. For example, it should look something like this: [nova] region_name = RegionOne memcached_servers = localhost:11211 endpoint = http://yeti.ds.eurecom.fr:8080/v1
The endpoint may be incompatible with your OpenStack version or service version. You can check if your OpenStack version and service version are compatible with each other and with the endpoint URL. For example, if you are using Keystone v3, you should use https:// instead of http:// in your endpoint URL2. You can also check if there are any updates or patches available for your OpenStack version or service version that may fix this issue.
The endpoint may be blocked by a proxy or VPN server that you are using. You can try to bypass or disable any proxy or VPN server that you are using and see if that resolves the issue.
I hope these suggestions help you..
Kerem ÇELİKER Head of Cloud Architecture linkedin.com/in/keremceliker/
Hello Sadir, On 05.01.24 09:51, Sadir wrote:
Thank you. Following your advice we could mitigate the issue. It was a network misconfiguration the IT could fix (bad gateway). Anyway, I still have the warning message being displayed, but the connexion now works (thru fallback I guess). There might be another issue, I will check the other points you enumerated.
I ran into the same issue, see [1] for the analysis of the issue. In essence it is due to swift endpoint running at path like "/swift" and not just the root of the vhost. This is common when using Ceph to provide Swift (as we do). Artem was so kind to pick this one up and write a fix for it, see [2]. It's not merged yet, but maybe you could also take a look if this change to the openstacksdk does fix the warnings for you? Regards Christian [1] https://lists.openstack.org/archives/list/openstack-discuss@lists.openstack.... [2] https://review.opendev.org/c/openstack/openstacksdk/+/900280
participants (5)
-
Christian Rohmann
-
KEREM CELIKER
-
Pete Zaitcev
-
Sadir
-
sadir@free.fr