Also detect the product of Amazon EC2 instance

This commit is contained in:
Victor Zhestkov 2022-08-29 11:23:56 +03:00 committed by Megan Wilhite
parent 3d8612e4a8
commit ea9fc11d84
2 changed files with 9 additions and 4 deletions

View file

@ -1202,9 +1202,14 @@ def _virtual(osdata):
[dmidecode, "-t", "system"], ignore_retcode=True
)
output = ret["stdout"]
if "Manufacturer: Amazon EC2" in output or re.match(
r".*Version: .*amazon.*", output, flags=re.DOTALL
):
if "Manufacturer: Amazon EC2" in output:
grains["virtual_subtype"] = "Amazon EC2"
product = re.match(
r".*Product Name: ([^\r\n]*).*", output, flags=re.DOTALL
)
if product:
grains["virtual_subtype"] = "Amazon EC2 ({})".format(product[1])
elif re.match(r".*Version: [^\r\n]+\.amazon.*", output, flags=re.DOTALL):
grains["virtual_subtype"] = "Amazon EC2"
for command in failed_commands:

View file

@ -3303,7 +3303,7 @@ def test_virtual_set_virtual_ec2():
virtual_grains = core._virtual(osdata.copy())
assert virtual_grains["virtual"] == "kvm"
assert virtual_grains["virtual_subtype"] == "Amazon EC2"
assert virtual_grains["virtual_subtype"] == "Amazon EC2 (m5.large)"
virtual_grains = core._virtual(osdata.copy())