fog / fog-openstack

Fog for OpenStack Platform
MIT License
69 stars 130 forks source link

Intermittent 500 Errors When Talking to IBM Bluemix #287

Open waltz opened 7 years ago

waltz commented 7 years ago

Hey all!

I'm using Fog to talk to IBM Bluemix storage. I've been getting 500's from the Bluemix authentication servers intermittently. I'm curious to know if anyone else has seen anything like this. Any ideas what could be causing this?

I can curl the authentication endpoint and it works every time. That leads me to think that there's something up with Fog, though I'm not sure what.

Any help or clues would be appreciated. Thanks!

atambo commented 7 years ago

Try using the openstack_auth_omit_default_port: true option. I was seeing the same 500 errors and setting that option fixed it.

waltz commented 7 years ago

Thanks for adding that info! I found that option a few weeks ago and it's solved my issues with Bluemix Object Storage.

The root of the problem seems to be a misconfigured authentication server on IBM's side. They have one auth server in their cluster that will send a 500 error when you include the Port header . I talked to their support team and they refuse to fix the issue. 🤷‍♂️

YunSangJun commented 7 years ago

Hello @waltz.

I also use bluemix object storage.

Could you share fog connection setting example?

I set fog_connection like below but got 401 error message. fog_connection: &fog_connection provider: OpenStack openstack_username: ((sl_username)) openstack_api_key: ((sl_api_key)) openstack_auth_url: https://seo01.objectstorage.service.networklayer.com/auth/v1.0 openstack_temp_url_key: ((sl_temp_url_key)) openstack_tenant: ((sl_storage_account)) openstack_project_name: ((sl_storage_account)) openstack_region: ((sl_datacenter)) openstack_auth_omit_default_port: true

waltz commented 7 years ago

Oh man, if you have a choice, I would definitely avoid Bluemix Object Storage.These settings were very specific, hopefully they work for you. They break very often.

Here are the greatest hits:

provider: :openstack,
openstack_auth_url: "#{auth_url}/v3/auth/tokens",
openstack_username: username,
openstack_userid: user_id,
openstack_api_key: password,
openstack_project_name: project,
openstack_project_id: project_id,
openstack_domain_name: domain_name,
openstack_domain_id: domain_id,
openstack_region: region,
openstack_temp_url_key: object_storage_key,
openstack_auth_omit_default_port: true,
YunSangJun commented 7 years ago

Thank you @waltz.

Actually i use softlayer swift object storage. I connected to softlayer swift obejct storage using openstack fog v1. Anyway thank you again.

The following is sample for v1. fog_connection: &fog_connection provider: OpenStack openstack_username: ((sl_swift_storage_username)) openstack_api_key: ((sl_api_key)) openstack_auth_url: ((sl_swift_storage_auth_url)) openstack_temp_url_key: ((sl_swift_storage_temp_url_key))