[Bug]: Adding Rackspace Cloud Files as external storage fails
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 36.9k
- Forks
- 5.2k
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 713
Description
⚠️ This issue respects the following points: ⚠️
- This is a bug, not a question or a configuration/webserver/proxy issue.
- This issue is not already reported on Github OR Nextcloud Community Forum (I've searched it).
- Nextcloud Server is up to date. See Maintenance and Release Schedule for supported versions.
- I agree to follow Nextcloud's Code of Conduct.
Bug description
When adding Rackspace CloudFiles as external storage (following the steps in the documentation); the job fails with the error
Exception "password" is a required option, but it was not provided
External storage not available: "password" is a required option, but it was not provided
Used settings:
- Service:
cloudFiles - Region:
London - Bucket:
nextcloud - Username:
nextcloud - API Key:
valid_api_key
Steps to reproduce
- Enable the External Storage app.
- Add OpenStack Object Storage.
- Choose Rackspace for authentication.
- Follow the steps in the documentation.
Expected behavior
External storage is added.
Installation method
Community Manual installation with Archive
Nextcloud Server version
29
Operating system
Debian/Ubuntu
PHP engine version
PHP 8.1
Web server
Apache (supported)
Database engine version
MariaDB
Is this bug present after an update or on a fresh install?
Upgraded to a MAJOR version (ex. 22 to 23)
Are you using the Nextcloud Server Encryption module?
Encryption is Disabled
What user-backends are you using?
- Default user-backend (database)
- LDAP/ Active Directory
- SSO - SAML
- Other
Configuration report
{
"system": {
"instanceid": "***REMOVED SENSITIVE VALUE***",
"passwordsalt": "***REMOVED SENSITIVE VALUE***",
"secret": "***REMOVED SENSITIVE VALUE***",
"trusted_domains": [
"cheops.helptux.be"
],
"trusted_proxies": "***REMOVED SENSITIVE VALUE***",
"overwritehost": "cheops.helptux.be",
"overwriteprotocol": "https",
"datadirectory": "***REMOVED SENSITIVE VALUE***",
"dbtype": "mysql",
"version": "29.0.1.1",
"overwrite.cli.url": "https:\/\/cheops.helptux.be",
"dbname": "***REMOVED SENSITIVE VALUE***",
"dbhost": "***REMOVED SENSITIVE VALUE***",
"dbport": "",
"dbtableprefix": "oc_",
"mysql.utf8mb4": true,
"dbuser": "***REMOVED SENSITIVE VALUE***",
"dbpassword": "***REMOVED SENSITIVE VALUE***",
"installed": true,
"mail_from_address": "***REMOVED SENSITIVE VALUE***",
"mail_smtpmode": "smtp",
"mail_sendmailmode": "smtp",
"mail_domain": "***REMOVED SENSITIVE VALUE***",
"mail_smtpsecure": "tls",
"mail_smtpauthtype": "LOGIN",
"mail_smtpauth": 1,
"mail_smtphost": "***REMOVED SENSITIVE VALUE***",
"mail_smtpport": "587",
"mail_smtpname": "***REMOVED SENSITIVE VALUE***",
"mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
"app_install_overwrite": [
"groupfolders",
"richdocuments",
"ransomware_protection"
],
"maintenance": false,
"theme": "",
"loglevel": 2,
"default_phone_region": "be",
"memcache.distributed": "\\OC\\Memcache\\Redis",
"memcache.locking": "\\OC\\Memcache\\Redis",
"redis": {
"host": "***REMOVED SENSITIVE VALUE***",
"port": 6379
},
"memories.db.triggers.fcu": true,
"memories.exiftool": "\/var\/opt\/app\/cheops\/html\/apps\/memories\/bin-ext\/exiftool-amd64-glibc",
"memories.vod.path": "\/var\/opt\/app\/cheops\/html\/apps\/memories\/bin-ext\/go-vod-amd64"
}
}
List of activated Apps
Enabled:
- activity: 2.21.1
- bookmarks: 14.0.2
- bruteforcesettings: 2.9.0
- calendar: 4.7.4
- circles: 29.0.0-dev
- cloud_federation_api: 1.12.0
- comments: 1.19.0
- contacts: 6.0.0
- contactsinteraction: 1.10.0
- dashboard: 7.9.0
- dav: 1.30.1
- drawio: 3.0.2
- federatedfilesharing: 1.19.0
- files: 2.1.0
- files_automatedtagging: 1.19.0
- files_downloadlimit: 2.0.0
- files_external: 1.21.0
- files_pdfviewer: 2.10.0
- files_reminders: 1.2.0
- files_sharing: 1.21.0
- files_trashbin: 1.19.0
- files_versions: 1.22.0
- firstrunwizard: 2.18.0
- forms: 4.2.4
- groupfolders: 17.0.0
- integration_google: 2.2.0
- logreader: 2.14.0
- lookup_server_connector: 1.17.0
- mail: 3.6.1
- memories: 7.3.1
- nextcloud_announcements: 1.18.0
- notes: 4.10.0
- notifications: 2.17.0
- oauth2: 1.17.0
- oidc: 0.9.0
- password_policy: 1.19.0
- photos: 2.5.0
- previewgenerator: 5.5.0
- privacy: 1.13.0
- provisioning_api: 1.19.0
- ransomware_protection: 1.14.0
- recommendations: 2.1.0
- related_resources: 1.4.0
- richdocuments: 8.4.2
- serverinfo: 1.19.0
- settings: 1.12.0
- sharebymail: 1.19.0
- spreed: 19.0.1
- support: 1.12.0
- survey_client: 1.17.0
- systemtags: 1.19.0
- text: 3.10.0
- theming: 2.4.0
- twofactor_backupcodes: 1.18.0
- twofactor_totp: 11.0.0-dev
- updatenotification: 1.19.1
- user_status: 1.9.0
- viewer: 2.3.0
- weather_status: 1.9.0
- workflowengine: 2.11.0
Disabled:
- admin_audit: 1.19.0
- deck: 1.13.0 (installed 1.13.0)
- encryption: 2.17.0
- federation: 1.19.0 (installed 1.11.0)
- files_rightclick: 0.15.1 (installed 1.6.0)
- integration_github: 2.0.7 (installed 2.0.7)
- integration_gitlab: 1.0.19 (installed 1.0.19)
- integration_jira: 1.1.0 (installed 1.1.0)
- keeweb: 0.6.18 (installed 0.6.18)
- libresign: 9.0.2 (installed 9.0.2)
- suspicious_login: 7.0.0
- user_ldap: 1.20.0
Nextcloud Signing status
No errors have been found.
Nextcloud Logs
{"reqId":"7agk6Wp2f2q9ZyaIlKxl","level":2,"time":"2024-06-01T08:59:09+00:00","remoteAddr":"10.60.0.32","user":"pieter","app":"no app in context","method":"PUT","url":"/index.php/apps/files_external/globalstorages/2","message":"External storage not available: \"password\" is a required option, but it was not provided","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:126.0) Gecko/20100101 Firefox/126.0","version":"29.0.1.1","exception":{"Exception":"Exception","Message":"\"password\" is a required option, but it was not provided","Code":0,"Trace":[{"file":"/var/opt/app/cheops/html/3rdparty/php-opencloud/openstack/src/Common/Api/OperatorTrait.php","line":108,"function":"validate","class":"OpenStack\\Common\\Api\\Operation","type":"->"},{"file":"/var/opt/app/cheops/html/3rdparty/php-opencloud/openstack/src/Common/Api/OperatorTrait.php","line":127,"function":"sendRequest","class":"OpenStack\\Common\\Service\\AbstractService","type":"->"},{"file":"/var/opt/app/cheops/html/3rdparty/php-opencloud/openstack/src/Identity/v2/Service.php","line":29,"function":"execute","class":"OpenStack\\Common\\Service\\AbstractService","type":"->"},{"file":"/var/opt/app/cheops/html/lib/private/Files/ObjectStore/SwiftV2CachingAuthService.php","line":35,"function":"authenticate","class":"OpenStack\\Identity\\v2\\Service","type":"->"},{"file":"/var/opt/app/cheops/html/lib/private/Files/ObjectStore/SwiftFactory.php","line":214,"function":"authenticate","class":"OC\\Files\\ObjectStore\\SwiftV2CachingAuthService","type":"->"},{"file":"/var/opt/app/cheops/html/lib/private/Files/ObjectStore/SwiftFactory.php","line":167,"function":"auth","class":"OC\\Files\\ObjectStore\\SwiftFactory","type":"->"},{"file":"/var/opt/app/cheops/html/lib/private/Files/ObjectStore/SwiftFactory.php","line":259,"function":"getClient","class":"OC\\Files\\ObjectStore\\SwiftFactory","type":"->"},{"file":"/var/opt/app/cheops/html/lib/private/Files/ObjectStore/SwiftFactory.php","line":247,"function":"createContainer","class":"OC\\Files\\ObjectStore\\SwiftFactory","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/opt/app/cheops/html/apps/files_external/lib/Lib/Storage/Swift.php","line":585,"function":"getContainer","class":"OC\\Files\\ObjectStore\\SwiftFactory","type":"->"},{"file":"/var/opt/app/cheops/html/apps/files_external/lib/Lib/Storage/Swift.php","line":135,"function":"getContainer","class":"OCA\\Files_External\\Lib\\Storage\\Swift","type":"->"},{"file":"/var/opt/app/cheops/html/apps/files_external/lib/Lib/Storage/Swift.php","line":336,"function":"fetchObject","class":"OCA\\Files_External\\Lib\\Storage\\Swift","type":"->"},{"file":"/var/opt/app/cheops/html/lib/private/Files/Storage/Common.php","line":470,"function":"stat","class":"OCA\\Files_External\\Lib\\Storage\\Swift","type":"->"},{"file":"/var/opt/app/cheops/html/apps/files_external/lib/MountConfig.php","line":131,"function":"test","class":"OC\\Files\\Storage\\Common","type":"->"},{"file":"/var/opt/app/cheops/html/apps/files_external/lib/Controller/StoragesController.php","line":246,"function":"getBackendStatus","class":"OCA\\Files_External\\MountConfig","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/opt/app/cheops/html/apps/files_external/lib/Controller/GlobalStoragesController.php","line":201,"function":"updateStorageStatus","class":"OCA\\Files_External\\Controller\\StoragesController","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/opt/app/cheops/html/lib/private/AppFramework/Http/Dispatcher.php","line":232,"function":"update","class":"OCA\\Files_External\\Controller\\GlobalStoragesController","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/opt/app/cheops/html/lib/private/AppFramework/Http/Dispatcher.php","line":138,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/opt/app/cheops/html/lib/private/AppFramework/App.php","line":184,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/opt/app/cheops/html/lib/private/Route/Router.php","line":338,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/var/opt/app/cheops/html/lib/base.php","line":1050,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/var/opt/app/cheops/html/index.php","line":49,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/opt/app/cheops/html/3rdparty/php-opencloud/openstack/src/Common/Api/Operation.php","Line":116,"message":"External storage not available: \"password\" is a required option, but it was not provided","exception":{},"CustomMessage":"External storage not available: \"password\" is a required option, but it was not provided"}}
Additional info
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with apps/files_external/lib/Lib/Storage/Swift.php and lib/private/Files/ObjectStore/SwiftFactory.php, following the authentication path shown in the trace through SwiftV2CachingAuthService. Compare the Rackspace settings with the options passed to php-opencloud and reproduce the failure using the documented external-storage steps. Done means Rackspace Cloud Files can be added and the external storage becomes available without the missing-password error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- backend, cloud
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100