Owncloud Openstack Swift

Hi Everyone,

Im trying to connect Owncloud server 9.1 with openstack swift. The thing is that when i enable External Storage (Im using owncloud community edition) And put the parameters, the connection failed. The log /var/www/html/owncloud/data/owncloud.log does not show anything, only show connection refused when i pass a wrong parameter.

Im not sure if this configuration could work because the documentations says that External Storage connections are only available in the Enterprise Edition, however, I can enable this option from the admin panel.

Any suggestions

Thanks in advance

Here is my config.

‘objectstore’ => array(
‘class’ => ‘OC\Files\ObjectStore\Swift’,
‘arguments’ => array(
‘username’ => ‘',
‘password’ => '
’,
‘container’ => ‘MyCloud’,
‘autocreate’ => true,
‘region’ => ‘RegionOne’,
‘url’ => ‘http://x.x.x.x:5000/v2.0’,
‘tenantName’ => ‘swift’,
‘serviceName’ => ‘swift’,
‘urlType’ => ‘internal’
),
),

An here is what the log shows

{“reqId”:“WFfgHwudIIURxHf9IpqQkQAAAAQ”,“remoteAddr”:“x.x.x.x”,“app”:“objectstore”,“message”:“Could not create object: Client error response\n[status code] 401\n[reason phrase] Unauthorized\n[url] http://x.x.x.x:5000/v2.0/tokens”,“level”:3,“time”:“2016-12-19T13:26:56+00:00”,“method”:“GET”,“url”:“/owncloud/index.php/settings/ajax/checksetup”,“user”:“admin”}
{“reqId”:“WFfgHwudIIURxHf9IpqQkQAAAAQ”,“remoteAddr”:“x.x.x.x”,“app”:“objectstore”,“message”:“Could not create object: Client error response\n[status code] 401\n[reason phrase] Unauthorized\n[url] http://x.x.x.x:5000/v2.0/tokens”,“level”:3,“time”:“2016-12-19T13:26:56+00:00”,“method”:“GET”,“url”:“/owncloud/index.php/settings/ajax/checksetup”,“user”:“admin”}
{“reqId”:“WFfgHwudIIURxHf9IpqQkQAAAAQ”,“remoteAddr”:“x.x.x.x”,“app”:“index”,“message”:“Exception: {"Exception":"Guzzle\\Http\\Exception\\ClientErrorResponseException","Message":"Client error response\n[status code] 401\n[reason phrase] Unauthorized\n[url] http:\/\/200.89.90.1:5000\/v2.0\/tokens","Code":0,"Trace":"#0 \/var\/www\/html\/owncloud\/3rdparty\/guzzle\/http\/Guzzle\/Http\/Message\/Request.php(145): Guzzle\\Http\\Exception\\BadResponseException::factory(Object(Guzzle\\Http\\Message\\EntityEnclosingRequest), Object(Guzzle\\Http\\Message\\Response))\n#1 [internal function]: Guzzle\\Http\\Message\\Request::onRequestError(Object(Guzzle\\Common\\Event), ‘request.error’, Object(Symfony\\Component\\EventDispatcher\\EventDispatcher))\n#2 \/var\/www\/html\/owncloud\/3rdparty\/symfony\/event-dispatcher\/EventDispatcher.php(181): call_user_func(Array, Object(Guzzle\\Common\\Event), ‘request.error’, Object(Symfony\\Component\\EventDispatcher\\EventDispatcher))\n#3 \/var\/www\/html\/owncloud\/3rdparty\/symfony\/event-dispatcher\/EventDispatcher.php(46): Symfony\\Component\\EventDispatcher\\EventDispatcher->doDispatch(Array, ‘request.error’, Object(Guzzle\\Common\\Event))\n#4 \/var\/www\/html\/owncloud\/3rdparty\/guzzle\/http\/Guzzle\/Http\/Message\/Request.php(589): Symfony\\Component\\EventDispatcher\\EventDispatcher->dispatch(‘request.error’, Object(Guzzle\\Common\\Event))\n#5 \/var\/www\/html\/owncloud\/3rdparty\/guzzle\/http\/Guzzle\/Http\/Message\/Request.php(378): Guzzle\\Http\\Message\\Request->processResponse(Array)\n#6 \/var\/www\/html\/owncloud\/3rdparty\/guzzle\/http\/Guzzle\/Http\/Message\/EntityEnclosingRequest.php(49): Guzzle\\Http\\Message\\Request->setState(‘complete’, Array)\n#7 \/var\/www\/html\/owncloud\/3rdparty\/guzzle\/http\/Guzzle\/Http\/Curl\/CurlMulti.php(286): Guzzle\\Http\\Message\\EntityEnclosingRequest->setState(‘complete’, Array)\n#8 \/var\/www\/html\/owncloud\/3rdparty\/guzzle\/http\/Guzzle\/Http\/Curl\/CurlMulti.php(244): Guzzle\\Http\\Curl\\CurlMulti->processResponse(Object(Guzzle\\Http\\Message\\EntityEnclosingRequest), Object(Guzzle\\Http\\Curl\\CurlHandle), Array)\n#9 \/var\/www\/html\/owncloud\/3rdparty\/guzzle\/http\/Guzzle\/Http\/Curl\/CurlMulti.php(227): Guzzle\\Http\\Curl\\CurlMulti->processMessages()\n#10 \/var\/www\/html\/owncloud\/3rdparty\/guzzle\/http\/Guzzle\/Http\/Curl\/CurlMulti.php(211): Guzzle\\Http\\Curl\\CurlMulti->executeHandles()\n#11 \/var\/www\/html\/owncloud\/3rdparty\/guzzle\/http\/Guzzle\/Http\/Curl\/CurlMulti.php(105): Guzzle\\Http\\Curl\\CurlMulti->perform()\n#12 \/var\/www\/html\/owncloud\/3rdparty\/guzzle\/http\/Guzzle\/Http\/Curl\/CurlMultiProxy.php(91): Guzzle\\Http\\Curl\\CurlMulti->send()\n#13 \/var\/www\/html\/owncloud\/3rdparty\/guzzle\/http\/Guzzle\/Http\/Client.php(282): Guzzle\\Http\\Curl\\CurlMultiProxy->send()\n#14 \/var\/www\/html\/owncloud\/3rdparty\/guzzle\/http\/Guzzle\/Http\/Message\/Request.php(198): Guzzle\\Http\\Client->send(Object(Guzzle\\Http\\Message\\EntityEnclosingRequest))\n#15 \/var\/www\/html\/owncloud\/3rdparty\/rackspace\/php-opencloud\/lib\/OpenCloud\/Identity\/Service.php(167): Guzzle\\Http\\Message\\Request->send()\n#16 \/var\/www\/html\/owncloud\/3rdparty\/rackspace\/php-opencloud\/lib\/OpenCloud\/OpenStack.php(370): OpenCloud\\Identity\\Service->generateToken(*** sensitive parameters replaced ***)\n#17 \/var\/www\/html\/owncloud\/3rdparty\/rackspace\/php-opencloud\/lib\/OpenCloud\/Common\/Service\/CatalogService.php(184): OpenCloud\\OpenStack->authenticate()\n#18 \/var\/www\/html\/owncloud\/3rdparty\/rackspace\/php-opencloud\/lib\/OpenCloud\/Common\/Service\/CatalogService.php(72): OpenCloud\\Common\\Service\\CatalogService->findEndpoint()\n#19 \/var\/www\/html\/owncloud\/3rdparty\/rackspace\/php-opencloud\/lib\/OpenCloud\/ObjectStore\/Service.php(43): OpenCloud\\Common\\Service\\CatalogService->__construct(Object(OpenCloud\\OpenStack), NULL, ‘swift’, ‘RegionOne’, ‘internal’)\n#20 \/var\/www\/html\/owncloud\/3rdparty\/rackspace\/php-opencloud\/lib\/OpenCloud\/Common\/Service\/ServiceBuilder.php(43): OpenCloud\\ObjectStore\\Service->__construct(Object(OpenCloud\\OpenStack), NULL, ‘swift’, ‘RegionOne’, ‘internal’)\n#21 \/var\/www\/html\/owncloud\/3rdparty\/rackspace\/php-opencloud\/lib\/OpenCloud\/OpenStack.php(459): OpenCloud\\Common\\Service\\ServiceBuilder::factory(Object(OpenCloud\\OpenStack), ‘OpenCloud\\Objec…’, Array)\n#22 \/var\/www\/html\/owncloud\/lib\/private\/Files\/ObjectStore\/Swift.php(85): OpenCloud\\OpenStack->objectStoreService(‘swift’, ‘RegionOne’, ‘internal’)\n#23 \/var\/www\/html\/owncloud\/lib\/private\/Files\/ObjectStore\/Swift.php(112): OC\\Files\\ObjectStore\\Swift->init()\n#24 \/var\/www\/html\/owncloud\/lib\/private\/Files\/ObjectStore\/ObjectStoreStorage.php(389): OC\\Files\\ObjectStore\\Swift->writeObject(‘urn:oid:23’, Resource id #633)\n#25 [internal function]: OC\\Files\\ObjectStore\\ObjectStoreStorage->writeBack(‘\/tmp\/oc_tmp_rXT…’)\n#26 \/var\/www\/html\/owncloud\/lib\/private\/Files\/Stream\/Close.php(103): call_user_func(Array, ‘\/tmp\/oc_tmp_rXT…’)\n#27 [internal function]: OC\\Files\\Stream\\Close->stream_close()\n#28 \/var\/www\/html\/owncloud\/apps\/files_external\/3rdparty\/icewind\/streams\/src\/Wrapper.php(124): fclose(Resource id #626)\n#29 \/var\/www\/html\/owncloud\/apps\/files_external\/3rdparty\/icewind\/streams\/src\/CallbackWrapper.php(107): Icewind\\Streams\\Wrapper->stream_close()\n#30 [internal function]: Icewind\\Streams\\CallbackWrapper->stream_close()\n#31 \/var\/www\/html\/owncloud\/lib\/private\/Security\/CertificateManager.php(128): fclose(Resource id #629)\n#32 \/var\/www\/html\/owncloud\/lib\/private\/Security\/CertificateManager.php(205): OC\\Security\\CertificateManager->createCertificateBundle()\n#33 \/var\/www\/html\/owncloud\/lib\/private\/Http\/Client\/Client.php(73): OC\\Security\\CertificateManager->getAbsoluteBundlePath(NULL)\n#34 \/var\/www\/html\/owncloud\/lib\/private\/Http\/Client\/Client.php(135): OC\\Http\\Client\\Client->setDefaultOptions()\n#35 \/var\/www\/html\/owncloud\/settings\/Controller\/CheckSetupController.php(194): OC\\Http\\Client\\Client->get(‘https:\/\/www.own…’)\n#36 \/var\/www\/html\/owncloud\/settings\/Controller\/CheckSetupController.php(335): OC\\Settings\\Controller\\CheckSetupController->isUsedTlsLibOutdated()\n#37 [internal function]: OC\\Settings\\Controller\\CheckSetupController->check()\n#38 \/var\/www\/html\/owncloud\/lib\/private\/AppFramework\/Http\/Dispatcher.php(159): call_user_func_array(Array, Array)\n#39 \/var\/www\/html\/owncloud\/lib\/private\/AppFramework\/Http\/Dispatcher.php(89): OC\\AppFramework\\Http\\Dispatcher->executeController(Object(OC\\Settings\\Controller\\CheckSetupController), ‘check’)\n#40 \/var\/www\/html\/owncloud\/lib\/private\/AppFramework\/App.php(99): OC\\AppFramework\\Http\\Dispatcher->dispatch(Object(OC\\Settings\\Controller\\CheckSetupController), ‘check’)\n#41 \/var\/www\/html\/owncloud\/lib\/private\/AppFramework\/Routing\/RouteActionHandler.php(46): OC\\AppFramework\\App::main(‘CheckSetupContr…’, ‘check’, Object(OC\\AppFramework\\DependencyInjection\\DIContainer), Array)\n#42 [internal function]: OC\\AppFramework\\Routing\\RouteActionHandler->__invoke(Array)\n#43 \/var\/www\/html\/owncloud\/lib\/private\/Route\/Router.php(280): call_user_func(Object(OC\\AppFramework\\Routing\\RouteActionHandler), Array)\n#44 \/var\/www\/html\/owncloud\/lib\/base.php(891): OC\\Route\\Router->match(‘\/settings\/ajax\/…’)\n#45 \/var\/www\/html\/owncloud\/index.php(54): OC::handleRequest()\n#46 {main}","File":"\/var\/www\/html\/owncloud\/3rdparty\/guzzle\/http\/Guzzle\/Http\/Exception\/BadResponseException.php","Line":43}”,“level”:3,“time”:“2016-12-19T13:26:56+00:00”,“method”:“GET”,“url”:“/owncloud/index.php/settings/ajax/checksetup”,“user”:“admin”}

Did you check this yet?ownCloud Documentation Overview

Yes i did, actually, i made some changes in the config. Looks like this now

‘objectstore’ => array(
‘class’ => ‘OC\Files\ObjectStore\Swift’,
‘arguments’ => array(
‘username’ => ‘swift’,
‘password’ => ‘xxx’,
‘container’ => ‘MyCloud’,
‘autocreate’ => true,
‘region’ => ‘RegionOne’,
‘url’ => ‘http://X.X.X.X:5000/v3/auth’,
‘tenantName’ => ‘swift’,
‘serviceName’ => ‘swift’,
‘urlType’ => ‘internal’
),
),

And here the error in OC server

{“reqId”:“WFf4oIt19AfpDT6qiosYpwAAAAo”,“remoteAddr”:“200.89.90.253”,“app”:“objectstore”,“message”:“Could not create object: Client error response\n[status code] 400\n[reason phrase] Bad Request\n[url] http://200.89.90.1:5000/v3/auth/tokens”,“level”:3,“time”:“2016-12-19T15:11:28+00:00”,“method”:“POST”,“url”:“/owncloud/index.php/apps/files/ajax/upload.php”,“user”:“admin”}

Also, i got this error too in Openstack swift.

2016-12-19 11:25:37.084 26381 INFO keystone.common.wsgi [req-53f9098e-2f00-4c21-97c3-4c67e4612824 - - - - -] POST http://X.X.X.X:5000/v3/auth/tokens
2016-12-19 11:25:37.085 26381 WARNING keystone.common.wsgi [req-53f9098e-2f00-4c21-97c3-4c67e4612824 - - - - -] Expecting to find identity in auth - the server could not comply with the request since it is either malformed or otherwise incorrect. The client is assumed to be in error.

Any sugestions ?

I am sorry but my knowledge on this topic is not really much into depth. Would you mind filing a detailed bug report on github?

Thanks for you response,

Im going to make another tests before submit this topic into GitHub.

Regards