Skip to content

Commit

Permalink
feat(logs): import a LogGroup from its name (#5580)
Browse files Browse the repository at this point in the history
* feat(logs): import a LogGroup from its name

* reuse fromLogGroupArn

* Revert "reuse fromLogGroupArn"

This reverts commit 4916c66.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
  • Loading branch information
nija-at and mergify[bot] committed Dec 31, 2019
1 parent 6f7e3c6 commit 9cbbaea
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 2 deletions.
19 changes: 18 additions & 1 deletion packages/@aws-cdk/aws-logs/lib/log-group.ts
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@ export interface LogGroupProps {
*/
export class LogGroup extends LogGroupBase {
/**
* Import an existing LogGroup
* Import an existing LogGroup given its ARN
*/
public static fromLogGroupArn(scope: Construct, id: string, logGroupArn: string): ILogGroup {
class Import extends LogGroupBase {
Expand All @@ -316,6 +316,23 @@ export class LogGroup extends LogGroupBase {
return new Import(scope, id);
}

/**
* Import an existing LogGroup given its name
*/
public static fromLogGroupName(scope: Construct, id: string, logGroupName: string): ILogGroup {
class Import extends LogGroupBase {
public readonly logGroupName = logGroupName;
public readonly logGroupArn = Stack.of(scope).formatArn({
service: 'logs',
resource: 'log-group',
sep: ':',
resourceName: logGroupName,
});
}

return new Import(scope, id);
}

/**
* The ARN of this log group
*/
Expand Down
22 changes: 21 additions & 1 deletion packages/@aws-cdk/aws-logs/test/test.loggroup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ export = {
test.done();
},

'export/import'(test: Test) {
'import from arn'(test: Test) {
// GIVEN
const stack2 = new Stack();

Expand All @@ -119,12 +119,32 @@ export = {
imported.addStream('MakeMeAStream');

// THEN
test.deepEqual(imported.logGroupName, 'my-log-group');
test.deepEqual(imported.logGroupArn, 'arn:aws:logs:us-east-1:123456789012:log-group:my-log-group');
expect(stack2).to(haveResource('AWS::Logs::LogStream', {
LogGroupName: "my-log-group"
}));
test.done();
},

'import from name'(test: Test) {
// GIVEN
const stack = new Stack();

// WHEN
const imported = LogGroup.fromLogGroupName(stack, 'lg', 'my-log-group');
imported.addStream('MakeMeAStream');

// THEN
test.deepEqual(imported.logGroupName, 'my-log-group');
test.ok(/^arn:.+:logs:.+:.+:log-group:my-log-group$/.test(imported.logGroupArn),
`LogGroup ARN ${imported.logGroupArn} does not match the expected pattern`);
expect(stack).to(haveResource('AWS::Logs::LogStream', {
LogGroupName: 'my-log-group'
}));
test.done();
},

'extractMetric'(test: Test) {
// GIVEN
const stack = new Stack();
Expand Down

0 comments on commit 9cbbaea

Please sign in to comment.