@@ -102,8 +102,7 @@ func TestDetectFQDNAvailable(t *testing.T) {
102
102
md .On ("HostID" ).Return ("2" , nil )
103
103
md .On ("HostArch" ).Return ("amd64" , nil )
104
104
105
- detector := & Detector {provider : md , logger : zap .NewNop (), hostnameSources : []string {"dns" },
106
- rb : metadata .NewResourceBuilder (allEnabledConfig ())}
105
+ detector := newTestDetector (md , []string {"dns" }, allEnabledConfig ())
107
106
res , schemaURL , err := detector .Detect (context .Background ())
108
107
require .NoError (t , err )
109
108
assert .Equal (t , conventions .SchemaURL , schemaURL )
@@ -125,15 +124,14 @@ func TestFallbackHostname(t *testing.T) {
125
124
mdHostname .On ("Hostname" ).Return ("hostname" , nil )
126
125
mdHostname .On ("FQDN" ).Return ("" , errors .New ("err" ))
127
126
mdHostname .On ("OSType" ).Return ("darwin" , nil )
128
- mdHostname .On ("HostID" ).Return ("3" , nil )
129
127
mdHostname .On ("HostArch" ).Return ("amd64" , nil )
130
128
131
- detector := & Detector {provider : mdHostname , logger : zap .NewNop (), hostnameSources : []string {"dns" , "os" },
132
- rb : metadata .NewResourceBuilder (metadata .DefaultResourceAttributesConfig ())}
129
+ detector := newTestDetector (mdHostname , []string {"dns" , "os" }, metadata .DefaultResourceAttributesConfig ())
133
130
res , schemaURL , err := detector .Detect (context .Background ())
134
131
require .NoError (t , err )
135
132
assert .Equal (t , conventions .SchemaURL , schemaURL )
136
133
mdHostname .AssertExpectations (t )
134
+ mdHostname .AssertNotCalled (t , "HostID" )
137
135
138
136
expected := map [string ]any {
139
137
conventions .AttributeHostName : "hostname" ,
@@ -151,8 +149,7 @@ func TestEnableHostID(t *testing.T) {
151
149
mdHostname .On ("HostID" ).Return ("3" , nil )
152
150
mdHostname .On ("HostArch" ).Return ("amd64" , nil )
153
151
154
- detector := & Detector {provider : mdHostname , logger : zap .NewNop (), hostnameSources : []string {"dns" , "os" },
155
- rb : metadata .NewResourceBuilder (allEnabledConfig ())}
152
+ detector := newTestDetector (mdHostname , []string {"dns" , "os" }, allEnabledConfig ())
156
153
res , schemaURL , err := detector .Detect (context .Background ())
157
154
require .NoError (t , err )
158
155
assert .Equal (t , conventions .SchemaURL , schemaURL )
@@ -175,8 +172,7 @@ func TestUseHostname(t *testing.T) {
175
172
mdHostname .On ("HostID" ).Return ("1" , nil )
176
173
mdHostname .On ("HostArch" ).Return ("amd64" , nil )
177
174
178
- detector := & Detector {provider : mdHostname , logger : zap .NewNop (), hostnameSources : []string {"os" },
179
- rb : metadata .NewResourceBuilder (allEnabledConfig ())}
175
+ detector := newTestDetector (mdHostname , []string {"os" }, allEnabledConfig ())
180
176
res , schemaURL , err := detector .Detect (context .Background ())
181
177
require .NoError (t , err )
182
178
assert .Equal (t , conventions .SchemaURL , schemaURL )
@@ -201,8 +197,7 @@ func TestDetectError(t *testing.T) {
201
197
mdFQDN .On ("HostID" ).Return ("" , errors .New ("err" ))
202
198
mdFQDN .On ("HostArch" ).Return ("amd64" , nil )
203
199
204
- detector := & Detector {provider : mdFQDN , logger : zap .NewNop (), hostnameSources : []string {"dns" },
205
- rb : metadata .NewResourceBuilder (allEnabledConfig ())}
200
+ detector := newTestDetector (mdFQDN , []string {"dns" }, allEnabledConfig ())
206
201
res , schemaURL , err := detector .Detect (context .Background ())
207
202
assert .Error (t , err )
208
203
assert .Equal (t , "" , schemaURL )
@@ -215,8 +210,7 @@ func TestDetectError(t *testing.T) {
215
210
mdHostname .On ("HostID" ).Return ("" , errors .New ("err" ))
216
211
mdHostname .On ("HostArch" ).Return ("amd64" , nil )
217
212
218
- detector = & Detector {provider : mdHostname , logger : zap .NewNop (), hostnameSources : []string {"os" },
219
- rb : metadata .NewResourceBuilder (allEnabledConfig ())}
213
+ detector = newTestDetector (mdHostname , []string {"os" }, allEnabledConfig ())
220
214
res , schemaURL , err = detector .Detect (context .Background ())
221
215
assert .Error (t , err )
222
216
assert .Equal (t , "" , schemaURL )
@@ -226,13 +220,38 @@ func TestDetectError(t *testing.T) {
226
220
mdOSType := & mockMetadata {}
227
221
mdOSType .On ("FQDN" ).Return ("fqdn" , nil )
228
222
mdOSType .On ("OSType" ).Return ("" , errors .New ("err" ))
229
- mdOSType .On ("HostID" ).Return ("" , errors . New ( "err" ) )
223
+ mdOSType .On ("HostID" ).Return ("1 " , nil )
230
224
mdOSType .On ("HostArch" ).Return ("amd64" , nil )
231
225
232
- detector = & Detector {provider : mdOSType , logger : zap .NewNop (), hostnameSources : []string {"dns" },
233
- rb : metadata .NewResourceBuilder (allEnabledConfig ())}
226
+ detector = newTestDetector (mdOSType , []string {"os" }, allEnabledConfig ())
234
227
res , schemaURL , err = detector .Detect (context .Background ())
235
228
assert .Error (t , err )
236
229
assert .Equal (t , "" , schemaURL )
237
230
assert .True (t , internal .IsEmptyResource (res ))
231
+
232
+ // Host ID fails. All other attributes should be set.
233
+ mdHostID := & mockMetadata {}
234
+ mdHostID .On ("Hostname" ).Return ("hostname" , nil )
235
+ mdHostID .On ("OSType" ).Return ("linux" , nil )
236
+ mdHostID .On ("HostID" ).Return ("" , errors .New ("err" ))
237
+ mdHostID .On ("HostArch" ).Return ("arm64" , nil )
238
+
239
+ detector = newTestDetector (mdHostID , []string {"os" }, allEnabledConfig ())
240
+ res , schemaURL , err = detector .Detect (context .Background ())
241
+ assert .NoError (t , err )
242
+ assert .Equal (t , conventions .SchemaURL , schemaURL )
243
+ assert .Equal (t , map [string ]any {
244
+ conventions .AttributeHostName : "hostname" ,
245
+ conventions .AttributeOSType : "linux" ,
246
+ conventions .AttributeHostArch : conventions .AttributeHostArchARM64 ,
247
+ }, res .Attributes ().AsRaw ())
248
+ }
249
+
250
+ func newTestDetector (mock * mockMetadata , hostnameSources []string , resCfg metadata.ResourceAttributesConfig ) * Detector {
251
+ return & Detector {
252
+ provider : mock ,
253
+ logger : zap .NewNop (),
254
+ cfg : Config {HostnameSources : hostnameSources , ResourceAttributes : resCfg },
255
+ rb : metadata .NewResourceBuilder (resCfg ),
256
+ }
238
257
}
0 commit comments