Skip to content

Commit cd92744

Browse files
authored
Merge pull request #2156 from dtrejod/dt/ec2-gen5-detection
Fix Amazon VM detection on EC2 Nitro generation.
2 parents 634fb4b + fe06d6e commit cd92744

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

utils/cloudinfo/aws.go

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,36 @@ import (
1919
"github.com/aws/aws-sdk-go/aws/ec2metadata"
2020
"github.com/aws/aws-sdk-go/aws/session"
2121
"io/ioutil"
22+
"os"
2223
"strings"
2324

2425
info "github.com/google/cadvisor/info/v1"
2526
)
2627

2728
const (
2829
ProductVerFileName = "/sys/class/dmi/id/product_version"
30+
BiosVerFileName = "/sys/class/dmi/id/bios_vendor"
2931
Amazon = "amazon"
3032
)
3133

3234
func onAWS() bool {
33-
data, err := ioutil.ReadFile(ProductVerFileName)
34-
if err != nil {
35-
return false
35+
var dataProduct []byte
36+
var dataBios []byte
37+
if _, err := os.Stat(ProductVerFileName); err == nil {
38+
dataProduct, err = ioutil.ReadFile(ProductVerFileName)
39+
if err != nil {
40+
return false
41+
}
42+
}
43+
44+
if _, err := os.Stat(BiosVerFileName); err == nil {
45+
dataBios, err = ioutil.ReadFile(BiosVerFileName)
46+
if err != nil {
47+
return false
48+
}
3649
}
37-
return strings.Contains(string(data), Amazon)
50+
51+
return strings.Contains(string(dataProduct), Amazon) || strings.Contains(strings.ToLower(string(dataBios)), Amazon)
3852
}
3953

4054
func getAwsMetadata(name string) string {

0 commit comments

Comments
 (0)