Skip to content

Commit 06cfba9

Browse files
committed
add ec2metadata new tests to check for optional paths
Signed-off-by: Xabier Napal <[email protected]>
1 parent 0752e31 commit 06cfba9

File tree

1 file changed

+51
-1
lines changed

1 file changed

+51
-1
lines changed

pkg/ec2metadata/ec2metadata_test.go

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -526,7 +526,57 @@ func TestGetMetadataServiceRequest404(t *testing.T) {
526526

527527
_, err := imds.GetMetadataInfo(requestPath, false)
528528

529-
h.Assert(t, err != nil, "Expected error to be nil but it was not")
529+
h.Assert(t, err != nil, "Error expected because request errored with 404")
530+
}
531+
532+
func TestGetMetadataServiceRequest404AllowMissing(t *testing.T) {
533+
var requestPath string = "/latest/meta-data/instance-type"
534+
535+
server := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
536+
rw.Header().Add("X-aws-ec2-metadata-token-ttl-seconds", "100")
537+
if req.URL.String() == "/latest/api/token" {
538+
rw.WriteHeader(200)
539+
_, err := rw.Write([]byte(`token`))
540+
h.Ok(t, err)
541+
return
542+
}
543+
h.Equals(t, req.Header.Get("X-aws-ec2-metadata-token"), "token")
544+
h.Equals(t, req.URL.String(), requestPath)
545+
rw.WriteHeader(404)
546+
}))
547+
defer server.Close()
548+
549+
// Use URL from our local test server
550+
imds := ec2metadata.New(server.URL, 1)
551+
552+
_, err := imds.GetMetadataInfo(requestPath, true)
553+
554+
h.Assert(t, err == nil, "Expected error to be nil but it was not")
555+
}
556+
557+
func TestGetMetadataServiceRequest500AllowMissing(t *testing.T) {
558+
var requestPath string = "/latest/meta-data/instance-type"
559+
560+
server := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
561+
rw.Header().Add("X-aws-ec2-metadata-token-ttl-seconds", "100")
562+
if req.URL.String() == "/latest/api/token" {
563+
rw.WriteHeader(200)
564+
_, err := rw.Write([]byte(`token`))
565+
h.Ok(t, err)
566+
return
567+
}
568+
h.Equals(t, req.Header.Get("X-aws-ec2-metadata-token"), "token")
569+
h.Equals(t, req.URL.String(), requestPath)
570+
rw.WriteHeader(500)
571+
}))
572+
defer server.Close()
573+
574+
// Use URL from our local test server
575+
imds := ec2metadata.New(server.URL, 1)
576+
577+
_, err := imds.GetMetadataInfo(requestPath, true)
578+
579+
h.Assert(t, err != nil, "Error expected because request errored with 500")
530580
}
531581

532582
func TestGetMetadataServiceRequestFailure(t *testing.T) {

0 commit comments

Comments
 (0)