Add key-name filter for ec2:DescribeInstances (#5338)

This commit is contained in:
Brian Pandola 2022-07-27 00:19:47 -07:00 committed by GitHub
parent 515faca8aa
commit be6e02e5fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 0 deletions

View File

@ -413,6 +413,7 @@ filter_dict_attribute_mapping = {
"owner-id": "owner_id",
"subnet-id": "subnet_id",
"dns-name": "public_dns",
"key-name": "key_name",
}

View File

@ -1565,6 +1565,25 @@ def test_run_instance_with_keypair():
instance.key_name.should.equal("keypair_name")
@mock_ec2
def test_describe_instances_with_keypair_filter():
ec2 = boto3.resource("ec2", region_name="us-east-1")
for i in range(3):
key_name = "kp-single" if i % 2 else "kp-multiple"
ec2.create_instances(
ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1, KeyName=key_name
)
test_data = [
(["kp-single"], 1),
(["kp-multiple"], 2),
(["kp-single", "kp-multiple"], 3),
]
for filter_values, expected_instance_count in test_data:
_filter = [{"Name": "key-name", "Values": filter_values}]
instances_found = list(ec2.instances.filter(Filters=_filter))
instances_found.should.have.length_of(expected_instance_count)
@mock_ec2
@mock.patch(
"moto.ec2.models.instances.settings.ENABLE_KEYPAIR_VALIDATION",