Add backups.testProviderConfig

fields like format/retention won't be validated here since it's only
testing the access credentials
This commit is contained in:
Girish Ramakrishnan
2019-12-05 11:55:51 -08:00
parent d57681ff21
commit a44a82083e
3 changed files with 13 additions and 2 deletions
+1 -1
View File
@@ -1463,7 +1463,7 @@ function importApp(appId, data, auditSource, callback) {
if (error) return callback(error);
// TODO: make this smarter to do a read-only test and check if the file exists in the storage backend
const testBackupConfig = backupConfig ? backups.testConfig.bind(null, backupConfig) : (next) => next();
const testBackupConfig = backupConfig ? backups.testProviderConfig.bind(null, backupConfig) : (next) => next();
testBackupConfig(function (error) {
if (error) return callback(error);
+12
View File
@@ -2,6 +2,7 @@
exports = module.exports = {
testConfig: testConfig,
testProviderConfig: testProviderConfig,
getByStatePaged: getByStatePaged,
getByAppIdPaged: getByAppIdPaged,
@@ -118,6 +119,17 @@ function testConfig(backupConfig, callback) {
api(backupConfig.provider).testConfig(backupConfig, callback);
}
function testProviderConfig(backupConfig, callback) {
assert.strictEqual(typeof backupConfig, 'object');
assert.strictEqual(typeof callback, 'function');
var func = api(backupConfig.provider);
if (!func) return callback(new BoxError(BoxError.BAD_FIELD, 'unknown storage provider', { field: 'provider' }));
api(backupConfig.provider).testConfig(backupConfig, callback);
}
function getByStatePaged(state, page, perPage, callback) {
assert.strictEqual(typeof state, 'string');
assert(typeof page === 'number' && page > 0);
-1
View File
@@ -406,7 +406,6 @@ function importApp(req, res, next) {
if (req.body.backupConfig) {
if (typeof backupConfig.provider !== 'string') return next(new HttpError(400, 'provider is required'));
if ('key' in backupConfig && typeof backupConfig.key !== 'string') return next(new HttpError(400, 'key must be a string'));
if (typeof backupConfig.format !== 'string') return next(new HttpError(400, 'format must be a string'));
if ('acceptSelfSignedCerts' in backupConfig && typeof backupConfig.acceptSelfSignedCerts !== 'boolean') return next(new HttpError(400, 'format must be a boolean'));
// testing backup config can take sometime