diff --git a/src/js/restore.js b/src/js/restore.js index 5f15e27a3..a713a04fd 100644 --- a/src/js/restore.js +++ b/src/js/restore.js @@ -98,6 +98,10 @@ app.controller('RestoreController', ['$scope', 'Client', function ($scope, Clien { name: 'NL-AMS', value: 'https://s3.nl-ams.scw.cloud', region: 'nl-ams' } ]; + $scope.linodeRegions = [ + { name: 'Newark', value: 'us-east-1.linodeobjects.com', region: 'us-east-1' }, // default + ]; + $scope.wasabiRegions = [ { name: 'EU Central 1', value: 'https://s3.eu-central-1.wasabisys.com' }, { name: 'US East 1', value: 'https://s3.wasabisys.com' }, @@ -123,7 +127,8 @@ app.controller('RestoreController', ['$scope', 'Client', function ($scope, Clien $scope.s3like = function (provider) { return provider === 's3' || provider === 'minio' || provider === 's3-v4-compat' || provider === 'exoscale-sos' - || provider === 'digitalocean-spaces' || provider === 'wasabi' || provider === 'scaleway-objectstorage'; + || provider === 'digitalocean-spaces' || provider === 'wasabi' || provider === 'scaleway-objectstorage' + || provider === 'linode-objectstorage'; }; $scope.restore = function () { @@ -160,6 +165,9 @@ app.controller('RestoreController', ['$scope', 'Client', function ($scope, Clien } else if (backupConfig.provider === 'scaleway-objectstorage') { backupConfig.region = $scope.scalewayRegions.find(function (x) { return x.value === $scope.endpoint; }).region; backupConfig.signatureVersion = 'v4'; + } else if (backupConfig.provider === 'linode-objectstorage') { + backupConfig.region = $scope.linodeRegions.find(function (x) { return x.value === $scope.endpoint; }).region; + backupConfig.signatureVersion = 'v4'; } else if (backupConfig.provider === 'digitalocean-spaces') { backupConfig.region = 'us-east-1'; } diff --git a/src/restore.html b/src/restore.html index 52d3d4f18..b79661561 100644 --- a/src/restore.html +++ b/src/restore.html @@ -128,6 +128,11 @@ +
+ + +
+
diff --git a/src/views/backups.html b/src/views/backups.html index b5ff7d822..249eaa97b 100644 --- a/src/views/backups.html +++ b/src/views/backups.html @@ -106,6 +106,11 @@
+
+ + +
+
diff --git a/src/views/backups.js b/src/views/backups.js index b8074f890..e4f573fae 100644 --- a/src/views/backups.js +++ b/src/views/backups.js @@ -61,12 +61,17 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat { name: 'NL-AMS', value: 'https://s3.nl-ams.scw.cloud', region: 'nl-ams' } ]; + $scope.linodeRegions = [ + { name: 'Newark', value: 'us-east-1.linodeobjects.com', region: 'us-east-1' }, // default + ]; + $scope.storageProvider = [ { name: 'Amazon S3', value: 's3' }, { name: 'DigitalOcean Spaces', value: 'digitalocean-spaces' }, { name: 'Exoscale SOS', value: 'exoscale-sos' }, { name: 'Filesystem', value: 'filesystem' }, { name: 'Google Cloud Storage', value: 'gcs' }, + { name: 'Linode Object Storage', value: 'linode-objectstorage' }, { name: 'Minio', value: 'minio' }, { name: 'Scaleway Object Storage', value: 'scaleway-objectstorage' }, { name: 'No-op (Only for testing)', value: 'noop' }, @@ -188,7 +193,8 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat $scope.s3like = function (provider) { return provider === 's3' || provider === 'minio' || provider === 's3-v4-compat' || provider === 'exoscale-sos' || provider === 'digitalocean-spaces' - || provider === 'scaleway-objectstorage' || provider === 'wasabi'; + || provider === 'scaleway-objectstorage' || provider === 'wasabi' + || provider === 'linode-objectstorage'; }; $scope.configureBackup = { @@ -298,6 +304,9 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat } else if (backupConfig.provider === 'scaleway-objectstorage') { backupConfig.region = $scope.scalewayRegions.find(function (x) { return x.value === $scope.configureBackup.endpoint; }).region; backupConfig.signatureVersion = 'v4'; + } else if (backupConfig.provider === 'linode-objectstorage') { + backupConfig.region = $scope.linodeRegions.find(function (x) { return x.value === $scope.configureBackup.endpoint; }).region; + backupConfig.signatureVersion = 'v4'; } else if (backupConfig.provider === 'digitalocean-spaces') { backupConfig.region = 'us-east-1'; }