filesystem: rename backupFolder to backupDir

This commit is contained in:
Girish Ramakrishnan
2025-08-02 10:37:37 +02:00
parent 4fcaae8053
commit 547d8ae113
13 changed files with 66 additions and 49 deletions
+1 -1
View File
@@ -237,7 +237,7 @@ describe('backup cleaner', function () {
target = await getDefaultBackupTarget();
await backupTargets.setConfig(target, {
provider: 'filesystem',
backupFolder: '/tmp/someplace',
backupDir: '/tmp/someplace',
}, auditSource);
await backupTargets.setRetention(target, { keepWithinSecs: 1 }, auditSource);
await backupTargets.setSchedule(target, '00 00 23 * * *', auditSource);
+3 -3
View File
@@ -32,7 +32,7 @@ describe('backups', function () {
it('can get backup target', async function () {
const backupTarget = await backupTargets.get(defaultBackupTarget.id);
expect(backupTarget.provider).to.be('filesystem');
expect(backupTarget.config.backupFolder).to.be.ok(); // the test sets this to some tmp location
expect(backupTarget.config.backupDir).to.be.ok(); // the test sets this to some tmp location
expect(backupTarget.format).to.be('tgz');
expect(backupTarget.encryption).to.be(null);
});
@@ -43,11 +43,11 @@ describe('backups', function () {
});
it('can set backup config', async function () {
const newConfig = Object.assign({}, defaultBackupTarget.config, { backupFolder: '/tmp/backups' });
const newConfig = Object.assign({}, defaultBackupTarget.config, { backupDir: '/tmp/backups' });
await backupTargets.setConfig(defaultBackupTarget, newConfig, auditSource);
const result = await backupTargets.get(defaultBackupTarget.id);
expect(result.config.backupFolder).to.be('/tmp/backups');
expect(result.config.backupDir).to.be('/tmp/backups');
});
it('cannot set invalid schedule', async function () {
+8 -8
View File
@@ -27,13 +27,13 @@ describe('backuptask', function () {
const backupConfig = {
provider: 'filesystem',
backupFolder: path.join(os.tmpdir(), 'backupstask-test-filesystem'),
backupDir: path.join(os.tmpdir(), 'backupstask-test-filesystem'),
};
let defaultBackupTarget;
before(async function () {
fs.rmSync(backupConfig.backupFolder, { recursive: true, force: true });
fs.rmSync(backupConfig.backupDir, { recursive: true, force: true });
defaultBackupTarget = await getDefaultBackupTarget();
await backupTargets.setConfig(defaultBackupTarget, backupConfig, auditSource);
});
@@ -69,8 +69,8 @@ describe('backuptask', function () {
}
const result = await createBackup(defaultBackupTarget);
expect(fs.statSync(path.join(backupConfig.backupFolder, 'snapshot/box.tar.gz')).nlink).to.be(2); // hard linked to a rotated backup
expect(fs.statSync(path.join(backupConfig.backupFolder, result.remotePath)).nlink).to.be(2);
expect(fs.statSync(path.join(backupConfig.backupDir, 'snapshot/box.tar.gz')).nlink).to.be(2); // hard linked to a rotated backup
expect(fs.statSync(path.join(backupConfig.backupDir, result.remotePath)).nlink).to.be(2);
backupInfo1 = result;
});
@@ -83,13 +83,13 @@ describe('backuptask', function () {
}
const result = await createBackup(defaultBackupTarget);
expect(fs.statSync(path.join(backupConfig.backupFolder, 'snapshot/box.tar.gz')).nlink).to.be(2); // hard linked to a rotated backup
expect(fs.statSync(path.join(backupConfig.backupFolder, result.remotePath)).nlink).to.be(2); // hard linked to new backup
expect(fs.statSync(path.join(backupConfig.backupFolder, backupInfo1.remotePath)).nlink).to.be(1); // not hard linked anymore
expect(fs.statSync(path.join(backupConfig.backupDir, 'snapshot/box.tar.gz')).nlink).to.be(2); // hard linked to a rotated backup
expect(fs.statSync(path.join(backupConfig.backupDir, result.remotePath)).nlink).to.be(2); // hard linked to new backup
expect(fs.statSync(path.join(backupConfig.backupDir, backupInfo1.remotePath)).nlink).to.be(1); // not hard linked anymore
});
it('cleanup', function () {
fs.rmSync(backupConfig.backupFolder, { recursive: true, force: true });
fs.rmSync(backupConfig.backupDir, { recursive: true, force: true });
});
});
});
+1 -1
View File
@@ -225,7 +225,7 @@ async function databaseSetup() {
const id = await backupTargets.add({
provider: 'filesystem',
label: 'Default',
config: { backupFolder: '/tmp/boxtest' },
config: { backupDir: '/tmp/boxtest' },
format: 'tgz',
retention: { keepWithinSecs: 2 * 24 * 60 * 60 },
schedule: '00 00 23 * * *'
+13 -13
View File
@@ -33,7 +33,7 @@ describe('Storage', function () {
const gBackupConfig = {
key: 'key',
backupFolder: null,
backupDir: null,
prefix: 'someprefix'
};
@@ -42,7 +42,7 @@ describe('Storage', function () {
before(async function () {
gTmpFolder = fs.mkdtempSync(path.join(os.tmpdir(), 'filesystem-storage-test_'));
defaultBackupTarget = await getDefaultBackupTarget();
gBackupConfig.backupFolder = path.join(gTmpFolder, 'backups/');
gBackupConfig.backupDir = path.join(gTmpFolder, 'backups/');
});
after(function (done) {
@@ -51,20 +51,20 @@ describe('Storage', function () {
});
it('fails to set backup storage for bad folder', async function () {
const tmp = Object.assign({}, gBackupConfig, { backupFolder: '/root/oof' });
const tmp = Object.assign({}, gBackupConfig, { backupDir: '/root/oof' });
const [error] = await safe(backupTargets.setConfig(defaultBackupTarget, tmp, auditSource));
expect(error.reason).to.equal(BoxError.BAD_FIELD);
});
it('succeeds to set backup storage', async function () {
await backupTargets.setConfig(defaultBackupTarget, gBackupConfig, auditSource);
expect(fs.existsSync(path.join(gBackupConfig.backupFolder, 'someprefix/snapshot'))).to.be(true); // auto-created
expect(fs.existsSync(path.join(gBackupConfig.backupDir, 'someprefix/snapshot'))).to.be(true); // auto-created
});
it('can upload', async function () {
const sourceFile = path.join(__dirname, 'storage/data/test.txt');
const sourceStream = fs.createReadStream(sourceFile);
const destFile = path.join(gBackupConfig.backupFolder, gBackupConfig.prefix, '/uploadtest/test.txt');
const destFile = path.join(gBackupConfig.backupDir, gBackupConfig.prefix, '/uploadtest/test.txt');
const uploader = await filesystem.upload(gBackupConfig, 'uploadtest/test.txt');
await stream.pipeline(sourceStream, uploader.stream);
await uploader.finish();
@@ -75,7 +75,7 @@ describe('Storage', function () {
xit('upload waits for empty file to be created', async function () {
const sourceFile = path.join(__dirname, 'storage/data/empty');
const sourceStream = fs.createReadStream(sourceFile);
const destFile = path.join(gBackupConfig.backupFolder, gBackupConfig.prefix, '/uploadtest/empty');
const destFile = path.join(gBackupConfig.backupDir, gBackupConfig.prefix, '/uploadtest/empty');
const uploader = await filesystem.upload(gBackupConfig, destFile);
await stream.pipeline(sourceStream, uploader.stream);
await uploader.finish();
@@ -86,7 +86,7 @@ describe('Storage', function () {
it('upload unlinks old file', async function () {
const sourceFile = path.join(__dirname, 'storage/data/test.txt');
const sourceStream = fs.createReadStream(sourceFile);
const destFile = path.join(gBackupConfig.backupFolder, gBackupConfig.prefix, '/uploadtest/test.txt');
const destFile = path.join(gBackupConfig.backupDir, gBackupConfig.prefix, '/uploadtest/test.txt');
const oldStat = fs.statSync(destFile);
const uploader = await filesystem.upload(gBackupConfig, 'uploadtest/test.txt');
await stream.pipeline(sourceStream, uploader.stream);
@@ -97,7 +97,7 @@ describe('Storage', function () {
});
it('can download file', async function () {
const sourceFile = path.join(gBackupConfig.backupFolder, gBackupConfig.prefix, '/uploadtest/test.txt');
const sourceFile = path.join(gBackupConfig.backupDir, gBackupConfig.prefix, '/uploadtest/test.txt');
const [error, stream] = await safe(filesystem.download(gBackupConfig, 'uploadtest/test.txt'));
expect(error).to.be(null);
expect(stream).to.be.an('object');
@@ -112,7 +112,7 @@ describe('Storage', function () {
it('list dir lists the source dir', async function () {
const sourceDir = path.join(__dirname, 'storage');
execSync(`cp -r ${sourceDir} ${gBackupConfig.backupFolder}/${gBackupConfig.prefix}`, { encoding: 'utf8' });
execSync(`cp -r ${sourceDir} ${gBackupConfig.backupDir}/${gBackupConfig.prefix}`, { encoding: 'utf8' });
let allFiles = [], marker = null;
while (true) {
@@ -127,22 +127,22 @@ describe('Storage', function () {
});
it('can copy', async function () {
// const sourceFile = path.join(gBackupConfig.backupFolder, gBackupConfig.prefix, '/uploadtest/test.txt'); // keep the test within same device
const destFile = path.join(gBackupConfig.backupFolder, gBackupConfig.prefix, '/uploadtest/test-hardlink.txt');
// const sourceFile = path.join(gBackupConfig.backupDir, gBackupConfig.prefix, '/uploadtest/test.txt'); // keep the test within same device
const destFile = path.join(gBackupConfig.backupDir, gBackupConfig.prefix, '/uploadtest/test-hardlink.txt');
await filesystem.copy(gBackupConfig, 'uploadtest/test.txt', 'uploadtest/test-hardlink.txt', () => {});
expect(fs.statSync(destFile).nlink).to.be(2); // created a hardlink
});
it('can remove file', async function () {
const sourceFile = path.join(gBackupConfig.backupFolder, gBackupConfig.prefix, '/uploadtest/test-hardlink.txt');
const sourceFile = path.join(gBackupConfig.backupDir, gBackupConfig.prefix, '/uploadtest/test-hardlink.txt');
await filesystem.remove(gBackupConfig, 'uploadtest/test-hardlink.txt');
expect(fs.existsSync(sourceFile)).to.be(false);
});
it('can remove empty dir', async function () {
const sourceDir = path.join(gBackupConfig.backupFolder, gBackupConfig.prefix, 'emptydir');
const sourceDir = path.join(gBackupConfig.backupDir, gBackupConfig.prefix, 'emptydir');
fs.mkdirSync(sourceDir);
await filesystem.remove(gBackupConfig, 'emptydir', () => {});