in src/commands/azCopy/azCopyTransfer.ts [43:83]
function handleJob(context: IActionContext, jobInfo: IJobInfo, transferLabel: string): void {
const finalTransferStatus: AzCopyTransferStatus = jobInfo.latestStatus;
context.telemetry.properties.jobStatus = finalTransferStatus?.JobStatus;
if (!finalTransferStatus || finalTransferStatus.JobStatus !== 'Completed') {
let message: string = jobInfo.errorMessage || finalTransferStatus?.ErrorMsg || localize('azCopyTransfer', 'AzCopy Transfer: "{0}". ', finalTransferStatus?.JobStatus || 'Unknown');
if (finalTransferStatus?.FailedTransfers?.length || finalTransferStatus?.SkippedTransfers?.length) {
message += localize('checkOutputWindow', ' Check the [output window](command:{0}) for a list of incomplete transfers.', `${ext.prefix}.showOutputChannel`);
if (finalTransferStatus.FailedTransfers?.length) {
ext.outputChannel.appendLog(localize('failedTransfers', 'Failed transfer(s):'));
for (const failedTransfer of finalTransferStatus.FailedTransfers) {
ext.outputChannel.appendLog(`\t${failedTransfer.Dst}`);
}
}
if (finalTransferStatus.SkippedTransfers?.length) {
ext.outputChannel.appendLog(localize('skippedTransfers', 'Skipped transfer(s):'));
for (const skippedTransfer of finalTransferStatus.SkippedTransfers) {
ext.outputChannel.appendLog(`\t${skippedTransfer.Dst}`);
}
}
} else {
// Add an additional error log since we don't have any more info about the failure
ext.outputChannel.appendLog(localize('couldNotTransfer', 'Could not transfer "{0}"', transferLabel));
if (finalTransferStatus?.JobStatus === 'Failed' && process.platform === 'linux') {
message += localize('viewHelp', ' View help with [known issues](https://aka.ms/AAb0i6o).');
}
}
if (jobInfo.logFileLocation) {
const uri: Uri = Uri.file(jobInfo.logFileLocation);
ext.outputChannel.appendLog(localize('logFile', 'Log file: {0}', uri.toString()));
}
if (finalTransferStatus?.JobStatus && /CompletedWith*/gi.test(finalTransferStatus.JobStatus)) {
void context.ui.showWarningMessage(message);
} else {
throw new Error(message);
}
}
}