File tree 3 files changed +42
-1
lines changed
packages/@aws-cdk/aws-elasticloadbalancingv2
3 files changed +42
-1
lines changed Original file line number Diff line number Diff line change @@ -67,6 +67,7 @@ export class NetworkListener extends BaseListener implements INetworkListener {
67
67
// New default target(s)
68
68
for ( const targetGroup of targetGroups ) {
69
69
this . _addDefaultTargetGroup ( targetGroup ) ;
70
+ targetGroup . registerListener ( this ) ;
70
71
}
71
72
}
72
73
Original file line number Diff line number Diff line change @@ -80,12 +80,22 @@ export class NetworkTargetGroup extends BaseTargetGroup {
80
80
*/
81
81
// tslint:disable-next-line:no-empty-interface
82
82
export interface INetworkTargetGroup extends ITargetGroup {
83
+ /**
84
+ * Register a listener that is load balancing to this target group.
85
+ *
86
+ * Don't call this directly. It will be called by listeners.
87
+ */
88
+ registerListener ( listener : INetworkListener ) : void ;
83
89
}
84
90
85
91
/**
86
92
* An imported network target group
87
93
*/
88
94
class ImportedNetworkTargetGroup extends BaseImportedTargetGroup implements INetworkTargetGroup {
95
+ public registerListener ( _listener : INetworkListener ) {
96
+ // Nothing to do, we know nothing of our members
97
+ }
98
+
89
99
public listenerDependency ( ) : cdk . IDependable {
90
100
return new LazyDependable ( [ ] ) ;
91
101
}
Original file line number Diff line number Diff line change 1
- import { expect , haveResource } from '@aws-cdk/assert' ;
1
+ import { expect , haveResource , MatchStyle } from '@aws-cdk/assert' ;
2
2
import ec2 = require( '@aws-cdk/aws-ec2' ) ;
3
3
import cdk = require( '@aws-cdk/cdk' ) ;
4
4
import { Test } from 'nodeunit' ;
@@ -112,4 +112,34 @@ export = {
112
112
113
113
test . done ( ) ;
114
114
} ,
115
+
116
+ 'Enable taking a dependency on an NLB target group\'s load balancer' ( test : Test ) {
117
+ // GIVEN
118
+ const stack = new cdk . Stack ( ) ;
119
+ const vpc = new ec2 . VpcNetwork ( stack , 'Stack' ) ;
120
+ const lb = new elbv2 . NetworkLoadBalancer ( stack , 'LB' , { vpc } ) ;
121
+ const listener = lb . addListener ( 'Listener' , { port : 443 } ) ;
122
+ const group = listener . addTargets ( 'Group' , {
123
+ port : 80 ,
124
+ targets : [ new FakeSelfRegisteringTarget ( stack , 'Target' , vpc ) ]
125
+ } ) ;
126
+
127
+ // WHEN
128
+ const resource = new cdk . Resource ( stack , 'MyResource' , {
129
+ type : 'SomeResource' ,
130
+ } ) ;
131
+ resource . addDependency ( group . listenerDependency ( ) ) ;
132
+
133
+ // THEN
134
+ expect ( stack ) . toMatch ( {
135
+ Resources : {
136
+ MyResource : {
137
+ Type : "SomeResource" ,
138
+ DependsOn : [ "LBListener49E825B4" ]
139
+ }
140
+ }
141
+ } , MatchStyle . SUPERSET ) ;
142
+
143
+ test . done ( ) ;
144
+ } ,
115
145
} ;
You can’t perform that action at this time.
0 commit comments