@csermet/multiprovider
Version:
cloud-graph provider plugin for AWS used to fetch AWS cloud data.
70 lines (69 loc) • 2.74 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const glue_1 = __importDefault(require("aws-sdk/clients/glue"));
const groupBy_1 = __importDefault(require("lodash/groupBy"));
const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
const fetchUtils_1 = require("../../utils/fetchUtils");
const utils_1 = require("../../utils");
const errorLog_1 = __importDefault(require("../../utils/errorLog"));
const serviceName = 'glueRegistry';
const errorLog = new errorLog_1.default(serviceName);
const endpoint = utils_1.initTestEndpoint(serviceName);
/**
* GlueRegistry
*/
exports.default = async ({ regions, config, }) => {
const result = [];
const activeRegions = regions.split(',');
for (const region of activeRegions) {
let glueRegistryData = [];
try {
glueRegistryData = await fetchUtils_1.fetchAllPaginatedData({
getResourcesFn: fetchUtils_1.convertToPromise({
sdkContext: new glue_1.default({ ...config, region, endpoint }),
fnName: 'listRegistries',
}),
accessor: '',
});
}
catch (err) {
errorLog.generateAwsErrorLog({
functionName: 'glueRegisty:listRegistries',
err,
});
}
if (!isEmpty_1.default(glueRegistryData))
for (const registry of glueRegistryData) {
let glueSchemaData;
try {
glueSchemaData = await fetchUtils_1.fetchAllPaginatedData({
getResourcesFn: fetchUtils_1.convertToPromise({
sdkContext: new glue_1.default({ ...config, region, endpoint }),
fnName: 'listSchemas',
}),
initialParams: {
RegistryId: {
RegistryArn: registry.RegistryArn,
},
},
accessor: '',
});
}
catch (err) {
errorLog.generateAwsErrorLog({
functionName: 'glueRegisty:listSchemas',
err,
});
}
result.push({ ...registry, schemas: glueSchemaData, region });
}
else {
result.push(...glueRegistryData.map(val => ({ ...val, region })));
}
}
errorLog.reset();
return groupBy_1.default(result, 'region');
};