diff --git a/plugins/catalog-backend/src/ingestion/processors/AwsOrganizationProcessor.test.ts b/plugins/catalog-backend/src/ingestion/processors/AwsOrganizationCloudAccountProcessor.test.ts similarity index 88% rename from plugins/catalog-backend/src/ingestion/processors/AwsOrganizationProcessor.test.ts rename to plugins/catalog-backend/src/ingestion/processors/AwsOrganizationCloudAccountProcessor.test.ts index 61e2d298af..cea9310f2c 100644 --- a/plugins/catalog-backend/src/ingestion/processors/AwsOrganizationProcessor.test.ts +++ b/plugins/catalog-backend/src/ingestion/processors/AwsOrganizationCloudAccountProcessor.test.ts @@ -14,12 +14,12 @@ * limitations under the License. */ -import { AwsOrganizationProcessor } from './AwsOrganizationProcessor'; +import { AwsOrganizationCloudAccountProcessor } from './AwsOrganizationCloudAccountProcessor'; -describe('AwsOrganizationProcessor', () => { +describe('AwsOrganizationCloudAccountProcessor', () => { describe('readLocation', () => { - const processor = new AwsOrganizationProcessor(); - const location = { type: 'aws-organization', target: 'b' }; + const processor = new AwsOrganizationCloudAccountProcessor(); + const location = { type: 'aws-cloud-accounts', target: 'b' }; const emit = jest.fn(); const listAccounts = jest.fn(); diff --git a/plugins/catalog-backend/src/ingestion/processors/AwsOrganizationProcessor.ts b/plugins/catalog-backend/src/ingestion/processors/AwsOrganizationCloudAccountProcessor.ts similarity index 83% rename from plugins/catalog-backend/src/ingestion/processors/AwsOrganizationProcessor.ts rename to plugins/catalog-backend/src/ingestion/processors/AwsOrganizationCloudAccountProcessor.ts index 60b914af9d..77e5e222dc 100644 --- a/plugins/catalog-backend/src/ingestion/processors/AwsOrganizationProcessor.ts +++ b/plugins/catalog-backend/src/ingestion/processors/AwsOrganizationCloudAccountProcessor.ts @@ -15,7 +15,6 @@ */ import { ComponentEntityV1alpha1, - Entity, LocationSpec, } from '@backstage/catalog-model'; import AWS, { Organizations } from 'aws-sdk'; @@ -25,9 +24,14 @@ import * as results from './results'; import { CatalogProcessor, CatalogProcessorEmit } from './types'; const AWS_ORGANIZATION_REGION = 'us-east-1'; -const LOCATION_TYPE = 'aws-organization'; +const LOCATION_TYPE = 'aws-cloud-accounts'; -export class AwsOrganizationProcessor implements CatalogProcessor { +/** + * A processor for ingesting AWS Accounts from AWS Organizations. + * + * If custom authentication is needed, it can be achieved by configuring the global AWS.credentials object. + */ +export class AwsOrganizationCloudAccountProcessor implements CatalogProcessor { organizations: Organizations; constructor() { this.organizations = new AWS.Organizations({ @@ -35,18 +39,6 @@ export class AwsOrganizationProcessor implements CatalogProcessor { }); // Only available in us-east-1 } - async handleError(): Promise { - return undefined; - } - - async postProcessEntity(entity: Entity): Promise { - return entity; - } - - async preProcessEntity(entity: Entity): Promise { - return entity; - } - normalizeName(name: string): string { return name .trim() @@ -68,16 +60,16 @@ export class AwsOrganizationProcessor implements CatalogProcessor { async getAwsAccounts(): Promise { let awsAccounts: Account[] = []; let isInitialAttempt = true; - let NextToken = undefined; - while (isInitialAttempt || NextToken) { + let nextToken = undefined; + while (isInitialAttempt || nextToken) { isInitialAttempt = false; const orgAccounts: ListAccountsResponse = await this.organizations - .listAccounts({ NextToken }) + .listAccounts({ NextToken: nextToken }) .promise(); if (orgAccounts.Accounts) { awsAccounts = awsAccounts.concat(orgAccounts.Accounts); - NextToken = orgAccounts.NextToken; } + nextToken = orgAccounts.NextToken; } return awsAccounts; @@ -124,8 +116,4 @@ export class AwsOrganizationProcessor implements CatalogProcessor { return true; } - - async validateEntityKind(): Promise { - return false; - } } diff --git a/plugins/catalog-backend/src/ingestion/processors/index.ts b/plugins/catalog-backend/src/ingestion/processors/index.ts index 7818c083ee..5574b05bc0 100644 --- a/plugins/catalog-backend/src/ingestion/processors/index.ts +++ b/plugins/catalog-backend/src/ingestion/processors/index.ts @@ -17,7 +17,7 @@ import * as results from './results'; export { AnnotateLocationEntityProcessor } from './AnnotateLocationEntityProcessor'; -export { AwsOrganizationProcessor } from './AwsOrganizationProcessor'; +export { AwsOrganizationProcessor } from './AwsOrganizationCloudAccountProcessor'; export { BuiltinKindsEntityProcessor } from './BuiltinKindsEntityProcessor'; export { CodeOwnersProcessor } from './CodeOwnersProcessor'; export { FileReaderProcessor } from './FileReaderProcessor';