@@ -22,6 +22,10 @@ import (
22
22
"testing"
23
23
"time"
24
24
25
+ "github.com/aws/aws-sdk-go/aws"
26
+ "github.com/golang/mock/gomock"
27
+ "github.com/stretchr/testify/assert"
28
+
25
29
"github.com/aws/amazon-ecs-agent/agent/data"
26
30
"github.com/aws/amazon-ecs-agent/agent/engine/dockerstate"
27
31
mock_dockerstate "github.com/aws/amazon-ecs-agent/agent/engine/dockerstate/mocks"
@@ -30,9 +34,6 @@ import (
30
34
"github.com/aws/amazon-ecs-agent/ecs-agent/api/attachmentinfo"
31
35
apieni "github.com/aws/amazon-ecs-agent/ecs-agent/api/eni"
32
36
mock_wsclient "github.com/aws/amazon-ecs-agent/ecs-agent/wsclient/mock"
33
- "github.com/aws/aws-sdk-go/aws"
34
- "github.com/golang/mock/gomock"
35
- "github.com/stretchr/testify/assert"
36
37
)
37
38
38
39
// TestInvalidAttachInstanceENIMessage tests various invalid formats of AttachInstanceNetworkInterfacesMessage
@@ -46,89 +47,89 @@ func TestInvalidAttachInstanceENIMessage(t *testing.T) {
46
47
ClusterArn : aws .String (testconst .ClusterName ),
47
48
ContainerInstanceArn : aws .String (testconst .ContainerInstanceARN ),
48
49
ElasticNetworkInterfaces : []* ecsacs.ElasticNetworkInterface {},
49
- WaitTimeoutMs : aws .Int64 (waitTimeoutMillis ),
50
+ WaitTimeoutMs : aws .Int64 (testconst . WaitTimeoutMillis ),
50
51
},
51
52
description : "Message without message id should be invalid" ,
52
53
},
53
54
{
54
55
message : & ecsacs.AttachInstanceNetworkInterfacesMessage {
55
- MessageId : aws .String (eniMessageId ),
56
+ MessageId : aws .String (testconst . MessageID ),
56
57
ContainerInstanceArn : aws .String (testconst .ContainerInstanceARN ),
57
58
ElasticNetworkInterfaces : []* ecsacs.ElasticNetworkInterface {},
58
- WaitTimeoutMs : aws .Int64 (waitTimeoutMillis ),
59
+ WaitTimeoutMs : aws .Int64 (testconst . WaitTimeoutMillis ),
59
60
},
60
61
description : "Message without cluster arn should be invalid" ,
61
62
},
62
63
{
63
64
message : & ecsacs.AttachInstanceNetworkInterfacesMessage {
64
- MessageId : aws .String (eniMessageId ),
65
+ MessageId : aws .String (testconst . MessageID ),
65
66
ClusterArn : aws .String (testconst .ClusterName ),
66
67
ElasticNetworkInterfaces : []* ecsacs.ElasticNetworkInterface {},
67
- WaitTimeoutMs : aws .Int64 (waitTimeoutMillis ),
68
+ WaitTimeoutMs : aws .Int64 (testconst . WaitTimeoutMillis ),
68
69
},
69
70
description : "Message without container instance arn should be invalid" ,
70
71
},
71
72
{
72
73
message : & ecsacs.AttachInstanceNetworkInterfacesMessage {
73
- MessageId : aws .String (eniMessageId ),
74
+ MessageId : aws .String (testconst . MessageID ),
74
75
ClusterArn : aws .String (testconst .ClusterName ),
75
- WaitTimeoutMs : aws .Int64 (waitTimeoutMillis ),
76
+ WaitTimeoutMs : aws .Int64 (testconst . WaitTimeoutMillis ),
76
77
},
77
78
description : "Message without network interfaces should be invalid" ,
78
79
},
79
80
{
80
81
message : & ecsacs.AttachInstanceNetworkInterfacesMessage {
81
- MessageId : aws .String (eniMessageId ),
82
+ MessageId : aws .String (testconst . MessageID ),
82
83
ClusterArn : aws .String (testconst .ClusterName ),
83
84
ContainerInstanceArn : aws .String (testconst .ContainerInstanceARN ),
84
85
ElasticNetworkInterfaces : []* ecsacs.ElasticNetworkInterface {
85
86
{
86
- MacAddress : aws .String (randomMAC ),
87
+ MacAddress : aws .String (testconst . RandomMAC ),
87
88
Ec2Id : aws .String ("1" ),
88
89
},
89
90
{
90
- MacAddress : aws .String (randomMAC ),
91
+ MacAddress : aws .String (testconst . RandomMAC ),
91
92
Ec2Id : aws .String ("2" ),
92
93
},
93
94
},
94
- WaitTimeoutMs : aws .Int64 (waitTimeoutMillis ),
95
+ WaitTimeoutMs : aws .Int64 (testconst . WaitTimeoutMillis ),
95
96
},
96
97
description : "Message with multiple network interfaces should be invalid" ,
97
98
},
98
99
{
99
100
message : & ecsacs.AttachInstanceNetworkInterfacesMessage {
100
- MessageId : aws .String (eniMessageId ),
101
+ MessageId : aws .String (testconst . MessageID ),
101
102
ClusterArn : aws .String (testconst .ClusterName ),
102
103
ContainerInstanceArn : aws .String (testconst .ContainerInstanceARN ),
103
104
ElasticNetworkInterfaces : []* ecsacs.ElasticNetworkInterface {
104
105
{},
105
106
},
106
- WaitTimeoutMs : aws .Int64 (waitTimeoutMillis ),
107
+ WaitTimeoutMs : aws .Int64 (testconst . WaitTimeoutMillis ),
107
108
},
108
109
description : "Message without network details should be invalid" ,
109
110
},
110
111
{
111
112
message : & ecsacs.AttachInstanceNetworkInterfacesMessage {
112
- MessageId : aws .String (eniMessageId ),
113
+ MessageId : aws .String (testconst . MessageID ),
113
114
ClusterArn : aws .String (testconst .ClusterName ),
114
115
ContainerInstanceArn : aws .String (testconst .ContainerInstanceARN ),
115
116
ElasticNetworkInterfaces : []* ecsacs.ElasticNetworkInterface {
116
117
{
117
118
Ec2Id : aws .String ("1" ),
118
119
},
119
120
},
120
- WaitTimeoutMs : aws .Int64 (waitTimeoutMillis ),
121
+ WaitTimeoutMs : aws .Int64 (testconst . WaitTimeoutMillis ),
121
122
},
122
123
description : "Message with a network interface without macAddress should be invalid" ,
123
124
},
124
125
{
125
126
message : & ecsacs.AttachInstanceNetworkInterfacesMessage {
126
- MessageId : aws .String (eniMessageId ),
127
+ MessageId : aws .String (testconst . MessageID ),
127
128
ClusterArn : aws .String (testconst .ClusterName ),
128
129
ContainerInstanceArn : aws .String (testconst .ContainerInstanceARN ),
129
130
ElasticNetworkInterfaces : []* ecsacs.ElasticNetworkInterface {
130
131
{
131
- MacAddress : aws .String (randomMAC ),
132
+ MacAddress : aws .String (testconst . RandomMAC ),
132
133
Ec2Id : aws .String ("1" ),
133
134
},
134
135
},
@@ -164,25 +165,25 @@ func TestInstanceENIAckSingleMessage(t *testing.T) {
164
165
var ackSent sync.WaitGroup
165
166
ackSent .Add (1 )
166
167
mockWSClient .EXPECT ().MakeRequest (gomock .Any ()).Do (func (ackRequest * ecsacs.AckRequest ) {
167
- assert .Equal (t , aws .StringValue (ackRequest .MessageId ), eniMessageId )
168
+ assert .Equal (t , aws .StringValue (ackRequest .MessageId ), testconst . MessageID )
168
169
ackSent .Done ()
169
170
})
170
171
171
172
go handler .start ()
172
173
173
174
mockNetInterface1 := ecsacs.ElasticNetworkInterface {
174
175
Ec2Id : aws .String ("1" ),
175
- MacAddress : aws .String (randomMAC ),
176
+ MacAddress : aws .String (testconst . RandomMAC ),
176
177
AttachmentArn : aws .String (attachmentArn ),
177
178
}
178
179
message := & ecsacs.AttachInstanceNetworkInterfacesMessage {
179
- MessageId : aws .String (eniMessageId ),
180
+ MessageId : aws .String (testconst . MessageID ),
180
181
ClusterArn : aws .String (testconst .ClusterName ),
181
182
ContainerInstanceArn : aws .String (testconst .ContainerInstanceARN ),
182
183
ElasticNetworkInterfaces : []* ecsacs.ElasticNetworkInterface {
183
184
& mockNetInterface1 ,
184
185
},
185
- WaitTimeoutMs : aws .Int64 (waitTimeoutMillis ),
186
+ WaitTimeoutMs : aws .Int64 (testconst . WaitTimeoutMillis ),
186
187
}
187
188
188
189
handler .messageBuffer <- message
@@ -215,7 +216,7 @@ func TestInstanceENIAckSingleMessageDuplicateENIAttachmentMessageStartsTimer(t *
215
216
var ackSent sync.WaitGroup
216
217
ackSent .Add (1 )
217
218
mockWSClient .EXPECT ().MakeRequest (gomock .Any ()).Do (func (ackRequest * ecsacs.AckRequest ) {
218
- assert .Equal (t , aws .StringValue (ackRequest .MessageId ), eniMessageId )
219
+ assert .Equal (t , aws .StringValue (ackRequest .MessageId ), testconst . MessageID )
219
220
ackSent .Done ()
220
221
})
221
222
gomock .InOrder (
@@ -224,7 +225,7 @@ func TestInstanceENIAckSingleMessageDuplicateENIAttachmentMessageStartsTimer(t *
224
225
// Ensuring that statemanager.Save() is not invoked should be a strong
225
226
// enough check to ensure that the timer was started (since StartTimer would be
226
227
// the only place to return error)
227
- mockState .EXPECT ().ENIByMac (randomMAC ).Return (& apieni.ENIAttachment {
228
+ mockState .EXPECT ().ENIByMac (testconst . RandomMAC ).Return (& apieni.ENIAttachment {
228
229
AttachmentInfo : attachmentinfo.AttachmentInfo {
229
230
ExpiresAt : expiresAt ,
230
231
},
@@ -233,17 +234,17 @@ func TestInstanceENIAckSingleMessageDuplicateENIAttachmentMessageStartsTimer(t *
233
234
234
235
mockNetInterface1 := ecsacs.ElasticNetworkInterface {
235
236
Ec2Id : aws .String ("1" ),
236
- MacAddress : aws .String (randomMAC ),
237
+ MacAddress : aws .String (testconst . RandomMAC ),
237
238
AttachmentArn : aws .String ("attachmentarn" ),
238
239
}
239
240
message := & ecsacs.AttachInstanceNetworkInterfacesMessage {
240
- MessageId : aws .String (eniMessageId ),
241
+ MessageId : aws .String (testconst . MessageID ),
241
242
ClusterArn : aws .String (testconst .ClusterName ),
242
243
ContainerInstanceArn : aws .String (testconst .ContainerInstanceARN ),
243
244
ElasticNetworkInterfaces : []* ecsacs.ElasticNetworkInterface {
244
245
& mockNetInterface1 ,
245
246
},
246
- WaitTimeoutMs : aws .Int64 (waitTimeoutMillis ),
247
+ WaitTimeoutMs : aws .Int64 (testconst . WaitTimeoutMillis ),
247
248
}
248
249
249
250
// Expect an error starting the timer because of <=0 duration
@@ -272,7 +273,7 @@ func TestInstanceENIAckHappyPath(t *testing.T) {
272
273
var ackSent sync.WaitGroup
273
274
ackSent .Add (1 )
274
275
mockWSClient .EXPECT ().MakeRequest (gomock .Any ()).Do (func (ackRequest * ecsacs.AckRequest ) {
275
- assert .Equal (t , aws .StringValue (ackRequest .MessageId ), eniMessageId )
276
+ assert .Equal (t , aws .StringValue (ackRequest .MessageId ), testconst . MessageID )
276
277
ackSent .Done ()
277
278
handler .stop ()
278
279
})
@@ -281,16 +282,16 @@ func TestInstanceENIAckHappyPath(t *testing.T) {
281
282
282
283
mockNetInterface1 := ecsacs.ElasticNetworkInterface {
283
284
Ec2Id : aws .String ("1" ),
284
- MacAddress : aws .String (randomMAC ),
285
+ MacAddress : aws .String (testconst . RandomMAC ),
285
286
}
286
287
message := & ecsacs.AttachInstanceNetworkInterfacesMessage {
287
- MessageId : aws .String (eniMessageId ),
288
+ MessageId : aws .String (testconst . MessageID ),
288
289
ClusterArn : aws .String (testconst .ClusterName ),
289
290
ContainerInstanceArn : aws .String (testconst .ContainerInstanceARN ),
290
291
ElasticNetworkInterfaces : []* ecsacs.ElasticNetworkInterface {
291
292
& mockNetInterface1 ,
292
293
},
293
- WaitTimeoutMs : aws .Int64 (waitTimeoutMillis ),
294
+ WaitTimeoutMs : aws .Int64 (testconst . WaitTimeoutMillis ),
294
295
}
295
296
296
297
handler .messageBuffer <- message
0 commit comments