diff --git a/src/backups.js b/src/backups.js index 26955c7ba..a24a5b989 100644 --- a/src/backups.js +++ b/src/backups.js @@ -91,6 +91,7 @@ function api(provider) { case 's3': return s3; case 'filesystem': return filesystem; case 'minio': return s3; + case 'exoscale-sos': return s3; case 'noop': return noop; default: return null; } diff --git a/src/backuptask.js b/src/backuptask.js index eb05f038f..8197fa890 100755 --- a/src/backuptask.js +++ b/src/backuptask.js @@ -28,6 +28,7 @@ function api(provider) { case 's3': return s3; case 'filesystem': return filesystem; case 'minio': return s3; + case 'exoscale-sos': return s3; case 'noop': return noop; default: return null; } diff --git a/webadmin/src/views/settings.html b/webadmin/src/views/settings.html index e2e53501f..954fd50d5 100644 --- a/webadmin/src/views/settings.html +++ b/webadmin/src/views/settings.html @@ -166,7 +166,7 @@

- +
diff --git a/webadmin/src/views/settings.js b/webadmin/src/views/settings.js index 33e804e3e..a210fcbfd 100644 --- a/webadmin/src/views/settings.js +++ b/webadmin/src/views/settings.js @@ -42,6 +42,7 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca $scope.storageProvider = [ { name: 'Amazon S3', value: 's3' }, + { name: 'Exoscale SOS', value: 'exoscale-sos' }, { name: 'Filesystem', value: 'filesystem' }, { name: 'Minio', value: 'minio' }, { name: 'No-op (Only for testing)', value: 'noop' } @@ -294,7 +295,7 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca }; $scope.s3like = function (provider) { - return provider === 's3' || provider === 'minio'; + return provider === 's3' || provider === 'minio' || provider === 'exoscale-sos'; }; $scope.configureBackup = { @@ -357,13 +358,18 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca backupConfig.accessKeyId = $scope.configureBackup.accessKeyId; backupConfig.secretAccessKey = $scope.configureBackup.secretAccessKey; + if ($scope.configureBackup.endpoint) backupConfig.endpoint = $scope.configureBackup.endpoint; + if (backupConfig.provider === 's3') { if ($scope.configureBackup.region) backupConfig.region = $scope.configureBackup.region; } else if (backupConfig.provider === 'minio') { backupConfig.region = 'us-east-1'; + } else if (backupConfig.provider === 'exoscale-sos') { + backupConfig.endpoint = 'https://sos.exo.io'; + backupConfig.region = 'us-east-1'; + backupConfig.signatureVersion = 'v2'; } - if ($scope.configureBackup.endpoint) backupConfig.endpoint = $scope.configureBackup.endpoint; } else if (backupConfig.provider === 'filesystem') { backupConfig.backupFolder = $scope.configureBackup.backupFolder; }