mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ACA-4247] Improve login error logs in scan-env command in adf-cli (#6539)
* [ACA-4247] Improve login error logs in scan-env command in adf-cli * [ACA-4247] Changed console.logs and requires to satisfy pre-commit checks
This commit is contained in:
@@ -1,19 +1,20 @@
|
||||
const { AlfrescoApiCompatibility, PeopleApi, NodesApi, GroupsApi, SitesApi, SearchApi } = require('@alfresco/js-api');
|
||||
const program = require('commander');
|
||||
import { AlfrescoApi, PeopleApi, NodesApi, GroupsApi, SitesApi, SearchApi } from '@alfresco/js-api';
|
||||
import * as program from 'commander';
|
||||
import { logger } from './logger';
|
||||
|
||||
interface PeopleTally { enabled: number, disabled: number }
|
||||
interface RowToPrint { label: string, value: number }
|
||||
interface PeopleTally { enabled: number; disabled: number; }
|
||||
interface RowToPrint { label: string; value: number; }
|
||||
|
||||
const MAX_ATTEMPTS = 10;
|
||||
const TIMEOUT = 60000;
|
||||
const MAX_PEOPLE_PER_PAGE = 100;
|
||||
const USERS_HOME_RELATIVE_PATH = 'User Homes';
|
||||
|
||||
let jsApiConnection;
|
||||
let jsApiConnection: any;
|
||||
let loginAttempts: number = 0;
|
||||
|
||||
export default async function main(_args: string[]) {
|
||||
|
||||
|
||||
program
|
||||
.version('0.1.0')
|
||||
.option('--host <type>', 'Remote environment host')
|
||||
@@ -32,7 +33,7 @@ export default async function main(_args: string[]) {
|
||||
rowsToPrint.push({ label: 'Sites', value: await getSitesCount() });
|
||||
rowsToPrint.push({ label: 'Files', value: await getFilesCount() });
|
||||
|
||||
console.log(generateTable(rowsToPrint));
|
||||
logger.info(generateTable(rowsToPrint));
|
||||
|
||||
}
|
||||
|
||||
@@ -43,12 +44,12 @@ function generateTable(rowsToPrint: Array<RowToPrint>) {
|
||||
valueColumn: Math.max(maxWidths.valueColumn, row.value.toString().length)
|
||||
};
|
||||
}, { labelColumn: 12, valueColumn: 1 });
|
||||
|
||||
|
||||
const horizontalLine = ''.padEnd(columnWidths.labelColumn + columnWidths.valueColumn + 5, '═');
|
||||
const headerText = 'ENVIRONM'.padStart(Math.floor((columnWidths.labelColumn + columnWidths.valueColumn + 3) / 2), ' ')
|
||||
+ 'ENT SCAN'.padEnd(Math.ceil((columnWidths.labelColumn + columnWidths.valueColumn + 3) / 2), ' ');
|
||||
|
||||
const reset = '\x1b[0m', grey = '\x1b[90m', cyan = '\x1b[36m', yellow = '\x1b[93m', bright = '\x1b[1m';
|
||||
const reset = '\x1b[0m', grey = '\x1b[90m', cyan = '\x1b[36m', yellow = '\x1b[33m', bright = '\x1b[1m';
|
||||
|
||||
let tableString = `${grey}╒${horizontalLine}╕${reset}
|
||||
${grey}│ ${bright}${cyan}${headerText} ${grey}│${reset}
|
||||
@@ -63,22 +64,35 @@ ${grey}╞${horizontalLine}╡${reset}`;
|
||||
|
||||
async function attemptLogin() {
|
||||
try {
|
||||
jsApiConnection = new AlfrescoApiCompatibility({
|
||||
jsApiConnection = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: program.host
|
||||
});
|
||||
await jsApiConnection.login(program.username, program.password);
|
||||
} catch (err) {
|
||||
console.log('Login error environment down or inaccessible');
|
||||
loginAttempts++;
|
||||
if (MAX_ATTEMPTS === loginAttempts) {
|
||||
console.log('Give up');
|
||||
process.exit(1);
|
||||
} else {
|
||||
console.log(`Retry in 1 minute attempt N ${loginAttempts}`);
|
||||
await wait(TIMEOUT);
|
||||
await attemptLogin();
|
||||
await handleLoginError(err);
|
||||
}
|
||||
}
|
||||
|
||||
async function handleLoginError(loginError) {
|
||||
const reset = '\x1b[0m', bright = '\x1b[1m', red = '\x1b[31m';
|
||||
if (loginAttempts === 0) {
|
||||
logger.error(`${red}${bright}ENVIRONMENT SCAN${reset}${red} - Login error: environment down or inaccessible${reset}`);
|
||||
}
|
||||
loginAttempts++;
|
||||
if (MAX_ATTEMPTS === loginAttempts) {
|
||||
if (loginError.response && loginError.response.text) {
|
||||
const parsedJson = JSON.parse(loginError.response.text);
|
||||
if (typeof parsedJson === 'object' && parsedJson.error) {
|
||||
logger.error(parsedJson.error);
|
||||
}
|
||||
}
|
||||
logger.error('Give up');
|
||||
process.exit(1);
|
||||
} else {
|
||||
logger.error(`Retry in 1 minute attempt N ${loginAttempts}`);
|
||||
await wait(TIMEOUT);
|
||||
await attemptLogin();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,7 +115,7 @@ async function getPeopleCount(skipCount: number = 0): Promise<PeopleTally> {
|
||||
}
|
||||
return result;
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
logger.error(error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -114,7 +128,7 @@ async function getHomeFoldersCount(): Promise<number> {
|
||||
});
|
||||
return homesFolderApiResult.list.pagination.totalItems;
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
logger.error(error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,7 +138,7 @@ async function getGroupsCount(): Promise<number> {
|
||||
const groupsApiResult = await groupsApi.listGroups({ maxItems: 1 });
|
||||
return groupsApiResult.list.pagination.totalItems;
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
logger.error(error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,7 +148,7 @@ async function getSitesCount(): Promise<number> {
|
||||
const sitesApiResult = await sitesApi.listSites({ maxItems: 1 });
|
||||
return sitesApiResult.list.pagination.totalItems;
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
logger.error(error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -143,7 +157,7 @@ async function getFilesCount(): Promise<number> {
|
||||
const searchApi = new SearchApi(jsApiConnection);
|
||||
const searchApiResult = await searchApi.search({
|
||||
query: {
|
||||
query: "select * from cmis:document",
|
||||
query: 'select * from cmis:document',
|
||||
language: 'cmis'
|
||||
},
|
||||
paging: {
|
||||
@@ -152,7 +166,7 @@ async function getFilesCount(): Promise<number> {
|
||||
});
|
||||
return searchApiResult.list.pagination.totalItems;
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
logger.error(error);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user