99 "github.com/stretchr/testify/assert"
1010
1111 "github.com/aws/amazon-cloudwatch-agent/internal/cloudmetadata"
12+ "github.com/aws/amazon-cloudwatch-agent/internal/cloudmetadata/azure"
1213 "github.com/aws/amazon-cloudwatch-agent/plugins/processors/ec2tagger"
1314 "github.com/aws/amazon-cloudwatch-agent/translator/util/tagutil"
1415)
@@ -32,7 +33,16 @@ func TestGetMetadataInfo(t *testing.T) {
3233 cloudmetadata .ResetGlobalProvider ()
3334 defer cloudmetadata .ResetGlobalProvider ()
3435
35- m := GetMetadataInfo (mockMetadataProvider (dummyInstanceId , dummyHostName , dummyPrivateIp , dummyAccountId ))
36+ // Use mock provider to ensure consistent behavior across all environments
37+ mock := & cloudmetadata.MockProvider {
38+ InstanceID : dummyInstanceId ,
39+ Hostname : dummyHostName ,
40+ PrivateIP : dummyPrivateIp ,
41+ AccountID : dummyAccountId ,
42+ }
43+ cloudmetadata .SetGlobalProviderForTest (mock )
44+
45+ m := GetMetadataInfo (nil )
3646 assert .Equal (t , dummyInstanceId , m [instanceIdPlaceholder ])
3747 assert .Equal (t , dummyHostName , m [hostnamePlaceholder ])
3848 assert .Equal (t , dummyPrivateIp , m [ipAddressPlaceholder ])
@@ -43,31 +53,63 @@ func TestGetMetadataInfoEmptyInstanceId(t *testing.T) {
4353 cloudmetadata .ResetGlobalProvider ()
4454 defer cloudmetadata .ResetGlobalProvider ()
4555
46- m := GetMetadataInfo (mockMetadataProvider ("" , dummyHostName , dummyPrivateIp , dummyAccountId ))
56+ mock := & cloudmetadata.MockProvider {
57+ InstanceID : "" ,
58+ Hostname : dummyHostName ,
59+ PrivateIP : dummyPrivateIp ,
60+ AccountID : dummyAccountId ,
61+ }
62+ cloudmetadata .SetGlobalProviderForTest (mock )
63+
64+ m := GetMetadataInfo (nil )
4765 assert .Equal (t , unknownInstanceID , m [instanceIdPlaceholder ])
4866}
4967
5068func TestGetMetadataInfoUsesLocalHostname (t * testing.T ) {
5169 cloudmetadata .ResetGlobalProvider ()
5270 defer cloudmetadata .ResetGlobalProvider ()
5371
54- m := GetMetadataInfo (mockMetadataProvider (dummyInstanceId , "" , dummyPrivateIp , dummyAccountId ))
72+ mock := & cloudmetadata.MockProvider {
73+ InstanceID : dummyInstanceId ,
74+ Hostname : "" ,
75+ PrivateIP : dummyPrivateIp ,
76+ AccountID : dummyAccountId ,
77+ }
78+ cloudmetadata .SetGlobalProviderForTest (mock )
79+
80+ m := GetMetadataInfo (nil )
5581 assert .Equal (t , getHostName (), m [hostnamePlaceholder ])
5682}
5783
5884func TestGetMetadataInfoDerivesIpAddress (t * testing.T ) {
5985 cloudmetadata .ResetGlobalProvider ()
6086 defer cloudmetadata .ResetGlobalProvider ()
6187
62- m := GetMetadataInfo (mockMetadataProvider (dummyInstanceId , dummyHostName , "" , dummyAccountId ))
88+ mock := & cloudmetadata.MockProvider {
89+ InstanceID : dummyInstanceId ,
90+ Hostname : dummyHostName ,
91+ PrivateIP : "" ,
92+ AccountID : dummyAccountId ,
93+ }
94+ cloudmetadata .SetGlobalProviderForTest (mock )
95+
96+ m := GetMetadataInfo (nil )
6397 assert .Equal (t , getIpAddress (), m [ipAddressPlaceholder ])
6498}
6599
66100func TestGetMetadataInfoEmptyAccountId (t * testing.T ) {
67101 cloudmetadata .ResetGlobalProvider ()
68102 defer cloudmetadata .ResetGlobalProvider ()
69103
70- m := GetMetadataInfo (mockMetadataProvider (dummyInstanceId , dummyHostName , dummyPrivateIp , "" ))
104+ mock := & cloudmetadata.MockProvider {
105+ InstanceID : dummyInstanceId ,
106+ Hostname : dummyHostName ,
107+ PrivateIP : dummyPrivateIp ,
108+ AccountID : "" ,
109+ }
110+ cloudmetadata .SetGlobalProviderForTest (mock )
111+
112+ m := GetMetadataInfo (nil )
71113 assert .Equal (t , unknownAccountID , m [accountIdPlaceholder ])
72114}
73115
@@ -301,7 +343,12 @@ func TestGetMetadataInfo_WithCloudmetadataSingleton(t *testing.T) {
301343
302344func TestGetMetadataInfo_FallbackToLegacy (t * testing.T ) {
303345 cloudmetadata .ResetGlobalProvider ()
304- // Don't set singleton - test fallback
346+ defer cloudmetadata .ResetGlobalProvider ()
347+
348+ // Skip on Azure since the fallback path won't be taken when azure.IsAzure() returns true
349+ if azure .IsAzure () {
350+ t .Skip ("Skipping legacy fallback test on Azure - Azure path takes precedence" )
351+ }
305352
306353 legacyMock := mockMetadataProvider ("i-legacy456" , "legacy-host" , "10.0.0.99" , "111222333444" )
307354
0 commit comments