From 63740c7692ca4347c13237dd96018c681de3a4cd Mon Sep 17 00:00:00 2001 From: Spencer Stolworthy Date: Fri, 7 Apr 2023 13:46:18 -0700 Subject: [PATCH] revert: #12351 --- ...bda-layer-cloud-formation-template.test.ts | 13 +---- .../__tests__/utils/layerCloudState.test.ts | 56 ------------------- .../lambda-layer-cloudformation-template.ts | 9 +-- .../utils/layerCloudState.ts | 8 +-- packages/amplify-cli-core/API.md | 2 +- .../src/errors/amplify-exception.ts | 1 - 6 files changed, 5 insertions(+), 84 deletions(-) delete mode 100644 packages/amplify-category-function/src/__tests__/utils/layerCloudState.test.ts diff --git a/packages/amplify-category-function/src/__tests__/provider-utils/awscloudformation/utils/lambda-layer-cloud-formation-template.test.ts b/packages/amplify-category-function/src/__tests__/provider-utils/awscloudformation/utils/lambda-layer-cloud-formation-template.test.ts index 6af190e5103..9bb18950d94 100644 --- a/packages/amplify-category-function/src/__tests__/provider-utils/awscloudformation/utils/lambda-layer-cloud-formation-template.test.ts +++ b/packages/amplify-category-function/src/__tests__/provider-utils/awscloudformation/utils/lambda-layer-cloud-formation-template.test.ts @@ -1,4 +1,4 @@ -import { AmplifyError, pathManager, stateManager } from '@aws-amplify/amplify-cli-core'; +import { pathManager, stateManager } from '@aws-amplify/amplify-cli-core'; import { ServiceName } from '../../../../provider-utils/awscloudformation/utils/constants'; import { generateLayerCfnObj } from '../../../../provider-utils/awscloudformation/utils/lambda-layer-cloudformation-template'; import { isMultiEnvLayer } from '../../../../provider-utils/awscloudformation/utils/layerHelpers'; @@ -106,17 +106,6 @@ describe('test layer CFN generation functions', () => { expect(Object.keys(layerCfn.Resources).length).toBe(2); // 1 LayerVersion, 1 LayerVersionPermission }); - it('should throw an error when the logical name is not found', () => { - try { - generateLayerCfnObj(false, parameters_stub, []); - } catch { - expect(AmplifyError).toHaveBeenCalledWith('LambdaLayerNotFoundError', { - message: 'No versions were found for the Lambda Layer. Were they deleted on the AWS Lambda Console?', - }); - } - expect.assertions(1); - }); - it('should generate the expected CFN for an existing LL resource and new version', () => { const layerCfn = generateLayerCfnObj(true, parameters_stub, [fakeLayerCfnMeta]); validateParameters(layerCfn); diff --git a/packages/amplify-category-function/src/__tests__/utils/layerCloudState.test.ts b/packages/amplify-category-function/src/__tests__/utils/layerCloudState.test.ts deleted file mode 100644 index ba687ee743f..00000000000 --- a/packages/amplify-category-function/src/__tests__/utils/layerCloudState.test.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { $TSContext } from '@aws-amplify/amplify-cli-core'; -import { LayerCloudState } from '../../provider-utils/awscloudformation/utils/layerCloudState'; - -/** - * Any module that resolves will do here - */ -jest.mock('aws-sdk', () => { - return { - getLambdaSdk: jest.fn().mockResolvedValue({ - listLayerVersions: jest.fn().mockReturnValue([]), - }), - getCloudFormationSdk: jest.fn().mockReturnValue({ - listStackResources: jest.fn().mockReturnValue({ - StackResourceSummaries: [ - { - LogicalResourceId: 'a-fake-layer-name', - ResourceType: 'AWS::CloudFormation::Stack', - }, - ], - }), - }), - }; -}); -const LAYER_NAME = 'a-fake-layer-name'; -jest.mock('../../provider-utils/awscloudformation/utils/layerHelpers', () => { - return { - isMultiEnvLayer: jest.fn().mockImplementation(() => true), - }; -}); -describe('When the lambda layer is not found in the deployed stack', () => { - test('throw an AmplifyError', async () => { - const cloudState = LayerCloudState.getInstance(LAYER_NAME); - const context = { - print: { - error: jest.fn(), - }, - usageData: { - emitError: jest.fn(), - }, - amplify: { - getEnvInfo: jest.fn().mockImplementation(() => ({ envName: 'faked-env' })), - getProviderPlugins: jest.fn().mockImplementation(() => ({ - awscloudformation: 'aws-sdk', - })), - }, - }; - const processExit = jest.spyOn(process, 'exit').mockImplementation((__code?: number) => undefined as never); - await cloudState.getLayerVersionsFromCloud(context as unknown as $TSContext, LAYER_NAME); - expect(context.usageData.emitError).toHaveBeenCalledWith( - new Error( - `An error occurred fetching the latest layer version metadata for "a-fake-layer-name": No versions were found for the Lambda Layer. Were they deleted on the AWS Lambda Console?\n\nThe following layers were not found:\n * ${LAYER_NAME}\n`, - ), - ); - expect(processExit).toHaveBeenCalledWith(1); - }); -}); diff --git a/packages/amplify-category-function/src/provider-utils/awscloudformation/utils/lambda-layer-cloudformation-template.ts b/packages/amplify-category-function/src/provider-utils/awscloudformation/utils/lambda-layer-cloudformation-template.ts index 362ce4d74bd..e89a94bd39b 100644 --- a/packages/amplify-category-function/src/provider-utils/awscloudformation/utils/lambda-layer-cloudformation-template.ts +++ b/packages/amplify-category-function/src/provider-utils/awscloudformation/utils/lambda-layer-cloudformation-template.ts @@ -1,4 +1,4 @@ -import { AmplifyError, stateManager } from '@aws-amplify/amplify-cli-core'; +import { stateManager } from '@aws-amplify/amplify-cli-core'; import { DeletionPolicy, Fn, IntrinsicFunction, Refs } from 'cloudform-types'; import Lambda from 'cloudform-types/types/lambda'; import _ from 'lodash'; @@ -30,12 +30,7 @@ export function generateLayerCfnObj(isNewVersion: boolean, parameters: LayerPara layerCloudState.latestVersionLogicalId = logicalName; versionList.unshift({ LogicalName: logicalName, legacyLayer: false }); } else { - logicalName = _.first(versionList)?.LogicalName; - if (!logicalName) { - throw new AmplifyError('LambdaLayerNotFoundError', { - message: 'No versions were found for the Lambda Layer. Were they deleted on the AWS Lambda Console?', - }); - } + logicalName = _.first(versionList).LogicalName; } const outputObj = { diff --git a/packages/amplify-category-function/src/provider-utils/awscloudformation/utils/layerCloudState.ts b/packages/amplify-category-function/src/provider-utils/awscloudformation/utils/layerCloudState.ts index eee1f58a034..b908689e878 100644 --- a/packages/amplify-category-function/src/provider-utils/awscloudformation/utils/layerCloudState.ts +++ b/packages/amplify-category-function/src/provider-utils/awscloudformation/utils/layerCloudState.ts @@ -1,4 +1,4 @@ -import { AmplifyError, $TSContext, exitOnNextTick, spinner } from '@aws-amplify/amplify-cli-core'; +import { $TSContext, exitOnNextTick, spinner } from '@aws-amplify/amplify-cli-core'; import { LayerCfnLogicalNamePrefix } from './constants'; // eslint-disable-next-line import/no-cycle import { isMultiEnvLayer } from './layerHelpers'; @@ -41,12 +41,6 @@ export class LayerCloudState { spinner.stop(); return []; } - if (layerVersionList.length === 0) { - const missingLayers = layerStacks.map(({ LogicalResourceId }) => ` * ${LogicalResourceId}\n`); - throw new AmplifyError('LambdaLayerNotFoundError', { - message: `No versions were found for the Lambda Layer. Were they deleted on the AWS Lambda Console?\n\nThe following layers were not found:\n${missingLayers}`, - }); - } layerVersionList.forEach((layerVersion: LayerVersionMetadata) => { let layerLogicalIdSuffix: string; diff --git a/packages/amplify-cli-core/API.md b/packages/amplify-cli-core/API.md index 818aae346d3..5293bb2ccfb 100644 --- a/packages/amplify-cli-core/API.md +++ b/packages/amplify-cli-core/API.md @@ -120,7 +120,7 @@ export class AmplifyError extends AmplifyException { } // @public (undocumented) -export type AmplifyErrorType = 'AmplifyStudioError' | 'AmplifyStudioLoginError' | 'AmplifyStudioNotEnabledError' | 'ApiCategorySchemaNotFoundError' | 'AuthImportError' | 'BackendConfigValidationError' | 'BucketAlreadyExistsError' | 'BucketNotFoundError' | 'CategoryNotEnabledError' | 'CloudFormationTemplateError' | 'CommandNotSupportedError' | 'ConfigurationError' | 'CustomPoliciesFormatError' | 'DebugConfigValueNotSetError' | 'DeploymentError' | 'DeploymentInProgressError' | 'DestructiveMigrationError' | 'DiagnoseReportUploadError' | 'DirectoryAlreadyExistsError' | 'DirectoryError' | 'DuplicateLogicalIdError' | 'EnvironmentConfigurationError' | 'EnvironmentNameError' | 'EnvironmentNotInitializedError' | 'ExportError' | 'FeatureFlagsValidationError' | 'FileSystemPermissionsError' | 'FrameworkNotSupportedError' | 'FunctionTooLargeError' | 'GraphQLError' | 'InputValidationError' | 'InvalidAmplifyAppIdError' | 'InvalidCustomResourceError' | 'InvalidDirectiveError' | 'InvalidGSIMigrationError' | 'InvalidMigrationError' | 'InvalidOverrideError' | 'InvalidStackError' | 'InvalidTransformerError' | 'IterativeRollbackError' | 'LambdaFunctionInvokeError' | 'LambdaLayerDeleteError' | 'LambdaLayerNotFoundError' | 'MigrationError' | 'MissingAmplifyMetaFileError' | 'MissingExpectedParameterError' | 'MissingOverridesInstallationRequirementsError' | 'MockProcessError' | 'ModelgenError' | 'NestedProjectInitError' | 'NotImplementedError' | 'NoUpdateBackendError' | 'OpenSslCertificateError' | 'PackagingLambdaFunctionError' | 'ParameterNotFoundError' | 'PermissionsError' | 'PluginMethodNotFoundError' | 'PluginNotFoundError' | 'PluginPolicyAddError' | 'ProfileConfigurationError' | 'ProjectAppIdResolveError' | 'ProjectInitError' | 'ProjectNotFoundError' | 'ProjectNotInitializedError' | 'PushResourcesError' | 'RegionNotAvailableError' | 'RemoveNotificationAppError' | 'ResourceAlreadyExistsError' | 'ResourceCountLimitExceedError' | 'ResourceDoesNotExistError' | 'ResourceInUseError' | 'ResourceNotReadyError' | 'SchemaNotFoundError' | 'SchemaValidationError' | 'SearchableMockProcessError' | 'SearchableMockUnavailablePortError' | 'SearchableMockUnsupportedPlatformError' | 'StackNotFoundError' | 'StackStateError' | 'StorageImportError' | 'TransformerContractError' | 'UnknownDirectiveError' | 'UnsupportedLockFileTypeError' | 'UserInputError'; +export type AmplifyErrorType = 'AmplifyStudioError' | 'AmplifyStudioLoginError' | 'AmplifyStudioNotEnabledError' | 'ApiCategorySchemaNotFoundError' | 'AuthImportError' | 'BackendConfigValidationError' | 'BucketAlreadyExistsError' | 'BucketNotFoundError' | 'CategoryNotEnabledError' | 'CloudFormationTemplateError' | 'CommandNotSupportedError' | 'ConfigurationError' | 'CustomPoliciesFormatError' | 'DebugConfigValueNotSetError' | 'DeploymentError' | 'DeploymentInProgressError' | 'DestructiveMigrationError' | 'DiagnoseReportUploadError' | 'DirectoryAlreadyExistsError' | 'DirectoryError' | 'DuplicateLogicalIdError' | 'EnvironmentConfigurationError' | 'EnvironmentNameError' | 'EnvironmentNotInitializedError' | 'ExportError' | 'FeatureFlagsValidationError' | 'FileSystemPermissionsError' | 'FrameworkNotSupportedError' | 'FunctionTooLargeError' | 'GraphQLError' | 'InputValidationError' | 'InvalidAmplifyAppIdError' | 'InvalidCustomResourceError' | 'InvalidDirectiveError' | 'InvalidGSIMigrationError' | 'InvalidMigrationError' | 'InvalidOverrideError' | 'InvalidStackError' | 'InvalidTransformerError' | 'IterativeRollbackError' | 'LambdaFunctionInvokeError' | 'LambdaLayerDeleteError' | 'MigrationError' | 'MissingAmplifyMetaFileError' | 'MissingExpectedParameterError' | 'MissingOverridesInstallationRequirementsError' | 'MockProcessError' | 'ModelgenError' | 'NestedProjectInitError' | 'NotImplementedError' | 'NoUpdateBackendError' | 'OpenSslCertificateError' | 'PackagingLambdaFunctionError' | 'ParameterNotFoundError' | 'PermissionsError' | 'PluginMethodNotFoundError' | 'PluginNotFoundError' | 'PluginPolicyAddError' | 'ProfileConfigurationError' | 'ProjectAppIdResolveError' | 'ProjectInitError' | 'ProjectNotFoundError' | 'ProjectNotInitializedError' | 'PushResourcesError' | 'RegionNotAvailableError' | 'RemoveNotificationAppError' | 'ResourceAlreadyExistsError' | 'ResourceCountLimitExceedError' | 'ResourceDoesNotExistError' | 'ResourceInUseError' | 'ResourceNotReadyError' | 'SchemaNotFoundError' | 'SchemaValidationError' | 'SearchableMockProcessError' | 'SearchableMockUnavailablePortError' | 'SearchableMockUnsupportedPlatformError' | 'StackNotFoundError' | 'StackStateError' | 'StorageImportError' | 'TransformerContractError' | 'UnknownDirectiveError' | 'UnsupportedLockFileTypeError' | 'UserInputError'; // @public (undocumented) export enum AmplifyEvent { diff --git a/packages/amplify-cli-core/src/errors/amplify-exception.ts b/packages/amplify-cli-core/src/errors/amplify-exception.ts index 9ca9cf48d88..8753713fbd9 100644 --- a/packages/amplify-cli-core/src/errors/amplify-exception.ts +++ b/packages/amplify-cli-core/src/errors/amplify-exception.ts @@ -136,7 +136,6 @@ export type AmplifyErrorType = | 'IterativeRollbackError' | 'LambdaFunctionInvokeError' | 'LambdaLayerDeleteError' - | 'LambdaLayerNotFoundError' | 'MigrationError' | 'MissingAmplifyMetaFileError' | 'MissingExpectedParameterError'