os download: Improve error message when not logged in (balenaOS ESR versions)

Change-type: patch
This commit is contained in:
Paulo Castro 2021-12-09 17:44:24 +00:00
parent 5c40c8d51f
commit 6e07db0813
5 changed files with 30 additions and 4 deletions

View File

@ -2309,9 +2309,11 @@ Examples:
$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version 2.60.1+rev1 $ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version 2.60.1+rev1
$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version 2.60.1+rev1.dev $ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version 2.60.1+rev1.dev
$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version ^2.60.0 $ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version ^2.60.0
$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version 2021.10.1
$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version latest $ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version latest
$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version default $ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version default
$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version menu $ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version menu
$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version menu-esr
### Arguments ### Arguments

View File

@ -56,9 +56,11 @@ export default class OsDownloadCmd extends Command {
'$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version 2.60.1+rev1', '$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version 2.60.1+rev1',
'$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version 2.60.1+rev1.dev', '$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version 2.60.1+rev1.dev',
'$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version ^2.60.0', '$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version ^2.60.0',
'$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version 2021.10.1',
'$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version latest', '$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version latest',
'$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version default', '$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version default',
'$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version menu', '$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version menu',
'$ balena os download raspberrypi3 -o ../foo/bar/raspberry-pi.img --version menu-esr',
]; ];
public static args = [ public static args = [
@ -96,6 +98,26 @@ export default class OsDownloadCmd extends Command {
OsDownloadCmd, OsDownloadCmd,
); );
// balenaOS ESR versions require user authentication
if (options.version) {
const { isESR } = await import('balena-image-manager');
if (options.version === 'menu-esr' || isESR(options.version)) {
try {
await OsDownloadCmd.checkLoggedIn();
} catch (e) {
const { ExpectedError, NotLoggedInError } = await import(
'../../errors'
);
if (e instanceof NotLoggedInError) {
throw new ExpectedError(stripIndent`
${e.message}
User authentication is required to download balenaOS ESR versions.`);
}
throw e;
}
}
}
const { downloadOSImage } = await import('../../utils/cloud'); const { downloadOSImage } = await import('../../utils/cloud');
try { try {

6
npm-shrinkwrap.json generated
View File

@ -3783,9 +3783,9 @@
} }
}, },
"balena-image-manager": { "balena-image-manager": {
"version": "7.1.0", "version": "7.1.1",
"resolved": "https://registry.npmjs.org/balena-image-manager/-/balena-image-manager-7.1.0.tgz", "resolved": "https://registry.npmjs.org/balena-image-manager/-/balena-image-manager-7.1.1.tgz",
"integrity": "sha512-W8Etn0PBQJUlTJ1m1rCuQQ8TTLdkBoNP2SRHQqez2HANQp+T38wFjQXVx9PhQ6J7eqOYuW87SkJiKLpnmlz79Q==", "integrity": "sha512-ny0BrjdK23RFKG0VDk6PceYMtiekyqJEoh91Q/JxjWwayoV+CUajQJYN9YE95i2Qp/iqI97Hlm1V5N4E1YHLEg==",
"requires": { "requires": {
"balena-sdk": "^15.2.1", "balena-sdk": "^15.2.1",
"mime": "^2.4.6", "mime": "^2.4.6",

View File

@ -207,7 +207,7 @@
"balena-device-init": "^6.0.0", "balena-device-init": "^6.0.0",
"balena-errors": "^4.7.1", "balena-errors": "^4.7.1",
"balena-image-fs": "^7.0.6", "balena-image-fs": "^7.0.6",
"balena-image-manager": "^7.1.0", "balena-image-manager": "^7.1.1",
"balena-preload": "^11.0.0", "balena-preload": "^11.0.0",
"balena-release": "^3.2.0", "balena-release": "^3.2.0",
"balena-sdk": "^15.51.1", "balena-sdk": "^15.51.1",

View File

@ -22,4 +22,6 @@ declare module 'balena-image-manager' {
deviceType: string, deviceType: string,
versionOrRange: string, versionOrRange: string,
): Promise<NodeJS.ReadableStream & { mime: string }>; ): Promise<NodeJS.ReadableStream & { mime: string }>;
export function isESR(version: string): boolean;
} }