Merge pull request #25008 from owncloud/externals_test_with_origin

Add support to know where the storage test comes from
This commit is contained in:
Vincent Petry 2016-06-09 16:21:05 +02:00
commit ac163426ef
8 changed files with 27 additions and 18 deletions

View File

@ -299,7 +299,8 @@ StorageConfig.prototype = {
mountPoint: this.mountPoint, mountPoint: this.mountPoint,
backend: this.backend, backend: this.backend,
authMechanism: this.authMechanism, authMechanism: this.authMechanism,
backendOptions: this.backendOptions backendOptions: this.backendOptions,
testOnly: true
}; };
if (this.id) { if (this.id) {
data.id = this.id; data.id = this.id;
@ -326,6 +327,7 @@ StorageConfig.prototype = {
$.ajax({ $.ajax({
type: 'GET', type: 'GET',
url: OC.generateUrl(this._url + '/{id}', {id: this.id}), url: OC.generateUrl(this._url + '/{id}', {id: this.id}),
data: {'testOnly': true},
success: options.success, success: options.success,
error: options.error error: options.error
}); });
@ -908,6 +910,7 @@ MountConfigListView.prototype = _.extend({
$.ajax({ $.ajax({
type: 'GET', type: 'GET',
url: OC.generateUrl('apps/files_external/userglobalstorages'), url: OC.generateUrl('apps/files_external/userglobalstorages'),
data: {'testOnly' : true},
contentType: 'application/json', contentType: 'application/json',
success: function(result) { success: function(result) {
var onCompletion = jQuery.Deferred(); var onCompletion = jQuery.Deferred();

View File

@ -78,6 +78,7 @@ OCA.External.StatusManager = {
defObj = $.ajax({ defObj = $.ajax({
type: 'GET', type: 'GET',
url: OC.webroot + '/index.php/apps/files_external/' + ((mountData.type === 'personal') ? 'userstorages' : 'userglobalstorages') + '/' + mountData.id, url: OC.webroot + '/index.php/apps/files_external/' + ((mountData.type === 'personal') ? 'userstorages' : 'userglobalstorages') + '/' + mountData.id,
data: {'testOnly' : false},
success: function (response) { success: function (response) {
if (response && response.status === 0) { if (response && response.status === 0) {
self.mountStatus[mountData.mount_point] = response; self.mountStatus[mountData.mount_point] = response;

View File

@ -139,7 +139,8 @@ class GlobalStoragesController extends StoragesController {
$mountOptions, $mountOptions,
$applicableUsers, $applicableUsers,
$applicableGroups, $applicableGroups,
$priority $priority,
$testOnly = true
) { ) {
$storage = $this->createStorage( $storage = $this->createStorage(
$mountPoint, $mountPoint,
@ -172,7 +173,7 @@ class GlobalStoragesController extends StoragesController {
); );
} }
$this->updateStorageStatus($storage); $this->updateStorageStatus($storage, $testOnly);
return new DataResponse( return new DataResponse(
$storage, $storage,

View File

@ -238,7 +238,7 @@ abstract class StoragesController extends Controller {
* *
* @param StorageConfig $storage storage configuration * @param StorageConfig $storage storage configuration
*/ */
protected function updateStorageStatus(StorageConfig &$storage) { protected function updateStorageStatus(StorageConfig &$storage, $testOnly = true) {
try { try {
$this->manipulateStorageConfig($storage); $this->manipulateStorageConfig($storage);
@ -249,7 +249,8 @@ abstract class StoragesController extends Controller {
\OC_Mount_Config::getBackendStatus( \OC_Mount_Config::getBackendStatus(
$backend->getStorageClass(), $backend->getStorageClass(),
$storage->getBackendOptions(), $storage->getBackendOptions(),
false false,
$testOnly
) )
); );
} catch (InsufficientDataForMeaningfulAnswerException $e) { } catch (InsufficientDataForMeaningfulAnswerException $e) {
@ -293,11 +294,11 @@ abstract class StoragesController extends Controller {
* *
* @return DataResponse * @return DataResponse
*/ */
public function show($id) { public function show($id, $testOnly = true) {
try { try {
$storage = $this->service->getStorage($id); $storage = $this->service->getStorage($id);
$this->updateStorageStatus($storage); $this->updateStorageStatus($storage, $testOnly);
} catch (NotFoundException $e) { } catch (NotFoundException $e) {
return new DataResponse( return new DataResponse(
[ [

View File

@ -111,11 +111,11 @@ class UserGlobalStoragesController extends StoragesController {
* *
* @NoAdminRequired * @NoAdminRequired
*/ */
public function show($id) { public function show($id, $testOnly = true) {
try { try {
$storage = $this->service->getStorage($id); $storage = $this->service->getStorage($id);
$this->updateStorageStatus($storage); $this->updateStorageStatus($storage, $testOnly);
} catch (NotFoundException $e) { } catch (NotFoundException $e) {
return new DataResponse( return new DataResponse(
[ [
@ -146,7 +146,8 @@ class UserGlobalStoragesController extends StoragesController {
*/ */
public function update( public function update(
$id, $id,
$backendOptions $backendOptions,
$testOnly = true
) { ) {
try { try {
$storage = $this->service->getStorage($id); $storage = $this->service->getStorage($id);
@ -171,7 +172,7 @@ class UserGlobalStoragesController extends StoragesController {
); );
} }
$this->updateStorageStatus($storage); $this->updateStorageStatus($storage, $testOnly);
$this->sanitizeStorage($storage); $this->sanitizeStorage($storage);
return new DataResponse( return new DataResponse(

View File

@ -101,8 +101,8 @@ class UserStoragesController extends StoragesController {
* *
* {@inheritdoc} * {@inheritdoc}
*/ */
public function show($id) { public function show($id, $testOnly = true) {
return parent::show($id); return parent::show($id, $testOnly);
} }
/** /**
@ -170,7 +170,8 @@ class UserStoragesController extends StoragesController {
$backend, $backend,
$authMechanism, $authMechanism,
$backendOptions, $backendOptions,
$mountOptions $mountOptions,
$testOnly = true
) { ) {
$storage = $this->createStorage( $storage = $this->createStorage(
$mountPoint, $mountPoint,
@ -200,7 +201,7 @@ class UserStoragesController extends StoragesController {
); );
} }
$this->updateStorageStatus($storage); $this->updateStorageStatus($storage, $testOnly);
return new DataResponse( return new DataResponse(
$storage, $storage,

View File

@ -215,7 +215,7 @@ class OC_Mount_Config {
* @return int see self::STATUS_* * @return int see self::STATUS_*
* @throws Exception * @throws Exception
*/ */
public static function getBackendStatus($class, $options, $isPersonal) { public static function getBackendStatus($class, $options, $isPersonal, $testOnly = true) {
if (self::$skipTest) { if (self::$skipTest) {
return StorageNotAvailableException::STATUS_SUCCESS; return StorageNotAvailableException::STATUS_SUCCESS;
} }
@ -228,7 +228,7 @@ class OC_Mount_Config {
$storage = new $class($options); $storage = new $class($options);
try { try {
$result = $storage->test($isPersonal); $result = $storage->test($isPersonal, $testOnly);
$storage->setAvailability($result); $storage->setAvailability($result);
if ($result) { if ($result) {
return StorageNotAvailableException::STATUS_SUCCESS; return StorageNotAvailableException::STATUS_SUCCESS;

View File

@ -223,7 +223,8 @@ describe('OCA.External.Settings tests', function() {
applicableGroups: [], applicableGroups: [],
mountOptions: { mountOptions: {
'previews': true 'previews': true
} },
testOnly: true
}); });
// TODO: respond and check data-id // TODO: respond and check data-id