better debugs

This commit is contained in:
Girish Ramakrishnan
2022-11-05 08:43:02 +01:00
parent aae52ec795
commit 8a5d4e2fb0
3 changed files with 7 additions and 7 deletions

View File

@@ -173,6 +173,8 @@ async function upload(backupConfig, remotePath, dataLayout, progressCallback) {
assert.strictEqual(typeof dataLayout, 'object'); assert.strictEqual(typeof dataLayout, 'object');
assert.strictEqual(typeof progressCallback, 'function'); assert.strictEqual(typeof progressCallback, 'function');
debug(`upload: Uploading ${dataLayout.toString()} to ${remotePath}`);
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
async.retry({ times: 5, interval: 20000 }, function (retryCallback) { async.retry({ times: 5, interval: 20000 }, function (retryCallback) {
retryCallback = once(retryCallback); // protect again upload() erroring much later after tar stream error retryCallback = once(retryCallback); // protect again upload() erroring much later after tar stream error

View File

@@ -64,7 +64,7 @@ async function checkPreconditions(backupConfig, dataLayout) {
// check mount status before uploading // check mount status before uploading
const status = await storage.api(backupConfig.provider).getBackupProviderStatus(backupConfig); const status = await storage.api(backupConfig.provider).getBackupProviderStatus(backupConfig);
debug(`upload: mount point status is ${JSON.stringify(status)}`); debug(`upload: mount point status is ${JSON.stringify(status)}`);
if (status.state !== 'active') throw new BoxError(BoxError.MOUNT_ERROR, `Backup endpoint is not mounted: ${status.message}`); if (status.state !== 'active') throw new BoxError(BoxError.MOUNT_ERROR, `Backup endpoint is not active: ${status.message}`);
// check availabe size. this requires root for df to work // check availabe size. this requires root for df to work
const df = await storage.api(backupConfig.provider).getAvailableSize(backupConfig); const df = await storage.api(backupConfig.provider).getAvailableSize(backupConfig);
@@ -76,7 +76,7 @@ async function checkPreconditions(backupConfig, dataLayout) {
used += parseInt(result, 10); used += parseInt(result, 10);
} }
debug(`checkPreconditions: ${used} bytes`); debug(`checkPreconditions: total required =${used} available=${df.available}`);
const needed = 0.6 * used + (1024 * 1024 * 1024); // check if there is atleast 1GB left afterwards. aim for 60% because rsync/tgz won't need full 100% const needed = 0.6 * used + (1024 * 1024 * 1024); // check if there is atleast 1GB left afterwards. aim for 60% because rsync/tgz won't need full 100%
if (df.available <= needed) throw new BoxError(BoxError.FS_ERROR, `Not enough disk space for backup. Needed: ${prettyBytes(needed)} Available: ${prettyBytes(df.available)}`); if (df.available <= needed) throw new BoxError(BoxError.FS_ERROR, `Not enough disk space for backup. Needed: ${prettyBytes(needed)} Available: ${prettyBytes(df.available)}`);

View File

@@ -66,12 +66,10 @@ async function getBackupProviderStatus(apiConfig) {
assert.strictEqual(typeof apiConfig, 'object'); assert.strictEqual(typeof apiConfig, 'object');
// Check filesystem is mounted so we don't write into the actual folder on disk // Check filesystem is mounted so we don't write into the actual folder on disk
if (mounts.isManagedProvider(apiConfig.provider) || apiConfig.provider === 'mountpoint') { if (!mounts.isManagedProvider(apiConfig.provider) && apiConfig.provider !== 'mountpoint') return await mounts.getStatus(apiConfig.provider, apiConfig.backupFolder);
const hostPath = mounts.isManagedProvider(apiConfig.provider) ? paths.MANAGED_BACKUP_MOUNT_DIR : apiConfig.mountPoint;
return await mounts.getStatus(apiConfig.provider, hostPath); // { state, message }
}
return await mounts.getStatus(apiConfig.provider, apiConfig.backupFolder); const hostPath = mounts.isManagedProvider(apiConfig.provider) ? paths.MANAGED_BACKUP_MOUNT_DIR : apiConfig.mountPoint;
return await mounts.getStatus(apiConfig.provider, hostPath); // { state, message }
} }
// the du call in the function below requires root // the du call in the function below requires root