better debugs
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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)}`);
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user