Add sshfs backup configuration

This commit is contained in:
Johannes Zellner
2020-06-05 12:47:33 +02:00
parent fb94416b1b
commit 8ee66d3abf
2 changed files with 18 additions and 1 deletions

View File

@@ -110,6 +110,12 @@
</p>
</div>
<!-- SSHFS -->
<div class="form-group" ng-class="{ 'has-error': configureBackup.error.mountPoint || !configureBackup.mountPoint }" ng-show="configureBackup.provider === 'sshfs'">
<label class="control-label" for="inputConfigureMountPoint">Mount point</label>
<input type="text" class="form-control" ng-model="configureBackup.mountPoint" id="inputConfigureMountPoint" name="mountPoint" ng-disabled="configureBackup.busy" placeholder="Folder where SSHFS is mounted" ng-required="configureBackup.provider === 'sshfs'">
</div>
<!-- Filesystem -->
<div class="form-group" ng-class="{ 'has-error': configureBackup.error.backupFolder || !configureBackup.backupFolder }" ng-show="configureBackup.provider === 'filesystem'">
<label class="control-label" for="inputConfigureBackupFolder">Local backup directory</label>
@@ -122,7 +128,8 @@
</label>
</div>
<div class="checkbox" ng-show="configureBackup.provider === 'filesystem'">
<!-- Filesystem/SSHFS -->
<div class="checkbox" ng-show="configureBackup.provider === 'filesystem' || configureBackup.provider === 'sshfs'">
<label>
<input type="checkbox" ng-model="configureBackup.useHardlinks" id="inputConfigureUseHardlinks">Use hardlinks</input>
</label>
@@ -145,11 +152,13 @@
<input type="text" class="form-control" ng-model="configureBackup.bucket" id="inputConfigureBackupBucket" name="bucket" ng-disabled="configureBackup.busy" ng-required="s3like(configureBackup.provider)">
</div>
<!-- S3/Minio/SOS/GCS/SSHFS -->
<div class="form-group" ng-class="{ 'has-error': configureBackup.error.prefix }" ng-show="configureBackup.provider !== 'filesystem' && configureBackup.provider !== 'noop'">
<label class="control-label" for="inputConfigureBackupPrefix">Prefix</label>
<input type="text" class="form-control" ng-model="configureBackup.prefix" id="inputConfigureBackupPrefix" name="prefix" ng-disabled="configureBackup.busy" placeholder="Prefix for backup file names">
</div>
<!-- S3/Minio/SOS/GCS -->
<div class="form-group" ng-class="{ 'has-error': configureBackup.error.region }" ng-show="configureBackup.provider === 's3'">
<label class="control-label" for="inputConfigureBackupS3Region">Region</label>
<select class="form-control" name="region" id="inputConfigureBackupS3Region" ng-model="configureBackup.region" ng-options="a.value as a.name for a in s3Regions" ng-disabled="configureBackup.busy" ng-required="configureBackup.provider === 's3'"></select>

View File

@@ -88,6 +88,7 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
{ name: 'Minio', value: 'minio' },
{ name: 'OVH Object Storage', value: 'ovh-objectstorage' },
{ name: 'Scaleway Object Storage', value: 'scaleway-objectstorage' },
{ name: 'SSHFS Mount', value: 'sshfs' },
{ name: 'No-op (Only for testing)', value: 'noop' },
{ name: 'S3 API Compatible (v4)', value: 's3-v4-compat' },
{ name: 'Wasabi', value: 'wasabi' }
@@ -341,6 +342,7 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
region: '',
endpoint: '',
backupFolder: '',
mountPoint: '',
acceptSelfSignedCerts: false,
useHardlinks: true,
externalDisk: false,
@@ -357,6 +359,7 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
$scope.configureBackup.endpoint = '';
$scope.configureBackup.region = '';
$scope.configureBackup.backupFolder = '';
$scope.configureBackup.mountPoint = '';
$scope.configureBackup.acceptSelfSignedCerts = false;
$scope.configureBackup.useHardlinks = true;
$scope.configureBackup.externalDisk = false;
@@ -383,6 +386,7 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
$scope.configureBackup.endpoint = $scope.backupConfig.endpoint;
$scope.configureBackup.password = $scope.backupConfig.password;
$scope.configureBackup.backupFolder = $scope.backupConfig.backupFolder;
$scope.configureBackup.mountPoint = $scope.backupConfig.mountPoint;
$scope.configureBackup.format = $scope.backupConfig.format;
$scope.configureBackup.acceptSelfSignedCerts = !!$scope.backupConfig.acceptSelfSignedCerts;
$scope.configureBackup.useHardlinks = !$scope.backupConfig.noHardlinks;
@@ -458,6 +462,10 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
$scope.configureBackup.busy = false;
return;
}
} else if (backupConfig.provider === 'sshfs') {
backupConfig.mountPoint = $scope.configureBackup.mountPoint;
backupConfig.prefix = $scope.configureBackup.prefix;
backupConfig.noHardlinks = !$scope.configureBackup.useHardlinks;
} else if (backupConfig.provider === 'filesystem') {
backupConfig.backupFolder = $scope.configureBackup.backupFolder;
backupConfig.noHardlinks = !$scope.configureBackup.useHardlinks;