mirror of
https://github.com/serverless/serverless.git
synced 2026-01-18 14:58:43 +00:00
37 lines
1.3 KiB
JavaScript
37 lines
1.3 KiB
JavaScript
'use strict';
|
|
|
|
const { legacy, log } = require('@serverless/utils/log');
|
|
|
|
module.exports = {
|
|
async checkIfEcrRepositoryExists() {
|
|
const registryId = await this.provider.getAccountId();
|
|
const repositoryName = this.provider.naming.getEcrRepositoryName();
|
|
try {
|
|
await this.provider.request('ECR', 'describeRepositories', {
|
|
repositoryNames: [repositoryName],
|
|
registryId,
|
|
});
|
|
return true;
|
|
} catch (err) {
|
|
if (err.providerError && err.providerError.code === 'RepositoryNotFoundException') {
|
|
return false;
|
|
}
|
|
if (err.providerError && err.providerError.code === 'AccessDeniedException') {
|
|
if (this.serverless.service.provider.ecr && this.serverless.service.provider.ecr.images) {
|
|
legacy.log(
|
|
'WARNING: Could not access ECR repository due to denied access, but there are images defined in "provider.ecr". ECR repository removal will be skipped.',
|
|
'Serverless',
|
|
{ color: 'orange' }
|
|
);
|
|
log.warning(
|
|
'Could not access ECR repository due to denied access, but there are images defined in "provider.ecr". ECR repository removal will be skipped.'
|
|
);
|
|
}
|
|
// Check if user has images defined and issue warning that we could not
|
|
return false;
|
|
}
|
|
throw err;
|
|
}
|
|
},
|
|
};
|