initial xfs support
This commit is contained in:
@@ -26,6 +26,7 @@ const PROVIDER_FILESYSTEM = 'filesystem';
|
||||
const PROVIDER_MOUNTPOINT = 'mountpoint';
|
||||
const PROVIDER_SSHFS = 'sshfs';
|
||||
const PROVIDER_CIFS = 'cifs';
|
||||
const PROVIDER_XFS = 'xfs';
|
||||
const PROVIDER_NFS = 'nfs';
|
||||
const PROVIDER_EXT4 = 'ext4';
|
||||
|
||||
@@ -52,6 +53,7 @@ function getRootPath(apiConfig) {
|
||||
case PROVIDER_NFS:
|
||||
case PROVIDER_CIFS:
|
||||
case PROVIDER_EXT4:
|
||||
case PROVIDER_XFS:
|
||||
return path.join(paths.MANAGED_BACKUP_MOUNT_DIR, apiConfig.prefix);
|
||||
case PROVIDER_MOUNTPOINT:
|
||||
return path.join(apiConfig.mountPoint, apiConfig.prefix);
|
||||
@@ -89,7 +91,7 @@ async function checkPreconditions(apiConfig, dataLayout) {
|
||||
if (error) throw new BoxError(BoxError.FS_ERROR, `Error when checking for disk space: ${error.message}`);
|
||||
|
||||
// Check filesystem is mounted so we don't write into the actual folder on disk
|
||||
if (apiConfig.provider === PROVIDER_SSHFS || apiConfig.provider === PROVIDER_CIFS || apiConfig.provider === PROVIDER_NFS || apiConfig.provider === PROVIDER_EXT4) {
|
||||
if (apiConfig.provider === PROVIDER_SSHFS || apiConfig.provider === PROVIDER_CIFS || apiConfig.provider === PROVIDER_NFS || apiConfig.provider === PROVIDER_EXT4 || apiConfig.provider === PROVIDER_XFS) {
|
||||
if (result.mountpoint !== paths.MANAGED_BACKUP_MOUNT_DIR) throw new BoxError(BoxError.FS_ERROR, 'Backup target is not mounted');
|
||||
} else if (apiConfig.provider === PROVIDER_MOUNTPOINT) {
|
||||
if (result.mountpoint === '/') throw new BoxError(BoxError.FS_ERROR, `${apiConfig.backupFolder} is not mounted`);
|
||||
@@ -103,6 +105,7 @@ function hasChownSupportSync(apiConfig) {
|
||||
switch (apiConfig.provider) {
|
||||
case PROVIDER_NFS:
|
||||
case PROVIDER_EXT4:
|
||||
case PROVIDER_XFS:
|
||||
case PROVIDER_FILESYSTEM:
|
||||
return true;
|
||||
case PROVIDER_SSHFS:
|
||||
@@ -287,7 +290,7 @@ async function testConfig(apiConfig) {
|
||||
if (!apiConfig.backupFolder || typeof apiConfig.backupFolder !== 'string') throw new BoxError(BoxError.BAD_FIELD, 'backupFolder must be non-empty string');
|
||||
const error = validateBackupTarget(apiConfig.backupFolder);
|
||||
if (error) throw error;
|
||||
} else { // cifs/ext4/nfs/mountpoint/sshfs
|
||||
} else { // xfs/cifs/ext4/nfs/mountpoint/sshfs
|
||||
if (apiConfig.provider === PROVIDER_MOUNTPOINT) {
|
||||
if (!apiConfig.mountPoint || typeof apiConfig.mountPoint !== 'string') throw new BoxError(BoxError.BAD_FIELD, 'mountPoint must be non-empty string');
|
||||
const error = validateBackupTarget(apiConfig.mountPoint);
|
||||
|
||||
Reference in New Issue
Block a user